Changelog

An honest timeline of what shipped, what broke, and what we learned building ReshareAI.

28 April 2026

Alternatives pages: 2026 pricing refresh + deeper Repurpose.io comparison

Verified every competitor's current pricing against their live pricing page and corrected drift across all 9 alternatives pages. Notable shifts: Repurpose.io entry plan moved from $19 to $35/month, Lately.ai Starter dropped from $49 to $19, ContentStudio Standard from $25 to $19, Buffer from $6 to $5/channel, Castmagic from $23 to $21, Opus Clip Starter from $19 to $15. Hootsuite is now correctly labelled as $99/user/mo (per-seat, not flat). Tier names updated where competitors renamed them, e.g. Hootsuite "Professional" → "Standard", Taplio "Standard" → "Growth".

Rewrote /alternatives/repurpose-io with materially more depth. New sections: side-by-side workflow walkthrough showing realistic time-to-first-output for each tool, pricing tiers mapped by user type (rather than a confusing "Pro vs Pro" comparison), an honest "where Repurpose.io is genuinely better than ReshareAI" section, and cross-links to related comparison pages. FAQ expanded from 3 to 7 entries (all included in JSON-LD).

27 April 2026

SEO/GEO foundation, dedicated pages, async transcription via VPS

Two new comparison pages. Opus Clip (vs ReshareAI for video clips vs written posts) and Taplio (vs ReshareAI for LinkedIn-only growth vs multi-platform). Existing 6 comparison pages now also carry BreadcrumbList + FAQPage JSON-LD; 8 total alternatives pages, all with structured data Google and AI engines can cite directly.

Three new dedicated pages: /pricing (separately indexable, Product schema with 5 Offers covering monthly + annual billing), /about (Person + AboutPage schemas, founder background + how ReshareAI is built), /faq (37 questions across 8 sections, FAQPage schema). Homepage FAQ now links to the full FAQ page.

Persona landing page at /for/podcasters. HowTo schema with 5 mirrored on-page workflow steps, FAQPage with 5 podcaster-specific Q&As, audience-targeted WebPage schema. First of a planned per-persona set.

BlogPosting JSON-LD added to all 4 blog posts (author, datePublished, dateModified, image, mainEntityOfPage). Blog index now carries Blog + BreadcrumbList schemas. Inline contextual links from blog posts to relevant alternatives pages.

Sitemap rewritten, now programmatic. It walks src/app/, finds every page.tsx, skips API/dashboard/auth-callback routes and dynamic [slug] segments, applies per-route priority/changeFrequency overrides. Adding a new page anywhere is automatically included. 25 URLs currently registered.

Site nav + footer overhaul. Top nav adds Pricing and FAQ. Footer expanded to a 5-column site map (Product, Compare, Resources, Company, brand), every internal page reachable in one click. Homepage refactored to use the shared MarketingLayout for a single source of truth on header/footer.

Async transcription via VPS worker, moved Whisper calls off Vercel onto a small Express + better-sqlite3 service on prod-1 at transcribe.reshareai.com. /api/transcribe now uploads the audio to the worker and returns a jobId in under a second; the dashboard polls /api/transcribe/jobs/[jobId] until completion. Removes the Vercel function timeout cliff (10s on Hobby) that previously killed long podcast episodes, only Whisper's 25 MB cap remains. systemd-managed, Caddy reverse proxy with automatic Let's Encrypt cert, bearer-token auth between Vercel and worker, Supabase session check on the public-facing proxy route, hourly cleanup of completed jobs and tmp audio files older than 24h.

31 March 2026

Test suite + prompt quality overhaul

Added a Vitest test suite covering the three highest-risk areas: platform prompt building, SSRF protection, and Stripe webhook logic. 58 tests.

While writing the SSRF tests we found a real security gap. Node.js's URL parser returns [::1] with brackets for IPv6 addresses, but the regex was matching ::1 without brackets, meaning http://[::1] would pass the private IP check. Fixed immediately.

