Opentribe - The Talent Layer for Polkadot
November 14, 2025 ยท View on GitHub
Opentribe is a centralized talent marketplace for the Polkadot ecosystem, serving as the "Talent Layer" that connects organizations with skilled contributors. The platform consolidates official Polkadot Grant opportunities and enables ecosystem projects to post and manage multi-winner bounties.
๐ Features
For Builders
- Browse Opportunities: Discover grants, bounties, and RFPs from across the Polkadot ecosystem
- Build Your Profile: Showcase your skills, experience, and contributions
- Apply & Submit: Apply for grants and submit work to bounties with transparent tracking
- Get Recognized: Earn likes and build your reputation through quality contributions
For Organizations & DAOs
- Post Bounties: Create multi-winner bounties with tiered rewards
- Manage Submissions: Review, select winners, and track payments in one place
- Build Your Team: Find and engage talented contributors for your projects
- Organization Management: Invite team members and manage roles
For Grant Curators
- Publish RFPs: Create official Request for Proposals to guide applicants
- Manage Applications: Review and process grant applications efficiently
- Track Interest: See community engagement through votes and comments
๐ Tech Stack
- Framework: Next.js 15 with App Router
- Language: TypeScript (strict mode)
- Database: PostgreSQL with Prisma ORM
- Authentication: Better Auth (email/password, Google, GitHub)
- Styling: Tailwind CSS + Glass UI design system
- Deployment: Vercel
- Monorepo: Turborepo with pnpm workspaces
๐ฆ Project Structure
apps/
โโโ web/ # Public website (opentribe.io)
โโโ dashboard/ # Authenticated dashboard (admin.opentribe.io)
โโโ api/ # REST API (api.opentribe.io)
โโโ docs/ # Documentation site
packages/
โโโ auth/ # Better Auth integration
โโโ db/ # Database models and Prisma
โโโ base/ # UI components and design system
โโโ email/ # Transactional emails
โโโ ... # Other shared packages
๐ฆ Getting Started
Prerequisites
- Node.js 18+ (v22 recommended)
- PostgreSQL 15+
- pnpm 8+
Installation
- Clone the repository:
git clone git@github.com:opentribe-dao/opentribe.git
cd opentribe
- Install dependencies:
pnpm install
- Set up environment variables:
Create
.env.localfiles in each app directory:
# apps/web/.env.local
DATABASE_URL="postgresql://[your-user]@localhost:5432/opentribe"
BETTER_AUTH_SECRET="your-secret-key"
BETTER_AUTH_URL="http://localhost:3002"
NEXT_PUBLIC_API_URL="http://localhost:3002"
# Add other required variables
- Set up the database:
# Create database
createdb opentribe
# Push schema
pnpm db:push # Run from packages/db
- Start the development servers:
pnpm dev
- Seed the database with test data:
# IMPORTANT: The API server must be running in a separate terminal window(step 5) before seeding
# This uses Better Auth's API to create users with properly hashed passwords
# Option 1: Use the auth-based seeder (recommended)
pnpm db:seed:auth
# Option 2: Use the legacy seeder (creates all remaining data)
pnpm db:seed
Access Points
- Web: http://localhost:3000
- Dashboard: http://localhost:3001
- API: http://localhost:3002
- Docs: http://localhost:3004
Test Accounts
After running pnpm db:seed:auth, use these credentials:
alice.rust@example.com/password123- Builderbob.ui@example.com/password123- Buildercarol.writer@example.com/password123- Builderdavid.w3f@example.com/password123- Org Admin (Web3 Foundation)emma.moonbeam@example.com/password123- Org Admin (Moonbeam)frank.acala@example.com/password123- Org Admin (Acala)admin@opentribe.io/admin123- Platform Superadmin
Note: User authentication requires using Better Auth's API for password hashing. The db:seed:auth script creates users through the authentication API to ensure passwords are properly hashed and will work for login.
๐ Key Models
- Users: Builders and organization members with profiles and skills
- Organizations: DAOs and projects that post opportunities
- Grants: Official grant programs with RFPs
- Bounties: Multi-winner tasks with tiered rewards
- Submissions: Work submitted to bounties
- Applications: Proposals submitted to grants
๐งช Testing
The project includes unit tests for core functionality including authentication, bounty management, submissions, and RFP workflows.
Running Tests
# Run all tests
pnpm test
# Run tests for a specific app
pnpm test --filter=api
pnpm test --filter=dashboard
pnpm test --filter=web
# Run tests in watch mode for development
pnpm test:watch
# Run tests with coverage
pnpm test:coverage
Test Structure
Tests are organized by module in the __tests__ directory of each app:
apps/api/__tests__/
โโโ auth.test.ts # Authentication and session management
โโโ bounties.test.ts # Bounty CRUD operations
โโโ submissions.test.ts # Submission creation and winner selection
โโโ rfps.test.ts # RFP creation and voting
โโโ health.test.ts # Health check endpoint
Writing Tests
We use Vitest for testing. Example test:
import { describe, test, expect } from "vitest";
describe("Bounty Management", () => {
test("should create a new bounty", async () => {
// Test implementation
});
});
Test Coverage
Core modules with test coverage:
- โ Authentication (session management, role-based access)
- โ Bounty Management (CRUD, filtering, status updates)
- โ Submission System (creation, winner selection, payment tracking)
- โ RFP Flow (creation, voting, comments)
- ๐ง Grant Applications (in progress)
- ๐ง Organization Management (in progress)
๐ณ Docker Setup (Optional)
For containerized development:
# Start all services in Docker
docker compose up -d
# Stop all services
docker compose down
Note: Local development (without Docker) is recommended for better performance.
๐ Common Commands
# Development
pnpm dev # Start all services locally
pnpm build # Build all packages
pnpm lint # Run linting
pnpm format # Format code with Biome
# Database
pnpm db:push # Push schema to database
pnpm db:seed # Seed test data
pnpm db:studio # Open Prisma Studio GUI
# Testing
pnpm test # Run all tests
pnpm test:watch # Run tests in watch mode
๐ค Contributing
We welcome contributions! Please see our contributing guidelines (coming soon).
๐ License
[License information to be added]
๐ Links
- Production: https://opentribe.io
- Documentation: https://docs.opentribe.io
Built with โค๏ธ for the Polkadot ecosystem