Building a Marketing Site and Web App in the Same Next.js Codebase: A Practical Guide
Discover how to efficiently build a marketing site and web app in the same Next.js codebase. This guide covers structure, routing, deployment, and best practices for startups and SaaS.

Table of Contents
- Why Combine Your Marketing Site and Web App in Next.js?
- Can You Combine a Marketing Site and Web App Using Next.js?
- Planning Your Next.js Project Structure
- 1. Single Repository, Carefully Segmented
- 2. Using the
/appDirectory (Next.js 13+) - 3. Monorepo for Large Teams
- Routing: Mapping URLs to Marketing and App Sections
- Static and Dynamic Routes
- Sharing Components and Design System
- Authentication and Protected Routes
- Deployment: Going Live with Your Unified Next.js Project
- Handling Multi-Domain or Multi-App Setups
- Next.js Best Practices for Combined Sites
- Common Challenges and How to Overcome Them
- Example: Next.js Folder Structure for Marketing Site and Web App
- Latest News & Trends
- Conclusion: Launch Better, Faster, and Smarter
- About Prateeksha Web Design
If you're launching a SaaS product or a startup, you know the value of a powerful marketing site and a robust web app. But maintaining two separate codebases can be a nightmare—duplicated code, inconsistent branding, and higher maintenance costs. What if you could efficiently build both a marketing site and a web app within the same Next.js codebase? That's exactly what this guide will show you.
We'll cover the why and how, walk through best practices for project structure, explore real-world folder organization, and share deployment strategies. Whether you're a startup founder, a solo developer, or a tech lead, you'll discover how Next.js can streamline your workflow and help you launch faster.
Why Combine Your Marketing Site and Web App in Next.js?
Combining your marketing site and web application in a single Next.js codebase brings several clear advantages:
- Consistency: Shared design system and components ensure a seamless user experience.
- Efficiency: No duplicated code or double maintenance.
- Faster deployment: Launch marketing and product updates together.
- SEO benefits: Leverage Next.js SSR and static generation for your marketing pages.
- Simplified infrastructure: Manage one deployment pipeline and hosting setup.
Can You Combine a Marketing Site and Web App Using Next.js?
Absolutely! Next.js is designed for both static and dynamic content, making it perfect for projects that need both a marketing site (typically static or SSR for SEO) and a protected, dynamic app (user dashboard, admin, etc.).
With its flexible routing, file-based organization, and support for both SSR and static generation, Next.js is a top choice for startups and SaaS platforms looking to maximize efficiency.
Planning Your Next.js Project Structure
One of the most important steps is laying out your project structure. Here are the strategies that work best:
1. Single Repository, Carefully Segmented
Keep your marketing site and app in the same Next.js codebase, but segment them at the routing and folder level.
Common approach:
- Root-level
/pages(or/appdirectory in Next.js 13+) /pages/index.tsxfor marketing homepage/pages/about.tsx,/pages/pricing.tsx, etc. for marketing/pages/app/or/pages/dashboard/for the web application
Example folder structure:
/pages
├── index.tsx // Marketing homepage
├── about.tsx // Marketing page
├── pricing.tsx // Marketing page
└── app/
├── index.tsx // App dashboard
├── settings.tsx // App settings
└── ...
/components
├── Navbar.tsx
├── Footer.tsx
├── ...
/styles
└── ...
TipUse a shared `/components` folder for UI elements used by both the marketing site and app—like buttons, navbars, and footers. This avoids duplication and ensures design consistency.2. Using the /app Directory (Next.js 13+)
If you're using Next.js 13 or above, the new /app directory offers enhanced routing and layout features. You can segment routes like /marketing and /app with their own layouts, enabling even better separation of concerns while still sharing code.
3. Monorepo for Large Teams
For very large projects, a monorepo using tools like Turborepo can help manage complex apps, but for most startups, a single Next.js project suffices.
Routing: Mapping URLs to Marketing and App Sections
Next.js makes it simple to set up routes for both your marketing site and web application. Here’s how:
- Marketing pages:
/,/about,/features,/pricing, etc. - App pages:
/app,/app/dashboard,/app/settings, etc.
With file-based routing, you can easily separate public (marketing) and protected (app) routes.
WarningBe careful with route naming to avoid conflicts. For example, avoid naming a marketing page `/app` if that's your app’s base route.Static and Dynamic Routes
- Marketing pages: Use static generation (
getStaticProps) or SSR (getServerSideProps) for SEO. - App pages: Use dynamic routing and authentication checks to serve personalized content.
Sharing Components and Design System
One of the biggest benefits of a unified Next.js codebase is sharing components, styles, and even utility functions between your marketing site and web app.
- /components folder: Shared UI elements (buttons, modals, navbars)
- /styles or CSS-in-JS: Centralized styling
- /lib: Shared utilities (API clients, helpers)
This ensures brand consistency and cuts down on redundant work.
Authentication and Protected Routes
A common pattern is to protect all /app routes, requiring users to log in before accessing the web application, while keeping marketing pages public.
How to manage authentication:
- Use middleware (Next.js 12+) or API routes to check authentication for
/app/*routes - Redirect unauthenticated users to the login page
- Protect sensitive API endpoints
Deployment: Going Live with Your Unified Next.js Project
Deploying a combined marketing site and web app is straightforward with modern platforms:
- Vercel: Next.js' creator, easy SSR/static hosting, custom domains, CI/CD
- Netlify: Great for static & hybrid deployments
- AWS Amplify/Firebase: For serverless and scalable backends
Deployment steps:
- Push your code to GitHub/GitLab
- Connect repo to platform (e.g., Vercel)
- Set environment variables (API keys, secrets)
- Configure custom domain(s) if needed
- Deploy!
Handling Multi-Domain or Multi-App Setups
For advanced use cases (e.g., marketing site on www.domain.com, app on app.domain.com):
- Configure custom domains or subdomains in your deployment platform
- Use Next.js middleware to handle redirects or rewrites as needed
Next.js Best Practices for Combined Sites
- Consistent Naming: Maintain clear folder and file naming conventions.
- Component Reuse: Avoid duplicating UI or logic.
- Environment Variables: Separate staging and production secrets.
- Type Safety: Use TypeScript for reliability and maintainability.
- Automated Testing: Set up unit and integration tests for both marketing and app routes.
- Access Controls: Double-check that protected app pages can't be accessed by unauthenticated users.
Common Challenges and How to Overcome Them
1. Codebase Bloat: As your project grows, structure your components and utilities clearly. Consider splitting rarely-shared code into subfolders.
2. Route Conflicts: Use distinct base routes like /app for your dashboard and / for marketing to prevent overlap.
3. SEO for App Pages: Prevent search engines from indexing app/dashboard pages with proper meta tags and robots.txt.
4. Staging vs. Production: Use environment variables and preview deployments to avoid leaking sensitive data.
Example: Next.js Folder Structure for Marketing Site and Web App
/
├── app/ # Next.js 13+ routing
│ ├── layout.tsx # App-wide layout
│ ├── page.tsx # Marketing homepage
│ ├── about/page.tsx # Marketing about page
│ ├── pricing/page.tsx # Marketing pricing
│ └── dashboard/ # App area
│ ├── layout.tsx
│ ├── page.tsx # Dashboard home
│ └── settings/page.tsx
├── components/ # Shared UI
├── lib/ # Shared utilities
├── public/ # Static assets
├── styles/
└── ...
Latest News & Trends
Stay ahead by keeping up with the latest Next.js trends and community recommendations:
- App Router Adoption: Next.js 13’s App Router makes it easier to segment marketing and app sections, with independent layouts and better performance.
- Server Components: Server Components are gaining traction for optimizing load times and reducing bundle sizes, especially for complex SaaS apps.
- Edge Middleware: Edge Middleware allows for advanced routing and authentication, improving performance and security for both marketing and app routes.
- Monorepo Tools: Tools like Turborepo are making it easier to manage large Next.js monorepos, though most startups don’t need this complexity at launch.
Conclusion: Launch Better, Faster, and Smarter
Combining your marketing site and web app in a single Next.js codebase is a proven strategy for startups and SaaS businesses. You’ll ship faster, maintain consistency, and make life easier for your team.
Ready to get started? Plan your project structure carefully, leverage Next.js best practices, and enjoy the benefits of a unified, modern stack.
If you want expert help building your next Next.js marketing site and web app, reach out to professionals who understand the unique needs of startups and SaaS companies.
About Prateeksha Web Design
Prateeksha Web Design specializes in building unified Next.js marketing sites and web apps, delivering seamless user experiences, robust codebases, and proven results for SaaS startups and modern businesses.
Chat with us now Contact us today.