Platforms Starter Kit

The all-in-one starter kit
for building platforms on Vercel.

Introduction · Guide · Demo · Kitchen Sink · Contributing


Deploy Your Own

Read the guide to learn how to deploy your own version of this template.

Introduction

Multi-tenant applications serve multiple customers across different subdomains/custom domains with a single unified codebase.

For example, our demo is a multi-tenant application:

Another example is Hashnode, a popular blogging platform. Each writer has their own unique .hashnode.dev subdomain for their blog:

Users can also map custom domains to their .hashnode.dev subdomain:

This repository makes it easier than ever for creators to build their own platform.

Template features

Forget manually setting up CNAME records, wrestling with DNS, or making custom server rewrite rules with NGINX. With Vercel and the Platforms Starter Kit, you can focus on building the next big thing.

  • Custom domains: Subdomain and custom domains support with Edge Functions and the Vercel Domains API.
  • Static generation with ISR: Performance without sacrificing personalization, by combining Incremental Static Regeneration (ISR) and Middleware. ISR allows you to create new content (with custom domains) on demand without needing to redeploy your application.
  • Uploading custom images: Allow your customers to upload custom thumbnail images with our Cloudinary integration.
  • Static tweets: Avoid Cumulative Layout Shift (CLS) from the native Twitter embed by using our static tweets implementation (supports image, video, gif, poll, retweets, quote retweets, and more).

Examples of platforms

Vercel customers like Hashnode, Super, and Cal.com are building scalable platforms on top of Vercel and Next.js. There are multiple types of platforms you can build with this starter kit:

1. Content creation platforms

These are content-heavy platforms (blogs) with simple, standardized page layouts and route structure.

“With Vercel, we spend less time managing our infrastructure and more time delivering value to our users.” — Sandeep Panda, Co-founder, Hashnode

  1. Hashnode
  2. Mirror.xyz
  3. Read.cv

2. Website & e-commerce store builders

No-code site builders with customizable pages.

By using Next.js and Vercel, Super has fast, globally distributed websites with a no-code editor (Notion). Their customers get all the benefits of Next.js (like Image Optimization) without touching any code.

  1. Super.so
  2. Typedream
  3. Makeswift

3. B2B2C platforms

Multi-tenant authentication, login, and access controls.

With Vercel and Next.js, platforms like Instatus are able to create status pages that are 10x faster than competitors.

  1. Instatus
  2. Cal.com
  3. Dub

Built on open source

This working demo site was built using the Platforms Starter Kit and:

We also have another example of the Platforms Starter Kit that uses Supabase for the database and Slate.js for the text editor.

Frequently Asked Questions

  • Should we be generating static webpages with getStaticProps and getStaticPaths at build time? It doesn't seem to be very scalable.

    For scale, we recommend using Incremental Static Regeneration instead. This basically means that instead of generating all pages at build time, you only specify a subset of pages and then generate the rest on the fly. Then when someone requests that page, all subsequent requests will be cached on the Vercel edge. You can also use on-demand ISR to programmatically invalidate caches per page every time someone makes a change to it, which is what we do here.

  • Is it wise to be using the /_sites/[site] path to serve all static pages/website? Wouldn't that lead to a significant amount of load on a single Next.js server?

    The beauty about a serverless setup is you won’t have to worry about load since each request invokes a separate serverless function, and once it’s cached, you don’t invoke the server anymore (the page is served directly from the Vercel edge). Read more about the Vercel Edge Network and how caching works.

Caveats

Contributing

  • Start a discussion with a question, piece of feedback, or idea you want to share with the team.
  • Open an issue if you believe you've encountered a bug with the starter kit.

Author

License

The MIT License.