Rendini is a next‑generation web rendering‑as‑a‑service platform, unifying how web applications, pages, and "components" are discovered, composed, and rendered across build‑time, server‑side, and client‑side lifecycles—independent of framework or deployment target.
Rendini’s mission is to make rendering portable, predictable, and performant:
| Challenge | Rendini Solution |
|---|---|
| Mixed tech stacks (React, Vue, Svelte…) | Framework‑agnostic component contracts & pluggable render strategies |
| Multiple render moments (build, edge, client) | Declarative “render anywhere” lifecycle |
| Slow iteration, fragmented infra | Single registry + API for discovery, composition, and delivery |
Status (α‑preview) – Active R&D. Core spec drafts, APIs, and proofs‑of‑technology (PoTs) are evolving rapidly. See the Roadmap.
The Rendini Render Nunjucks demonstrates:
- Automatic discovery of
*.njkpage templates insrc/pages/ - REST and GraphQL endpoints for listing and rendering pages
- Container & Kubernetes deployment workflow
It is not the full Rendini platform—just the first stepping stone.
- Install
gitfor source control. - Install
gh, the GitHub CLI, for GitHub interactions. - Install tooling that supports
dockeranddocker composefor containers. Examples:- Servers and some operating systems can simply install these as utility middleware tools without a "Desktop" bundled installation.
- Rancher Desktop
- Podman Desktop
- Docker Desktop *May require a paid license in many circumstances.
- Install
tiltfor container orchestration - Install GNU
makefor command simplification *Windows users see note.
[!TIP] Windows with Git BASH
Windows users are encouraged to use "Git for Windows" with Git BASH and the emulated Mintty, POSIX-compatible terminal. After installing Git BASH, install GNU
makesupport by following this answer (review the guide's comments). This ensures "enough" consistency with *nix and macOS platforms. While it may be possible to use othermakealternatives on Windows, this Git BASH integration is the currently known and supported solution. After installing, the path tomake(e.g. C:\Program Files\Git\mingw64\bin\make.exe) must either be registered on the system "PATH" environment variable or it can be entered into the settings for the VS Code extension "Makefile Tools" under the "Makefile: Make Path" setting for the user. *This system-specific path should not be set as a workspace setting for this project.
In the future, explicit "Contributor" steps will be separated from how to use Rendini.
- Open a POSIX-compatible terminal.
- Navigate to a file system directory to store the Rendini project code.
- Execute the following commands:
gh repo clone rendini-oss/rendini -- --depth=1
# Or...
# git clone https://github.com/rendini-oss/rendini.git --depth=1
cd rendini
make # Install the system.
# Or...
# make dev # Start the system.- Open a blank project window and the terminal.
- Navigate to a file system directory to store the Rendini project code.
- Clone the repository with the command
gh repo clone rendini-oss/rendini -- --depth=1 - Install the recommended extensions.
- Build Rendini with several options:
- Use the VS Code keyboard shortcut Ctrl + Shift + B on Windows or Cmd + Shift + B on macOS to build.
- Use the command
make. - Open the VS Code command pallette and run the command "Makefile: Clean and build the target ALL".
- Start Rendini with the command
make dev. - Review the "./makefile" used by GNU
maketargets to better understand and triage native command interactions run by developers and automation servers (e.g. Continuous Integration on GitHub Actions). - Review the "./tiltfile" (and loaded extensions) used by
tiltto better understand and triage native command and container orchestration run by developers and automation servers (e.g. Continuous Integration on GitHub Actions).
- List templates
curl http://localhost:3000/api/render-targets- Render a template
curl -X POST http://localhost:3000/api/render \
-H "Content-Type: application/json" \
-d '{"name":"home","data":{"user":"World"}}'Rendini provides a GraphQL API with GraphiQL interface for easier exploration and testing.
- Endpoint
GET/POST /graphql
- GraphiQL Interface
Navigate to http://localhost:3000/graphiql in your browser to use the interactive GraphiQL
interface.
- Sample Query
query {
renderTargets {
name
template
}
}- Sample Mutation
mutation {
render(name: "about", data: { team: "Engineering" }) {
html
}
}Rendini welcomes feedback and contributions.
| Audience | Start Here |
|---|---|
| First‑time visitors | Try the PoT and open issues with questions or ideas. |
| Developers | Explore code, file issues, submit small PRs. |
| Contributors | Read GOVERNANCE.md and sign the CLA. |
Please open a GitHub issue before large refactors or feature work.
- Publish formal Rendini specification (v0 draft)
- Add multi‑framework render demos (React, Vue, Svelte)
- Automated tests & CI
- Launch documentation site
- CLI & SDK tooling
- Community outreach & events
- Code: Apache 2.0
- Contributions: Contributor License Agreement
- Governance: GOVERNANCE.md
- Trademark: TRADEMARKS.md (“Rendini” is a registered mark)
Open an issue at https://github.com/your-org/rendini-nunjucks/issues/new.
Thank you for helping shape the future of web rendering with Rendini!