⚠️
Alpha Software

ReeWeb is currently in alpha. While it is stable, APIs may change as a result of rapid ongoing development.

Zero Dependencies "dependencies": {}

Zero ceremony.
Ship content sites fast.

ReeWeb is a template for Bun-powered static sites with zero runtime dependencies. Powered by the Ree templating language and Tailwind CSS, it handles the entire SSG pipeline so you can focus on content.

ReeWeb is free and standalone - see the product overview. When you need a CMS, install Reepolee in parallel: it becomes the server for ReeWeb, connected through fetch_collection().

Bun

Bun-Powered

Fast static generation and live reload in development - no webpack, no vite, just Bun.

.ree

ReeTags

Expressive .ree templating with layouts, partials, loops, and components alongside Markdown.

i18n

Multi-Language

First-class internationalisation with per-language routing and fallback translation chains.


Before you begin

ReeWeb has one prerequisite. The install task fetches the tooling it needs after the archive is unpacked.

Bun

Bun

Install from bun.com - the runtime and package manager that powers ReeWeb.


Get Started

Download the public ReeWeb release, then follow the one installation path. It covers the archive, setup task, development server, and production build.

The installation guide is the source of truth for starting a project. It uses bun reeweb:install to prepare the extracted archive, then bun dev for local development.

No runtime dependencies

Really, "dependencies": {}. ReeWeb's only dev dependencies are Tailwind CSS, tailwind-merge, and Bun's type definitions - none of which ship to the browser. Nothing to bump, no runtime supply chain to track; the project you extract is yours to keep.


SSG Pipeline

Write content as .ree or .md files in src/public/. The SSG pipeline compiles them into a static dist/ folder ready to deploy anywhere.

1

Write a page

Drop a .ree or .md file in src/public/. The path determines the URL - src/public/about/index.ree becomes /about/.

2

Attach data via a sibling .ts file

Export a load_template_data function alongside the template to pass data into props during static site generation:

export async function load_template_data() { return { posts } }
3

Generate, preview, and deploy

SSG outputs to dist/. Optionally generate a sitemap and RSS feeds, then preview the output locally before deploying:

bun ssg             # compile src/public/ → dist/
bun sitemap         # generate dist/sitemap.xml + robots.txt
bun rss             # generate dist/feed.xml + feed.json
bun preview         # serve dist/ locally to verify before deploy

Add a frontmatter block to any .md file to control layout, metadata, and sitemap behavior:

---
layout: engineering-notes/layout
title: My Post
published_at: 2025-06-01
author: Jane Doe
---

Explore the ecosystem

Reepolee is a small family of tools that work together. Explore the others - each has its own documentation.