Search pages, headings and code across the docs, examples and tutorials.

to navigateto open

Rayleigh with Next

Build Rayleigh, a minimalistic portfolio with a gallery, an About page, a blog and a contact form, as a Next website that reads its content from an ohne CMS.

The finished Rayleigh home page: the logo and menu above an interior design gallery

What you will build

  • A home page of galleries that open full screen.
  • A header and footer that you edit in the dashboard, and a dark mode.
  • An About page, and a blog with a page for each post.
  • A contact form that stores each message in the CMS, with an optional spam check.
  • A dashboard that shows the website beside the form and updates it as you type.

Before you start

You need Node 26 or newer, pnpm, and some React and the Next App Router.

New to ohne itself? Read Installation and build Your first app first.

How the lessons work

  • The project is a monorepo: apps/backend is the ohne app with the CMS and the dashboard, and apps/web is the Next website.
  • Each lesson ends at a tag of ohnejs/rayleigh-next. Clone it to start from any lesson, or to compare it with your code.
  • The demo content comes from a seed that fills an empty site only. A lesson that changes the seed shows the commands to start fresh.
  • Every lesson also exists for Nuxt, with the same backend. The switch at the top of a lesson changes the framework.

Start with Project setup.