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.

The bundled server is loopback-only and for local development. See Runtime before deploying it anywhere else.

Where next?

For the formal contract, read the Polonio Language Specification v1.0. Implementers can use the conformance profiles.