Small on purpose.#

It should have stayed this simple.

Bialet is a small web framework with everything you need and nothing you don't. Write a little Wren, store your data in SQLite, and serve your application.

curl -fsSL https://get.bialet.dev | sh
Install for Windows Download for Windows (.zip)

No installation: extract and run.

Download the binaries (all platforms)

No installation: extract and run.

Other platforms, package managers and Docker · v1.2.14

The guestbook example.

From zero to styled in under a minute

  • A page, a form handler, a migration.
  • bialet serves the files. No build step.
  • Then a stylesheet and a layout class.

Rather type it than watch it? The quick start has the same files, in order, with the reasoning between them.

Build this guestbook

$ bialet dev → 127.0.0.1:7001


What you get#

One executable does the work: it serves HTTP, opens the SQLite file, and runs your Wren code. There is no stack to assemble around it.

One executable

Copy the binary to a server and run it. No runtime to install, no node_modules, no bundler. 3.7 MB on Linux.

SQLite is included

The database is one file. No connection strings, no service to provision, no separate process. WAL mode is one flag.

No build step

Save a .wren file and refresh the browser. Wren is a small, class-based, object-oriented language.

HTML, CSS, and SQL

Server-rendered pages, standard HTML and CSS, and SQL you write yourself. Add JavaScript only if you want it.


What it costs#

The tradeoffs

Small means bounded. These are the limits that come with it.

  • One worker per process, with instant queueing. Requests are served sequentially per worker. For parallel concurrency on multi-core servers, spin up multiple local instances behind Caddy or nginx. See Deployment and the measured numbers in Performance.

  • HTTP/1.1, one request per connection. No keep-alive, no native TLS. Bialet serves HTTP. Put nginx, Apache, or Caddy in front for HTTPS, HTTP/2, rate limiting, request buffering, and static-asset caching. See Deployment.

  • Wren, with basic tooling. Apps are written in Wren. The VS Code and Vim plugins provide syntax highlighting; autocomplete and an LSP are on the roadmap. See Wren Language Guide for what the language does and does not give you.

  • No WebSockets. Request/response HTTP only. Use polling or an external service for realtime features.


Where it fits#

Internal tools and admin panels

One process, one SQLite file, and a few users on one small server.

Prototypes and small sites

One directory to deploy. Add a reverse proxy when the site goes public.

Learning and teaching

HTML, SQL, and one scripting language. Nothing else to install.

Not a fit if you need multi-server horizontal scaling, in-process TLS, WebSockets, or a package ecosystem. Bialet does not provide them. See Why Bialet? for the longer version.


Built with Bialet#

dev.ar is a free .dev.ar subdomain service running on Bialet: server-rendered pages, a session login, and a redirect dashboard. Over 22 days it served about 160,000 requests — two-thirds of them scanner traffic answered with a 403 or 404 — with fewer than 0.1% 5xx responses. Built with Bialet


Built and maintained by a solo developer

Bialet is MIT licensed and runs in production. There is no commercial support or SLA. Bugs go to GitHub Issues; questions and project showcases go to GitHub Discussions. Planned work is in the roadmap.

Join the discussion →

© 2026, Rodrigo "Albo" Arce  ·  GitHub  ·  bialet.dev