Thank you for your interest in contributing! We are building the best developer-first API testing ecosystem, and we'd love your help.
Code of Conduct • Development Setup • Pull Request Process • Architecture
By participating in this project, you agree to maintain a respectful and inclusive environment. We expect all contributors to:
- Be respectful and inclusive of people of all backgrounds.
- Accept constructive criticism gracefully.
- Focus on what's best for the community.
- Show empathy towards other community members.
- Node.js 18+ or Bun (Recommended)
- PostgreSQL Database
- Git
-
Fork & Clone
git clone https://github.com/YOUR_USERNAME/api-client.git cd api-client -
Install Dependencies
bun install
-
Configure Environment
cp .env.example .env # Edit .env with your local database credentials -
Initialize Database
bun run db:push
-
Start Dev Server
bun run dev
Visit http://localhost:3000
Understanding the project structure will help you navigate the codebase.
| Directory | Description |
|---|---|
src/app |
Next.js App Router pages and layouts |
src/modules |
Feature-based modules (Auth, Requests, etc.) |
src/components/ui |
Reusable UI components (shadcn/ui) |
src/lib |
Utility functions and shared helpers |
src/store |
Global state management (Zustand) |
Each feature in src/modules follows a strict structure:
src/modules/feature-name/
├── components/ # React components
├── hooks/ # Custom hooks
├── store/ # Zustand stores
├── types/ # TypeScript types
└── utils/ # Utility functions
-
Create a Branch Use descriptive names:
feature/add-oauth2,fix/login-bug.git checkout -b feature/your-feature
-
Make Changes
- Use TypeScript for all new code.
- Follow the Prettier and ESLint configuration.
- Ensure components are responsive and accessible.
-
Commit Messages We follow Conventional Commits.
feat(auth): add google oauth provider fix(ui): resolve button misalignment on mobile docs(readme): update installation steps
-
Submit PR
- Push to your fork:
git push origin feature/your-feature - Open a PR against the
mainbranch. - Fill out the PR template completely.
- Push to your fork:
- Strict Typing: Avoid
anywhenever possible. Useunknownor specific types. - Interfaces: Use
interfacefor object shapes and component props.
- Server Components: Use Server Components by default. Add
"use client"only when interactivity is needed. - Hooks: separate logic into custom hooks under
modules/*/hooks.
- Tailwind CSS: Use utility classes for styling.
- Variables: Use CSS variables for colors to support theming (Dark/Light mode).
Found a bug? Please open an issue with:
- Steps to reproduce
- Expected behavior vs Actual behavior
- Screenshots (if visual)
- Browser/OS version
Join the discussion on GitHub Discussions.
Happy Coding! 🚀