import { Demo } from "@/components/Demo"; import { ProjectPage } from "@/components/ProjectPage"; export const metadata = { title: "Sprint", description: "A simple project management tool for developers. Born out of frustration with Jira.", date: "December 2025 - Present", slug: "sprint", image: "/sprint-icon.svg", url: "https://sprintpm.org", github: "https://github.com/hex248/sprint", hidden: false, tags: [ "Web", "React", "TypeScript", "Tauri", "PostgreSQL", "Databases", "Bun", ], type: "personal", }; export function SprintProject() { return (

Sprint is a lightweight, self-hostable project management tool built for developers who want simplicity over complexity. Frustrated with bloated tools like Jira, I created Sprint to focus on what matters: tracking tasks within organisations and projects without the overhead. Deploy it on your own infrastructure for full control over your data, and access it via the web or as a native desktop application via Tauri.

Key features

  • Organisation and project management
  • Issue creation with titles and descriptions
  • Issue assignment to team members
  • Time tracking with start, pause, and resume timers
  • Sprint management with date ranges
  • Customizable issue statuses per organisation
  • Resizable split-pane interface
  • Role-based access: owner, admin, member
  • Avatar uploads with S3 storage
  • Native desktop app via Tauri

Technologies

  • React + TypeScript (frontend)
  • Bun.serve + Drizzle ORM (backend)
  • PostgreSQL
  • Tailwind + shadcn/ui
  • Tauri (desktop)
  • S3 file storage (avatars)

Architecture

Sprint uses a monorepo structure with three packages: a shared package containing database schemas and types, a Bun.serve API with Drizzle ORM and auth middleware, and a React frontend that runs as a web app or is bundled as a native desktop application with Tauri.

Screenshots

); }