jbrechtel 72b1ee1d3d Add SPA static file serving from backend
Backend (Server.hs):
- serveStaticOrSpa: serves static files from --static-dir
- SPA fallback: extensionless paths serve index.html
- MIME type mapping for html/css/js/png/svg/ico/woff2

Frontend:
- ES module imports with import map for Mithril CDN
- Build script: tsc + copy index.html + static assets

CLI:
- --static-dir flag (default: frontend/dist)
- scripts/run passes through extra args
- Dockerfile CMD points at /usr/local/share/sis/static
2026-07-15 14:59:31 -04:00
2026-07-15 14:51:27 -04:00
2026-07-15 14:51:27 -04:00
2026-07-15 14:51:27 -04:00
2026-07-15 14:51:27 -04:00
2026-07-15 14:51:27 -04:00
2026-07-15 14:51:27 -04:00

Sis

Sis (short for Sisyphus) is a todo tracker meant primarily for households, families or other groups of people with shared repeated responsibilities like chores.

The goal of Sis is to make it easy for users to keep track of which tasks need to be completed and when while allowing any user to complete a given task and provide visibility to other users that a task has been completed.

Sis is primarily a web application but includes push notification support for end users to notify them about upcoming/overdue tasks as well as task completion.

Frontend

The Sis UI a single-page application written in Javascript using https://mithril.js.org/ and uses the "Neo Brutalism" CSS framework - https://unpkg.com/neobrutalismcss@latest

Sis uses Typescript for front-end code

Backend

The Sis backend is written in Haskell using Orb for the HTTP framework - https://github.com/flipstone/orb

S
Description
Family chore tracker
Readme 1.1 MiB
Languages
Haskell 84.4%
JavaScript 9.8%
Shell 4.3%
CSS 1%
Dockerfile 0.5%