Inspiration
Every PM I know has the same problem: hundreds of customer feedback items across G2, Slack, support tickets, and interviews — but no clear answer on what to build next. Roadmaps get built on the loudest voice, not the real signal. I built ShipReady to fix that.
The insight was simple: the data exists. Customers are already telling you what to build. You just need a system to listen faster.
What it does
ShipReady turns messy customer feedback into evidence-backed product decisions in under 60 seconds.( prioritise as well that which feedback part to be solve first and which later)
Paste anything — G2 reviews, Slack messages, support tickets, interview notes — and ShipReady:
- Clusters feedback into themes with opportunity scores
- Shows real customer quotes as evidence for each theme
- Makes explicit BUILD NOW / PLAN LATER / QUICK WIN / LOW SIGNAL decisions with reasoning
- Generates a complete engineering-ready PRD where every user story links back to actual customer words
Not summaries. Not sentiment. Actual decisions. With proof.
How we built it
- Frontend: Next.js 15 + Tailwind CSS + shadcn/ui
- AI Engine: Claude API (claude-sonnet-4-5) via
OpenRouter — two API calls: one for theme discovery
- opportunity scoring, one for PRD generation
- State Management: localStorage for passing data between pages (no database needed)
- Analytics: Novus.ai for product instrumentation
- Deployment: Vercel (serverless API routes for secure Claude API calls)
The core insight in the prompt engineering: forcing Claude to extract evidence quotes directly from the pasted feedback, not generate generic ones. Every recommendation is traceable to real customer words.
Challenges we ran into
JSON reliability: Getting Claude to return clean JSON consistently required careful prompt engineering and a markdown-stripping safety layer
State flow: Passing the right theme data between 5 pages without a database — solved with structured localStorage keys
Evidence traceability: Making sure AI quotes came from actual feedback (not hallucinated) — solved by explicitly instructing Claude to extract only from provided text
Deployment: Next.js 16 in a subdirectory caused Vercel to not detect the framework — fixed with Root Directory setting
Accomplishments that we're proud of
- Built and shipped a fully working AI product in one day
- Every PRD user story is linked to a real customer quote — no AI hallucinations in the output
- The BUILD NOW / PLAN LATER / QUICK WIN / LOW SIGNAL framework makes decisions feel trustworthy, not generic
- Novus instrumented from day one — we can already see how PMs interact with the product
- Zero login required — a stranger can get value in under 60 seconds
What we learned
- Prompt engineering for structured output is a product skill, not just a technical one
- The most important feature was the smallest one: showing the customer quote below each user story
- Shipping fast forces better prioritization — every feature that didn't make the cut made the product stronger
- Novus's code-scan approach to analytics is genuinely faster than manual SDK instrumentation
What's next for ShipReady
- Multi-source input: Direct integrations with Intercom, Zendesk, and G2 to pull feedback automatically
- Team collaboration: Share analyses with your team, comment on themes, vote on priorities
- Trend tracking: Compare feedback themes month over month to see what's getting worse or better
- Export to Jira/Linear: One-click to create tickets from the generated PRD
Built With
- api
- css
- next.js
- novus.ai
- openrouter
- shadcn/ui
- tailwind
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.