Introduction
Inkform is a content platform for changelogs, blogs, and documentation. You write in a web editor; the content is committed as MDX to your own GitHub repository; your site reads it back — either by rendering the files directly with the open-source framework, or by fetching them over the HTTP API.
The one idea worth knowing
GitHub is the database. Published content lives as MDX files in a repo you own. Inkform's database holds the things a repo can't: workspaces, projects, subscribers, analytics, and API keys.
That has two consequences worth planning around:
- Your content survives Inkform. Cancel your account and the MDX is still sitting in your repo, renderable by the framework with no platform account at all.
- Writes go through a commit. A post created via the dashboard or the API becomes a real commit in your repo, which is why write endpoints need a connected repository.
The pieces
| Piece | What it is |
|---|---|
| Workspace | Billing and membership boundary. Owns projects, subscribers, API usage. |
| Project | One content source — a blog, a docs site, or a changelog — bound to one repo path. Everything is scoped to a project ID. |
| Framework | @inkform/framework, the open-source Next.js + MDX renderer. Usable standalone, with or without an account. |
| Platform API | /api/v1/* on api.inkform.dev — read published content, manage subscribers, create posts. |
| Newsletter | Double opt-in subscribers, campaign sends, open/click tracking, one-click unsubscribe. |
Where things live
The platform is one deployment split across subdomains by host:
| Host | Serves |
|---|---|
app.inkform.dev | Dashboard, editor, sign-in |
api.inkform.dev | /api/v1/*, newsletter subscribe/confirm/unsubscribe, tracking |
www.inkform.dev | Marketing pages, public blog and changelog |
docs.inkform.dev | This site |
Point API calls at api.inkform.dev. The apex and www. serve public content
only: https://inkform.dev/api/v1/... gets a 308 to www.inkform.dev, which in turn
307s to app.inkform.dev — a redirect chain that carries no CORS headers, so a
browser call dies on it and a server call ends up somewhere that won't answer.
Where to go next
- Quickstart — connect a project and read your first content over the API.
- Core concepts — projects, scoping, and how content is resolved.
- API overview — the full HTTP surface.
- Newsletter overview — how subscribers, sends, and tracking work.