a7ba7c81a16cfecd7895bdc7c65ef4def20c62da
Check for content entries, not just file existence. If data.db exists but has no content, still run seed to populate. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
EmDash Blog Template
A clean, minimal blog built with EmDash. Runs on any Node.js server with SQLite and local file storage.
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 | ![]() |
![]() |
| Dark | ![]() |
![]() |
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.
See Also
Description
Languages
Astro
86.6%
TypeScript
5.6%
CSS
3.1%
Dockerfile
2.8%
JavaScript
1%
Other
0.9%



