Volunteer dog-walking program management, built for Hack for Humanity against DogsCBR's real intake forms, OHS material and walking procedure.
Onboarding (EOI → induction → OHS test → acknowledgement → coordinator approval → member card), a booking engine with eligibility rules, two-sided walk-day handover with live presence and incident reporting, post-walk reports feeding a dog log, and an impact dashboard with CSV/PDF export.
Dev deployment: https://aicolab-dogscbr-walks-dev.aicolab.workers.dev
app/DEMO.md— a narrated run-through of the whole system, coordinator and walker side by side. The fastest way to understand what it does.brainstorm-notes.md— the decision record: 60 forks, each settled explicitly, written before the build. Explains why almost everything is the way it is.app/src/routes/— flat-file routing, so the route names are the site map.
This repo was carved out of a private monorepo with git subtree split. The
history is real and complete for this app, but pnpm install will not work
standalone — the app depends on six workspace packages that live in the
monorepo:
| package | what it provides |
|---|---|
@aicolab/better-auth |
auth client/server integration over the shared auth worker |
@aicolab/room-service |
live sync — d1-sync bell fan-out, presence, capnweb client |
@aicolab/cloudflare |
Cloudflare helpers (TanStack DB over Durable Objects) |
@aicolab/ui-solid |
the design system components |
@aicolab/tsconfig |
shared TypeScript bases |
@aicolab/biome-config |
shared lint config |
It also relies on the monorepo root's pnpm-workspace.yaml for pinned
dependency versions, overrides, and seven patchedDependencies.
So: read it, don't try to run it. If you want a version that actually builds, say so and it can be wired up with those packages as submodules.
Solid 2 + TanStack Solid Start on Cloudflare Workers.
- D1 — system of record (members, dogs, slots, bookings, reports, incidents, audit log), schema via drizzle
- Durable Objects —
WalksBell(data-less reactive fan-out over D1),WalkSessionRoom(one ephemeral room per active walk, for the bits that must never persist: handover prompts, opt-in live location, presence) - Workflows —
OnboardingWorkflow,WalkBookingWorkflow,WalkReportWorkflow - R2 + Images — photo ID (private, auto-purged), dog and walk photos
- Workers AI — voice-note transcription, image captions
- Browser Rendering — printable member cards, grant reports
- Resend — email, console-logged when no API key is set
- Auth is a service binding (
AUTH) to a sharedaicolab-authworker that isn't in this repo. Tenancy is multi-rescue from day one — each rescue is an organization, every row carries anorgId.
app/ the worker + frontend
src/routes/ flat-file routes (public, /coordinate, /carer)
src/rooms/ Durable Objects
src/workflows/ Cloudflare Workflows
src/db/ drizzle schema
drizzle/ migrations
test/ vitest against a real migrated D1
brainstorm-notes.md the 60-decision design record
dogscbr-eoi-form.ts DogsCBR's EOI form, translated verbatim
dogscbr-hackathon-briefing.html
dogsact-internal-docs/ DogsACT's own operational documents — source material
dogsact-internal-docs/ is DogsACT's material, not ours, provided during the event.
app/.dev.vars.example lists what local dev wants. Nothing sensitive is
committed — real .dev.vars is gitignored.