Open source Linear alternative — keyboard-first issue tracking for software teams.
A fully functional clone of Linear built with Next.js 16, TypeScript, and modern infrastructure. Fast, self-hostable, and designed for teams that live in their terminal.
exponential is a production-grade issue tracking and project management tool built to match Linear's speed and keyboard-first UX. Whether you're a startup building in public or an enterprise needing self-hosted infrastructure, exponential is a fully open source alternative that you can deploy, customize, and extend.
Built by ralph-to-ralph, an autonomous product cloning system, exponential represents 41 features across issues, projects, cycles, initiatives, and real-time notifications — all tested and deployed from day one.
Core capabilities:
- Issues — Create, assign, prioritize, estimate, label, and organize with workflow states (Backlog, In Progress, Done, Canceled)
- Projects — Time-bound deliverables with milestones, progress tracking, and status updates
- Cycles — Automated sprints with burndown charts and auto-rollover
- Initiatives — Strategic roadmap grouping multiple projects
- Custom Views — Filter-based board, list, and timeline layouts
- Triage Queue — Intake system for incoming issues with bulk actions
- Inbox & Notifications — Real-time updates for assignments, mentions, and status changes
- Command Palette — Cmd+K for fast navigation and issue creation
- Keyboard Shortcuts — Full keyboard support throughout the app
- Authentication — Google OAuth and magic link login
- Real-time Sync — Live updates via Redis
- File Attachments — Upload and store files on AWS S3
# Clone the repository
git clone https://github.com/namuh-eng/exponential.git
cd exponential
# Install dependencies
npm install
# Start infrastructure services (PostgreSQL + Redis)
make dev-services
# If Docker/socket access is unavailable, start a host Postgres instead,
# set DATABASE_URL in .env.local, and continue with npm run db:push.
# Configure environment
cp .env.example .env
# Edit .env with your AWS credentials and auth settings
# Run database migrations
npm run db:push
# Start the dev server (runs on http://localhost:3000)
# This preflights Postgres first and prints setup steps instead of letting
# protected routes crash later with a generic 500.
npm run devgit clone https://github.com/namuh-eng/exponential.git
cd exponential
docker compose upThe app will be available at http://localhost:3000.
One-click deployment to Vercel or Railway coming soon.
| Layer | Technology |
|---|---|
| Frontend | Next.js 16, React 19, TypeScript |
| Styling | Tailwind CSS, Radix UI |
| Database | PostgreSQL (AWS RDS), Drizzle ORM |
| Cache & Realtime | Redis (AWS ElastiCache), ioredis |
| Authentication | Better Auth, Google OAuth, Magic Links |
| Storage | AWS S3 (files, avatars) |
| AWS SES (magic links, notifications) | |
| Testing | Vitest (unit), Playwright (E2E) |
| Linting | Biome |
| Deployment | Docker, AWS ECS Fargate |
# Type check and lint
make check
# Run unit tests
make test
# Run E2E tests (requires dev server running)
make test-e2e
# Run all checks
make all
# Start dev server
npm run dev
# Build for production
npm run build
# Push database schema changes
npm run db:push- TypeScript strict mode — no
anytypes - 100% tested — every feature has unit tests (Vitest) and E2E tests (Playwright)
- Consistent formatting — Biome handles linting and formatting
- Small commits — one feature per commit with clear messages
exponential/
├── src/
│ ├── app/ # Next.js App Router pages and API routes
│ ├── components/ # Reusable React components
│ ├── lib/ # Utilities, helpers, API clients
│ │ └── db/ # Drizzle ORM schema
│ └── types/ # TypeScript types
├── tests/ # Vitest unit tests
│ └── e2e/ # Playwright E2E tests
├── packages/sdk/ # TypeScript SDK
└── scripts/ # Infrastructure and deployment
- Node.js 20+ — install
- PostgreSQL 15+ — local or AWS RDS
- Redis 7+ — local or AWS ElastiCache
- AWS Account (optional) — for S3, SES, RDS, ElastiCache
Copy .env.example to .env and configure:
# Database
DATABASE_URL=postgresql://user:password@localhost/exponential
# Redis
REDIS_URL=redis://localhost:6379
# AWS (optional, required for production)
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
# S3 (for file uploads)
AWS_S3_BUCKET=exponential-uploads
# SES (for email)
AWS_SES_SENDER_EMAIL=noreply@exponential.com
# Authentication
AUTH_GOOGLE_ID=your-google-oauth-id
AUTH_GOOGLE_SECRET=your-google-oauth-secret
BETTER_AUTH_SECRET=your-random-secretTo provision AWS infrastructure (RDS, ElastiCache, S3, ECR, SES):
bash scripts/preflight.shThis script will:
- Create RDS PostgreSQL instance
- Create ElastiCache Redis cluster
- Create S3 bucket for uploads
- Configure SES for email delivery
- Create ECR registry for Docker images
exponential was built autonomously by ralph-to-ralph, a multi-agent system that clones SaaS products end-to-end.
The system:
- Inspects the target product (Linear) using Claude + Ever CLI
- Builds a working clone with TDD — 41 features, 24,000+ lines of code
- Tests every feature with Vitest + Playwright
- Deploys to AWS with real infrastructure
The entire process runs fully autonomous with zero human intervention. This README and documentation are human-written to ensure clarity and accuracy.
We welcome contributions! Whether it's bug fixes, new features, or improvements to documentation, all are appreciated.
Start here: CONTRIBUTING.md
Elastic License 2.0 — Use, modify, and self-host freely. You may not offer the software as a hosted service to third parties. See LICENSE for full terms.
- Issues — Report bugs or request features on GitHub Issues
- Discussions — Ask questions on GitHub Discussions
- Documentation — [Full docs coming soon]
Built with by Jaeyun Ha at Ralphthon Seoul 2026
If you find this project helpful, consider giving it a star ⭐