Inspiration
I was working with a media agency and saw their pipeline firsthand: a patchwork of Google Drive, spreadsheets, Airtable, and WhatsApp messages. Crew members couldn't find client SOPs or reference materials because everything was scattered across platforms. I pointed it out, and the agency owner told me there simply wasn't a tool for this. Big agencies build their own systems in-house, but smaller ones — 3 to 20 people — are stuck stitching together general-purpose apps that were never designed for a production pipeline.
That conversation became the starting point. I dug into the workflow and found one wrong assumption every tool in this category makes: that the atomic unit of agency work is a task. It isn't. "Record video 1" and "edit video 1" are not two tasks — they are two stages of one thing, and that thing is a deliverable.
What it does
Pasdiu is production software a small media agency can run their entire operation on. Plan a month of deliverables in one pass instead of creating 150 tasks by hand. Hand off from recorder to editor without losing which take was good — notes live on the deliverable and survive every stage transition. Let clients approve or request changes in their own portal instead of chasing them over WhatsApp. Track package quotas ("30 videos a month") with a real progress bar. Schedule recording sessions on a calendar with an outward ICS feed. Export a ledger with contractor attribution for invoicing.
Web, iOS and Android from one codebase. Spanish and English, enforced at compile time.
The structural insight underneath: every feature falls out of making the deliverable explicit in the data model. The batch wizard has something to create in bulk, the board derives its current stage rather than storing it, the Iteration Room holds versions and feedback on the deliverable itself, and the client portal knows exactly what to show for approval.
How we built it
AI-first development. Built by one person with a fleet of AI coding agents — Kiro, Claude Code — governed by project docs stating the rules an agent may not break. The AI executes implementation decisions; the founder provides product direction and domain expertise. This model is what makes a solo bootstrap viable: one person directs AI to produce output that would otherwise require 3–5 engineers.
Stack. Vue 3 + Vite + TypeScript, Pinia, Tailwind. Firebase Auth + Cloud Firestore for identity and data. An Express API on Cloud Functions (2nd gen) for privileged writes. Firebase Hosting, Cloud Scheduler for nightly usage reconciliation, Secret Manager for keys, the Trigger Email extension for localized invites. A shared package (@pasdiu/shared) holds domain models and Zod schemas so client and API validate against the same definitions. Development runs entirely offline against the Firebase Emulator Suite.
Challenges we ran into
You can't create work in bulk from the app. The database's security layer checks each new task one at a time — so a batch of 30 gets rejected 29 times. The whole point of the wizard is bulk creation. We had to move that operation to the server where it could bypass the one-at-a-time check while still enforcing limits.
Nobody who advances work can update where it is. The people who actually move a deliverable forward — recorders, editors — don't have permission to write the "current stage" field. So we made the current stage something the system figures out on its own by looking at which tasks are done. No one writes it, no one can get it wrong, and when a client sends work back the stage moves backwards automatically.
Clients could approve but never ask for changes. The permissions only allowed clients to say "approved." There was no way to say "this needs work" — the most common outcome in the real workflow. We had to widen the rules so clients could send deliverables back for revision.
Building and selling at the same time, alone. A one-person operation has to ship features, onboard agencies, answer feedback, and record demos — all from the same hours. The discipline is knowing that an unmarketed product helps nobody.
Accomplishments that we're proud of
The product works — not just as a demo. Agencies are running real workflows through it, and the batch wizard replaced 150 manual task creates. A clean CI pipeline, integration tests against the emulator suite, and documentation that doubles as machine-readable instructions for the AI agents.
The deliverable model earns its place — we can name the cheaper alternative (a groupKey on tasks) and say exactly why it fails: cross-stage notes, versions, client visibility, approval attribution, and package counting all need a document to live on.
The pricing model documents its own reversal: per-seat was adopted, then abandoned, because charging for a freelance camera op's seat pushes crew out of the workspace and onto WhatsApp — destroying the pipeline completeness the product depends on.
What we learned
That AI-assisted development at speed requires discipline, not just prompts. The breakthrough was giving agents stricter guardrails: steering files, architecture docs as machine-readable rules, and a CI pipeline that rejects anything that breaks the contract.
Read the security rules before designing the feature. Twice, the rules didn't constrain the implementation — they chose it, and the version they chose was better than the one we'd have written.
What's next
Partnering with agencies for marketing — agencies that use the product become advocates for it. We're evaluating a "make content for us in exchange for a subscription" model, which helps small agencies get started at zero cash cost while growing the user base organically. On the product side: a conversational planning assistant, and hosted media so review stops depending on the customer's own storage permissions.
Built With
- capacitor
- claude
- cloud-firestore
- cloud-functions
- cloud-scheduler
- express.js
- firebase
- firebase-auth
- firebase-hosting
- gemini-api
- kiro
- node.js
- nvidia
- pinia
- posthog
- secret-manager
- stripe
- tailwindcss
- typescript
- vite
- vitest
- vue
- vue-i18n
- vue-router
- zod



Log in or sign up for Devpost to join the conversation.