Thanks for your interest in contributing! This guide will help you get started.
- Fork the repository
- Clone your fork:
git clone https://github.com/ishaan1013/axiom.git
- Create a new branch:
git checkout -b feature/your-feature-name
- Follow the setup instructions in the README
feature/
- New featuresfix/
- Bug fixesrefactor/
- Code refactoring
Follow conventional commits:
type(scope): description
[optional body]
Types:
feat
: New featurefix
: Bug fixstyle
: Formatting changesrefactor
: Code restructuring
- Use TypeScript
- Follow existing code formatting (Prettier)
- Keep components small and focused
- Use meaningful variable names
- Update your branch with main:
git rebase main
- Push to your fork:
git push origin feature/your-feature-name
- Create a PR with:
- Clear title and description
- Link to related issues
- Screenshots for UI changes
- List of tested browsers/devices
axiom/
├── frontend/ # Next.js frontend
│ ├── app/ # Pages and routing
│ ├── components/ # React components
│ └── lib/ # Utilities and helpers
└── backend/ # Express backend
├── src/ # Source code
└── prisma/ # Database schema
Notable files:
- Frontend
frontend/lib/lang.ts
- Language definitionfrontend/components/editor/index.tsx
- Editor componentfrontend/components/editor/explorer.tsx
- File explorerfrontend/lib/query.ts
- Tanstack Query hooks; write all query and mutation logic herefrontend/lib/actions.ts
- Data fetching helpers; write all data fetching logic here
- Backend
backend/src/index.ts
- Backend entry point and HTTP route handlingbackend/src/socketio.ts
- Socket.io event handling for workspace collaborationbackend/src/utils.ts
- Prisma client operations; write all database operations herebackend/prisma/schema.prisma
- Prisma database schema
- Check existing issues
- Create a new issue
- Ask Ishaan ([email protected]) or Rajan ([email protected])