Guided writing companion that interviews the user, preserves source material, and produces a provenance trace so the final artifact can be traced back to the user's own words.
Mean It is a Next.js app for human-centered writing workflows. Instead of jumping straight to generation, it guides the user through choosing a moment, picking a guide style, interviewing for detail, assembling a spine, rendering the final piece, and sharing a trace of how each line was grounded.
- At A Glance
- Screenshot Gallery
- Writing Workflow
- Architecture
- Feature Map
- Tech Stack
- Repository Map
- Run Locally
- Verification
- Configuration
- Status
- License
| Area | Details |
|---|---|
| Product | Guided writing and provenance workspace |
| Users | People turning a personal moment into a grounded written artifact |
| Core value | Interview first, draft later, and keep a shareable trace of source-to-output grounding |
| Frontend | Next.js, React, Tailwind |
| Core modules | guide loader, interview middleware, spine validation, provenance matching, share encoding |
| Tests | Vitest suite |
| Design docs | DESIGN.md, docs/techstack.md, wireframes and high-fidelity design files |
flowchart LR
A["User chooses a moment"] --> B["Guide style is selected"]
B --> C["Interview collects concrete details"]
C --> D["Spine validator checks structure"]
D --> E["Drafting screen assembles artifact"]
E --> F["Provenance matcher links lines to source material"]
F --> G["Share trace or download"]
flowchart TD
UI["Next.js app screens"] --> STORE["Local session store"]
UI --> GUIDES["Guide loader"]
UI --> INTERVIEW["Interview engine"]
INTERVIEW --> PROMPTS["Prompt templates"]
INTERVIEW --> AUDIT["Audit middleware"]
AUDIT --> PROV["Provenance matcher"]
UI --> MEDIA["Photo, audio, and video helpers"]
UI --> SHARE["Share encode/decode"]
SHARE --> TRACE["Traceable output"]
UI --> MODALS["Save, download, share trace, start over"]
| Feature | Evidence in repo |
|---|---|
| App shell | components/App.tsx, components/Chrome.tsx |
| Moment picker | components/screens/PickMoment.tsx |
| Guide selection | components/screens/GuidePicker.tsx, lib/guides/ |
| Interview flow | components/screens/Interview.tsx, lib/interview/ |
| Spine validation | components/screens/Spine.tsx, lib/spine/validate.ts |
| Render/download | components/screens/Render.tsx, components/modals/Download.tsx |
| Provenance | lib/provenance/match.ts, components/modals/ShareTrace.tsx |
| Media helpers | lib/audio/, lib/video/, lib/images/ |
| Layer | Technology |
|---|---|
| App | Next.js, React, TypeScript |
| Styling | Tailwind CSS |
| Testing | Vitest |
| State | Local store modules |
| Media | Audio transcription/TTS helpers, video curation helpers |
| Docs | Wireframes, design docs, tech stack notes |
components/ Screens, modals, mascots, app chrome
lib/ Interview, provenance, media, guides, sharing, env
prompts/ System and guide prompt templates
docs/ Design docs, wireframes, screenshots
cp .env.example .env.local
npm install
npm run devOpen http://localhost:3000.
Local results from the screenshot/docs pass:
| Command | Result |
|---|---|
npm run typecheck |
Passed |
npm test |
Passed, 254 tests |
Keep provider keys in .env.local, which is gitignored.
ANTHROPIC_API_KEY=
OPENAI_API_KEY=The project has a strong product thesis, real screenshots, passing tests, and good design docs. The next step is a short demo video or animated walkthrough showing the full interview-to-trace workflow.
MIT. See LICENSE.






