---
title: "How to deploy a Strapi + Next.js site on Rock8Cloud"
description: "Deploy a full Strapi 5 CMS and Next.js 16 frontend to Rock8Cloud in one click - PostgreSQL and S3 media provisioned and wired for you, a published home page live on the first deploy."
tech: "Strapi + Next.js"
icon: strapi
category: fullstack
pubDate: 2026-07-16
image: /how-to/og/howto.png
imageAlt: "How to deploy Strapi and Next.js on Rock8Cloud"
headerImage: false
exampleRepo: https://github.com/rock8-cloud/strapi-next-turborepo-starter
ctaTitle: "Ship your CMS-backed site."
ctaTitleHighlight: "In one click."
ctaSubtitle: "Strapi admin, a Next.js frontend, PostgreSQL and media storage - provisioned together and live on the first deploy."
ctaIcons: [strapi, nextjs, postgresql, typescript]
order: 10
steps:
  - name: "Start from the blueprint"
    text: "Open the Strapi + Next.js blueprint. Rock8Cloud forks the monorepo to your GitHub and creates the two services."
  - name: "Hit Deploy"
    text: "Rock8Cloud provisions PostgreSQL and an S3 bucket, wires them into Strapi, and builds both services. A seeded home page renders at your site URL as soon as the first deploy finishes."
faq:
  - q: "Do I need to set anything up before deploying?"
    a: "No. The blueprint forks the repo, provisions PostgreSQL and S3 media, generates Strapi's secrets, and wires everything through env vars. A published home page renders on the first deploy with no admin login."
  - q: "How do the two services talk to each other?"
    a: "The Next.js site reaches Strapi over the internal network for server-side fetches and over the public URL for browser-facing media. Strapi knows the web frontend URL for CORS. All of this is wired automatically at deploy - no manual URL setup."
  - q: "Where do uploaded images go?"
    a: "An S3-compatible bucket is provisioned automatically and wired into Strapi, so media survives redeploys out of the box - no manual storage setup."
  - q: "Can I change the content models?"
    a: "Yes. Edit the collections under apps/strapi/src/api/* and render new blocks in apps/web/src/components/blocks/* in your fork, then push to rebuild."
---

A headless CMS website in one deploy - [Strapi 5](https://strapi.io/) for the admin and [Next.js 16](https://nextjs.org/) for the frontend, managed as a single [Turborepo](https://turborepo.dev/) monorepo. Rock8Cloud provisions the database and media storage, wires them in, and puts a published page live before you even log in.

## Deploy in one click

The blueprint forks the monorepo to your GitHub, then builds two services from it - Strapi (port 1337) and the Next.js site (port 3000). PostgreSQL and an S3 media bucket are provisioned and connected for you.



[Strapi + Next.js example](https://github.com/rock8-cloud/strapi-next-turborepo-starter)

[1-click clone & deploy](https://app.rock8.cloud/new-deployment?blueprint=strapi-nextjs&utm_source=howto&utm_medium=landing&utm_campaign=howto&utm_content=strapi-nextjs)



Or ask an agent instead of clicking. With Rock8Cloud [connected over MCP](/how-to/connect-claude), `deploy_blueprint` with the `strapi-nextjs` slug forks the same template into your GitHub account, creates the project with its services, and starts the first build.



> **Pro tip:** The first deploy seeds a published home page and grants public read access, so your site renders immediately. Create your admin user at `/admin` on the Strapi service.



## What you get

- A **private fork** of the monorepo in your GitHub account - both services build from the one repo.
- **Two services** - the Strapi admin and the Next.js site, each with its own public URL.
- A **managed PostgreSQL** database, pre-wired via `DATABASE_URL`.
- A **managed S3 bucket** for media, pre-wired via `S3_*` env vars, so uploads survive redeploys.
- A **seeded home page** rendering at your site URL the moment the first deploy lands.
- **Deploy on push** - every push to your default branch rebuilds and ships both services.

## After it's live

Nothing to wire by hand. The two services already know each other's URLs - Strapi has its own public URL and the web frontend URL (for CORS), and the frontend has both Strapi URLs. Your site and admin work on the first deploy.

Live preview works out of the box - a shared preview secret is set on both services automatically, so the admin Preview button renders drafts in the real frontend. Published pages refresh within a few minutes through ISR. For instant revalidation on publish, follow the webhook step in the repo README.

## Customize it

Edit content models under `apps/strapi/src/api/*` and render new blocks in `apps/web/src/components/blocks/*` in your fork. Push to your default branch and Rock8Cloud rebuilds. Need more services? [PostgreSQL](/how-to/provision-postgresql), [Dragonfly](/how-to/provision-dragonfly), and [S3](/how-to/provision-s3) are one click each.
