This project is a monorepo template for a full-stack TypeScript application with:
- Backend: Node.js (Express) with TypeScript
- Frontend: React + Vite + Tailwind CSS
- Tooling: ESLint, Prettier, Jest
aws-fullstack-template/
├── backend/ # Node.js backend (TypeScript)
├── frontend/ # React frontend (Vite, Tailwind, TypeScript)
├── test/ # Shared tests
├── ... # Root config, scripts, docs
-
Install dependencies:
npm install
-
Run the backend:
npm start
This builds and starts the backend server from the root.
-
Run the frontend (in a separate terminal):
cd frontend npm run dev
This starts the Vite dev server at http://localhost:5173
Run these from the root unless otherwise noted:
start
– Build and start the backend serverbuild
– Build both backend and frontendbuild:backend
– Build backend onlybuild:frontend
– Build frontend onlytest
– Run Jest tests with coverageformat
– Format code with Prettierlint
– Lint all code with ESLintlint:frontend
– Lint frontend codelint:backend
– Lint backend codeclean
– Remove build artifacts and dependencies
See package.json
for the full list.
This repo includes CI workflows for build, test, and dependency updates. See .github/workflows/
for details.
This template includes several GitHub Actions workflows that automate various tasks:
🚀ci.yml
– Runs your project's continuous integration (CI) tasks🔐close-merged-pull-requests.yml
– Automatically closes pull requests that have been merged⏳close-stale-issues-and-prs.yml
– Closes stale issues and pull requests🏷️label-new-pull-requests.yml
– Automatically adds labels to new pull requests🙏thank-contributors-on-issue-close.yml
– Thanks contributors when an issue they commented on is closed👋welcome-new-pull-requests.yml
– Posts a welcome message on new pull requests👋welcome.yml
– Posts a welcome message on new issues⬆️npm-update.yml
– Runs every day and updates package.json with new versions of dependencies🧹remove-stale-unmerged-branches.yml
– Remove stale unmerged branches🧹remove-merged-branches.yml
– Remove merged Branches
These workflows use the secrets.GITHUB_TOKEN secret, which GitHub automatically creates for every repository. You can create a personal access token and add it as a secret in your repository. For more information, see Creating and storing encrypted secrets.
Contributions are welcome! Please read the Contributing Guide and Code of Conduct.
MIT © 2024 Jagoda11