jbrechtel
2c55ea9dc1
deps: add hyperbole, effectful, atomic-css; remove orb/mithril deps
2026-07-15 22:35:08 -04:00
jbrechtel
aa88f0b3c5
docs: implementation plan for Hyperbole port
2026-07-15 22:24:17 -04:00
jbrechtel
de4b48c8e5
docs: design spec for porting Sis to Hyperbole
2026-07-15 22:17:50 -04:00
jbrechtel
194df4d2fe
feat: use .nb-button.default styling for nav buttons
2026-07-15 21:45:12 -04:00
jbrechtel
6f24ba0901
docs: add nav button styling design spec
2026-07-15 21:44:40 -04:00
jbrechtel
c530fd882a
Updates AGENTS.md
2026-07-15 21:31:33 -04:00
jbrechtel
0adeaf9ceb
Adding plans and docs
2026-07-15 21:21:21 -04:00
jbrechtel
b4e47b652f
WIP: backend auth/chores/households work and frontend styling
2026-07-15 21:20:57 -04:00
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
jbrechtel
4358098c57
docs: add AGENTS.md with project conventions
2026-07-15 16:37:36 -04:00
jbrechtel
d4f839c491
feat: add SQLite database support
...
- Add sqlite-simple dependency
- Create Sis.Database module with openDatabase (creates parent dir, enables WAL + FK)
- Add --db-path CLI option (default data/sis.db)
- Format all Haskell sources with fourmolu
- Fix hlint suggestions in Sis.Server
2026-07-15 15:57:44 -04:00
jbrechtel
715889a72a
feat: add --db-path CLI option and open SQLite db on startup
2026-07-15 15:55:54 -04:00
jbrechtel
1a8a264eae
feat: add Sis.Database module with openDatabase
2026-07-15 15:55:04 -04:00
jbrechtel
bef88e789c
deps: add sqlite-simple
2026-07-15 15:54:50 -04:00
jbrechtel
efd2ccd14a
Add SQLite database implementation plan
2026-07-15 15:46:11 -04:00
jbrechtel
f5a6517f2c
Add SQLite database support design spec
2026-07-15 15:43:46 -04:00
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
jbrechtel
5075ef2718
Add neo-brutalist landing page
...
Title 'Sis' in nb-font-heading1, tagline 'For chores and stuff'
Warm cream background, centered nb-box layout
2026-07-15 14:52:49 -04:00
jbrechtel
72d94170b4
Initial project skeleton
...
Haskell backend: Orb HTTP framework, JSON-only API
Frontend: Mithril.js SPA with TypeScript, Neo Brutalism CSS
Dockerized build via flipstone/haskell-tools image
Routes:
GET /api/health — health check
Build: ./hs stack build
Test: ./hs stack test
Run: ./scripts/run
2026-07-15 14:51:27 -04:00