Loading, in progress

CASE STUDY · AI / ML

AI Content Generator

A writing studio that drafts posts, emails and articles in your own voice, trained on a handful of your past writing samples.

ROLE
Full-stack & prompt design
TIMELINE
8 weeks
TEAM
Solo
PLATFORM
Web app
View code on GitHubLive demo coming soon

01 · OVERVIEW

Project overview

DEVELOPMENT TIME

8 weeks

Prototype to paying beta

TEAM SIZE

Solo

Product, frontend and ML

KEY ACHIEVEMENT

62% faster

Average drafting time saved

THE PROBLEM

Generic AI writers sound like everyone else. Teams spent as long fixing the tone of a draft as they would have spent writing it themselves.

THE APPROACH

Quill learns a voice from five to ten real samples, stores it as embeddings, and steers every draft with that voice plus a brand glossary of words to always and never use.

62%

less time spent on first drafts

4.6 / 5

voice-match score from beta writers

14k

drafts generated in the first month

02 · FEATURES

What it does

01

Voice training

Upload past posts or emails and Quill learns tone, phrasing and rhythm.

02

Multi-format templates

LinkedIn posts, blog outlines, newsletters and subject lines from one brief.

03

Tone and length controls

Dial warmth, formality and length without rewriting the prompt.

04

Inline rewrite

Highlight any sentence to shorten, punch up or soften it in place.

05

Brand glossary

Words to always use, never use, and how to spell product names.

06

Team workspaces

Shared voices, templates and review comments for content teams.

03 · PROCESS

How it was built

  1. WEEK 1

    Discover

    Shadowed three content teams to see where AI drafts broke down.

    • Pain-point map
    • Voice rubric
  2. WEEK 2–3

    Design

    Designed the prompt box, output cards and rewrite flow; tested with writers.

    • Figma prototype
    • Prompt patterns
  3. WEEK 4–7

    Build

    Built the Vue app, FastAPI service, embeddings store and job queue.

    • Web app
    • Voice engine
  4. WEEK 8

    Ship

    Private beta with 40 writers, then usage-based billing.

    • Beta launch
    • Billing live

04 · TECH STACK

Built with

FRONTEND

  • Vue 3
  • Pinia
  • Tailwind CSS

BACKEND

  • Python
  • FastAPI
  • Celery

AI

  • OpenAI API
  • Embeddings
  • pgvector

INFRASTRUCTURE

  • PostgreSQL
  • Redis
  • Docker

ARCHITECTURE

05 · LEARNINGS

Challenges & learnings

Keeping the voice consistent

CHALLENGE

Long drafts drifted back to a generic tone after a few paragraphs.

OUTCOME

Re-injecting the closest voice samples per section kept tone steady end to end.

Slow first drafts

CHALLENGE

Waiting 20+ seconds for a full draft felt broken.

OUTCOME

Streaming tokens to the editor made drafts start appearing in under a second.

Interested in this project?

Happy to walk through the code, the decisions behind it, or how something similar could work for your team.