Version0.16.1Verifiednot yet verifiedLicenseBSD-3-Clause

sigil-web

Web application framework for Sigil

Report a bug or suggest a feature
Readme

sigil-web

Web application framework for Sigil. Provides routing, middleware, static file serving, cookies, and a server-driven UI library for building interactive web applications.

Usage

Routing

(import (sigil web routes))

;; Define routes with pattern matching
(define app
  (router
    (route GET "/" home-handler)
    (route GET "/users/:id" user-handler)
    (route POST "/api/login" login-handler)
    (route ANY "/static/*path" static-handler)))

;; Extract path parameters in handlers
(define (user-handler request)
  (let ((id (path-param request "id")))
    ...))

Middleware

(import (sigil web middleware))

;; Compose middleware around a handler
(define handler
  (wrap-middleware app
    (cors-middleware '("*"))
    (content-type-middleware "text/html")
    (not-found-middleware)))

;; Or use the chain style
(define handler
  (chain app
    (with-cors "*")
    (with-content-type "text/html")
    (with-not-found)))

Static Files

(import (sigil web static))

;; Serve files from a directory with MIME type detection
(define static-handler (make-static-handler "public/"))

Cookies

(import (sigil web cookies))

;; Read cookies from a request
(cookie-ref request "session_id")

;; Set a cookie on a response
(set-cookie response "session_id" "abc123"
            '((path . "/") (http-only . #t)))

Server-Driven UI

Read the rest
(import (sigil web ui))

;; Send SSE events for real-time updates
(sse-morph target: "#chat" mode: "append"
           content: `(div (@ (class "msg")) "Hello!"))

;; Return HTML with merge headers
(sigil-ui-response target: "#results" mode: "inner"
                   content: `(ul ,@(map render-item items)))

Live Development

(import (sigil web dev))

(define dev (make-dev-broadcast))
;; Wire (dev-sse-handler) into your router at /__dev/events
;; Then trigger browser refresh:
(dev-reload!)

Modules

  • (sigil web routes) -- path-based routing with named and splat parameters
  • (sigil web middleware) -- composable middleware (CORS, content-type, not-found)
  • (sigil web static) -- static file serving with directory traversal protection
  • (sigil web cookies) -- cookie parsing and setting
  • (sigil web ui) -- server-driven hypermedia (SSE morphing, forms, modals, data tables)
  • (sigil web dev) -- live development broadcast and error overlay

Dependencies

  • sigil-stdlib
  • sigil-http
  • sigil-sxml
  • sigil-nrepl

Build

sigil deps install
sigil build
sigil test

License

BSD-3-Clause

Clone

$ git clone https://codeberg.org/sigil/sigil-web

Releases

v0.16.1 — latest by version, released 10 Jul 2026

All releases — 6 tags in this repository.

Source

Browse the latest source

One page per file, and every line has a permalink.

Recent commitsAtom
1 Augcommit
10 Julcommit
10 Julcommit
10 Julcommit
10 Julcommit
7 Julcommit
6 Julcommit
5 Julcommit
5 Julcommit
5 Julcommit
5 Julcommit
5 Julcommit
5 Julcommit
4 Julcommit
3 Julcommit
26 Aprcommit
26 Aprcommit
26 Aprcommit
26 Aprcommit
26 Aprcommit

The last 20 commits keep a page here. Everything older lives in the clone.