I built a JSON to PDF Ebook engine because formatting ebooks was driving me insane
Source: Dev.to
Introduction
Hey everyone š
Iām Sam ā a solo builder who spends way too much time writing longāform content: guides, frameworks, SOPs, ebooksā¦
The hard part was turning that content into something clean, structured, and publishable without spending hours in Google Docs, Notion, orāworseāInDesign.
So I built EbookForge.
The Problem
If you write longāform content, you probably know the pain:
- Fighting with margins and spacing
- Random line breaks
- Tables that jump around
- PDFs that look different every time you export
- Manual formatting that kills your flow
- Templates that solve nothing
I always thought, āwhy isnāt there a simple, deterministic way to generate a clean ebook from structured content?ā There wasnāt. So I built one.
The Solution: EbookForge
EbookForge takes a strict JSON schema and turns it into a clean, professional PDF ebook.
What it supports
- Titles / subtitles
- Headings
- Paragraphs
- Lists
- Page layout rules
- Consistent typography
- Automatic spacing
No WYSIWYG. No template hell. Just structure ā output.
Why it works
- Predictable
- Scriptable
- Versionable
- Works with LLMs
- Integrates with any backend
- Developers already understand it
If youāve ever built internal docs, tutorials, online courses, ebooks, or technical PDFs⦠JSON is the perfect middle layer.
Who Might Benefit
- Developers generating PDFs programmatically
- SaaS founders shipping guides or documentation
- Indie hackers building content products
- Writers who want full control over structure
- Anyone automating content workflows
Getting Started
I built EbookForge for myself first, but I realized others might find it useful too.
Itās live here: EbookForge.
You paste a JSON example, hit āGenerateā, and get a clean PDF instantly.
Still early, still improving ā feedback is super welcome.
Call for Feedback
If youāve ever struggled with PDF/ebook generation, Iād love to know:
- What formats do you use?
- What pain points do you hit the most?
- What features would make this 10Ć more useful?
Happy to share code snippets or JSON examples too.
Thanks for reading! š
ā Sam