Thank you for your interest in contributing to FullStack Agent! We welcome contributions from the community and are grateful for any help you can provide.
By participating in this project, you agree to abide by our Code of Conduct. Please treat all contributors with respect and professionalism.
- Check existing issues before creating a new one
- Use clear, descriptive titles
- Include steps to reproduce the issue
- Provide system information (OS, Node.js version, etc.)
- Include relevant error messages and logs
- Check if the feature has already been suggested
- Provide a clear use case
- Explain how it benefits users
- Consider implementation complexity
-
Fork the Repository
git clone https://github.com/FullstackAgent/FullstackAgent.git cd FullstackAgent -
Create a Feature Branch
git checkout -b feature/your-feature-name
-
Make Your Changes
- Follow the existing code style
- Add tests for new features
- Update documentation as needed
-
Test Your Changes
npm test npm run lint -
Commit Your Changes
- Use clear, descriptive commit messages
- Follow conventional commit format:
feat: add new feature fix: resolve bug in component docs: update README style: format code refactor: restructure module test: add unit tests chore: update dependencies
-
Push and Create PR
git push origin feature/your-feature-name
- Create pull request on GitHub
- Link related issues
- Provide detailed description
- Node.js 20.x or higher
- PostgreSQL database
- Kubernetes cluster access
# Install dependencies
cd fullstack-agent
npm install
# Set up environment
cp .env.example .env.local
# Edit .env.local with your settings
# Run database migrations
npx prisma generate
npx prisma db push
# Start development server
npm run dev- Use TypeScript for all new code
- Enable strict mode
- Properly type all functions and variables
- Avoid
anytype unless absolutely necessary
- Use functional components with hooks
- Keep components small and focused
- Extract reusable logic into custom hooks
- Use proper prop types
components/
ComponentName/
index.tsx # Component implementation
styles.module.css # Component styles (if needed)
types.ts # Type definitions
utils.ts # Helper functions
- Files: kebab-case (
user-profile.tsx) - Components: PascalCase (
UserProfile) - Functions: camelCase (
getUserData) - Constants: UPPER_SNAKE_CASE (
MAX_RETRIES) - CSS Classes: kebab-case (
user-profile-card)
// Example test file: component.test.tsx
import { render, screen } from '@testing-library/react';
import { Component } from './component';
describe('Component', () => {
it('renders correctly', () => {
render(<Component />);
expect(screen.getByText('Expected Text')).toBeInTheDocument();
});
});- Test API endpoints
- Test database operations
- Test Kubernetes service methods
- Test critical user flows
- Test authentication
- Test sandbox creation
- Add JSDoc comments for functions
- Document complex logic
- Include examples where helpful
/**
* Creates a new sandbox for the specified project
* @param projectId - The project identifier
* @param envVars - Environment variables to inject
* @returns Promise<SandboxInfo> - Sandbox details including URLs
* @throws {Error} If project doesn't exist or user lacks permission
*/
async function createSandbox(
projectId: string,
envVars: Record<string, string>
): Promise<SandboxInfo> {
// Implementation
}- Update README for new features
- Keep installation steps current
- Update API documentation
- Code Quality: Clean, readable, maintainable
- Testing: Adequate test coverage
- Documentation: Clear comments and docs
- Performance: No unnecessary overhead
- Security: No security vulnerabilities
- Initial review within 3-5 days
- Follow-up reviews within 2-3 days
- Merge after approval from maintainer
We follow Semantic Versioning (SemVer):
- Major: Breaking changes
- Minor: New features (backward compatible)
- Patch: Bug fixes
- Update version in package.json
- Update CHANGELOG.md
- Create release tag
- Deploy to production
- GitHub Issues for bugs and features
- Discussions for questions and ideas
- Email: contribute@fullstackagent.dev
Contributors will be:
- Listed in CONTRIBUTORS.md
- Mentioned in release notes
- Given credit in documentation
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to FullStack Agent! Your efforts help make AI-powered development accessible to everyone.