Inspiration
We noticed something happening to our own writing. Every time we used AI to draft something — an essay, a social post, an update — the output was fine, but it didn't sound like us. The contractions disappeared. The sentence rhythm got smoothed out. The filler words we naturally use were scrubbed clean. Everything started sounding like "In today's fast-paced world..."
We looked for tools to help and found two categories: AI detectors (which ask the wrong question — "did AI write this?") and AI humanizers (which just shuffle words to fool detectors). Neither cared about the actual person's voice. So we built Drift to ask the question that actually matters: does this still sound like you?
What it does
Drift is a voice-preservation studio for AI-assisted writing. You paste 3+ samples of your real writing, and Drift builds a measurable fingerprint of your style — sentence rhythm, punctuation habits, contraction rate, filler words, vocabulary range, and more.
Then you paste any draft. Drift scores every sentence against your fingerprint and highlights exactly where your voice drifted. Green = sounds like you. Yellow = slightly off. Red = that's not your voice anymore. Each flagged sentence shows specific reasons — "Too long for your rhythm", "AI-cliche detected", "No contractions — you contract 82% of the time."
You can then click "Restore my voice" to get rewrite suggestions that pull drifted sentences back toward your fingerprint. After restoring, you get a Voice Receipt proving what changed and by how much.
Key features:
- Editor with guided 30-second demo, sentence-level drift analysis, and platform modes (Social, Essay, Newsletter, Blog, etc.)
- Voice Profile with 5 demo profiles, fingerprint cards, voice archetypes (The Puncher, The Thinker, etc.), and a Voice Calibration blind test that proves the fingerprint works
- Compare tab showing side-by-side drafts with trait breakdowns, a hero verdict, and a suggested restoration plan
- Voyage Log tracking drift over time with emotional narrative ("Your last 5 drafts became 18% more generic")
- Voice DNA card with archetype, signatures, "Do Not Flatten" traits, and PNG export
How I built it
- React 19 + TypeScript + Vite for the frontend
- Tailwind CSS with CSS custom properties for light/dark mode theming
- compromise.js for sentence-level NLP parsing
- Custom stylometric engine computing z-score deviations across 6 measurable traits (sentence rhythm, contraction rate, AI cliche density, formality, filler words, punctuation habits)
- Web Worker for non-blocking scoring so typing never stutters
- IndexedDB (via idb-keyval) for local persistence — no backend, no accounts
- Gemini / OpenAI API (optional) for AI-powered rewrite suggestions, with deterministic mock fallback when no key is present
- html-to-image for Voice DNA PNG export
- Docker (nginx) for containerized deployment
The scoring is entirely deterministic and local. AI is used only as an optional co-editor for rewrites — the core analysis never touches an API.
Challenges I ran into
- Making the scoring credible, not decorative. Early versions produced similar scores for clearly different texts. We had to fix contraction detection (possessives like "today's" were being counted as contractions), add stem-based AI cliche matching, and rewrite the scoring to compute at the text level rather than averaging noisy per-sentence z-scores.
- The "does it actually work?" problem. It's easy to show a number. It's hard to prove it means something. Voice Calibration — where Drift holds back one sample and tests whether the fingerprint can recognize it — was our answer. That one feature changed the demo from "trust us" to "here's proof."
- Not looking like every other AI hackathon project. The first version had dark mode with neon accents, uppercase-tracking-wider labels, glassmorphism, and rounded-2xl cards everywhere. It looked like it was generated by AI. We stripped all of that and rebuilt the visual language to feel like a writing tool, not a dashboard.
Accomplishments that I'm proud of
- The scoring actually differentiates between low, medium, and high drift text (tested with controlled samples — scored 20, 53, 88 on the same profile)
- Voice Calibration is a feature we haven't seen in any other writing tool — it proves the fingerprint is real
- The guided demo works in 30 seconds with zero setup — load voice, load draft, analyze, restore
- The Compare tab tells a complete story: verdict, trait breakdown, sentence alignment, and a restoration plan
- Everything works fully offline with no API key. Privacy isn't a feature we added — it's how the app works by default
What I learned
- Stylometric analysis is surprisingly powerful even with simple features. You don't need embeddings or ML to distinguish writing styles — sentence length variance, contraction rate, and punctuation habits alone create a strong signal.
- Judges (and users) need to see why, not just what. A drift score means nothing without the "Why this score?" breakdown showing which traits contributed.
- Good demo UX is a feature, not decoration. The guided demo strip and one-click demo loading changed how people understand the product in the first 30 seconds.
- Making something look "not AI-generated" requires actively removing patterns that AI tools default to — uppercase labels, pill buttons, glassmorphism, gradient cards, vague "AI-powered" language.
What's next for Drift
- Server-side rewrite endpoint — move API calls behind a proper backend so keys aren't in the client
- Batch analysis — paste an entire blog archive and see drift trends over months
- Profile sharing — import/export is started (JSON export works), but needs team profiles and editorial consistency tools
- Radar chart visualization for Voice DNA
- Browser extension — check drift inside Google Docs, Notion, or any textarea
- Fine-tuned models — train a small model specifically for voice-preserving rewrites rather than using generic LLMs
Log in or sign up for Devpost to join the conversation.