Solo
Track your own work with projects, tasks, priorities, and a scratch pad. Nothing to configure, no team to onboard.
Source-available Read it, self-host it, contribute to it
Opsly starts as a single person tracking their own to-dos and grows into multi-team organizations with roles, workflows, SLAs, and audit trails, all without ever switching tools.
The dashboard adapts to light and dark, and so does this page.
One tool, three sizes
Most tools force a migration the moment you add a second person. Opsly's model is the same at every size. The surface area just grows with you.
Track your own work with projects, tasks, priorities, and a scratch pad. Nothing to configure, no team to onboard.
Add people, assign work, and shape how it moves with configurable workflow stages, custom fields, and dependency trees.
Multi-tenant organizations with per-role permissions, SLA compliance tracking, audit trails, webhooks, and instance-wide feature flags.
Every capability above works today, at every size, on a self-hosted install, with no tiers to climb.
What makes it different
Opsly is under active development. This is a snapshot of what ships today, not a roadmap. Everything here works right now, on a free self-hosted install.
English, Spanish, French, German, Portuguese, Japanese, Chinese, and Arabic, shipped in the box, not bolted on later.
Keep working while disconnected; edits queue locally and sync on reconnect, so nothing you do offline is lost.
Model real relationships between tasks and enforce them, so blocked work can't quietly slip through as ready.
Notifications and cross-org changes stream live over Server-Sent Events, so your board stays current without polling or a manual refresh.
A rich Markdown editor with Mermaid diagram rendering across notes, task descriptions, and project descriptions.
Issue API keys with granular permission scopes for automation and programmatic access, so nobody has to share a human's credentials.
Each organization gets its own brand color and logo, so a shared instance still feels like it belongs to the team using it.
Pluggable object storage. Keep attachments on local disk, or point Opsly at any S3-compatible bucket.
Core work management
Everything here ships today unless it's marked planned, and all of it is included when you self-host.
Your infrastructure
Opsly is built to be self-hosted, from a single VPS running Docker Compose behind a reverse proxy up to a distributed, highly-available deployment.
Start with Docker Compose and a reverse proxy; scale out when you need to.
Your database, your backups, your retention policy. No vendor in the middle.
Pluggable object storage for attachments. Swap the backend, not the app.
# Node 24 (see .nvmrc)
pnpm install
# start Postgres
docker compose -f docker-compose.local.yml up db -d
export DATABASE_URL="postgres://postgres:postgres@localhost:5432/opsly"
# push schema + seed the admin user
pnpm run setup
# api-server + frontend
pnpm run dev
On Windows PowerShell, set the variable with
$env:DATABASE_URL = "postgres://…" instead. Full walkthrough in
LOCAL_DEV.md.
Under the hood
A pnpm monorepo on Node 24. Nothing exotic to operate, nothing you can't debug at 3am.
Express with Drizzle ORM on PostgreSQL.
artifacts/api-server
React + Vite, with an offline-capable client.
artifacts/it-task-manager
OpenAPI is the source of truth. Zod validators and the React Query client are generated from it.
lib/api-spec/openapi.yaml
Pricing
Run Opsly on your own infrastructure and you get all of it: every feature, no seat caps, no license key, nothing phoning home. A paid hosted option, for people who would rather not run a server, is planned.
Everything on this page works on your own install today, at no cost. There is no paid tier of the self-hosted product to hold anything back.
Same Opsly, running somewhere you don't maintain. It doesn't exist yet, and how it's priced is genuinely undecided, so tell me if you'd want it.
None of it is built yet: no checkout, no card form, no subscription. When that changes, the terms will be published here before anything is charged.
If you are running Opsly today, nothing you already rely on will be taken away or moved behind a paywall later. Whatever a paid tier eventually looks like, it won't be built by fencing off what you're using now. Nothing to claim; it applies automatically.
Licensing
The code is public so you can read it, self-host it, and contribute, under the Functional Source License v1.1 (FSL-1.1-ALv2). Not sure how that differs from open source? Here's the plain-language version.
For any purpose except a Competing Use. Internal business use, non-commercial education and research, and professional services for licensees are all explicitly permitted.
You can't use Opsly to build or offer a product or service that substitutes for it or offers substantially similar functionality.
Every release converts automatically to the Apache License 2.0 two years after it is published. The clock starts the day it ships.
Need a commercial license, or a use the FSL doesn't cover? Open a discussion. Full terms in LICENSE, or read open source vs source-available.
Clone the repo, bring up Postgres, and you'll have Opsly running locally in about five commands. Contributions are welcome. Issue first, please.