Full-stack URL shortener with analytics.
openshort/
├── apps/
│ ├── web/ # Next.js frontend (TypeScript, Bun)
│ └── api/ # FastAPI backend (Python, uv)
└── packages/ # Shared packages
- Next.js 15 - React framework
- TypeScript - Type safety
- Bun - Package manager & runtime
- Tailwind CSS - Styling
- FastAPI - Modern Python API framework
- PostgreSQL - Database
- SQLAlchemy - ORM
- Alembic - Migrations
- uv - Python package manager
- Node.js 18+
- Bun
- Python 3.12+
- uv
- Docker & Docker Compose
cd apps/web
bun install
bun devcd apps/api
uv sync
docker-compose up -d
uv run alembic upgrade head
uv run uvicorn app.main:app --reload- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs