CMS
CMS is FlippingKoin's built-in headless content management system. Each project gets its own content namespace — create pages with a rich text editor, mark them Published or keep them Draft, and expose the live content to any external website or app through the public read API.
Because the API is project-scoped and read-only, you can safely power a client's blog, documentation site, or marketing page directly from FlippingKoin without building a separate CMS.
Step-by-step
- 1Open CMS for a project
Navigate to any project, then click CMS in the project sidebar. All content pages for that project are listed here. Pages with a green Published badge are live on the API; Draft pages are only visible inside the app.
- 2Create a page
Click New Page. Give it a title and start writing with the TipTap rich text editor — headings, lists, images, tables, code blocks, and embeds are all supported. The page is saved as Draft by default.
- 3Publish a page
When the content is ready to go live, open the page and toggle the status from Draft to Published. Published pages are instantly available on the public API — no deploy or build step needed.
- 4Fetch content via the public API
The read API lives at /api/public/cms. Pass your Project API Key in the X-API-Key header. GET /api/public/cms?projectId=<id> returns all published pages for that project. GET /api/public/cms/<pageId> returns a single page including its full HTML content. The API returns JSON — parse the `content` field and render it in your frontend.
- 5Find your CMS API credentials
Go to Settings → Integrations → CMS API. You'll see your API Key and your Project ID. Rotate the key at any time — the old key is invalidated immediately.
- 6Add page metadata
Open any page and expand the Meta panel in the sidebar. Set a custom SEO title, meta description, keywords, and canonical URL. These fields are included in the API response so your frontend can populate head tags without extra logic.
Tips
Drafts never appear in API responses — use Draft mode to stage content until it's ready for the client to see. The public API is rate-limited per API key. For high-traffic sites, cache responses at the CDN layer using the `updatedAt` timestamp as a cache key. Each project has its own API Key, so you can give a client access to only their project's content without exposing other tenants. You can duplicate a published page to create a draft variant — useful for staging rewrites without taking the live version offline. Images embedded in CMS pages are served from S3 and are publicly accessible once the page is Published.
Admin configuration
Access groups → `pageView` lets members open and read CMS pages; `pageAdd` lets them create new pages; `pageEdit` lets them edit and publish/unpublish existing pages. Settings → Integrations → CMS API → rotate the API Key here. Old keys are invalidated immediately on rotation. Project-level visibility — only users who are members of a project can manage its CMS content inside the app. The public API is open to anyone with the API key, regardless of company membership.