Release Notes
This page documents each release of ReeWeb. For a timeline view of project milestones, see the Changelog.
ReeWeb uses calendar versioning, Ubuntu-style. A release is YY.MM.N - two-digit year, two-digit month, and the release number within that month. 26.07.1 is the first release shipped in July 2026. The version tells you when a release shipped, not what kind of change it carries. The shape:
- Month releases - the first release of a new month is a feature release.
- Point releases - later releases within the same month may contain fixes or documentation updates.
ReeWeb is pre-1.0. These notes describe the current release line. When you adopt changes from the public starter, use Reesync to review and select the files that belong in your site.
26.08 - Current
The 26.08 line is the current release.
Included
.reetemplate engine - custom template engine with output tags ({= },{~ }), control flow ({#if},{#each},{#with}), layouts ({#layout}), includes ({#include}), and components via ReeTags. Translation-lookup tags{_ }/{- }/{@ }read from translation namespaces ({@ }renders the value through markdown).- Multi-language support - per-language translation files with cross-language fallback, language-prefixed URLs, hreflang links
- Localized routes - translate URL paths per language via
route_namein translation JSON, with Unicode slugification - Markdown rendering - server-side rendering via
Bun.markdown.html()with frontmatter, syntax highlighting (highlight.js), auto-generated heading IDs, Tailwind class injection - Tailwind CSS v4 - standalone CLI with
@themecustomisation, watch mode for development - Static site generation -
scripts/ssg.tsrenders templates + markdown to static HTML with redirect support - Dev server -
scripts/dev.tswith live reload via WebSocket, file watching, multi-language routing - Redirect system - schema-validated redirects from
config/redirects.ts, emitted as_redirects(Cloudflare format) + HTML stubs - Sitemap & RSS -
scripts/generate_sitemap.tsandscripts/generate_rss.tsfor SEO and blog feeds - Component system - custom HTML element auto-discovery resolves
<my-component>tocomponents/my-component.ree - Content collections -
lib/collect_records.tsfor collecting, filtering, sorting, and paginating markdown records by route. Optional Zod schema validation via_schema.tsfiles. - Pagination -
config/pagination.tswith configurable routes, markdown/loader-backed record sources, window-based page navigation, and<full-pagination>/<simple-pagination>components. - Content visibility -
lib/content_visibility.tswith a five-channel visibility model (render,list,feed,sitemap,index). Draft or unpublished-at-date pages are generated but hidden from every aggregation and markednoindex. - Project hooks -
lib/hooks.tswith typedProjectHooksfor extending scripts without modifying them: helper functions, page data extras, SEO localization, markdown layout resolution, and content visibility. - Data loading - sibling
.tsfiles exportload_template_data()for injecting dynamic data during static site generation - Props convention - all template data accessed via
props.xxx, ReeTag attributes grouped underprops.attributes,...restspread shorthand - Static search -
scripts/generate_search_index.tswalks the rendered HTML and emits a section-levelsearch-index.jsonper source configured inconfig/search.ts; the<site-search>component provides the Cmd/Ctrl+K dialog andsrc/public/js/site-search.jsdoes fuzzy scoring, highlighting and keyboard navigation. No search service, no index-time dependency - results deep-link to the matching heading. See Search Index Generator. - OG image generator -
scripts/generate_og_images.tsproduces 1200×630 social-media preview cards for every rendered HTML page: composed as SVG (title, logo, code panel, optional background image), rasterized viavips, and injected into each page's<head>with idempotent markers. Styling is configured inconfig/og_images.ts. - Responsive images -
config/responsive_images.tsdefines width breakpoints and encoder quality as the single source of truth shared byscripts/prepare_images.ts(build-time variant generation) andlib/images.ts(srcset()/webp()/jpeg()/avif()URL helpers). The<responsive-image>component renders a<picture>with WebP + JPEG<source>candidates and the browser picks the best variant. - Supported locales config -
config/supported_locales.tsis the central locale registry withsoft_launch_locales(built but noindex, excluded from sitemap/feeds/picker) andlocale_aliases(UI-string sharing between locales with separate URLs). - Dynamic asset sync -
scripts/sync_dynamic_assets.tspulls Reepolee-managed images and files into a ReeWeb project for static serving: incremental mtime-based comparison, deletion tracking, responsive-image variant cleanup, and silent skip whenREEPOLEE_API_URLis unset. - Editor LSP - a Language Server Protocol server at
ree-lsp.cjsgives VS Code (via the Ree Templates extension) and any stdio-LSP editor autocompletion for.reetags, helpers, and translation keys, plus hover info and go-to-definition for includes, components, and translation lookups. The LSP discovers your project structure through the newreesection inpackage.json. - Zero runtime dependencies - only dev dependencies (Tailwind CSS v4,
tailwind-merge,@types/bun)
Known limitations
- No plugin system - template engine extensions require editing source files directly