Getting Started

Getting Started#

In this tutorial we’ll build a working poll application with Bialet. You’ll learn how to write Wren files, query a SQLite database, handle form submissions, and render dynamic HTML — all with zero configuration.

Building with an AI assistant instead?

Paste the AI Coding Prompt into Claude, ChatGPT, or Cursor, or install the bialet-app-builder skill with npx skills add bialet/skills --skill bialet-app-builder. Either one teaches the assistant Bialet’s conventions, so you can skip the tutorial and describe what you want to build.

ℹ️ Bialet has no router to configure. Every .wren file is a URL at the same path, just like a static HTML file: about.wren → /about.

Dynamic data lives in the query string or the path — both are equal: article.wren → /article?id=123 with var id = Request.get("id"), or /article/my-post with var slug = Request.route(0). Keep routes shallow; Bialet discourages complex routing. See Advanced Routing for the full routing model.

Already familiar with Bialet? Jump to Installation or the API Reference.

Want the shortest path to something running? Quick start: a guestbook builds a complete app in five minutes, without the chapter-by-chapter tour.

What we’ll build#

A simple poll that lets users vote “Yes” or “No” and see live results with percentage bars. Check it live.

  • Vote page — Form with radio buttons, styled with Tailwind

  • Results page — Progress bars showing vote distribution

  • Database — SQLite table for poll options and vote counts

Poll Vote Poll Results

Chapters#

Source files#

The complete source for each step is available: