Quick Links
- Repository: github.com/tambo-ai/tambo
- Issues: github.com/tambo-ai/tambo/issues
- Discord: discord.gg/dJNvPEHth6
- Docs: docs.tambo.co
Development Setup
Prerequisites
- Node.js >= 22
- npm >= 11
- Docker (for database)
- Git
Clone and Install
Set Up Environment
Start Database
Choose one option:Option A: Supabase (Recommended)
Option B: Docker PostgreSQL
Initialize Database
Start Development Servers
Get a Local API Key
- Start dev servers:
npm run dev:cloud - Visit http://localhost:8260 and sign in
- Create a project and generate an API key
- Add to
apps/web/.env.local: - Verify: http://localhost:8260/internal/smoketest
Development Workflow
Branch Naming
Create branches in the format<userid>/<feature-name>:
Making Changes
- Write tests for new functionality
- Run quality checks before committing:
- Follow code style:
- TypeScript strict mode
- Functional components (React)
- No
anytypes - Descriptive variable names
Commit Messages
We use Conventional Commits:feat, fix, docs, style, refactor, test, chore, perf
Scopes: api, web, core, db, react-sdk, cli, showcase, docs
Pull Request Process
- Push your branch:
-
Open PR on GitHub with:
- Clear title following conventional commits
- Description of changes
- Link to related issue (if any)
- Screenshots/videos for UI changes
-
PR Requirements:
- All tests pass
- No TypeScript errors
- Code reviewed by maintainer
- Documentation updated (if needed)
- Link Issues:
Repository Structure
Framework Packages
react-sdk/- React SDK (@tambo-ai/react)packages/client/- Framework-agnostic clientcli/- Command-line interfaceshowcase/- Demo application (port 8262)docs/- Documentation site (port 8263)create-tambo-app/- App bootstrapper
Tambo Cloud Platform
apps/web/- Next.js UI (port 8260)apps/api/- NestJS API (port 8261)packages/db/- Drizzle schema + migrationspackages/core/- Shared utilitiespackages/backend/- LLM/agent helpers
Testing
Running Tests
Writing Tests
- Unit tests: Test individual functions/components
- Integration tests: Test component interactions
- E2E tests: Test full user flows
Documentation
Writing Docs
Documentation lives indocs/:
Doc Guidelines
- Use MDX format
- Include code examples
- Keep examples concise
- Test code examples work
- Add frontmatter metadata:
Component Library
Adding Components
Components live inpackages/ui-registry/:
-
Create component directory:
-
Add component files:
-
Configure
config.json:
- Export from package.json:
- Rebuild CLI:
- Test installation:
Code Style
TypeScript
- Enable strict mode
- No
anytypes - useunknownif needed - Prefer
interfacefor object shapes - Use
constfor immutable values - Avoid
letwhen possible
React
- Functional components only
- Use hooks for state management
- Memoize expensive computations
- Keep components focused and small
- Use TypeScript for prop types
Naming
- Files: kebab-case (
my-component.tsx) - Components: PascalCase (
MyComponent) - Hooks: camelCase (
useTambo) - Variables: camelCase (
userName) - Constants: UPPER_SNAKE_CASE (
API_URL)
Formatting
We use Prettier:Getting Help
Ask Questions
- Discord: discord.gg/dJNvPEHth6
- Discussions: GitHub Discussions
Report Issues
- Search existing issues first
- Use issue templates
- Include:
- Clear description
- Steps to reproduce
- Expected vs actual behavior
- Environment details
- Code examples
Suggest Features
- Open a discussion first
- Describe the use case
- Explain why it’s valuable
- Consider implementation approach
Code of Conduct
Be respectful and inclusive. We follow the Contributor Covenant.License
- Core SDK: MIT License
- API: Apache 2.0 License