Open-source platform for developer collaboration, project discovery, and team formation.
- Overview
- Screenshots
- Features
- Tech Stack
- Architecture Overview
- Getting Started
- Troubleshooting Guide
- Environment Variables
- Available Scripts
- Project Structure
- Deployment
- Roadmap
- Contributing
- Changelog
- Acknowledgements
- License
DevLink is an open-source developer collaboration platform. Developers can create profiles, post and discover projects, apply to join teams, communicate in real time via WebSockets, follow contributors, and link their GitHub repositories.
Status: Active development. Open to contributors. See CONTRIBUTING.md to get started.
Documentation: Architecture · API Reference · Authentication Guide · Development Setup · Deployment Guide · Coding Standards · WebSockets
| Dashboard | Features |
|---|---|
![]() |
![]() |
Dashboard – Main dashboard displaying the application's overview.
Features – Highlights the core functionality available to users.
| Pricing | Login |
|---|---|
![]() |
![]() |
Pricing – Displays available pricing plans.
Login – User authentication page.
| Dashboard | Features |
|---|---|
![]() |
![]() |
Mobile Dashboard – Responsive dashboard view.
Mobile Features – Responsive features page. M
- React
- TypeScript
- Tailwind CSS
- React Router
- React Query
| Feature | Description |
|---|---|
| Developer Profiles | Portfolio pages with skills, GitHub repository links, experience, and social links |
| Project Marketplace | Browse, create, and apply to open-source projects and team openings |
| Team Applications | Role-based application submission with status tracking and owner review |
| Real-Time Messaging | WebSocket direct messaging with conversation threads and presence indicators |
| Notifications | Real-time event notifications for applications, messages, and activity |
| Builder Activity Feed | Community updates, project announcements, and contributor flares |
| Followers & Activity | Follow developers and track their public activity feed |
| Search & Discovery | Full-text search across developers, projects, issues, and skills |
| Saved Searches | Store and manage custom search queries with alert support |
| Bookmarks | Save projects to personal bookmark collections |
| Project Issues | Issue tracking linked to projects |
| Repository Linking | Connect GitHub repositories to project profiles with quality scoring |
| Organizations | Create and manage organization workspaces |
| Contributor Matching | Match contributors to projects based on skills and availability |
| Project Recommendations | Recommend relevant projects to developers based on their profile |
| Technology | Purpose |
|---|---|
| React 19 | UI library |
| TypeScript 5.8 | Type safety |
| Vite 8 | Build tool and development server |
| Tailwind CSS v4 | Styling |
| TanStack Router v1 | Client-side routing |
| TanStack Query v5 | Server state and data fetching |
| Framer Motion | Animations |
| Technology | Purpose |
|---|---|
| Python 3.11+ | Runtime |
| FastAPI | REST API framework |
| Pydantic v2 | Request validation and serialization |
| SQLAlchemy 2.0 | ORM and async query engine |
| Asyncpg | Async PostgreSQL driver |
| Alembic | Database schema migrations |
| Technology | Purpose |
|---|---|
| PostgreSQL 15+ | Primary relational database |
| Redis 7+ | Caching and Pub/Sub broker |
| Celery | Asynchronous task processing |
| Technology | Purpose |
|---|---|
| Docker & Docker Compose | Containerization and local environment |
| DevContainers | VS Code and GitHub Codespaces support |
| GitHub Actions | CI/CD pipelines |
DevLink follows a client-server architecture where the React frontend communicates with the FastAPI backend through REST APIs and WebSockets. The backend stores persistent data in PostgreSQL while Redis is used for caching and Pub/Sub to support real-time communication.
flowchart LR
User[User]
Frontend[React Frontend]
Backend[FastAPI Backend]
DB[(PostgreSQL)]
Redis[(Redis)]
WS[WebSocket]
User --> Frontend
Frontend -->|REST API| Backend
Backend --> DB
Backend --> Redis
Backend <-->|WebSocket| WS
WS --> Frontend
- Users interact with the React frontend.
- The frontend sends HTTP requests to the FastAPI backend.
- FastAPI processes business logic and reads/writes data in PostgreSQL.
- Redis provides caching and Pub/Sub for faster responses and real-time events.
- WebSockets deliver live notifications, messaging, and activity updates back to connected clients.
📖 Complete Setup & Troubleshooting Guide: See our detailed Environment Setup Guide for required software, environment variables, step-by-step onboarding, and common errors resolution matrix.
- Node.js 20+
- Python 3.11+
- Docker & Docker Compose (recommended)
- PostgreSQL 15+ and Redis 7+ (if running without Docker)
git clone https://github.com/nensii21/devlink.git
cd devlink
docker-compose -f docker-compose.dev.yml up --build| Service | URL |
|---|---|
| Frontend | http://localhost:5173 |
| Backend API | http://localhost:8000 |
| Swagger UI | http://localhost:8000/docs |
git clone https://github.com/nensii21/devlink.git
cd devlinkBackend:
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # fill in required values
alembic upgrade head
uvicorn app.main:app --reloadFrontend:
cd frontend
npm install
cp .env.example .env # fill in required values
npm run devOpen in VS Code and run Remote-Containers: Reopen in Container, or launch in GitHub Codespaces. Dependencies and port forwarding are configured automatically via .devcontainer/.
If you encounter issues while setting up DevLink locally, refer to the solutions below.
Symptoms
docker-composeexits with errors.- Containers stop immediately after starting.
Possible Cause
- Docker Desktop is not running.
- Existing containers or port conflicts.
Solution
docker-compose down
docker-compose -f docker-compose.dev.yml up --buildVerify Docker Desktop is running and ensure the required ports are available.
Symptoms
- Backend cannot connect to the database.
- Redis connection refused.
Possible Cause
- PostgreSQL or Redis service is not running.
- Incorrect
DATABASE_URLorREDIS_URL.
Solution
- Start PostgreSQL and Redis.
- Verify the values in
backend/.env. - Restart the backend server.
Symptoms
- Application fails during startup.
- Configuration or authentication errors.
Solution
- Copy
.env.exampleto.env. - Fill in all required variables before starting the application.
Symptoms
ModuleNotFoundError- Missing Python packages
Solution
python -m venv venv
# Linux/macOS
source venv/bin/activate
# Windows
venv\Scripts\activate
pip install -r requirements.txtSymptoms
- Installation fails with dependency resolution errors.
Solution Linux/macOS
rm -rf node_modules package-lock.json
npm installWindows (PowerShell)
Remove-Item -Recurse -Force node_modules
Remove-Item package-lock.json
npm installDevLink uses these default ports:
| Service | Port |
|---|---|
| Frontend | 5173 |
| Backend | 8000 |
| PostgreSQL | 5432 |
| Redis | 6379 |
Linux/macOS
lsof -i :8000Windows
netstat -ano | findstr :8000Check whether another application is already using them.
Symptoms
- Database migration fails.
Solution
alembic upgrade headEnsure PostgreSQL is running and DATABASE_URL is correct.
Symptoms
- Browser blocks API requests.
Solution
- Verify the
CORS_ORIGINSvariable inbackend/.env. - Restart the backend after updating the configuration.
Symptoms
- Network errors in the browser.
- API requests fail.
Solution
- Confirm the backend server is running.
- Verify
VITE_API_URLinfrontend/.env. - Ensure the backend is accessible at
http://localhost:8000.
| Module | Versioned Endpoint (v1) |
Legacy Endpoint (/api) |
|---|---|---|
| Authentication | /api/v1/auth |
/api/auth |
| Users | /api/v1/users |
/api/users |
| Projects | /api/v1/projects |
/api/projects |
| Applications | /api/v1/applications |
/api/applications |
| Messaging | /api/v1/messages |
/api/messages |
| Notifications | /api/v1/notifications |
/api/notifications |
DevLink uses URL Path Versioning (
/api/v1). Legacy unversioned/api/endpoints are maintained for backward compatibility. See API Versioning & Migration Strategy.
Swagger UI:
http://localhost:8000/docs
| Variable | Required | Description |
|---|---|---|
DATABASE_URL |
Yes | PostgreSQL async connection string |
REDIS_URL |
Yes | Redis connection URI |
SECRET_KEY |
Yes | Secret for JWT token signing |
ENVIRONMENT |
No | development, staging, or production |
GITHUB_CLIENT_ID |
No | GitHub OAuth App client ID |
GITHUB_CLIENT_SECRET |
No | GitHub OAuth App client secret |
OPENAI_API_KEY |
No | OpenAI key for profile summary and recommendations |
CORS_ORIGINS |
No | Allowed CORS origins (JSON array) |
| Variable | Required | Description |
|---|---|---|
VITE_API_URL |
Yes | Backend API base URL |
VITE_APP_NAME |
No | Application display name |
npm run dev # Start local development server (HMR)
npm run build # Compile production bundle
npm run test # Run unit tests (Vitest)
npm run lint # Static analysis with ESLint
npm run format # Format with Prettier
npm run typecheck # TypeScript type check (no emit)uvicorn app.main:app --reload # Start development server
pytest # Run test suite
pytest --cov=app --cov-report=term # Run with coverage report
alembic upgrade head # Apply pending migrations
alembic revision --autogenerate -m "msg" # Generate new migrationdevlink/
├── .devcontainer/ # DevContainer configuration
├── .github/ # GitHub Actions workflows and issue templates
├── backend/
│ ├── alembic/ # Database migration scripts
│ ├── app/
│ │ ├── core/ # Config, security, events, cache
│ │ ├── middleware/ # Rate limiting, security headers, request ID
│ │ ├── models/ # SQLAlchemy ORM models
│ │ ├── routers/ # API route handlers
│ │ ├── schemas/ # Pydantic validation schemas
│ │ ├── services/ # Business logic layer
│ │ └── main.py # FastAPI application entrypoint
│ ├── tests/ # Pytest test suite
│ ├── Dockerfile
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── api/ # HTTP client modules
│ │ ├── components/ # UI component library
│ │ ├── hooks/ # Custom React hooks
│ │ └── routes/ # Page routes (TanStack Router)
│ ├── Dockerfile
│ └── package.json
├── docs/ # Documentation files
│ ├── screenshots/ # Application screenshots
│ ├── api.md
│ ├── architecture.md
│ ├── coding-standards.md
│ ├── deployment.md
│ └── development.md
├── docker-compose.dev.yml
├── CONTRIBUTING.md
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
└── README.md
Full deployment instructions are in docs/deployment.md.
Frontend — Deploy the frontend/ build to Vercel, Netlify, or Cloudflare Pages.
Backend — Deploy backend/Dockerfile to Render, Railway, or AWS ECS.
Database — Use a managed PostgreSQL service (AWS RDS, Supabase) and managed Redis (Upstash, Redis Cloud).
| Version | Planned Features | Status |
|---|---|---|
v0.1.0 |
User authentication, developer profiles, project marketplace, GitHub OAuth | Completed |
v0.2.0 |
WebSocket messaging, team applications, notifications, repository linking | Completed |
v0.3.0 |
Builder flares, saved searches, bookmark collections, contributor matching, organizations | In Progress |
v0.4.0 |
Project issue tracking, project analytics, extended search filters | Planned |
v1.0.0 |
Mobile application, public REST API, advanced integrations | Planned |
Contributions are welcome. Please read CONTRIBUTING.md and CODE_OF_CONDUCT.md before submitting a pull request.
# Create a feature branch
git checkout -b feat/your-feature
# Commit using Conventional Commits
git commit -m "feat(scope): short description"
# Push and open a pull request
git push origin feat/your-featureSee CHANGELOG.md for a full list of changes across releases.
- FastAPI — backend API framework
- React — frontend UI library
- TanStack — routing and data fetching
- Radix UI — accessible UI primitives
- SQLAlchemy — async ORM
- All contributors and ECSoc 2026 participants
IT License — see LICENSE for details.
Made by developers, for developers.
Building the future of developer collaboration.
...





