A small Express server written in Typescript running in a Docker-Container, serving a server-side rendered React Application. This Repository is meant to be used for experimentation and trying out stuff, without relying on create-react-app or Next.js.
pnpm install
build locally:
pnpm run build
run all apps in development mode:
pnpm run dev
serve production build:
pnpm run serve
Since the application is split into multiple microfrontends, you will need to run these apps in their respective containers.
build a Docker-Container:
docker build --tag node-[APP] -f ./apps/[APP]/Dockerfile .
run as Docker-Container:
docker run -d -p 3000:3000 node-[APP]
- Minimal React Single Page Application
- NodeJS Express Server providing SSR
- Module Federation on Server and Client
- Static Site Generation
- SCSS Modules Styles
- Typescript
- Rspack Bundling
- Monorepositories
- Serviceworker using Workbox (for offline-Mode)
- Linting
- Prettier
- Vitest + React Testing Library
- and of course: dark mode
This project uses GitHub Actions for continuous integration. The following checks run automatically:
- Linting: Ensures code style consistency
- Tests: Runs the Vitest test suite
- Integration: Builds all apps, starts them, and runs smoke tests (health checks, API endpoints, SSR, security headers)
- E2E: Runs Playwright end-to-end tests
- Lighthouse: Runs Lighthouse CI performance audits
The CI pipeline runs on:
- Push to
mainanddevelopbranches - Pull requests to
mainanddevelopbranches
- Internet Explorer Support