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
Fork & Clone
First, fork the VitNode repository, then clone your fork:
git clone https://github.com/{YOUR-USERNAME}/vitnode.git && cd vitnodeInstall Dependencies
pnpm installStart the Database
We use Docker to make database setup painless:
pnpm docker:devThis starts a PostgreSQL container configured for VitNode development.
Launch Developer Mode
pnpm devThis 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:
vitnode/
βββ apps/
β βββ web/ # Main frontend application
β β βββ src/app/[locale]/(main) # Main application code
β β βββ src/app/[locale]/admin # Admin panel code
β βββ docs/ # Documentation site
βββ packages/
β βββ vitnode/ # Core framework code
β βββ config/ # Shared ESLInt, TypeScript configs
β βββ create-vitnode-app/ # CLI tool for creating new projects
βββ plugins/ # Official open-source pluginsMonorepo 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 & Prettier configuration in each workspace (ESLint & Prettier)
- Use React Server Components where appropriate
- Write meaningful commit messages (Conventional Commits)
Database Changes
If you make changes to the database schema:
pnpm db:migrate # Run migrationsTest your changes!!! <3
Always test your database changes thoroughly before submitting a PR!
Contribution Workflow
Create a Branch
git checkout -b feature/your-amazing-feature
# or
git checkout -b fix/issue-you-are-solvingMake Your Changes
Follow our coding standards:
- TypeScript for type safety
- ESM module conventions
- React Server Components where appropriate
- Respect ESLint, Prettier rules in each workspace
Don't forget to test your changes locally! π§ͺ
Commit Your Changes
git commit -m "feat: add cool new feature"
# or
git commit -m "fix: solve critical bug in authentication"We follow Conventional Commits format.
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:devagain. - 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! π