Build with
Blog-Doc

A local Markdown CMS and static site generator built on Node.js. Write and manage content through the admin GUI, build a complete static site — and deploy it anywhere.

Support Callout: If you find Blog-Doc useful, please consider giving it a star. It would mean a lot and genuinely helps. Thank you for supporting the work of a solo developer whose goal is to make website creation easier and more accessible for everyone.

Stack

Layer Base path Purpose
Admin GUI /admin/* Browser-based content management interface
Admin API /admin/api/* JSON REST API consumed by the GUI
Live theme /* Serves the active theme dynamically on every request

All three layers run on a single Node.js server using LiteNode and its built-in STE template engine. No authentication — Blog-Doc is designed for local use only.

Package Version Purpose
litenode ^4.7.0 HTTP server, routing, STE templating
marked ^18.0.0 Markdown → HTML rendering
adm-zip ^0.5.16 Theme install and export as ZIP

No bundler. No build tooling. The admin UI is vanilla ES modules loaded directly by the browser.

Requirement Minimum
Node.js 18 or later
npm Any version bundled with Node 18+
Browser Any modern browser for the admin GUI

What's included

No database

Plain Markdown files with YAML frontmatter. Plain JSON config. Everything on your filesystem.

Markdown editor

EasyMDE with live preview, self-hosted — no external dependencies.

Pages & posts

Separate content types. Nested page hierarchy up to 3 levels deep.

Menu editor

Define nested navigation menus for any location your theme declares.

Theme system

Install themes from ZIP or the marketplace. Swap the active theme at any time.

Live preview

The active theme renders your content on every request. No build step needed during development.

Static site build

Clean URLs, sitemap.xml, RSS, robots.txt, and a custom 404 page — all generated.

Taxonomy routes

Auto-generated category and tag pages driven by post frontmatter.

Search index

Auto-generated search.json served at /data/search.json in both dev and build.

REST API for everything

Every action is a JSON endpoint. The admin GUI is just a client of that API.

Quick start

    Choose one of the following methods — 1a, 1b or 1c — to get Blog-Doc:

  1. Using npx

    npx create-blog-doc my-blog
    
  2. Using npm init

    npm init blog-doc my-blog
    
  3. Using clone and install

    git clone https://github.com/lebcit/blog-doc.git
    cd blog-doc
    npm install
  4. Start the server

    npm start
    # or for development with auto-restart:
    npm run dev
  5. Open your browser

    Admin interface at http://localhost:3000/admin
    Live site preview at http://localhost:3000

  6. Build & deploy

    Hit Build Site on the Dashboard. Download the _site/ ZIP and drop it on any static host or a plain VPS.

Explore the docs