Skip to content

kabeier/ProjectRainbows

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProjectRainbows

TypeScript + React application built with Next.js (SWC compiler).

Tech Stack

  • Next.js 15 (Pages Router)
  • React 18
  • TypeScript
  • SWC (Next.js built-in compiler/minifier; no Babel pipeline)
  • ESLint + Prettier
  • Vitest + Testing Library
  • Playwright + start-server-and-test
  • Docker + Docker Compose
  • Husky + lint-staged
  • GitHub Actions CI

Getting Started

Requirements

  • Node.js 20+
  • npm

Install

npm ci

Run the Development Server

npm run dev

Open:

Typecheck

npm run typecheck

Lint & Format

npm run lint
npm run format

Unit Tests

npm run test

E2E Tests

npm run build
npm run e2e:ci

Production Build

npm run build

Next.js build output is written to .next/.

Run Production Server Locally

npm run start

Open:

Docker

Development (Docker Compose)

Runs next dev in a container with your local source mounted for live edits.

docker compose up --build

Open:

Production (Docker Compose)

Builds and runs next start on port 4173.

docker compose -f docker-compose.yml up --build

Open:

Production-style Container

Build the image:

docker build -t projectrainbows-web .

Run it:

docker run --rm -p 4173:4173 projectrainbows-web

Open:

CI

GitHub Actions runs:

  • npm ci
  • npm run typecheck
  • npm run lint
  • npm run test:run
  • npm run build
  • npm run e2e:ci

CI also verifies there is no project Babel configuration so Next.js compiles with SWC.

Project Layout

  • pages/ — Next.js Pages Router routes

  • src/ — shared React/TypeScript components, styles, and test setup

  • .next/ — Next.js build output (generated)

  • e2e/ — Playwright end-to-end tests

  • .github/workflows/ci.yml — CI pipeline

  • Dockerfile — production Next.js container build

  • docker-compose.yml — production container config

  • docker-compose.override.yml — development container overrides

  • docker-compose.e2e.yml — Playwright tests inside Docker

  • tsconfig.json — TypeScript compiler settings

  • vitest.config.ts — Vitest configuration

  • playwright.config.ts — Playwright configuration

  • commitlint.config.cjs — commit message lint rules

  • CHANGELOG.md — release notes / project history

  • package.json / package-lock.json — dependencies + scripts

  • Makefile — convenience shortcuts for common tasks

Notes

  • .next/ is generated output and should not be committed.
  • This repo intentionally does not include a Babel config file, so Next.js uses SWC end-to-end.
  • package-lock.json must be generated by npm commands (npm install / npm ci) and never hand-edited.

About

React + TypeScript starter built from scratch with NextJs, Docker (Nginx runtime), CI, linting, unit tests (Vitest), and E2E tests (Playwright).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Generated from kabeier/ProjectSparks