Skip to content

strapi/website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

strapi-website

Source code for the strapi.io website. Monorepo with Strapi v5 CMS backend and Next.js 16 frontend.

Tech stack

Getting started

Prerequisites

  • Docker — required for the PostgreSQL database
  • Node.js 22 — we recommend using nvm to manage versions
  • pnpm 10

Setup

  1. Clone the repository

    git clone <repo-url>
    cd strapi-website
  2. Install dependencies

    # Switch to the correct Node.js version (v22)
    nvm use
    
    # Optionally, ensure the right pnpm version
    corepack prepare pnpm@10.28.1 --activate
    
    # Install all workspace dependencies
    pnpm install
  3. Configure the API token

    Before the frontend can fetch content from Strapi, you need to create an API token.

    # Start Strapi first
    pnpm dev:strapi

    [!WARNING] This step is required before the first run. Without the token, the UI app won't be able to load any content.

    Open the Strapi admin at http://localhost:1337/admin, navigate to Settings > API Tokens, and create a new token. Copy its value into STRAPI_REST_READONLY_API_KEY in apps/ui/.env.local.

    Refer to the UI README for details on all environment variables.

  4. Run the project

    # Start both Strapi and Next.js in dev mode
    pnpm dev

Project structure

Apps

Path Description
apps/ui Next.js 16 frontend (README)
apps/strapi Strapi v5 CMS (README)

Packages

Path Description
packages/eslint-config Shared ESLint + Prettier config
packages/typescript-config Shared tsconfig
packages/design-system Shared design tokens and styles
packages/shared-data Shared constants and types
packages/strapi-types Auto-generated types from Strapi schemas (README)

Scripts

pnpm dev              # Run all apps
pnpm dev:ui           # Run Next.js only
pnpm dev:strapi       # Run Strapi only
pnpm build            # Build all
pnpm lint             # Lint all packages
pnpm commit           # Interactive conventional commit

Cleanup utilities:

bash ./scripts/utils/rm-modules.sh    # Remove all node_modules
bash ./scripts/utils/rm-all.sh        # Remove node_modules, .next, .turbo, .strapi, dist
bash ./scripts/utils/rm-next-cache.sh  # Remove .next caches

Contributing

Commits

Uses conventional commits enforced by Husky + commitlint.

feat(ui): add dark mode toggle
fix(strapi): resolve null pointer on login
chore: update dependencies

When introducing new env variables, mention them in the commit body (env.VARIABLE_NAME). The auto-pr workflow extracts these into the PR description.

CI

  • ci.yml — builds on every push/PR to main
  • qa.yml — manual trigger for E2E, accessibility, and performance tests
  • auto-pr.yml — auto-creates PRs from dev to main

Documentation

Detailed docs are in the /docs directory and in individual app/package READMEs.

Credits

Built on top of strapi-next-monorepo-starter by Notum.