jbrechtel 08987d7c49 fix: convert login/signup forms to Mithril components
The login and signup forms used factory-function patterns (plain
functions returning vnodes with let-bindings for state). Mithril calls
these on every redraw, creating fresh let-bindings each time, so any
state set by oninput handlers was immediately discarded. This broke
text input in all form fields.

Fix: convert to proper Mithril components using vnode.state for
persistent state across redraws. Mithril auto-redraws after event
handlers, so explicit m.redraw() calls in oninput are unnecessary.
2026-07-15 21:17:46 -04:00
2026-07-15 15:57:44 -04:00
2026-07-15 15:57:44 -04:00
2026-07-15 14:51:27 -04:00
2026-07-15 14:51:27 -04:00
2026-07-15 15:57:44 -04:00
2026-07-15 14:51:27 -04:00
2026-07-15 15:54:50 -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%