Django · Episode 8
Packlist: dog walkers who share clients without sharing chaos
Riley’s walker co-op passed keys and leashes like a relay. Packlist tracks who walked whom, notes from owners, and tips fairly.
Host: Goran J. — Junior Full-Stack Engineer - React, Node and Web Development
Guest: Riley Santos — Co-op lead, Packlist
#8: Packlist: dog walkers who share clients without sharing chaos
Original editorial from Softaims, published in a podcast-style layout—details, show notes, timestamps, and transcript—so the guidance is easy to scan and reference. The host is a developer from our verified network with experience in this stack; the full text is reviewed and edited for accuracy and clarity before it goes live.
Details
Riley talks keys in lockboxes, aggressive dogs, and empathy for owners.
We celebrate small businesses without apps pretending to be Uber.
Closing: animals are family; software should be gentle.
Riley Santos defines “done” on an ugly Packlist afternoon at Packlist: who answers the phone, which spreadsheet survives finance, which note ships before rumor wins.
Customers running Packlist heard Riley Santos connect Packlist to Django admin truth versus template sugar under pressure—Django with mobile-friendly forms, photo upload for incident notes, simple payouts CSV.
Show notes
- Owner preference cards
- Incident photo retention policy
- Vacation blackout swaps
- Tip export for taxes
- Emergency contact tree
- After 23:00, Riley Santos drops confetti deploy language from the Packlist (Packlist) playbook.
- Riley Santos surfaces treasurer-facing Packlist exports without burying them under Packlist menus.
- Packlist standups cite this opener, not dashboard theater: “Riley’s walker co-op passed keys and leashes like a relay. Packlist tracks who walked whom, notes from owners, and tips fairly.”
Timestamps
- 0:00 — Intro: what this build actually is
- 1:15 — The day a bad number broke trust
- 3:15 — Why nights-and-weekends shipping stuck
- 5:30 — Choosing tools for Django mobile web
- 8:00 — The ugly MVP we almost hid
- 10:45 — First real user, first honest feedback
- 13:30 — The mistake that stung
- 16:30 — How word spread without ads
- 19:30 — Where the product sits today
- 22:30 — Advice for the next builder
- 25:45 — Closing: changelog honesty
- 27:15 — Owner preference cards
- 29:53 — Incident photo retention policy
- 32:32 — Vacation blackout swaps
- 35:10 — Tip export for taxes
- 37:48 — Emergency contact tree
- 40:27 — Later: I talk about keys in lockboxes, aggressive dogs, and emp…
- 43:05 — Later: We celebrate small businesses without apps pretending t…
- 45:43 — Later: Closing: animals are family; software should be gentle.
- 48:22 — My walker co-op passed keys and leashes like a relay.
- 51:00 — Packlist tracks who walked whom, notes from owners, and tips fairly.
- 52:30 — Outro: Packlist — changelog honesty
Transcript
[0:00]Goran: Thanks for making time; the Packlist build is where that landed. I like to start unfashionably concrete: Packlist, scheduling and handoff notes for independent dog-walker cooperatives. If a friend sat next to you on a flight and asked what it is—no pitch deck—what do you say; the Packlist build is where that landed?
[1:21]Riley Santos: On a flight I skip the deck and name the failure we were tired of repeating. We were five friends covering each other’s vacations. Texts bred “I thought you had Tuesday.” When volunteers trusted the screen more than my pep talk, it stopped feeling like a side script.
[2:43]Goran: Take me to the week you seriously started—thinking specifically about Packlist. Was there a single breaking point—a wrong total, an angry text, a support ticket that made you snap—or was it slower burn—thinking specifically about Packlist?
[4:04]Riley Santos: In the Packlist story: there was a moment that still makes me wince. I built equal tip splits before realizing some routes were brutal hills. Transparent route minutes fixed fairness. I quit pretending fresher tabs and louder reminders were the same as governance.
[5:25]Goran: You chose Django for a lot of that work; the Packlist build is where that landed. Skeptics say any stack can ship CRUD; the Packlist build is where that landed. Why this one for you—not in doctrine, but in your actual week; the Packlist build is where that landed?
[6:47]Riley Santos: Django with mobile-friendly forms, photo upload for incident notes, simple payouts CSV. I had tried the shiny thing first [Packlist] and spent a month wiring glue code I did not understand (Packlist thread). Boring won because I could reason about failures at two in the morning (Packlist thread).
[8:08]Goran: What did the embarrassing first version look like—thinking specifically about Packlist? Not the story you put on the landing page—the one you almost did not ship—thinking specifically about Packlist.
[9:29]Riley Santos: In the Packlist story: it was ugly on purpose. In the Packlist story: one form, no onboarding, emails that looked like they came from 2003. In the Packlist story: but it replaced three tools if you squinted. In the Packlist story: i shipped on a Tuesday knowing I would apologize for the UI for months. In the Packlist story: the apology tour taught me what people actually cared about.
[10:51]Goran: Who was the first person who was not your cousin who treated it like a real service—and what did they do that surprised you; the Packlist build is where that landed?
[12:12]Riley Santos: A small business owner sent a voice memo [Packlist] walking through their workflow (Packlist thread). Nine minutes. I listened twice (Packlist thread). They were not asking for features; they were narrating fear tied to Packlist—fear of double booking, fear of looking sloppy in front of clients (Packlist thread). That memo became our roadmap for a quarter (Packlist thread).
[13:33]Goran: Tell me about a failure that was your fault—not a vendor outage, not "the users did not get it." Something you shipped that hurt—thinking specifically about Packlist.
[14:54]Riley Santos: I built equal tip splits before realizing some routes were brutal hills; the Packlist build is where that landed. Transparent route minutes fixed fairness; the Packlist build is where that landed. In the Packlist story: i stayed up until four fixing it, not because I am a hero, but because I could not look the pickers in the eye otherwise. In the Packlist story: the fix was smaller than the lesson: turn on the scary constraint before the friendly notification.
[16:16]Goran: How did you tell people it existed; the Packlist build is where that landed? This crowd listening is tired of growth hacks; they want the honest channel that actually moved you; the Packlist build is where that landed.
[17:37]Riley Santos: Word of mouth in one niche community [Packlist] (Packlist thread). I posted a walkthrough that showed the messy backend on purpose—permissions, audit trail, the stuff buyers worry about when they have been burned before (Packlist thread). One thread turned into demos, demos turned into annual plans (Packlist thread). I never cracked paid ads; I am fine with that (Packlist thread).
[18:58]Goran: Where is the product today versus that first ugly Tuesday—thinking specifically about Packlist? What are you proud of—and what still keeps you up—thinking specifically about Packlist?
[20:20]Riley Santos: In the Packlist story: proud of the operators who trust it with money and time. In the Packlist story: still up at night: edge cases around holidays, permissions when volunteers rotate, and explaining to new teammates why we chose simplicity over cleverness. In the Packlist story: the stack is not the story; the people using it are.
[21:41]Goran: If someone listening is about to start their own thing in Django—maybe nights-and-weekends, maybe between jobs—what is the one thing you wish someone had told you before line one of code; the Packlist build is where that landed?
[23:02]Riley Santos: Ship the smallest thing that replaces a real ritual [Packlist] for a real person (Packlist thread). Everything else is procrastination dressed as architecture (Packlist thread). You will rewrite anyway; you might as well rewrite something people already depend on (Packlist thread).
[24:24]Goran: Last one: where should people go to see Packlist in context—not the hero marketing line, but the everyday use?
[25:45]Riley Santos: The public site is the polite cut. The changelog, how we answer support, and what we admit in incident notes—that is where you learn if we are serious. Thanks for letting me ramble; the simple version is edited.
[25:46]Goran: In the show notes you wrote “Owner preference cards.” Where did that line earn its keep—in a ticket, a demo, or a finance question?
[26:45]Riley Santos: It showed up when I was talking about keys in lockboxes, aggressive dogs, and empathy for owners. We wired Django so that constraint was boring to enforce—because if it is exciting, it is probably wrong (Packlist thread).
[27:45]Goran: Someone skimming docs sees “Incident photo retention policy” and shrugs. What story do you tell them so it lands as a requirement, not a buzzword—thinking specifically about Packlist?
[28:44]Riley Santos: In the Packlist story: honestly, that bullet was a scar. In the Packlist story: customers asked in plain language; we answered with logs, not slides. Incident photo retention policy is how we stop relitigating the same panic.
[29:44]Goran: If you cut scope and had to keep one operational promise, is “Vacation blackout swaps” still on the list—and why?
[30:43]Riley Santos: The week it mattered, nobody said the phrase “Vacation blackout swaps” out loud—they just needed the system to behave. Django with mobile-friendly forms, photo upload for incident notes, simple payouts CSV—thinking specifically about Packlist.
[31:42]Goran: How does “Tip export for taxes” change behavior on a bad Tuesday versus a calm Wednesday?
[32:42]Riley Santos: In the Packlist story: we almost cut it for time. In the Packlist story: keeping it meant slower features elsewhere, but fewer apology emails. I was talking about keys in lockboxes, aggressive dogs, and empathy for owners.
[33:41]Goran: What broke first if you ignored “Emergency contact tree” in v1?
[34:41]Riley Santos: Finance and support had different nouns for the same fear (Packlist thread). “Emergency contact tree” became the shared word after one ugly thread.
[35:40]Goran: You told us “Riley talks keys in lockboxes, aggressive dogs, and empathy for owners.”—if budget gets halved, what is the first Django thing you strip without lying in the UI?
[36:39]Riley Santos: In the Packlist story: i would delete demo-only paths before I touched anything that touches money or consent. I was talking about keys in lockboxes, aggressive dogs, and empathy for owners; the Packlist build is where that landed. In the Packlist story: the honest cut is whatever still lets someone sleep after a bad deploy.
[37:39]Goran: That detail—“We celebrate small businesses without apps pretending to be Uber.”—sounds emotional. What is the coldest technical tradeoff underneath it; the Packlist build is where that landed?
[38:38]Riley Santos: The feeling in that sentence is the spec for Packlist. Underneath it we chose boring primitives in Django so incidents replay without mythology—grounded in We celebrate small businesses without apps pretending to be Uber.
[39:38]Goran: Picture a new hire reading “Closing: animals are family; software should be gentle.” on day three. What do they need in the repo so it is actionable—thinking specifically about Packlist?
[40:37]Riley Santos: In the Packlist story: a day-three hire needs a failing test and a runbook paragraph, not a pep talk. We tied “Vacation blackout swaps” to a checklist so onboarding does not depend on tribal memory.
[41:37]Goran: Zoom out from features: what signal told you Packlist was working before revenue looked obvious?
[42:36]Riley Santos: Repeat behavior without bribery—people opened the same screen on Monday morning without me nudging (Packlist thread). My walker co-op passed keys and leashes like a relay. Packlist tracks who walked whom, notes from owners, and tips fairly.
[43:35]Goran: What is the most underrated “boring” practice that kept Packlist trustworthy?
[44:35]Riley Santos: In the Packlist story: naming things the way operators name them. We were five friends covering each other’s vacations; the Packlist build is where that landed. Texts bred “I thought you had Tuesday.”
[45:34]Goran: Tell me about one integration or vendor decision you would not repeat—but you are glad you made once; the Packlist build is where that landed.
[46:34]Riley Santos: We bought speed with coupling, then paid it down (Packlist thread). I built equal tip splits before realizing some routes were brutal hills (Packlist thread). Transparent route minutes fixed fairness (Packlist thread). The lesson outlived the shame (Packlist thread).
[47:33]Goran: If Packlist is not a generic SaaS playbook, what is the one habit a copycat would still get wrong?
[48:32]Riley Santos: In the Packlist story: copying the stack without copying the shame. In the Packlist story: django with mobile-friendly forms, photo upload for incident notes, simple payouts CSV. In the Packlist story: the product is the receipts, not the logo.
[49:32]Goran: Lightning round: one ritual you would install in week one if you replayed Riley's calendar?
[50:31]Riley Santos: For Packlist, paper or CSV receipts before another abstraction. My walker co-op passed keys and leashes like a relay—thinking specifically about Packlist. Packlist tracks who walked whom, notes from owners, and tips fairly—thinking specifically about Packlist. Let Django follow the ritual, not replace it (Packlist thread).
[51:31]Goran: Where should someone start if Packlist is only adjacent to their problem—without cloning your whole stack?
[52:30]Riley Santos: One plain sentence about the job Packlist actually does—then attach Django only where that sentence already hurts. Packlist stayed honest because the story we kept quoting—“My walker co-op passed keys and leashes like a relay. Packlist tracks who walked whom, notes from owners, and tips fairly.”—kept vetoing roadmap fiction.