In active development · M4 adoption & fostering

ShelterStack

A free tool that helps animal shelters and rescues keep track of their animals, adoptions, foster homes, and vet appointments — so they can stop juggling spreadsheets, without paying for software they can't afford.

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.

Design preview · the staff app

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).

Overview dashboard showing animals in care, open applications, recent intakes and medical-due counts for a single shelter.
Overview dashboardThe day's numbers at a glance — animals in care, applications, foster placements, and what's medically due.
View full screen ↗
Animals list: a filterable table of animals with species, intake date, status and how long each has been in care.
Animals listEvery animal in one filterable list, with status, location, and days in care.
View full screen ↗
A single animal's record showing profile details, an intake and status history timeline, and an upcoming medical schedule.
Animal recordOne animal's full story — profile, a history of every status change, and upcoming vet care.
View full screen ↗
Sign-in screen where staff enter their organization's workspace, reinforcing that each shelter's data is kept separate.
Sign in to your workspaceEach shelter signs in to its own private space — the separation built into the system, shown on screen.
View full screen ↗

Mock-ups are a non-binding design reference; the finished app may differ.

For developers

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.

.NET 10 .NET Aspire PostgreSQL Redis RabbitMQ OpenTelemetry Docker Compose Azure Container Apps (optional)
  • 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.

  1. M0 — Walking skeletonThe foundations: the system runs end to end, and the data-privacy safeguard is proven by an automated test. Done.
  2. M1 — Identity & accessSecure sign-in, with the right level of access for each person and shelter.Done.
  3. M2 — AnimalsThe first complete feature, start to finish: animal records, intake, and status.Done.
  4. M3 — A screen for staffAn easy-to-use website where shelter staff and volunteers sign in and manage their animals, day to day.Done.
  5. M4 — Adoption & fosteringAdoption applications, approvals, and foster placements.In progress.
  6. M5 — Medical scheduling & background workerAutomatic reminders for vaccinations and treatments before they're due.
  7. 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.

See the full roadmap on GitHub ↗

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.