Kern CMS: Open-source Self-Hosted Headless CMS with AI Schema Generation

javascript dev.to

👋 Introduction

If you've ever wanted a self-hosted, Git-based CMS that just works — without the complexity of traditional systems — meet Kern CMS.

Kern is an open-source headless CMS built for developers who want full control over their content infrastructure without vendor lock-in, pricing tiers, or complicated setups.

🔗 GitHub: https://github.com/fiioonnn/kerncms

🌐 Website: https://kerncms.com


🚀 What Makes Kern Different?

1. AI Schema Generation

Stop writing TypeScript types manually. Kern watches your content and automatically generates schemas as you write. Types follow automatically — no configuration needed.

2. Smart Scan

One of the most powerful features: Smart Scan finds hardcoded strings in your codebase, generates content files from them, and rewrites your code to use the CMS data. Migrating an existing project to Kern is almost fully automated.

3. Multi-Tenant / Multi-Project

Run one Kern instance and manage unlimited projects from a single dashboard. Perfect for agencies, freelancers, or anyone managing multiple sites.

4. Beautiful Media Editor

Built-in media management with crop, compress, filter, and transform capabilities. No need for external image editing tools.

5. Git-Based Storage

Content lives in your Git repository. No external database required for content (uses SQLite + Drizzle ORM for metadata). Full version history out of the box.

6. Framework Agnostic

Works seamlessly with: Astro, Next.js, Nuxt, SvelteKit and more.


🛠 Tech Stack

  • Frontend/Backend: Next.js (App Router)
  • Database: SQLite + Drizzle ORM
  • Auth: Better Auth
  • GitHub Integration: GitHub App
  • Deployment: Docker support included
  • License: AGPL-3.0 (completely free, no pricing tiers)

📦 Getting Started

Option 1: Docker (Recommended)

docker pull ghcr.io/fiioonnn/kerncms:latest

docker run -d \
  -p 3000:3000 \
  -e DATABASE_URL=/data/kern.db \
  -v kern-data:/data \
  ghcr.io/fiioonnn/kerncms:latest
Enter fullscreen mode Exit fullscreen mode

Then open http://localhost:3000 and follow the setup wizard.

Option 2: Clone & Run

git clone https://github.com/fiioonnn/kerncms.git
cd kerncms
npm install
npm run dev
Enter fullscreen mode Exit fullscreen mode

💡 Use Cases

  • Developer blogs: Manage content with a beautiful UI while keeping everything in Git
  • Marketing sites: Let non-technical team members edit content without touching code
  • Multi-site management: One Kern instance, multiple client projects
  • Content migration: Use Smart Scan to convert hardcoded strings to CMS-managed content automatically

🔮 Why Self-Hosted Matters

With Contentful charging $300+/month, Sanity having usage limits, and most CMSs being proprietary SaaS, self-hosting is making a comeback. Kern gives you:

  • Zero subscription costs
  • Your data, your servers
  • No usage limits
  • Full customization

🌟 Conclusion

Kern CMS is a breath of fresh air in the headless CMS space. If you're tired of paying for features that should be free, dealing with vendor lock-in, or manually writing TypeScript types for your content — give Kern a try.

⭐ Star the repo on GitHub: https://github.com/fiioonnn/kerncms

What do you think? Are you using a self-hosted CMS? Let me know in the comments!

Source: dev.to

arrow_back Back to Tutorials