Case Study
ShippedPinned
Post-it Notes for WordPress Admin. Team handoff notes that stick.
Full agency pipeline — PRD to shipped plugin in one session. Two debate rounds, parallel build, QA caught 6 bugs (all fixed), and the first project to receive a full 4-member advisory board review.
By the numbers
The build
One session. Four phases. First board review.
Two creative directors. One orchestrator. Two QA specialists. Four advisory board members. Zero humans writing code.
PRD & Debate
Rounds 1–2Steve pushed for a tactile, spatial experience — double-click anywhere to create a note, 5 colors, visual aging so old notes fade. Elon pushed for structured data — custom tables over post meta, REST API over admin-ajax, WP Cron for expiry cleanup, and role-based visibility so notes reach the right people. They debated whether @mentions needed real-time notifications or if acknowledgments were enough.
Name: "Pinned." Custom database tables for performance. REST API endpoints. Double-click creation with 5 colors. Note aging via CSS opacity. @mentions with acknowledgment tracking. WP Cron for automatic expiry. Role-based visibility filters.
Build
Rounds 3–4Steve built the entire frontend in one pass — double-click note creation, draggable positioning, 5-color picker, visual aging based on note age, @mention autocomplete, and acknowledgment buttons. Elon built the PHP backend in parallel — custom database tables, REST API controllers, WP Cron scheduled cleanup, role-based access control, and the @mention notification system.
Frontend: Vanilla JS with no dependencies. Backend: PHP 8 with custom tables and REST API. Both worked from the same decisions.md. Zero merge conflicts.
QA
Round 5Margaret Hamilton found 6 bugs — a race condition in double-click creation, a CSS z-index conflict with WP admin menus, @mention autocomplete failing for usernames with hyphens, note aging calculation off by one day, expiry cron not cleaning up acknowledged notes, and role visibility leaking to logged-out users. All six fixed in the same round.
All 6 bugs fixed. Re-review passed. Margaret: GO. Jensen: GO with advisory notes on scaling.
Board Review
Round 6First project to go through the full 4-member advisory board. Warren Buffett challenged the market positioning: "This is a hobby, not a business — who pays for sticky notes?" Shonda Rhimes pushed for threading: "Without replies, notes are shout-into-the-void. You need conversation for retention." Oprah Winfrey focused on onboarding: "Add an example note on first install so new users see the value immediately." Jensen Huang approved the architecture.
Board feedback logged for future iterations. Ship approved with current feature set. Threading and onboarding improvements queued for v2.
Architecture
Custom tables. REST API. Zero post meta.
The core decision: custom database tables over WordPress post meta. Notes are not posts — they're lightweight, ephemeral, and high-frequency. Custom tables give indexed queries, clean schema, and no meta_key/meta_value overhead.
Note Creation UI
Double-click anywhere on the admin dashboard to create a note. Choose from 5 colors. Drag to reposition. Notes persist position across sessions.
REST API
Full CRUD for notes via REST. Create, read, update, delete, acknowledge, and filter by role. All endpoints capability-checked and nonce-verified.
Custom Tables
Three custom tables for notes, mentions, and acknowledgments. Indexed for fast dashboard queries. No post meta overhead.
Background Jobs
Hourly cron job removes expired notes. Note aging calculates visual opacity based on creation date. Role visibility synced on user role change.
Deliverables
What the agency produced.
Double-Click Note Creation
Click anywhere on the WordPress admin dashboard to spawn a new sticky note. Position persists. No modal, no form — just write.
Steve Jobs (Frontend)
5-Color System
Yellow, blue, green, pink, purple. Each color can carry team meaning — yellow for general, red for urgent, green for done. No enforcement, just convention.
Steve Jobs (Frontend)
Note Aging
Notes visually fade over time via CSS opacity. A 7-day-old note looks different from a fresh one. Creates natural pressure to acknowledge or clean up.
Steve Jobs + Elon Musk
@Mentions & Acknowledgments
Tag teammates with @username. Recipients see a notification badge. Click to acknowledge — the sender knows it was read. No email, no Slack — just the admin.
Elon Musk (Backend)
Expiry & Cron Cleanup
Set an expiry date on any note. WP Cron removes expired notes hourly. No manual cleanup needed. Dashboard stays clean automatically.
Elon Musk (Backend)
Role-Based Visibility
Notes can target specific roles — show a note only to editors, or only to admins. Everyone sees their own notes. No information leaks across roles.
Elon Musk (Backend)
Advisory Board
First 4-member board review.
Pinned was the first project reviewed by all four advisory board members. Their feedback shaped the v2 roadmap before v1 even shipped.
Warren Buffett
Market Viability
“This is a hobby, not a business. Who pays for sticky notes? You need to answer the 'why not just use Slack' question before this ships.”
Shonda Rhimes
User Retention
“Without threading, notes are shout-into-the-void. You need conversation — replies, reactions, something that keeps people coming back. That's retention.”
Oprah Winfrey
Onboarding Experience
“Add an example note on first install. A welcome note that shows the colors, the mentions, the aging. Let people feel it before they have to learn it.”
Jensen Huang
Architecture
“Custom tables are the right call. Post meta would choke at scale. REST API is clean. Ship it — the board feedback is for v2.”
What we learned
Board review before ship catches strategy gaps.
Buffett's “hobby not a business” challenge forced the team to articulate the value proposition. That clarity would have been missed without the board round.
QA at scale finds integration bugs code review misses.
Six bugs — none visible in isolated code review. The z-index conflict, the hyphenated username edge case, the off-by-one aging — all required running the full plugin in a real WordPress environment.
Ship v1, queue v2.
Threading, onboarding notes, and Slack-style reactions all came from board feedback. Instead of blocking the ship, they became the v2 roadmap. Ship what works. Improve what matters.
Your PRD could be next.
Write a clear requirements document. Drop it in. The agency debates, plans, builds, reviews, and ships. You get the product.