sigil-web-demo
Demo web application showcasing sigil-web features. Implements "Vinyl Vault", a vinyl record collection CRUD app demonstrating routing, forms, data tables, pagination, flash messages, modals, SSE streaming, and server-driven UI.
Features
- CRUD operations on a SQLite-backed vinyl record database
- Search and pagination with server-driven partial updates
- Flash messages for user feedback on create/update/delete
- Modal dialogs for delete confirmation
- SSE streaming for live stats updates on the home page
- Live-coding support via nREPL and SSE reload
- CSS-in-Sigil styles using sigil-css
Dependencies
- sigil-stdlib (core library)
- sigil-http (HTTP server)
- sigil-web (web framework, routing, middleware, UI components)
- sigil-nrepl (network REPL for live-coding)
- sigil-sqlite (SQLite bindings)
- sigil-sxml (SXML processing for HTML generation)
- sigil-css (CSS-in-Sigil DSL)
Usage
Add as a dependency in your package.sgl:
(from-git url: "codeberg:sigil/sigil-web-demo")Or clone and run directly:
sigil deps install
sigil build
sigil run run.sglThe app starts a web server (default port 3000) and opens Vinyl Vault in your browser.
Modules
Read the rest
(sigil web demo)
Main entry point. Call (start-demo) to launch the web server with all routes configured.
(sigil web demo db)
SQLite database layer with schema initialization, seed data, and CRUD operations:
init-db- Create table and seed sample recordslist-records- Paginated listing with optional searchcount-records- Count with optional search filterget-record/create-record/update-record/delete-record
(sigil web demo views)
SXML view functions for all pages and partials:
page-layout- Full HTML page shell with navigationhome-page- Welcome page with collection statsrecords-list-page- Searchable, paginated record tablerecord-detail-page- Single record view with edit/delete actionsrecord-form-page- New/edit form with validation
License
BSD-3-Clause
$ git clone https://codeberg.org/sigil/sigil-web-demo
v0.7.1 — latest by version, released 1 Apr 2026
All releases — 2 tags in this repository.
One page per file, and every line has a permalink.
0bacdfa1
5e5b8d9f
2d7d64a8
The last 20 commits keep a page here. Everything older lives in the clone.