Home • About • Projects • Blog • Resources • Contact
Update: TinyLaunch is now Launchling! Same idea, new name and better experience.
Back in my last post, I shared how I migrated TinyLaunch from Framer to React. At the time, it was just a cute prototype—a tiny idea for helping solo founders test startup ideas without overwhelm.
It’s now a fully functional, production-ready free tool with GPT-4o integration, dynamic plan rendering, structured feedback collection, and a real user flow from input → plan → iteration.
From Prototype to Product: What TinyLaunch Looks Like Now
Here's what the file structure looks like today:
arduino
CopyEdit
tinylaunch-web/
├── api/ // Serverless functions (Vercel)
├── src/ // App code: pages, components, hooks, utils
├── public/ // Assets (incl. favicon & SVG logo)
├── prompts/ // GPT prompt templates
├── config/, types/, ... // Env config, TypeScript types
└── ...
TinyLaunch now supports:
- A 5-step onboarding form with real-time validation
- GPT-4o plan generation + tool workflow explanations
- Airtable integration for plans + feedback
- Custom feedback scoring and bonus delivery
- Rate limiting, error boundaries, and loading states
- SEO meta tags and social previews
- Dark mode–ready theming with custom rocket branding 🚀
Using GPT-4o with a Two-Step Prompt Strategy
Early on started questioning the usability of the plans. They were pretty good generally, but I felt that for my target audience, it was likely still going to be quite overwhelming knowing how to take the first steps with the tools suggested. I therefore split the generation into two stages:
- PlanText Prompt: This provides tailored startup guidance in plain English.
- ToolStackFlow Prompt: This explains how recommended tools work together.
Each step is powered by a dedicated OpenAI call, and cleaned to avoid duplication; and it seems to be working really well.
Tech Stack Decisions
- React + Vite + TypeScript: Fast local dev + type safety
- CSS Modules: Easier maintenance than Tailwind at this stage
- Airtable: Perfect no-code backend for fast iteration
- Vercel: Zero-config deploys with edge function support
- React Router: Dynamic routes for
/plan/:planId - react-helmet-async: SEO tags for sharable plans
Debugging with Cursor and ChatGPT
I’ve started using Cursor for the dev work, and while it’s excellent for in-code debugging, I’ve found that in using ChatGPT and Cursor together I get considerably better results.
Here’s the split that works best for me:
Tool | Use Case |
Cursor | In-file debugging, refactoring, local logic issues, TypeScript friction, CSS modules |
ChatGPT | DevOps/config issues (e.g. Vercel edge bugs, API limits), architectural advice, prompt design, environment bugs |
I usually get ChatGPT to give Cursor specific instructions (e.g. “refactor this into a reusable hook”, or “extract types from this JSON”) and then let Cursor run with it. Working this way has made me much faster than relying on either tool alone (or trying to muddle through myself).
UX and Branding Polish
- New TinyLaunch rocket SVG integrated as a favicon and logo
- Soft gradients and colours from the brand style guide
- Responsive layout with auto-expanding textareas
- ThanksScreen and error boundaries to keep the flow smooth
What’s Next?
Now that the core engine works, I’m planning to:
- Add private plan pages (to save/share ideas)
- Track follow-through (who starts building?)
- Let users tweak + re-run their plans
- Explore lightweight authentication (maybe passkey-first)
Takeaways
- Cursor is incredible, but works even better with ChatGPT as a strategy layer
- Splitting your GPT prompts into “value logic” and “UI content” can give much better results
- Production-readiness doesn’t need a big stack—Airtable + Vercel + clean React was plenty for MVP
- If you’re building in public, make something tiny and keep going. TinyLaunch started with just a Tally form and Zapier.
Try it now
Turn your idea into a tiny, tangible prototype — with a little help from Launchling.
👉 Try Launchling – no signup, no jargon, just a gentle push forward.