Why this exists
Most small shelters and rescues get by on spreadsheets and a patchwork of free tools, because the professional shelter software costs more than their budget allows. ShelterStack gives them a proper system for free — one they can run themselves, and that's licensed so it can never be locked away and turned into yet another paid product they can't access.
The need is well documented: in 2024 Poland's national audit office found that most inspected shelters fell short of required standards, and that the local governments paying for stray-animal care often couldn't reliably track the animals they fund — while roughly 950,000 dogs and cats in Poland have no home. Keeping clear, up-to-date records is exactly the gap software like this closes.
What it does
Private to each shelter
One organisation can host a single installation for many small shelters at once — and each shelter only ever sees its own animals, people, and records. That separation is built deep into the system and checked automatically before every release, not just hidden on the screen.
Animal records
Keep a record for every animal — where it came from, and whether it's available, in a foster home, adopted, or on a medical hold.
Adoptions
Take in adoption applications, keep applicant details, and follow each one from first enquiry through to a completed adoption.
Foster homes
Track which animals are placed in foster care and the volunteers caring for them, from drop-off to return.
Vet & medical reminders
Keep vaccination and treatment schedules with due dates, and get a reminder before each one is due.
Accounts & roles
Staff, volunteers, and admins each sign in with the right level of access for their job — so people only see and change what they should.
A look at the staff app
Here's the screen shelter staff and volunteers use day to day. These are design mock-ups with sample data — the staff app is built and growing with each milestone, but a public demo isn't online yet (it goes live after the final milestone).
View full screen ↗
View full screen ↗
View full screen ↗
View full screen ↗
Mock-ups are a non-binding design reference; the finished app may differ.
A real tool — and a reference build
ShelterStack also serves as a reference implementation of cloud-native, multi-tenant architecture on .NET. If you're not a developer, feel free to skip this part — none of it changes what the tool does for your shelter.
- Aspire-orchestrated services — gateway, identity, business services, and a background worker, with all backing resources wired through the AppHost and visible in the Aspire dashboard.
- Tenant-aware observability — OpenTelemetry spans tagged by tenant, so tracing stays meaningful in a multi-tenant system.
- Isolation as a release gate — an automated cross-tenant test suite covers every tenant-scoped entity and endpoint; a failing isolation test blocks a release.
- Cloud-agnostic by default — primary deployment is Docker Compose, runnable on free/local infrastructure, with Azure Container Apps documented as an optional path.
Roadmap
Built in steps, where each step is something that actually works and you can try — not a half-finished layer.
- M0 — Walking skeletonThe foundations: the system runs end to end, and the data-privacy safeguard is proven by an automated test. Done.
- M1 — Identity & accessSecure sign-in, with the right level of access for each person and shelter.Done.
- M2 — AnimalsThe first complete feature, start to finish: animal records, intake, and status.Done.
- M3 — A screen for staffAn easy-to-use website where shelter staff and volunteers sign in and manage their animals, day to day.Done.
- M4 — Adoption & fosteringAdoption applications, approvals, and foster placements.In progress.
- M5 — Medical scheduling & background workerAutomatic reminders for vaccinations and treatments before they're due.
- M6 — Hardening & releaseFinal safety checks, simple self-hosting, and an architecture overview.
Further ahead — ideas we're exploring
Not promises, and not part of the plan above — a few directions that could set ShelterStack apart, drawn from looking at what other shelter software does and doesn't do.
Move an animal between shelters
When one shelter passes an animal to another, its whole story — where it came from and its vet care — could travel with it, but only when both shelters explicitly agree. Tools that keep every shelter walled off have no reason to build this.
Built for European privacy rules (GDPR)
Exporting a person's data, erasing it on request, and keeping a clear record of what was done — offered as everyday features for shelter admins, not compliance paperwork bolted on later. Software built outside the EU usually skips this.
Reports for municipalities
Shelters answer to the local governments that fund them, and Poland's 2024 state audit showed how often that oversight breaks down. One-click reports — which animals a municipality finances, where they are, whether they're chipped — would turn that duty from paperwork into a button.
How to get it
ShelterStack is software we publish, not a service we run. There's nothing to sign up for here — you have a few ways to use it, depending on whether you want to host it yourself.
The demo isn't live yet — it goes online after the final milestone (M6 — Hardening & release).
Try the demo
Look around a live demo with sample data to see how it works. It's for exploring only — it isn't your shelter's real data.
Run it yourself
It's free and open source, so you (or your IT person) can install it on your own server and run it for your shelter.
Have someone host it for you
Prefer not to manage servers? The license lets any provider host ShelterStack for shelters as a managed service. None offer this yet — but the door is open.
License: built to stay open
ShelterStack is free and open source under the AGPL-3.0 license. Anyone can run it, change it, even charge to host it for others — but if you offer it as a service, you have to share your version of the code too. In plain terms: every improvement has to come back to the community, so the project can't be quietly taken private, closed off, and sold back to the shelters it was built for.
Follow along — or lend a hand
The project is in active development, and you don't have to be a developer to help. Share how a real shelter works, improve the Polish or English wording, or just tell us what's missing — every issue, idea, and update lives openly on GitHub.