Node.js version of WordPress focused on a lightweight, server-rendered blog with SQLite storage and modular components.
This project re-implements core WordPress-like concepts in Node.js:
wp_*database tables in SQLite (db/schema.sql)- Blog post listing on the home page (
/) - Blog post detail pages by slug (
/blog/:blurb) - Component-based server-side HTML rendering
- Simple routing and auth/session utilities
- Node.js (ESM modules)
- Built-in
node:sqlitedriver (DatabaseSync) - Vanilla server-side rendering (no frontend framework required)
- Bootstrap for UI styling
server.js- HTTP server entrypointroutes.js- route definitionscomponents/- page and shared UI renderersmodels/- SQLite-backed data access layerdb/schema.sql- WordPress-style SQLite schemadb/data.sqlite- local SQLite databasepublic/- static assetsutils/- router, response, auth, string, image helpers
- Node.js 22+ (recommended: latest LTS)
No external dependencies are required for the core app in its current form.
npm run devor
npm startDefault server port:
8080(orPORTenv override)
Schema is defined in:
db/schema.sql
WordPress-like tables include:
wp_posts,wp_users,wp_comments,wp_terms, and relatedmeta/taxonomy tables
Model initialization auto-applies schema when the app loads database models.
GET /- home page with published blog postsGET /home- alias for home pageGET /blog/:blurb- blog post detail page by slugGET /about- about page
- Project is configured as ESM (
"type": "module"). - Some Node SQLite APIs may show experimental warnings depending on Node version.
- This project is a Node.js interpretation of WordPress concepts, not a PHP WordPress runtime.