Grapefruit is a monorepo that combines TypeScript, Zod, Drizzle, PostgreSQL, Next.js, Express.js, and Docker to provide a solid foundation for building scalable, maintainable, and efficient web applications. The "trpc" branch also incorporates tRPC for end-to-end typesafe APIs. Additionally, Grapefruit uses PNPM workspaces for efficient package management.
To get started with Grapefruit, follow these steps:
- First install pnpm if you don't have it already using npm i -g pnpm
- Clone the repository:
git clone https://github.com/AnirudhSinghBhadauria/Grapefruit.git
- Navigate into the project directory:
cd grapefruit
- Install the dependencies using PNPM:
pnpm install
To start the application, run the following commands:
Start the application in development mode:
pnpm dev
Build the application using Docker Compose:
docker-compose up --build
Build the application:
pnpm build
Run the application:
pnpm dev
Start the application using Docker Compose:
docker-compose up
Here are some of the features of Grapefruit:
- 🚀 Fast and efficient development experience using Next.js and Turbo Repo
- 🛡️ Strongly-typed codebase using TypeScript
- 📝 Schema validation using Zod
- 💧 Lightweight and type-safe SQL queries using Drizzle ORM
- 🐳 Dockerized for easy deployment and scaling
- 🔄 End-to-end typesafe APIs using tRPC (on the "trpc" branch)
- 📦 Efficient package management using PNPM workspaces
- TypeScript
- Zod
- Drizzle
- PostgreSQL
- Next.js
- Express.js
- Turbo Repo
- Docker
- tRPC (on the "trpc" branch)
- PNPM Workspaces
We welcome contributions from the community! If you'd like to contribute to Grapefruit, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with clear and descriptive commit messages.
- Open a pull request and describe your changes in detail.
You can also open an issue to suggest changes or report bugs.
This project is licensed under the MIT License.