Docs — preview edition
Setup, content model, templating language, MCP connections, public forms, and the JSON API — documented as we build.
Birkly is a content management system (CMS) that stores your content as files (JSON) instead of a database. You manage everything in a web admin panel at /admin, and your website or app displays content via a small client script or the Public API. It suits small teams, static or dynamic sites, and anyone who wants simple backups, no database setup for content, and the option to use version control (e.g. Git) for content files. Birkly supports collections (content types), entries (individual items), a media library, templating, automation, and optional plugins.
Birkly is software that lets you create and edit your website’s content (pages, blog posts, product listings, events, team members, and more) without writing code. You log in to a web page called the admin panel, fill in forms, upload images, and click Save. Your actual website then shows that content automatically.
How it’s different from editing a “normal” website
Where is my content stored?
Birkly saves your content as simple files in a format called JSON (a standard, readable text format). These files sit in a content folder on the server. That means:
Example: A “Blog posts” collection might have a folder like content/collections/blog/entries/. Each post is one JSON file (e.g. my-first-post.json) containing the title, content, date, and other fields you defined.
How does my website show the content?
Two main options:
So: you edit in Birkly; visitors see the result on your site. The admin is never public—only people with an account can log in.
Who is it for?
Real-world example
Imagine a small agency that runs several client websites. They install Birkly once per client (or use one Birkly with different projects). For each site they create collections such as “Services,” “Team,” “Blog,” and “Testimonials.” The client (or the agency) logs in, adds or edits entries, and publishes. The live site pulls the content from Birkly, so the client never has to wait for a developer to “put the new blog post online.”
Birkly is a file-based CMS: content is stored as JSON in a content directory; an optional database (e.g. SQLite) can be used for users, sessions, and plugins. Admin UI at /admin; delivery via client library (birkly-client.js, templating in HTML) or Public API (REST, read and optionally submit).
Content model
handle (e.g. blog, products), fields (name, type, required, options), entry method (admin-only vs public API). Stored as collection config (e.g. collection.json + schema.json).slug, status, optional id, timestamps). Stored as one JSON file per entry under content/collections//entries/., , , . Client fetches from API and renders; or server-side rendering if the stack supports it.Example: collection handle and API
blog.GET /api/public/collections/blog/entries?limit=10&sort=date:desc.GET /api/public/collections/blog/entries/my-post-slug.File-based benefits
Integration options
<script src="https://your-cms.example.com/birkly-client.js" data-cms-url="https://your-cms.example.com"></script>. Use templating in the same HTML.