Static sites with zero ceremony
ReeWeb is a free-of-charge static site generator, available now as a free download while we prepare it for a stable public release.
Everything a content site needs, nothing it doesn't
A complete product on its own, free to download and use during the open alpha under its included proprietary license.
bun dev for live development with reload, bun ssg for static site generation into ./dist. No webpack, no vite - just Bun.
Multi-language out of the box: per-language JSON translation files, localized routing, hreflang and fallback chains.
"dependencies": {} - .ree templates, markdown, RSS feeds and sitemaps are all built in. Nothing to audit, nothing to upgrade.
Download, extract, and run
Name your project folder once and every command updates. Create it, download the archive, extract it, run the install task, and start developing:
mkdir __PROJECT_DIR__
cd __PROJECT_DIR__
curl -O https://reepolee.com/downloads/reeweb.tar.gz
tar -xzf reeweb.tar.gz
bun reeweb:install
# live development with reload
bun dev
bun reeweb:install prepares the extracted project. bun dev gives you live development; bun ssg writes the finished static site to ./dist.
Proof by use: this website is generated with ReeWeb.
Templates you can read
.ree templates are HTML with a handful of tags - escaped output, translations, loops, layouts and components. Markdown lives alongside.
{#layout("layout")}
<main>
<h1>{_ home.title }</h1>
{#each props.posts as post}
<article-card title="{= post.title }"></article-card>
{/each}
</main>
Need a CMS? Add Reepolee - don't migrate
When a project outgrows static-only - you want an editing backoffice, a database, dynamic content - you don't rewrite. Install the Reepolee framework in parallel and it becomes the server for ReeWeb. ReeWeb ships fetch_collection(), which pulls collections from the running Reepolee server during dev and static site generation, straight into your templates:
// src/public/blog/index.ts - runs during dev and static site generation
import { fetch_collection } from "../lib/reepolee_api";
export async function load_template_data() {
const result = await fetch_collection("/admin/articles");
return { posts: result.data };
}
Same engine, same conventions, same templates. Your static site becomes the rendering front of a CMS the day you need it - and not a day sooner.
Open alpha. Built for what comes next.
Download the archive, extract it, run bun reeweb:install, then start with bun dev. Share feedback as ReeWeb prepares for a stable public release.