No description
  • TypeScript 85.3%
  • CSS 14.5%
  • JavaScript 0.2%
Find a file
2025-10-01 02:58:11 +00:00
app Initial commit 2025-10-01 02:58:11 +00:00
components/ui Initial commit 2025-10-01 02:58:11 +00:00
lib Initial commit 2025-10-01 02:58:11 +00:00
.gitignore Initial commit 2025-10-01 02:58:11 +00:00
components.json Initial commit 2025-10-01 02:58:11 +00:00
middleware.ts Initial commit 2025-10-01 02:58:11 +00:00
next.config.ts Initial commit 2025-10-01 02:58:11 +00:00
package.json Initial commit 2025-10-01 02:58:11 +00:00
pnpm-lock.yaml Initial commit 2025-10-01 02:58:11 +00:00
postcss.config.mjs Initial commit 2025-10-01 02:58:11 +00:00
README.md Initial commit 2025-10-01 02:58:11 +00:00
tsconfig.json Initial commit 2025-10-01 02:58:11 +00:00

Next.js Multi-Tenant Example

A production-ready example of a multi-tenant application built with Next.js 15, featuring custom subdomains for each tenant.

Features

  • Custom subdomain routing with Next.js middleware
  • Tenant-specific content and pages
  • Shared components and layouts across tenants
  • Redis for tenant data storage
  • Admin interface for managing tenants
  • Emoji support for tenant branding
  • Support for local development with subdomains
  • Compatible with Vercel preview deployments

Tech Stack

Getting Started

Prerequisites

  • Node.js 18.17.0 or later
  • pnpm (recommended) or npm/yarn
  • Upstash Redis account (for production)

Installation

  1. Clone the repository:

    git clone https://github.com/vercel/platforms.git
    cd platforms
    
  2. Install dependencies:

    pnpm install
    
  3. Set up environment variables: Create a .env.local file in the root directory with:

    KV_REST_API_URL=your_redis_url
    KV_REST_API_TOKEN=your_redis_token
    
  4. Start the development server:

    pnpm dev
    
  5. Access the application:

Multi-Tenant Architecture

This application demonstrates a subdomain-based multi-tenant architecture where:

  • Each tenant gets their own subdomain (tenant.yourdomain.com)
  • The middleware handles routing requests to the correct tenant
  • Tenant data is stored in Redis using a subdomain:{name} key pattern
  • The main domain hosts the landing page and admin interface
  • Subdomains are dynamically mapped to tenant-specific content

The middleware (middleware.ts) intelligently detects subdomains across various environments (local development, production, and Vercel preview deployments).

Deployment

This application is designed to be deployed on Vercel. To deploy:

  1. Push your repository to GitHub
  2. Connect your repository to Vercel
  3. Configure environment variables
  4. Deploy

For custom domains, make sure to:

  1. Add your root domain to Vercel
  2. Set up a wildcard DNS record (*.yourdomain.com) on Vercel