Source-available Read it, self-host it, contribute to it

Work management that scales with you.

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.

Under active development Free to self-host FSL-1.1-ALv2 → Apache 2.0 Node 24 & PostgreSQL

Opsly dashboard in light mode showing active projects, open tasks, overdue tasks and SLA compliance Opsly dashboard in dark mode showing active projects, open tasks, overdue tasks and SLA compliance

The dashboard adapts to light and dark, and so does this page.

One tool, three sizes

Outgrow your to-do list, not your tooling

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.

01

Solo

Track your own work with projects, tasks, priorities, and a scratch pad. Nothing to configure, no team to onboard.

  • Projects & tasks
  • Kanban
  • Scratch pad
02

Team

Add people, assign work, and shape how it moves with configurable workflow stages, custom fields, and dependency trees.

  • Assignees
  • Workflows
  • Dependencies
  • Notifications
03

Organization

Multi-tenant organizations with per-role permissions, SLA compliance tracking, audit trails, webhooks, and instance-wide feature flags.

  • RBAC
  • SLAs
  • Audit trail
  • Webhooks
  • Feature flags

Every capability above works today, at every size, on a self-hosted install, with no tiers to climb.

What makes it different

Details most work trackers skip

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.

Localized in 8 languages

English, Spanish, French, German, Portuguese, Japanese, Chinese, and Arabic, shipped in the box, not bolted on later.

Offline-first

Keep working while disconnected; edits queue locally and sync on reconnect, so nothing you do offline is lost.

Dependency trees

Model real relationships between tasks and enforce them, so blocked work can't quietly slip through as ready.

Real-time updates

Notifications and cross-org changes stream live over Server-Sent Events, so your board stays current without polling or a manual refresh.

Markdown & Mermaid

A rich Markdown editor with Mermaid diagram rendering across notes, task descriptions, and project descriptions.

Scoped API keys

Issue API keys with granular permission scopes for automation and programmatic access, so nobody has to share a human's credentials.

Custom branding

Each organization gets its own brand color and logo, so a shared instance still feels like it belongs to the team using it.

Self-hostable storage

Pluggable object storage. Keep attachments on local disk, or point Opsly at any S3-compatible bucket.

Core work management

The fundamentals, done properly

Everything here ships today unless it's marked planned, and all of it is included when you self-host.

  • Projects & tasks - priorities, assignees, and full history.
  • Dashboards & Kanban - status at a glance, board or overview.
  • Organizations & roles - multi-tenant orgs with granular per-role permissions.
  • Notifications & digests - per-user email digests for what actually matters.
  • Audit trail - a record of changes across tasks and organizations.
  • Data export - download a full copy of your organization's tasks, comments, projects, and notes.
  • Workflows - built-in open/closed states, plus custom stages with colors.
  • Custom fields - typed text, number, date, and select fields on every task.
  • Custom priorities - priority levels are fixed today; defining your own is on the roadmap. Planned
  • SLA tracking - response and resolution policies per priority, with at-risk warnings.
  • Webhooks - inbound and outbound real-time events with external systems.
  • Instance admin & feature flags - roll capabilities out gradually.

Your infrastructure

Run Opsly where your data already lives

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.

  • One VPS or many

    Start with Docker Compose and a reverse proxy; scale out when you need to.

  • PostgreSQL you control

    Your database, your backups, your retention policy. No vendor in the middle.

  • Local disk or S3

    Pluggable object storage for attachments. Swap the backend, not the app.

local development, same shell session
# 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 boring stack, on purpose

A pnpm monorepo on Node 24. Nothing exotic to operate, nothing you can't debug at 3am.

Backend

Express with Drizzle ORM on PostgreSQL.

artifacts/api-server

Frontend

React + Vite, with an offline-capable client.

artifacts/it-task-manager

Typed API contract

OpenAPI is the source of truth. Zod validators and the React Query client are generated from it.

lib/api-spec/openapi.yaml

Pricing

Free to self-host. That part isn't changing.

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.

Self-hosting is unrestricted

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.

A hosted option is planned

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.

Nothing is for sale yet

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.

Early adopters keep what they have

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

Source-available, not open source

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.

Use, modify, self-host

For any purpose except a Competing Use. Internal business use, non-commercial education and research, and professional services for licensees are all explicitly permitted.

No competing product

You can't use Opsly to build or offer a product or service that substitutes for it or offers substantially similar functionality.

Becomes Apache 2.0

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.

Take it for a spin

Clone the repo, bring up Postgres, and you'll have Opsly running locally in about five commands. Contributions are welcome. Issue first, please.