What Is Tobesee? A CMS That Runs Without a Database
August 11, 2024
An in-depth look at how Tobesee uses GitHub repositories instead of databases to power dynamic websites — covering architecture, use cases, cost savings, and trade-offs
What Is Tobesee? A CMS That Runs Without a Database
Most content management systems need a database. WordPress needs MySQL. Ghost needs MySQL or SQLite. Strapi needs PostgreSQL or MongoDB. Tobesee needs none of them. It stores everything — articles, resources, metadata — as plain files in a GitHub repository and uses the GitHub API to read and write them.
This is not a static site generator. Tobesee renders pages dynamically with Next.js, supports an admin panel for content editing, and syncs changes in real time. The difference is where the data lives: in Git commits instead of database rows.
How It Works
The architecture has three layers:
- Content layer — Markdown files and JSON indexes stored in a GitHub repository
- Application layer — A Next.js application that fetches content through the GitHub API and renders it as HTML
- Hosting layer — Vercel (or any platform that supports Next.js) serves the application globally
When a visitor requests a page, Next.js calls the GitHub API to fetch the relevant Markdown file, parses it with gray-matter and remark, and renders the result as a fully styled HTML page. The response is cached and served from the edge for subsequent requests.
When an admin creates or edits content through the dashboard, the application writes the changes back to GitHub through the API. Each save creates a Git commit, giving you a complete history of every change.
The Case Against Traditional Databases for Content Sites
Databases are powerful tools, but for many content-driven websites they introduce complexity that is not justified by the requirements:
You Pay for Infrastructure You Barely Use
A blog or documentation site typically has a handful of authors making a few edits per week. Running a database server 24/7 to handle this workload is like renting a warehouse to store a bookshelf. GitHub API handles these low-frequency operations without any dedicated infrastructure.
Backups Become Your Responsibility
Database backups require configuration, scheduling, storage, and periodic testing. With Tobesee, your content is already in a Git repository — the most battle-tested version control system in software. Every clone is a full backup. Every fork is a disaster recovery plan.
Migrations Are Painful
Moving a WordPress site to a new host means exporting the database, importing it on the new server, updating connection strings, and praying nothing breaks. Moving a Tobesee site means pushing a Git repository to a new Vercel project. The content comes along automatically because it is part of the repository.
Security Surface Grows
Every database connection is a potential entry point for attackers. SQL injection remains one of the most common web vulnerabilities. Tobesee eliminates this entire category of risk because there is no SQL to inject into.
What Tobesee Is Good At
Developer Documentation and Knowledge Bases
Technical teams already use GitHub daily. Tobesee lets them publish documentation using the same tools and workflows they use for code — Markdown files, pull requests, code reviews, and branch-based workflows.
Personal and Professional Blogs
Writers who want a clean, fast blog without the overhead of WordPress find Tobesee appealing. The admin panel provides a simple interface for creating and editing posts, while the Markdown format keeps content portable and future-proof.
Curated Resource Collections
If your site is primarily a collection of links, tools, or references, Tobesee resource management system handles this natively. Add, edit, and organize resources through the admin panel, and everything stays version-controlled.
Small Business Websites
A company that needs a blog, a resource page, and a few static pages does not need a database server. Tobesee provides all of this with zero hosting costs on Vercel free tier.
What Tobesee Is Not Designed For
Being honest about limitations is important:
- High-frequency user-generated content — If you need thousands of users submitting content simultaneously, a database is the right tool
- Complex data relationships — If your content model requires joins, foreign keys, or transactions, you need a relational database
- Real-time features — Chat, live feeds, and collaborative editing require specialized backends
- E-commerce — Shopping carts, inventory management, and payment processing need dedicated platforms
Tobesee is purpose-built for content publishing. It does that job well and does not try to be everything.
The Technology Stack
| Component | Technology | Role | |-----------|-----------|------| | Framework | Next.js 14 (App Router) | Server-side rendering, routing, API routes | | Styling | Tailwind CSS + Shadcn/UI | Responsive design, component library | | Content Storage | GitHub API (@octokit/rest) | Read/write content from GitHub repositories | | Markdown Processing | gray-matter + remark | Parse frontmatter and convert Markdown to HTML | | Authentication | JWT (jose library) | Secure admin panel access | | Hosting | Vercel | Global CDN, automatic deployments, SSL |
Each technology was chosen for a specific reason. Next.js provides server-side rendering for SEO and performance. Tailwind CSS enables rapid styling without writing custom CSS. The GitHub API replaces the database layer entirely. JWT provides stateless authentication that works well with serverless deployments.
Cost Comparison
Running a content website for one year:
| Expense | WordPress (Managed) | Tobesee | |---------|---------------------|---------| | Hosting | $180 - $600 | $0 (Vercel free tier) | | Database | Included or $60 - $120 | $0 (GitHub free) | | SSL Certificate | $0 - $100 | $0 (Vercel auto-SSL) | | Backups | $60 - $120 | $0 (Git is the backup) | | Security Plugins | $50 - $100 | $0 (no plugins needed) | | Domain | $10 - $15 | $10 - $15 | | Total | $300 - $1,055 | $10 - $15 |
The savings are most significant for individuals and small teams who do not need enterprise features.
How Content Is Organized
Tobesee uses a simple file structure:
data/
├── json/
│ ├── articles.json # Index of all articles (title, date, path)
│ └── resources.json # Index of all resources (name, URL, description)
└── md/
├── my-first-post.md # Article content in Markdown
├── getting-started.md # Another article
└── ...
JSON files act as lightweight indexes for listing pages. Markdown files contain the full article content with YAML frontmatter for metadata (title, description, date). This separation keeps listing queries fast while allowing rich content in individual articles.
Getting Started
If this sounds like a good fit for your project:
- Read the deployment guide for step-by-step setup instructions
- Configure your environment variables for GitHub integration
- Learn how to manage articles through the admin panel
- Start curating resources for your visitors
The entire setup process is straightforward, and the Tobesee community on GitHub is available to help if you get stuck.
The Philosophy Behind Tobesee
Tobesee is built on a simple belief: most content websites are over-engineered. They use databases when files would suffice. They install dozens of plugins when a few well-chosen libraries would do. They pay for hosting when free tiers are more than adequate.
By removing the database and leveraging GitHub infrastructure that developers already use and trust, Tobesee reduces complexity without sacrificing capability. The result is a CMS that is easier to set up, cheaper to run, simpler to maintain, and more transparent in how it stores your content.
Your content is your data. With Tobesee, that data lives in a Git repository you own and control — not in a proprietary database format on someone else server.