Introduction

NextJS Starter Template

📄 About

This repository contains a monorepo (opens in a new tab) boilerplate written in Next.js (opens in a new tab), managed by the pnpm (opens in a new tab) package manager.

You can use it with the backend template, written in Laravel — laravel-starter-tpl (opens in a new tab).

→ Purpose

  • Establish a structure and present a lifecycle perspective (dx, ci/cd, deployments);
  • Show how to create and consume shared packages, locales, assets, and API types;
  • Ship fully configured repository with integrated tools & configs, like tsconfig, eslint, jest, cypress, tailwind, changelogs, versioning, codecov, codeclimate, sentry, and others;
  • Clarify some advantages of monorepo (team cohesion, consistency, duplication, refactorings, atomic commits)

🤔 What's inside?

Open in Gitpod (opens in a new tab)

This turborepo uses pnpm (opens in a new tab) as a package manager. It includes the following packages/apps:

→ Apps

NameURLDescription
apps/docs🌎 Demo (opens in a new tab)Nextra (opens in a new tab) documentation template generated from Nextra: Docs Starter Kit (opens in a new tab)
apps/web🌎 Demo (opens in a new tab)Next.js (opens in a new tab) app with tailwindcss and sentry support.
Apps should not depend on apps, they can depend on packages.

→ Packages

NameDescription
packages/uia stub React component library shared by the web application
packages/common-i18nlocales for multi-language support
packages/eslint-config-customeslint configurations (includes eslint-config-next and eslint-config-prettier)
packages/jest-configJestJS (opens in a new tab) configs used across the monorepo
Apps can depend on packages, packages can depend on each others.

→ Utilities and Features

This repository has some additional tools already setup for you: