Skip to content
woksinPublic

About

Self-hosted family life OS: chores, rewards, meals and a shared calendar on a kitchen wall tablet

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

480 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Varde

A self-hosted family life OS for one household: chores, rewards, meals, lists and a shared calendar, built for a kitchen wall tablet.

Build License: MIT

The Varde member picker on a tablet: 'Who is it?' with three household members to tap

A varde is a cairn: each person adds a stone, and nobody takes one away. That is also the product's central rule. Progress and earnings do not decrease; the app has no punishments, quality scores, or leaderboards.

Why

  • Household work, earnings and planning usually live in separate apps, none of them made for a shared wall screen.
  • It is not a monitoring app for children: the whole household takes part, parents included.
  • It runs on your own hardware, on your LAN, as one Docker Compose stack.

What it covers

Chores and optional paid work, rewards and progression, routines, meals, lists, a shared calendar, upkeep and pull-only notifications, on one wall tablet and a few phones. Norwegian Bokmål is the household default; English is the source language.

Stack

Layer Technology
Backend .NET 10, C# 14, Cratis Arc
Persistence Cratis Chronicle event streams, MongoDB read models
Frontend React 19, TypeScript, Vite, Tailwind CSS v4, @cratis/components
Deployment One host, one Docker Compose stack, images on GHCR

The code is organised as vertical slices under Source/Varde/<Module>/<Feature>/<Slice>/: a slice's C#, generated TypeScript proxy, React surface and specs live together.

Run it

Requirements: the .NET SDK pinned in global.json, Node.js 22 or newer, Yarn 4 through Corepack, and Docker for the local Chronicle stack.

./scripts/dev.sh up     # start Chronicle and the dashboard
./scripts/dev.sh run    # run the app against them

To put it on a real tablet, see deploy/README.md.

Product principles

  • The whole household participates; this is not a monitoring app for children.
  • Plikt is expected household work and never pays money. Oppdrag is optional paid work.
  • Levels reveal additional work but never reduce what existing work is worth.
  • The app records money owed and settled but never moves money.
  • Notifications are pull-only. The app never creates an unsolicited sound.
  • Identity and authorization are enforced by the server.
  • Norwegian Bokmål is the household default; English is the source language.

The durable rulings are indexed in Planning/Decisions/README.md. Design contracts live under Planning/design/.

Local development

Requirements:

  • the .NET SDK pinned by global.json
  • Node.js matching package.json
  • Yarn 4 through Corepack
  • Docker for the local Chronicle stack

Use the repository scripts so the application cannot accidentally connect to another local project's databases:

./scripts/dev.sh ports
./scripts/dev.sh up
./scripts/dev.sh run

./scripts/dev.sh reset removes and recreates only this project's development volumes. Local port settings belong in the ignored .env; see .env.example.

Verification

Run the backend phases in order:

dotnet build -c Debug
dotnet build -c Release
dotnet test

The Release build regenerates the TypeScript proxies. Files beginning with // @generated by Cratis must never be edited by hand.

Then run the frontend gates from the repository root:

yarn compile
yarn lint
yarn test
yarn build

Changes that affect a running household may also require:

scripts/production-reachability.sh
scripts/smoke.sh
node scripts/browser-check.mjs

The latter two need a correctly started local stack. See AGENTS.md for the complete working rules and verification hazards.

Open work

The legacy issue index is Planning/BACKLOG.md. New follow-ups that must survive a session should be tracked as GitHub issues rather than session plans or handover files.

License

MIT

About

Self-hosted family life OS: chores, rewards, meals and a shared calendar on a kitchen wall tablet

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages