We’ve been working on Facet, which treats HTML as a presentation layer for data you already own.
The philosophy
Most web frameworks assume you start with the UI and add an API later. Facet inverts that.
If your data is already in MongoDB and your API already works, adding HTML output is a presentation concern, not a new application.
Facet treats it that way: a template is a view over data you already own, not a reason to restructure your backend.
How it works
You have MongoDB collections. RESTHeart exposes them as REST endpoints (simple config, zero backend code). Facet lets you decorate these with templates. Drop templates/products/index.html and GET /products serves HTML to browsers, JSON to API clients. Content negotiation handles the rest.
Technical details
Convention-based path mapping (template location = API path)
Templates use Pebble (Twig-like syntax, popular in PHP world)
Developed in Java 25
Direct access to JSON documents in templates
Hot-reload for templates (edit, refresh, done)
Use case
You have MongoDB collections powering an API. You need admin dashboards, internal tools, or data browsers. Instead of building a separate frontend or writing controllers, you add templates. Collections → API → HTML in one stack.
We are happy to announce Facet 1.0.1, a maintenance release focused on runtime correctness, documentation reorganization, CI updates, and dependency maintenance.
Fixed
Bypass HTML interception for Server-Sent Events (text/event-stream) requests.
This prevents Facet from interfering with SSE responses and fixes issue #8.
Improved setversion.sh so it can run correctly from master and release/* branches.
Documentation
Reworked and expanded the project documentation.
Added OpenWiki-based documentation for:
architecture
HTMX integration
operations
quickstart
template system
testing
Updated the main README and examples documentation for clearer positioning and usage guidance.
Added the architecture diagram to the README.
Build And Maintenance
Added update-dependencies.sh to simplify dependency updates with Maven.
Updated project dependencies, including Byte Buddy, JUnit, Maven Surefire, and Maven Dependency Plugin.
Updated the RESTHeart dependency version used by the project.
CI
Updated GitHub Actions versions for checkout, setup-node, release publishing, and Docker build/push steps.
Refined the OpenWiki update workflow to avoid unnecessary workflow file changes in generated PRs.
Notes
This release does not introduce new end-user features. The main functional change is the SSE handling fix, while most other changes improve maintainability, documentation, and release automation.
Facet looks like a useful solution for quickly adding HTML views to existing MongoDB and REST APIs without building a separate frontend. The hot-reload templates and HTML/JSON content negotiation sound especially handy for admin dashboards and internal tools.
thank you @David_Warner3 feel free to add you comments on the Github repo, so far Facet has been mainly an internal experiment but we aim to make it useful for the whole MongoDB community!