The vibe coding workflow has a clean ending: the app is live, the Vercel URL works, the client can see it. Then the question arrives: "Can you send me the files?"
This is where most vibe coders hit a wall. The build part has excellent tooling. The delivery part is still email attachments and expired WeTransfer links.
What clients actually need at handoff
When a client hires a vibe coder for a landing page, a Shopify theme, a custom tool, or a web app, the handoff usually involves:
- Source files: the actual code, assets, exports — a ZIP or repo access
- Access credentials: admin passwords, API keys, deployment logins
- A walkthrough: a short video explaining how to use what was built
- Approval: the client needs to confirm they received and accepted everything
None of these have clean tooling in the vibe coder stack. Bolt, Lovable, Cursor, and Claude Code are excellent at building. They hand off to email, Google Drive, or WhatsApp.
The specific problems
Problem 1: Files expire or break
WeTransfer's free plan expires links after 7 days. Google Drive links break when permissions change. Dropbox shared folders require the client to have an account. The client comes back two months later needing the source files and the link is dead.
The fix: use a permanent delivery link. Upload once, get a URL that never expires. When the client needs the files again in six months, the same link still works.
Problem 2: Credentials can't go in email
Sending passwords and API keys over email is a habit that creates security exposure. Gmail indexes everything. Email is stored in 3-5 places (sent, received, spam filters, backups). Passwords sent over email in 2024-2025 are often still readable in 2026.
The fix: a self-destructing encrypted note. Client opens it once, the note is gone. Nothing in email history.
Problem 3: No record of approval
"The client said they were happy with it" is not a paper trail. When a client comes back three months later saying the logo isn't what they asked for, there's no record of what was delivered and when they signed off.
The fix: an explicit approval button. The client clicks Approve per deliverable. You have a timestamped record with their name. Project is closed.
Problem 4: Multiple links create confusion
A typical vibe coder handoff might involve: a Vercel URL, a GitHub repo link, a Figma source file, a ZIP of exported assets, and a Loom walkthrough. That's five links in an email. The client downloads the wrong version three months later and blames the developer.
The fix: a portal. One URL, all deliverables, organized by the developer.
The current tool options
For file delivery:
- 8fs ($12/month) — permanent branded delivery links, portals with client approval, view tracking. Integrates with Claude Code via MCP.
- Filepass — niche tool for creative file delivery, less suited for code/app handoffs
- Google Drive — works, but requires client to have a Google account for editable access, links break on permission changes
- GitHub repo — correct for source code, but clients can't download it cleanly and it's not branded
For credentials:
- 8fs secure notes — included in the same tool, encrypted, self-destructing
- 1Password share link — good, but requires 1Password subscription
- One-time secret (free) — works, no branding, third-party service
- Email — don't
For walkthroughs:
- Loom — standard, works well, now owned by Atlassian (pricing has increased)
- Tella — Loom alternative, bootstrapped, growing fast in the indie dev community
- Screen recording to 8fs — record with QuickTime or any tool, upload to 8fs for a permanent branded playback link
For approval:
- 8fs portals — the client opens a portal URL, views each file inline, clicks Approve or Request changes per file
- Email "looks good" — not enforceable, not recorded
- Notion comment — requires client to have a Notion account and know how to comment
The workflow that actually works
1. Build (Claude Code, Cursor, Bolt, Lovable — wherever)
2. Package the deliverables
- Source code: ZIP or repo URL
- Assets: exported files
- Credentials: listed in a secure note draft
- Walkthrough: 3-5 minute screen recording
3. Upload and create a portal
Create a portal in 8fs named after the client project. Upload the ZIP, the assets, and the screen recording. The secure note goes separately — not in the portal.
4. Send one email
"Hi [name], everything for the [project] is in your portal: [link]
You can view each file inline, leave comments, and click Approve when you're happy with each deliverable.
Admin credentials: [secure note link — opens once]
Let me know if you need anything before signing off."
5. Wait for the portal approval
When every file shows Approved, the project is closed. You get email notifications as the client works through the deliverables. No chasing required.
The MCP shortcut for Claude Code users
If you're building with Claude Code, the delivery step can be automated. The 8fs MCP server connects directly to Claude Code:
claude mcp add --transport http https://mcp.8fs.io \
--header "Authorization: Bearer 8fs_YOUR_KEY"
After that, you can tell Claude Code: "Upload the files in /dist/ to my 8fs account, create a portal called '[client] Final Deliverables', and give me the link." It runs the upload, creates the portal, adds the files, and returns the URL. The entire delivery step happens inside the terminal.
What this costs
8fs is $12/month for unlimited portals, unlimited delivery links, and MCP access. That's cheaper than a single Loom Pro seat and covers file delivery, approval tracking, and secure credential sharing.
The free plan works for testing: 5 delivery links, 1 GB storage, no credit card.
The vibe coding stack is mostly free or cheap. The delivery layer should be too. 8fs.io
The pattern that separates professionals from beginners
Clients who hire vibe coders often can't evaluate the code quality. They evaluate the process. A polished handoff — branded delivery page, organized portal, explicit approval flow, no password in email — signals that the developer knows what they're doing.
The delivery is the last thing the client sees before they pay the final invoice. Make it look like a product.