Polonio
A small, readable language for HTML templates and local web applications.
Keep the page visible.
Polonio lets HTML stay HTML. Add a variable, a loop, or a condition only where the page needs one, then render the template with a single command.
<% var name = "World" %>
<h1>Hello $name!</h1>
Use it for straightforward server-rendered pages, local tools, or CGI-capable hosts. The bundled runtime can also handle forms, uploads, sessions, storage, and SQLite when you need them.
What is Polonio?
Polonio is a server-side templating language for people who want to work close to their markup. Literal text is emitted as written; embedded code supplies values and decisions. There is no framework layer to learn before you can render a page.
It began as a C++ CGI experiment in 2005 and was fully reimplemented in 2026. The project retains that direct template-first spirit while offering a modern standalone toolchain.
HTML first
Use code blocks, interpolation, and includes without losing sight of the document you are building.
Small but capable
Use arrays, objects, functions, loops, and concise helpers for common template work.
Useful locally
Run a template directly or use the bundled development server while building a small application.
Optional runtime features
Add HTTP, sessions, files, and SQLite only when your project calls for them.
Quick start
1. Build
make
make test
The executable is build/polonio.
2. Render a template
./build/polonio run hello.pol
Start with the small template above, then learn the syntax in the Language guide.
3. Try the examples
./build/polonio serve --root ./examples --port 8080
Open http://127.0.0.1:8080/ to explore runnable routes.
Where next?
Learn the language
Start with template structure, values, and control flow.
Follow examples
Move from a basic template to forms and data-backed routes.
Find a helper
Browse concise grouped references when you need a function.
Use runtime features
Understand web and data capabilities, contexts, and limits.
For the formal contract, read the Polonio Language Specification v1.0. Implementers can use the conformance profiles.