2025 Discover Program Project Monorepo - Typescript
This repository houses a monorepo setup for managing both frontend and backend applications, as well as shared configurations for TypeScript and ESLint. It is structured using Turborepo for efficient builds and dependency management.
Note: For all issues, please direction them to Ethan Pineda (contact above)
.
├── apps
│ ├── backend # Node.js + Express backend (with Supabase integration)
│ ├── frontend # React frontend using Vite + TypeScript
│ ├── README.md # Documentation for each app
│
├── packages
│ ├── eslint-config # Shared ESLint configuration
│ ├── typescript-config # Shared TypeScript configuration
│
├── .turbo # Caching & performance optimizations
├── .vscode # Project-specific VSCode settings
├── package.json # Global package management
├── turbo.json # Turborepo configuration
└── README.md # This document
npm install
Start both frontend and backend applications in development mode:
npm run dev
Alternatively, you can start them separately:
- Backend:
npm run dev --workspace=apps/backend
- Frontend:
npm run dev --workspace=apps/frontend
We enforce strict formatting and linting rules across all applications using Prettier and ESLint.
To manually format the code:
npm run format
To run the linter:
npm run lint
Script | Description |
---|---|
npm run dev |
Starts both frontend and backend applications |
npm run build |
Creates a production-ready build |
npm run lint |
Runs ESLint across all workspaces |
npm run format |
Runs Prettier to format code |
npm test |
Runs test suites (if applicable) |
- Uses shared ESLint and Prettier configurations (
/packages/eslint-config
). - Single quotes only (
'
). - Enforced import order:
"react"
- Third-party modules
- Absolute imports (
src/...
) - Relative imports (
./...
)
- Shared configurations (ESLint, TypeScript) live in
packages/
- Use absolute imports where possible.
- Keep application logic modular for reusability.
If you are contributing, ensure you follow the setup guide above and adhere to the repository’s coding standards. All pull requests must pass linting and formatting checks.
- Built using Turborepo for monorepo management.
- Frontend: React, TypeScript, Vite.
- Backend: Node.js, Express, Supabase.
- Styling: TailwindCSS (if applicable).
Each app (apps/frontend
and apps/backend
) contains its own README.md
with further details on installation, usage, and specific configurations.
- Ethan Pineda, DISC Technical Lead 2024-2025