Thank you for your interest in contributing to InsForge. This guide will help you get started with the contribution process.
- Code of Conduct
- Project Structure
- Prerequisites
- Getting Started
- Development Workflow
- Testing
- Pull Request Process
- Code Style
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
The InsForge monorepo is organized as follows:
/backend- Core backend service with Express.js, PostgreSQL, and Better Auth integration/frontend- React-based admin dashboard for managing databases, users, and storage/shared-schemas- Zod schemas and TypeScript types shared between frontend and backend/docs- MCP documentation/functions- Serverless edge functions for custom business logicdocker-compose.yml- Docker config file to start the project
Before you start development, ensure you have the following:
-
Fork the repository to your GitHub account
-
Clone your fork locally:
git clone https://github.com/insforge/insforge.git cd insforge -
Install Docker
-
Open Docker App
-
Install Node.js (LTS version recommended)
-
Create a .env file from the example:
On Unix-based systems:
cp .env.example .env
On Windows:
copy .env.example .env
-
Run the project
docker compose up
-
Create a new branch for your changes:
git checkout -b type/description # Example: git checkout -b feat/site-deploymentBranch type prefixes:
feat/- New featuresfix/- Bug fixesdocs/- Documentation changesrefactor/- Code refactoringtest/- Test-related changeschore/- Build process or tooling changes
-
Make your changes following the code style guidelines
-
Add tests for your changes (see test README for guidelines)
-
Run the test suite:
npm test:e2e
-
Run linter:
npm run lint
-
Ensure all tests pass and the code is properly formatted
-
Commit your changes with a descriptive message following the Conventional Commits format:
type(scope): description [optional body] [optional screenshots / videos] [optional footer(s)] -
Push your branch to your fork
-
Open a pull request against the main branch
All contributions must include appropriate tests. Follow these guidelines:
- Write unit tests for new features
- Ensure all tests pass before submitting a pull request
- Update existing tests if your changes affect their behavior
- Follow the existing test patterns and structure
- Test across different environments when applicable
- Create a draft pull request early to facilitate discussion
- Reference any related issues in your PR description (e.g., 'Closes #123')
- Ensure all tests pass and the build is successful
- Update documentation as needed
- Keep your PR focused on a single feature or bug fix
- Be responsive to code review feedback
- Follow the existing code style
- Use TypeScript types and interfaces effectively
- Keep functions small and focused
- Use meaningful variable and function names
- Add comments for complex logic
- Update relevant documentation when making API changes