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.
Now?
It’s a fully functional, production-ready app with GPT-4o integration, dynamic plan rendering, structured feedback collection, and a real user flow from input → plan → iteration.
Let me show you what’s changed, and how I built it.
🧱 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 I hit a quality wall—plans were okay, but not sharp. So I split the generation into two stages:
- PlanText Prompt: Tailored startup guidance in plain English.
- ToolStackFlow Prompt: Explains how recommended tools work together.
Each step is powered by a dedicated OpenAI call, and cleaned to avoid duplication. It’s working 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 the magic happens when I use ChatGPT and Cursor together.
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.
✨ 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 your 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 is plenty for MVP
- If you’re building in public, ship 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.