Skip to content

Repository files navigation

Assemble

Turn ideas into execution-ready teams, automatically.

License: MIT PRs Welcome Code of Conduct All Contributors

Assemble is an open-source collaboration platform where builders pitch projects, recruit teammates through structured applications, and instantly receive a ready-to-use collaborative workspace once the team is complete.

How it works · Tech Stack · Running it locally · Contributing


What is Assemble?

Great ideas fail every day because the right people never find each other.

Assemble bridges the gap between idea pitch and code execution. Instead of spending days searching through scattered Discord servers, LinkedIn feeds, Reddit subreddits, or WhatsApp groups for teammates, project creators can recruit qualified contributors from a single, dedicated platform.

Once a project gets approved by a platform admin, builders apply with their profiles (GitHub, portfolio, resume, and answers to custom questions). Once every required role is filled, Assemble automatically creates a ready-to-use collaborative environment for the team—creating repositories, setting up channels, and inviting members.


Why does it exist?

Finding teammates for hackathons, open-source tools, startup ideas, or side projects is unnecessarily painful:

  • Low visibility: A message in a "team-formation" channel on Discord gets buried in minutes.
  • No structure: Creators receive unstructured direct messages with little detail about an applicant's skills or commitment.
  • Manual onboarding friction: Once a team is agreed upon, someone has to manually set up a GitHub repo, initialize a Discord server, set up role permissions, create channels, and send invitations. This delay kills initial momentum.

Assemble solves this by screening candidates through customizable applications and automating the setup of the team's working environment the moment they are ready to build.


How it works

graph TD
    A[Create Builder Profile] --> B[Pitch Project & Define Roles]
    B --> C{Admin Review}
    C -->|Approved| D[Public Project Discovery]
    C -->|Needs Revision| B
    D --> E[Contributors Apply]
    E --> F[Admin Screens Applications]
    F -->|Shortlisted| G[Schedule Discussion via Cal.com]
    G --> H[Accept Teammates]
    H -->|All Roles Filled| I[Automated Workspace Provisioning]
    I --> J[GitHub Org Repo & Discord Server Ready]
Loading
  1. Pitch a Project: Detail your project description (in Markdown), category, required roles, difficulty, commitment level, and custom application questions.
  2. Review Applications: Review portfolios, resumes, and answers in a unified dashboard. Candidates are ranked based on a matching score.
  3. Conduct Discussions: Shortlist candidates and schedule quick alignment calls directly using the integrated Cal.com scheduler.
  4. Instant Provisioning: Once the team is complete, the platform automatically provisions:
    • A dedicated GitHub Repository under your GitHub Organization.
    • An invite-only Discord Server populated with core channels (#announcements, #general, #frontend, #backend, #design, #docs, #meetings, #resources).

Tech Stack

Layer Technologies
Frontend Next.js (App Router) · Tailwind CSS · shadcn/ui · Lucide Icons · TypeScript
Backend Next.js API Routes (Route Handlers)
Database & Auth Supabase (PostgreSQL) · PostgreSQL RLS (Row Level Security)
Integrations & APIs GitHub API (Repo creation & invites) · Discord API (Guilds & channels setup) · Cal.com API (Interview scheduling)
Media / Storage Cloudinary (Pitch images & profile avatars)
Email Resend (Workspace invitations & alerts)
Analytics PostHog
Hosting Vercel

Running it locally

What you need before starting:

  • Node.js 20+
  • A free Supabase account
  • Git

Steps:

# 1. Clone the repository
git clone https://github.com/PRODHOSH/assemble.git
cd assemble

# 2. Install dependencies
npm install

# 3. Create your local environment file
cp .env.example .env.local

Database Setup:

  1. Create a free project at supabase.com.
  2. Navigate to your project → SQL EditorNew Query.
  3. Copy the contents of the database schema (found in supabase/schema.sql) and paste them into the query editor, then click Run.
  4. Copy your project's URL and anon key from Project Settings → API and paste them into your .env.local file.

Startup:

npm run dev

Open http://localhost:3000 to start building.

For a detailed walkthrough on setting up OAuth, Webhooks, and GitHub/Discord API credentials, check out CONTRIBUTING.md.


Project Structure

assemble/
├── src/
│   ├── app/              # Next.js App Router (Pages, layout, & Route Handlers)
│   ├── components/       # Custom React components (organized by features)
│   │   ├── ui/           # Base shadcn/ui components (buttons, dialogs, inputs)
│   ├── lib/              # Integration clients & utility functions (GitHub, Discord, Supabase)
│   └── types/            # TypeScript interface & type definitions
├── public/               # Static assets & public images
└── supabase/             # Database migrations & schemas

Want to contribute?

Assemble is built by open-source contributors. We welcome pull requests of all sizes, from documentation fixes to core workflow automations.

Before you start:

  1. Review the CONTRIBUTING.md guide for branch naming, commit standards, and the local setup guide.
  2. Read the CODE_OF_CONDUCT.md to understand how we collaborate.
  3. Check our GitHub Issues to find tasks labeled good first issue. Remember to comment on the issue and wait to be assigned before writing code!

Contributors ✨

Everyone who has helped build Assemble — code, design, docs, ideas, all of it.

PRODHOSH V.S
PRODHOSH V.S

💻

Star History

Star History Chart

License

This project is licensed under the MIT License.

About

Pitch projects. Find teammates. Build together. Assemble helps developers, designers, and builders form teams through structured applications, then automatically creates GitHub organizations and Discord workspaces so they can start building immediately.

Topics

Resources

Code of conduct

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages