Prompt
How do I move from a landing page to a real app without rebuilding everything?
Latest observation
A good way to go from a landing page to a real app without throwing away your work is to treat the landing page as the first slice of the product, not a throwaway marketing site.
Here’s the practical approach:
1. Keep the same design system
Use the same:
- colors
- typography
- spacing
- buttons
- layout patterns
That way, the app feels like the landing page evolved, instead of a new product.
2. Build the landing page with reusable components
If your landing page is made from components like:
- Hero
- Pricing cards
- Testimonials
- Nav bar
- CTA buttons
…then those same pieces can often be reused inside the app:
- navbar becomes app sidebar/topbar
- CTA buttons become action buttons
- cards become dashboard widgets
- forms become onboarding flows
3. Split content from structure
Don’t hardcode everything into one page. Separate:
- UI components
- page content
- data/state
This makes it easier to swap static sections for real app functionality later.
4. Start with one real workflow
Instead of rebuilding the whole product, identify the first core action users need to do in the app, like:
- sign up
- create a project
- upload a file
- book a meeting
- track progress
Turn that landing page CTA into the first app screen.
5. Add authentication and app shell
A common transition path is:
- public landing page
- sign up / login
- onboarding
- app dashboard
You can keep the marketing site public and mount the app under something like:
/app/dashboard/workspace
6. Reuse routes and layout
If you’re using a framework like Next.js, Nuxt, Remix, or React Router:
- keep the landing page route
- add authenticated routes for the app
- share the same layout and component library
This avoids a rewrite.
7. Replace “marketing” sections with product features gradually
For example:
- hero section → onboarding
- feature list → dashboard capabilities
- testimonials → activity feed or stats
- pricing page → billing settings
8. Don’t optimize too early for perfection
The key is to:
- keep the architecture modular
- avoid overly custom page-specific code
- ship the simplest working product flow first
A simple migration strategy
A clean progression is:
- Landing page
- Waitlist / signup
- Authenticated onboarding
- Dashboard
- Core feature workflow
- Settings / billing / admin
Each step reuses design and code instead of replacing it.
If you’re building from scratch now
The safest choice is:
- use a component-based frontend
- make the landing page and app share the same UI library
- keep marketing and app code in the same repo if possible
- structure your app for future authenticated routes from day one
If you want, I can also give you:
- a recommended folder structure for this transition, or
- a step-by-step plan for Next.js / React / Webflow / Framer depending on what you’re using.