Study tooling
CramForge
A local-first Next.js starter that imports owned books, exposes chapter content, and creates Markdown study packs without bundling private books or locking users to one model provider.

The problem
I wanted a reusable study workspace for books I own without checking copyrighted source material into a public repository or requiring one AI provider.
What I built
- Built an EPUB import workflow that creates a local catalog and chapter reader.
- Generated a predictable Markdown study-pack structure for summaries, flashcards, quizzes, cram notes, and agent instructions.
- Kept the starter empty so other people can add only material they have the right to use.
Key decisions
- Treat Markdown as the handoff format between the reader, the user, and whichever coding agent or model they choose.
- Store imported source material locally instead of shipping books with the repository.
- Separate import scripts, reader routes, book assets, and generated study materials so each part can be replaced independently.
How I check the work
- Run the production build and lint checks.
- Import a DRM-free EPUB and confirm its manifest, chapters, assets, and study-pack files are created.
- Open the imported book in the chapter reader and confirm the generated Markdown can be used outside the app.