Kunthawat Greethong be63c72048 fix: convert homepage text fields to richtext for live editing
Change field types from "text" to "richtext" and wrap content in PortableText
components. This enables proper inline live editing instead of jumping to backend.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-30 13:40:49 +07:00
2026-04-29 12:41:59 +07:00
2026-04-29 12:41:59 +07:00
2026-04-29 12:41:59 +07:00

EmDash Blog Template

A clean, minimal blog built with EmDash. Runs on any Node.js server with SQLite and local file storage.

Blog template homepage

What's Included

  • Featured post hero on the homepage
  • Post archive with reading time estimates
  • Category and tag archives
  • Full-text search
  • RSS feed
  • SEO metadata and JSON-LD
  • Dark/light mode
  • Audit log plugin

Pages

Page Route
Homepage /
All posts /posts
Single post /posts/:slug
Category archive /category/:slug
Tag archive /tag/:slug
Search /search
Static pages /pages/:slug
404 fallback

Screenshots

Desktop Mobile
Light homepage light desktop homepage light mobile
Dark homepage dark desktop homepage dark mobile

Infrastructure

  • Runtime: Node.js
  • Database: SQLite (local file)
  • Storage: Local filesystem
  • Framework: Astro with @astrojs/node

Getting Started

pnpm install
pnpm bootstrap
pnpm dev

Open http://localhost:4321 for the site and http://localhost:4321/_emdash/admin for the CMS.

Want Cloudflare Instead?

See the Cloudflare variant for a version that deploys to Cloudflare Workers with D1 and R2.

Deploy to Cloudflare

See Also

Description
No description provided
Readme 672 KiB
Languages
Astro 86.6%
TypeScript 5.6%
CSS 3.1%
Dockerfile 2.8%
JavaScript 1%
Other 0.9%