AI News Hub Logo

AI News Hub

How I shipped the rewriter side of an AI tell detector in 30 minutes (Claude + Next.js + Vercel)

DEV Community
Perufitlife

Yesterday I shipped a free detector for the 12 most reliable AI writing fingerprints. The story behind it: my reddit account got 2 public "all comments are AI generated" callouts in one day. Mods removed 3 posts. I was running everything through Claude. The em-dashes and "delve" gave me away in seconds. Detector traction was fine. 100+ scans day one, sat at 12 page views from a Dev.to post overnight. But every single piece of feedback I got was the same: "ok cool, now how do I fix it without rewriting by hand every time?" So I shipped the rewriter today. → https://aitells.vercel.app/rewrite You paste two things: Your AI-generated text (the thing you would post) 1-3 writing samples of how you actually write (old reddit comments, tweets, emails) The endpoint sends both to Claude with a strict system prompt that hard-bans em-dashes, "delve", "tapestry", "navigate the X", "in conclusion", "however,", parallel bullet structure, uniform sentence length, and 9 other patterns from the detector ruleset. The samples are critical. Without them you get generic "casual reddit voice" output which is fine but not yours. With them, you get sentence rhythm matched to how you actually type. Lowercase if you lowercase. Typos and fragments allowed if your samples have them. Slang preserved. Most of those just re-prompt GPT to "write more naturally". You end up with slightly different AI text. Same em-dashes, same "delve", same parallel bullets. They fail Reddit moderation the same way the original did. This one is built on top of the detector. The system prompt enumerates the exact patterns the detector flags. Output that still trips the detector defeats the purpose, so the constraints are explicit. Next.js 14 App Router, edge route for the detector, nodejs runtime for the rewriter (Anthropic API was blocking edge IPs) Claude Sonnet 4.6 via the messages API No database. localStorage tracks the free-tier counter. Email gets pushed to Resend for the list. Stripe Payment Link for the $19 lifetime tier. No webhooks yet, manual fulfillment until volume justifies. The whole thing is 3 files, deployed on Vercel hobby tier. No Stripe-gated unlimited path yet. After purchase I send the customer a permanent email token by hand. Will automate it once I see 5 sales. Detector and rewriter are decoupled. I want a single workflow: scan, see flags, click "rewrite this", get the output rescored. Shipping that this week. The detector rule set is closed for now. Will open-source once it stabilizes past v0.5. If you ship AI-generated reddit comments, cold emails, tweets, or LinkedIn posts and your engagement is mysteriously bad, paste your last 3 outputs into the detector. The score is real and the highlighted patterns are reproducible. If they all score below 60, you need the rewriter. aitells.vercel.app/rewrite Free first rewrite. $19 lifetime if you want it forever. First 100 buyers only, then it goes to $49/mo. Built by @Perufitlife. Also shipped a Supabase security auditor recently after finding 14 critical leaks in my own CRM. Same pattern: build the thing you wish existed when you got bitten.