Also refactored all 7 platform prompts to use OpenAI's system/user message roles correctly. Platform rules go in the system message; source content and language instructions go in the user message. Added a shared anti-filler constant to stop AI-sounding openers from bleeding into generated posts.

30 March 2026

Idea Queue

Saves links and text snippets for later repurposing. Free users get 5 slots, Pro and Business users get 100. Items have an optional title and a "Remind me on" date (display only, no notification system yet).

A single ↑ button pushes the item directly into the repurpose form, switching to the URL or text tab automatically. Items stay in the queue after sending, you delete them manually.

Also expanded all three blog posts to 2,000+ words each.

29 March 2026

YouTube transcript input + SEO foundations

Paste a YouTube URL in the Audio tab and it pulls the transcript directly, no API key needed. Auto-detected from the URL. Falls back to Whisper for podcast links and audio files. Returns a clear error if the video has no captions.

Canonical tags, updated meta descriptions, and keyword-focused H1s across all public pages. Added cross-links between blog posts, every post now links to at least two others.

28 March 2026

Threads, Business tier, audio input, and a lot of polish

Threads added as a 7th platform (Pro and Business only, 500-char limit per post). The prompt is tuned for Threads' conversational style, less promotional, more genuine takes.

Business tier launched at $29/month. Adds up to 5 named brand voices, selectable per session via a dropdown. The upgrade flow works from both the free plan and the Pro plan.

Audio and podcast input, three-tab form (Text / URL / Audio). Audio tab supports file upload or paste-a-link for direct audio URLs and RSS feeds. MP3, MP4, WAV, M4A, OGG, WebM supported. Max 25 MB. Transcribed via Whisper.

Content History added to the main dashboard column, last 50 sessions grouped by date. Brand voice memory (Pro), save a persistent tone that auto-applies to every generation. Pexels stock photo suggestions shown after generation.

Animated hero mockup on the landing page, before/after panel showing input and LinkedIn output. Mobile navigation, favicon, pricing switched from EUR to USD.

Fixed audio language detection: the language Whisper detects is now passed back into the repurpose call so the output matches the audio's language.

27 March 2026

Account deletion, email automation, and legal pages

Account deletion, users can permanently delete their account from the dashboard sidebar. Cancels the Stripe subscription first, then deletes the Supabase user (cascades all tables).

Resend email integration: welcome email on signup, upgrade confirmation, payment failed warning, cancellation email when a user cancels. The cancellation email fires when cancel_at_period_end flips to true, not when the subscription fully expires.

Onboarding sequence: automated emails at days 3, 7, 10, and 14 after signup via a daily Vercel cron. Weekly digest email every Monday for users who had sessions in the past 7 days.

Privacy Policy and Terms of Service pages. GDPR/AVG compliant, includes registered business name and KvK number.

26 March 2026

Security hardening, analytics, and CRO

SSRF protection, all URL inputs (repurpose + transcribe) now block requests to private IP ranges before fetching. Open redirect in auth callback fixed, redirect params now validated to safe relative paths only. Login and signup errors made generic to prevent account enumeration. Raw error messages from OpenAI are never returned to clients.

Vercel Analytics enabled. Output language selector added, supports 11 languages. When omitted, the model auto-detects from the source content.

CRO improvements to landing page copy and layout.

23 March 2026

Initial launch

ReshareAI went live. Core feature: paste text or a URL, select platforms, get platform-optimised posts back.

Free tier (5 sessions/month, Twitter + LinkedIn + Instagram, GPT-4o-mini) and Pro tier ($12/month, all platforms, GPT-4o). Stripe Checkout and webhooks, Supabase auth with Google OAuth, rate limiting at 10 requests per minute per user.

Auto-language detection from day one, the model detects the source content language and writes output in the same language.

Coming up

More ways to grow, referral tools, deeper platform integrations, and new content for creators comparing their options. Building in public. Start free to follow along.