trahoangdev
All projects
Role
Owner
Team
Solo
Reading time
3 min read

DevOrbit - Blog Platform

An open-source blog platform for developers: Markdown articles with syntax highlighting, SEO optimization, dark mode, GitHub-powered comments and a reading experience built around typography.

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS
  • Markdown
  • Giscus
  • Vitest
  • Vercel
DevOrbit - Blog Platform preview

Overview

DevOrbit is the place where I wrote down what I learn: programming notes, project write-ups and the story of becoming a fullstack developer. It is both a blog engine and a small personal site — articles, an About page with animated tech-stack icons, and a certificates section — released as open source so others can fork it.

Goals

  • Writing should be frictionless. A post is one Markdown file with front matter; publishing is a commit.
  • Reading should be the product. Minimal chrome, strong typography, responsive layouts, dark mode.
  • It should be cheap to run and easy to trust. Static output on Vercel, no database, quality gates in CI.

How it works

Posts live in a _posts/ folder as Markdown with YAML front matter (title, excerpt, cover image, date, author, OG image). Small helpers in src/lib read the files and convert Markdown to HTML with remark/rehype plugins, including syntax highlighting for code. Next.js App Router pages render the list and each article at build time.

Content to page
  1. Content
    • _posts/*.mdYAML front matter + Markdown
  2. Build
    • lib helpersParse front matter · Markdown → HTML (remark / rehype)
    • TypeScript interfacesPost and author shapes
  3. App
    • Next.js App Routerposts · about · certificates
  4. Delivery
    • VercelStatic pages · PWA
    • GiscusComments via GitHub Discussions
    • Readers
  • Data store
  • Compute / service
  • External API
  • Client

There is deliberately no CMS and no database: the repository is the content store, which also means every post has a history, a diff and a rollback for free.

Features

  • Markdown blog with syntax-highlighted code and per-post SEO metadata.
  • Comments through Giscus, backed by GitHub Discussions, so readers use an identity they already have and there is nothing to host or moderate separately.
  • About page with animated tech-stack icons, a certificates section, project info modals and a scroll-to-top button.
  • Dark mode, social sharing and PWA support.

Engineering quality

Even for a personal blog I wanted the project to be a good template for others:

  • Prettier for consistent formatting.
  • Husky and lint-staged to run checks before each commit.
  • Vitest and React Testing Library for unit and component tests.
  • GitHub Actions for CI/CD on every push.
  • TypeScript interfaces for post and author shapes, so a malformed front matter field is a compile-time or build-time error, not a broken page.

Lessons that fed the next project

DevOrbit proved that a file-based blog is enough, and it also exposed its limits: richer layouts and navigation wanted a more structured architecture. Those lessons shaped the blog in my personal portfolio, which keeps the same file-based content model but adds a feature-based code structure, RSS, structured data and stricter tests.