This is a modern, full-stack TypeScript monorepo template managed with pnpm workspaces. It provides a pre-configured environment for building scalable applications with a shared core library, a SolidJS client, and an Express server.
The monorepo is organized into the following packages:
packages/client: A frontend application built with SolidJS, Vite, and Tailwind CSS. It includes Storybook for component development and Playwright for end-to-end testing.packages/server: A backend server built with Express. It uses tsx for fast development execution.packages/core: A shared library containing common logic, types, or utilities used by both the client and server. It is bundled using Rollup.
- Node.js (Latest LTS recommended)
- pnpm (Package manager)
Install all dependencies across the monorepo:
pnpm installStart the development servers for both the client and server concurrently:
pnpm dev- Client: http://localhost:5173 (default Vite port)
- Server: Check console output for port (typically configured in
src/index.ts)
Run these scripts from the root directory:
| Script | Description |
|---|---|
pnpm dev |
Starts client and server in development mode concurrently. |
pnpm build |
Builds all packages in the workspace. |
pnpm test |
Runs tests across all packages (Vitest & Playwright). |
pnpm lint |
Lints code using Oxlint. |
pnpm format |
Formats code using Oxfmt. |
pnpm check |
Runs type checking (tsc) and linting. |
pnpm prepare |
Sets up Husky git hooks. |
- Language: TypeScript
- Package Manager: pnpm (Workspaces)
- Build Tools: Vite (Client), Rollup (Core)
- Framework: SolidJS
- Styling: Tailwind CSS
- Testing: Playwright
- Documentation: Storybook
- Testing: Vitest
- Linting: Oxlint
- Formatting: Oxfmt
- Git Hooks: Husky & lint-staged
- CI/CD Readiness: Scripts are optimized for CI environments (
check,test,build).
pnpm-workspace.yaml: Defines the workspace structure..oxfmtrc.json: Oxfmt configuration.tsconfig.json: Base TypeScript configuration.