Inspiration

Content theft is everywhere — ghostwriters lose clients who paraphrase their work, researchers see their papers republished under someone else's name, and freelancers have no way to prove they delivered first. The worst part? Existing tools like Turnitin or Copyscape force you to submit your original writing to prove ownership, destroying any expectation of privacy.

We asked: what if you could prove authorship without ever showing anyone your original document? That question became GhostWrite.

What it does

GhostWrite is a privacy-first proof-of-creation platform powered by AI and the Midnight blockchain.

Create — Describe your project, add your notes or draft, and let AI structure it. Or write it yourself and skip the AI.

Seal — Hit "Secure on Midnight." GhostWrite computes a cryptographic hash of your document and stores a receipt on the Midnight Preprod blockchain. Your content stays private — only the hash is public.

Prove — If someone copies or paraphrases your work, paste their text into Check Authorship. GhostWrite's AI extracts semantic fingerprints (topics, style, tone, entities) from both texts and computes a similarity score — without ever accessing your original document.

Verify — Anyone can paste your receipt hash to confirm it exists on the blockchain, when it was sealed, and that it's authentic.

Your content stays private. Only the proof is public.

How we built it

  • Frontend: Next.js 15 App Router + TypeScript + Tailwind CSS with a custom light-cream design system
  • AI Engine: Groq's llama-3.3-70b-versatile for document generation and semantic fingerprint extraction (topics, entities, tone, vocabulary richness, sentence cadence)
  • Blockchain: Midnight Preprod Network for cryptographic hash receipts and transaction IDs
  • Database: Supabase PostgreSQL with Row Level Security — documents and fingerprints are user-scoped
  • Authorship Algorithm: Weighted similarity scoring — Topics (50%) · Style (20%) · Tone (15%) · Entities (15%)
  • Auth: Supabase OAuth with email/password and magic link support
  • Deployment: Vercel

We split the build into 9 chunks: foundation, UI components, auth & layout, document creation wizard (3-step flow), Midnight integration, AI fingerprinting engine, authorship checker, dashboard/archive, and polish.

Challenges we ran into

  • Pivot mid-hackathon: We started as a cover letter generator, then realized the real problem was proof-of-creation. We rebuilt the entire product narrative and UI in under 24 hours.
  • Midnight integration: None of us had used Midnight before. We followed the Bulletin Board tutorial to learn contract interaction, then adapted the postMessage() pattern to store document hashes.
  • Auth loading & RLS bugs: Supabase auth had race conditions on page load, and Row Level Security policies blocked legitimate inserts until we debugged the user_id references.
  • Dashboard spinner hell: The archive page had an infinite loading state we chased for 2 hours — turned out to be a missing is_secured filter in the Supabase query.
  • AI fingerprinting complexity: Getting Groq to return consistent, parseable JSON fingerprints took multiple prompt iterations. We had to balance detail with token limits.
  • Time crunch: 3 first-time hackers, 48 hours, one all-nighter. We cut features (PDF export is basic, no mainnet) to ship a working demo.

Accomplishments that we're proud of

  • Built a full-stack app with blockchain integration in 48 hours — our first hackathon, mostly AI-assisted coding
  • Privacy-preserving authorship check actually works — you can paste paraphrased text and get a forensic AI analysis without the original ever leaving Supabase
  • Midnight receipts are real — every sealed document gets a transaction ID on the Preprod network
  • 3-step creation wizard — Context → Draft & Notes → Finalise. Clean, intuitive, and built from scratch
  • Survived a pivot — we threw away our original idea and rebuilt around a stronger problem. That hurt, but the product is 10x better for it

What we learned

  • Midnight blockchain basics — how to store hashes, read transaction IDs, and use preprod/testnet for hackathon demos
  • Prompt engineering for structured output — forcing LLMs to return JSON fingerprints with consistent schema
  • Supabase RLS is powerful but tricky — one wrong policy and your app breaks silently
  • Pivot fast, ship faster — our best decision was killing the cover letter angle and going all-in on proof-of-creation
  • AI-assisted coding is a multiplier — we used Claude Opus in AntiGravity IDE to write directly to project folders, which saved hours of copy-paste

What's next for GhostWrite

  • Real Midnight mainnet integration — move from Preprod to production Midnight network
  • Advanced ML pipeline — custom embedding models and stylometry analysis for even more accurate authorship detection
  • Browser extension — one-click "Seal this draft" for Google Docs, Notion, and VS Code
  • Legal integrations — generate timestamped affidavits from blockchain receipts for DMCA takedowns and copyright disputes
  • Multi-language fingerprinting — extend the AI engine to detect authorship across languages

Built With

Share this project:

Updates