Scribingous is a super lightweight, highly opinionated site template for blogs and small static sites. Fork it, add your content, and ship.
It’s built with Mithril and Construct UI: no framework lock-in, no build-time JSX. Posts and the About page are Markdown; code blocks get syntax highlighting. One stack, one way.
Features: client-side routing, dark/light theme (system preference + toggle), markdown-rendered posts and About, highlight.js for code, static build with esbuild.
Requires: Bun (v1.0.0+).
# Clone or fork this repo, then:
cd <repo-name>
bun install
bun run devOpen http://localhost:8091. To build for production:
bun run buildTo run the built site locally:
bun run previewThen open http://localhost:8091. For deployment, serve the public/ folder with any static host (e.g. GitHub Pages, Netlify, Cloudflare Pages).
| Path | Purpose |
|---|---|
src/data/posts/ |
One file per post; each exports { slug, title, date, excerpt, body }. |
src/data/posts-index.js |
Imports all post modules, sorts by date (newest first), exports posts and getPostBySlug(slug). |
src/data/about.js |
Markdown string for the About page. |
src/pages/ |
Home, Post, About views. |
public/ |
Static assets; index.html, CSS, and built app.js after bun run build. |
- Create a file in
src/data/posts/, e.g.my-post.js:
export default {
slug: 'my-post',
title: 'My post',
date: '2026-02-01',
excerpt: 'A short summary.',
body: `
Your post content in **Markdown**. Code blocks get syntax highlighting.
\`\`\`js
console.log('Hello');
\`\`\`
`.trim(),
};- In
src/data/posts-index.js, add the import and include it in thepostListarray:
import welcome from './posts/welcome.js';
import myPost from './posts/my-post.js';
const postList = [welcome, myPost];Posts are automatically sorted by date (newest first) on the home page.
Edit the markdown string in src/data/about.js. Same markdown and code-highlighting pipeline as posts.
- Site name and nav:
src/Layout.js(brand text “Scribingous”, nav links). - Document title:
<title>inpublic/index.html. - Theme: CSS variables in
public/theme.css(derived from Apple Human Interface Guidelines); dark/light toggle in the header. - Syntax highlighting:
public/hljs-theme.css(based on highlight.js GitHub style; edit or replace for another theme).
- Bun – runtime and package manager
- Mithril – routing and views
- Construct UI – header, cards, buttons, grid
- marked – markdown to HTML
- highlight.js – code block highlighting
- esbuild – bundle and dev server
MIT. See LICENSE.