To build a scalable, zero-cost, Git-based blogging platform where:
- Members write blogs
- Content is reviewed via PR
- Blogs are published via static site generation
Content Layer (GitHub) โ Validation Layer (GitHub Actions) โ Build Layer (Next.js SSG) โ Hosting Layer (Vercel) โ End Users (Web)
- Stored as Markdown (index.md)
- Contains frontmatter + content
- Stored as JSON
- Referenced via ID
- Stored as JSON
- Fixed taxonomy
- Blog โ Authors (many-to-many)
- Blog โ Category (one-to-one)
- Blog โ Tags (many)
- Blog โ Series (optional)
- Blogs are folder-based
- Assets are colocated with blogs
- Common assets are in /public
- Next.js Static Site Generation (SSG)
- Markdown โ HTML transformation
- Frontmatter parsing
- Dynamic routing using slug
- Write access: internal members (via GitHub)
- Read access: public
Contributor โ PR โ Validation โ Review โ Merge โ Deploy
- Handles 1000+ blogs (file-based system)
- No database dependency
- Easy caching via static hosting
- Reviewer bottleneck
- Content inconsistency
- Repo size growth (images)
- Search (Algolia)
- Comments (Giscus)
- Analytics
- Author dashboards
- CMS (optional)
This system treats content as code and leverages Git as the database.