Contribution
Help us make VitNode even better!
So, you want to help make VitNode even more awesome? That's great! Whether you're fixing bugs, adding features, or improving documentation, your contributions are welcome.
Prerequisites
Before you start, make sure you have these installed:
- Node.js (minimum v20, recommended v22)
- Docker for local development
- pnpm as the package manager
- Your favorite code editor (we ❤️ VS Code)
Development Environment
Start the Database
We use Docker to make database setup painless:
This starts a PostgreSQL container configured for VitNode development.
Launch Developer Mode
This command:
- Builds necessary scripts
- Starts the development server
- Watches for changes and hot reloads
Voilà! Your development environment is ready at http://localhost:3000 🎉 with docs at http://localhost:3001 🎉
Project Structure
VitNode is organized as a monorepo using Turborepo:
Monorepo Magic!
VitNode uses Turborepo to keep everything organized. Apps, packages, and plugins all live together in harmony!
Coding Standards
- We use TypeScript for type safety (TypeScript Docs)
- Follow ESM (ECMAScript Modules) conventions (ESM Guide)
- Respect the ESLint configuration in each workspace (ESLint)
- Format your code with Prettier (Prettier)
- Use React Server Components where appropriate
- Write meaningful commit messages (Conventional Commits)
Database Changes
If you make changes to the database schema:
Test your changes!!! <3
Always test your database changes thoroughly before submitting a PR!
Contribution Workflow
Make Your Changes
Follow our coding standards:
- TypeScript for type safety
- ESM module conventions
- React Server Components where appropriate
- Respect ESLint rules in each workspace
Don't forget to test your changes locally! 🧪
Submit a Pull Request
Push your branch and create a PR on GitHub. Please include:
- What problem does it solve?
- How does it implement the solution? (Bonus points for screenshots or code snippets!)
- Any extra context or fun facts
Screenshots, GIFs, and memes are always welcome in your PR description!
Common Issues & FAQ
- Database won’t start? Make sure Docker is running and try
pnpm docker:dev
again. - Type errors everywhere? Double-check your Node.js and TypeScript versions.
- Something else? Ask in the community or check the docs!
Need Help?
- Check the documentation
- Look for similar issues in the issue tracker
- Ask questions in the community
Thank you for contributing to VitNode! 🚀
You rock!
Every contribution makes VitNode better. We appreciate you! 💜