ReeWeb is currently in alpha. While it is stable, APIs may change as a result of rapid ongoing development.
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-Powered
Fast static generation and live reload in development - no webpack, no vite, just Bun.
ReeTags
Expressive .ree templating with layouts, partials, loops, and components alongside Markdown.
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
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.
Write a page
Drop a .ree or .md file in src/public/. The path determines the URL - src/public/about/index.ree becomes /about/.
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 } }
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.