Ulas 44e5a879b9 fix(ux): replace native confirm() dialogs, add undo-toast, fix prefers-reduced-motion
- Replace all 13 native confirm() calls with confirmModal() across 7 page modules
- Add confirmModal() to modal.js (Promise-based, danger variant, focus management)
- Fix double-confirm bug in contacts.js and budget.js (modal + deleteContact/deleteEntry)
- Extend showToast() with onUndo callback and max-3-toast limit
- Implement optimistic undo-toast (4s window) for shopping item and bulk-checked delete
- Add prefers-reduced-motion guard to btnSuccess() and btnError() in modal.js
- Add btn--error-static CSS class as motion-reduced fallback for btnError()
- Add toast__undo button styles to layout.css
- Add common.confirm and common.undo i18n keys (de, en, it, sv)
- Add shopping.itemDeletedToast i18n key (de, en, it, sv)
2026-04-05 12:31:16 +02:00
2026-03-24 13:46:15 +01:00

Oikos

Oikos

Self-hosted family planner for small households

Tasks · Shopping Lists · Meal Planning · Calendar Sync · Budget · Notes · Contacts

MIT License Latest Release Docker Node.js PRs Welcome


Dashboard Tasks Meals

Toggle GitHub light/dark mode to see both themes.

Highlights

Task Management: Shared tasks with deadlines, priorities, subtasks, recurring schedules, and Kanban view

Shopping Lists: Collaborative lists with aisle categories and one-click import from meal plans

Meal Planning: Weekly drag-and-drop planner with ingredient lists and shopping export

Calendar Sync: Two-way sync with Google Calendar (OAuth) and Apple iCloud (CalDAV)

Budget Tracking: Income and expenses, recurring entries, monthly trends, CSV export

Notes & Contacts: Colored sticky notes with Markdown, contact directory with vCard import/export

Zero Build Step: Pure ES modules, no bundler, no transpiler, no framework. Ships what you write.

Privacy First: SQLCipher AES-256 encrypted database, fully self-hosted, zero telemetry

PWA Native Feel: Installable on any device, works offline, dark mode, responsive from phone to desktop

Multilingual: German, English, Italian, and Swedish UI with automatic locale detection

Quick Start

git clone https://github.com/ulsklyc/oikos.git && cd oikos
cp .env.example .env     # then edit .env - set SESSION_SECRET and DB_ENCRYPTION_KEY
docker compose up -d --build
docker compose exec oikos node setup.js

Then open http://localhost:3000 and log in with the admin credentials you set in the previous step. Add family members from Settings.

New to Docker? The Installation Guide walks you through every step: From installing Docker to HTTPS setup, backups, and troubleshooting.

Tech Stack

Express SQLite Vanilla JS CSS Docker PWA

Documentation

Installation Spec & Data Model Contributing Security Changelog Backlog

License

MIT License

Built with care for families who value privacy and simplicity.
S
Description
Friborg-maintained Oikos core mirror/branch stack for upstreamable modular home-planning work
Readme 112 MiB
Languages
JavaScript 76.9%
CSS 17.5%
HTML 4.9%
Shell 0.7%