familynido/CONTRIBUTING.md
Pablo Fernández a308041d59 Initial commit
FamilyNido — a self-hosted PWA for a single household: shared calendar,
chores, meals, school agenda, health records and a family wall. One
instance per family, deployable with `docker compose` on any home
server.

Stack: .NET 10 (ASP.NET Core Minimal APIs) + EF Core 10 + PostgreSQL 16
on the backend, Angular 21 (standalone, signals, zoneless) + Tailwind
CSS v4 on the frontend, SignalR for realtime, optional OIDC alongside
local credentials, integration via a versioned `/api/v1/**` public API.

See README.md for the module overview and how to deploy.
2026-05-13 00:23:14 +02:00

1.6 KiB

Contributing to FamilyNido

FamilyNido is a personal side project maintained in evenings and weekends. It is scoped on purpose to be a self-hosted PWA for a single household per instance — multi-tenant SaaS, commercial hosting, white-labelling and anything whose primary value is serving someone else's customers is out of scope. Not because those things are bad, but because supporting them would break the simplicity that makes this project maintainable for one person. The MIT license is exactly the right tool if you want to fork and go that way.

Bug reports and small, focused PRs are welcome. For non-trivial changes please open an issue first to align on scope before you write code — I would rather say "this won't be merged because X" before you spend a weekend on it than after. PR review cadence is best-effort: this is a hobby project, so family and work come first; expect days, sometimes weeks. If you touch the API please add at least one integration test under tests/FamilyNido.Tests/; if you touch the UI please verify the change in a browser before submitting (docker compose -f deploy/docker-compose.dev.yml up -d, dotnet watch run in src/FamilyNido.Api, npm start in web/familynido-web). Match the existing style — the .editorconfig and the Angular CLI schematics already encode it.

For security problems do not open a public issue. Use the Report a vulnerability button on the GitHub Security tab — the full policy lives in SECURITY.md. For everything else, be kind, assume good intent and keep the discussion technical.