RepoDaily · 2026-08-03 · Self-hosted app

Kaneo: A Self-Hosted Project Management App That Refuses to Bloat

#9 Self-hosted app TypeScript +491 usekaneo/kaneo Open repository

An MIT-licensed TypeScript project management platform that ships with one-click deployment via drim, a single-container Docker Compose path, and a deliberately minimal feature surface.

Repo typeSelf-hosted app
Best forSmall product teams who want Jira-style tracking on their own infrastructure without the overhead of a feature-bloated platform.
Risk levelMedium — early-stage open-source project with a small maintainer base and limited public production deployment documentation.
Time to evaluate30 minutes to run Docker Compose locally; 1–2 hours for a drim-based deployment with HTTPS and PostgreSQL.

Primary question: Does your team need only the core project management primitives — projects, tasks, and tracking — and can you accept a younger codebase with fewer integrations?

87/100

RepoDaily adoption score

RepoDaily rates this as 87/100 (strong) for adoption: evidence, installation path, production risk, differentiation, license clarity, and AI/agent fit are scored from the article sources and adoption notes.

Directional score from RepoDaily sources and adoption notes, not a benchmark.Risk: Medium
96Evidence quality

4 source(s) across 3 source category/categories, plus a RepoDaily-specific evidence module when available.

100Installability

5 workflow step(s), 5 next-action step(s), and 5 command/install signal(s) were detected.

63Maintenance confidence

Trending momentum is +491 stars, with maintenance/release/issue signals counted when present.

91Production readiness

Risk is marked medium, with 5 security note(s) and 3 explicit skip condition(s).

100Differentiation

3 opportunity lens item(s), 5 alternative(s), and 4 type-specific section(s) support differentiation.

82License clarity

License source or license wording is present.

60Agent / AI fit

2 AI/agent-related signal(s) were detected in the article text and metadata.

Project overview

Kaneo is an open-source project management application written in TypeScript, published under the MIT License by maintainer Andrej Acevski. The repository positions itself against the category's incumbents with a single argument: the problem with most tools is not missing features, it is too many of them. Every unnecessary button, notification, and configuration option pulls attention away from the actual work of shipping software.

The current version is 2.12.1. The codebase is structured as a pnpm monorepo orchestrated by Turbo, with an API service running on port 1337 and a web frontend on port 5173. PostgreSQL 16 Alpine is the supported database. The project ships a Docker Compose configuration that runs a single Kaneo container alongside PostgreSQL, and a dedicated CLI tool called drim that automates HTTPS provisioning, database setup, and service configuration in two commands.

Kaneo's deliberate minimalism is visible in its documentation: there is no feature comparison matrix, no enterprise tier advertised in the README, and no claims about Gantt charts, OKRs, or portfolio management. The README argues that the best tools are invisible, and that every feature in Kaneo exists because it solves a real problem rather than because it looks impressive in a demo. This is a strong editorial stance that will resonate with teams exhausted by Jira's configuration surface but may disappoint teams that need advanced reporting or cross-project dependencies.

Problem it solves

  • Commercial project management tools add features faster than teams can evaluate them, turning planning into configuration work.
  • Cloud-hosted planning tools hold sensitive roadmap, staffing, and customer data outside the team's infrastructure.
  • Most open-source alternatives replicate the bloat rather than reducing it, importing every feature from the commercial products they replace.
  • Self-hosted project management has historically required significant DevOps effort to provision databases, TLS, and application services.

How it works

  1. The repository is a pnpm monorepo: pnpm install followed by pnpm run dev starts the API on port 1337 and the web app on port 5173, both with automatic reload.
  2. For local evaluation, the Docker Compose path runs ghcr.io/usekaneo/kaneo:latest as a single container against a postgres:16-alpine sidecar.
  3. The Compose healthcheck uses pg_isready -U kaneo -d kaneo, and the kaneo container waits for PostgreSQL to be healthy before starting.
  4. For production, the drim CLI automates HTTPS, database provisioning, and service configuration after curl-installing the tool from assets.kaneo.app.
  5. User-facing strings are externalized through i18next and react-i18next, with translation files under the i18n/ directory and validation scripts runnable via pnpm i18n:check.

Product demo and interface preview

Kaneo Dashboard
Kaneo Dashboard — Official README visual asset that helps readers understand the project interface, architecture, workflow, or output. README.md image

Deployment specifics from the source pack

  • Docker Compose image: ghcr.io/usekaneo/kaneo:latest, exposing port 5173.
  • Database: postgres:16-alpine on port 5432 with a healthcheck against user kaneo and database kaneo.
  • Environment variables referenced in the README: KANEO_CLIENT_URL (uncommented for localhost), POSTGRES_PASSWORD, and AUTH_SECRET generated via openssl rand -hex.
  • One-click path: curl -fsSL https://assets.kaneo.app/install.sh | sh, then drim setup — the README states this handles HTTPS, database, and service configuration.
  • API listens on port 1337 in development; the web app on port 5173 automatically connects to it.

Commands contributors and operators will actually run

  • pnpm install — install dependencies (pnpm 10.32.1 is the pinned packageManager).
  • pnpm run dev — starts API (1337) and web (5173) with hot reload via Turbo.
  • pnpm test — unit tests; pnpm test:integration — API integration tests requiring PostgreSQL.
  • pnpm run lint — Biome-based formatting and linting with autofix.
  • pnpm i18n:check, pnpm i18n:report, pnpm i18n:schema — translation validation and schema generation scripts under scripts/i18n/.
  • Git hooks are managed by Husky; commits must follow conventional-commit prefixes enforced by commitlint.

Stack and integration boundaries

The pinned toolchain reads as a deliberate set of choices: Turbo 2.10.5 for monorepo orchestration, Biome 2.5.4 for lint and formatting (replacing the usual ESLint/Prettier pair), TypeScript 5.8.3, and Node.js >= 20.19.0 as the engines constraint. The pnpm overrides block is long and aggressive — it pins or raises versions of hono, better-auth, next, express-rate-limit, esbuild, and roughly two dozen transitive packages, which signals that the maintainers are actively tracking security advisories and compatibility breaks.

Authentication is handled by better-auth (pinned at 1.6.23 with a floor override), the API layer relies on Hono (>= 4.12.25), and the web app uses Next.js in the 15.5.x range. Localization is powered by i18next and react-i18next with translation files under i18n/ and machine-checkable schemas, which matters for teams operating across multiple languages. There is no evidence in the source pack of outbound integrations to Slack, GitHub, GitLab, or Jira migration tooling — anyone relying on those should treat them as not-yet-available and verify against the live documentation.

Maintenance and supply-chain signals

  • Version 2.12.1 indicates a release cadence past initial 1.0.
  • CI is visible through the badge referencing ci.yml on the main branch.
  • Discord community is linked from the README (server ID 1326250681530843178) — primary support channel beyond GitHub issues.
  • Two named sponsors are listed in the README (Daniel Sada, randoneering), suggesting a small but real sponsorship base rather than foundation backing.
  • The pnpm overrides list is unusually detailed for a project of this size, which is a positive supply-chain signal but also a maintenance load the team is accepting.

Who should pay attention?

Good fit if

  • Teams of 5–30 people who want self-hosted task tracking and can live without deep reporting dashboards.
  • Organizations with data-residency requirements that need planning data inside their own VPC.
  • Developers who want to read, fork, and extend their project management tool under the MIT License.
  • Anyone evaluating a Jira replacement who values deployment simplicity over feature breadth.

Skip for now if

  • Program management offices that need portfolio-level rollups, OKRs, or capacity planning.
  • Teams that depend on mature marketplace integrations (Slack, GitHub Issues sync, Salesforce, Jira migration).
  • Enterprises requiring SOC 2 reports, SSO/SAML beyond what better-auth provides, or formal support SLAs.

Risks and cautions

Medium

Kaneo is a young but competently engineered project. The MIT License and modern toolchain reduce legal and technical friction, while the small sponsor base and limited public deployment runbooks raise the risk ceiling.

  • The maintainer team is small (Andrej Acevski is the named copyright holder) with a modest sponsor list.
  • No published SOC 2, SSO, or audit documentation is referenced in the README or CONTRIBUTING files.
  • Integration surface beyond the core app is not evidenced in the source pack — outbound webhooks, SCIM, and migration tooling should be treated as unverified.
  • The project is past 2.x and ships CI, but production deployment guidance outside drim is thin.
  • MIT License permits commercial use, modification, and redistribution with no reciprocal obligations.
  • The pnpm overrides block explicitly raises versions of packages with known advisories — hono, better-auth, next, ws, qs, fast-xml-parser, undici, and others — which is a stronger-than-average posture.
  • Husky + commitlint + Biome enforce conventional commits and formatting before code reaches the main branch.
  • AUTH_SECRET is a required environment variable, and the README instructs generating it via openssl rand -hex rather than shipping a default.
  • No security policy file is referenced in the source pack; disclosure handling should be clarified before enterprise adoption.

Alternatives to compare

ApproachWhen to useTrade-off
Plane
When you want a more feature-rich open-source Jira alternative with issues, cycles, and modules, and you are comfortable with a larger deployment footprint.Free self-hosted under Apache 2.0; managed cloud available.
OpenProject
When you need Gantt charts, time tracking, budgeting, and mature project portfolio features for traditional project management.Free self-hosted under GPLv3; enterprise edition paid.
Taiga
When your team follows Scrum or Kanban and wants an agile-first open-source tool with sprint planning built in.Free self-hosted under MPL-2.0; managed cloud available.
Jira Cloud
When you need enterprise-grade integrations, marketplace apps, and Atlassian support, and self-hosting is not a hard requirement.Commercial subscription per user.
Linear
When speed and developer ergonomics matter more than self-hosting and you accept a SaaS-only model.Commercial subscription per user.

What this trend reveals

Internal tooling for small studios

Studios and consultancies that already run PostgreSQL for other workloads can deploy Kaneo on existing infrastructure with a two-container Compose file, avoiding a new SaaS line item.

Run docker compose up against the README's compose.yml, create one project and ten tasks, and check whether the tracking primitives cover your standup workflow.

Fork-and-specialize for vertical industries

Because Kaneo is MIT-licensed and intentionally minimal, it is a reasonable base for vertical forks — for example, a lightweight CRM-tracking hybrid for agencies — without the licensing complexity of GPL alternatives.

Confirm the Turbo + pnpm monorepo compiles cleanly with pnpm install && pnpm build, and that the i18n schema scripts pass before forking.

Air-gapped environments

Teams in regulated or air-gapped environments that cannot use Linear or Jira Cloud can host Kaneo internally with PostgreSQL and control all data flows.

Pull ghcr.io/usekaneo/kaneo:latest into an internal registry, run drim setup on a disconnected host, and confirm HTTPS provisioning works without outbound internet.

Best next action

Spin up the Docker Compose path and load one real project

The fastest signal on whether Kaneo fits your team is to run the documented Compose stack, import one real project with two sprints of tasks, and see if the minimal surface covers your planning ritual.

  1. Copy the compose.yml block from the README into a clean directory.
  2. Copy .env.sample to .env, uncomment KANEO_CLIENT_URL=http://localhost:5173, and set POSTGRES_PASSWORD and AUTH_SECRET (openssl rand -hex).
  3. Run docker compose up -d and wait for the PostgreSQL healthcheck to pass and the kaneo container to start.
  4. Open http://localhost:5173, create a project, and load 15–20 representative tasks.
  5. If the experience holds up, evaluate drim setup on a staging VM to validate the production path with HTTPS.

RepoDaily verdict

Kaneo is a credible, deliberately narrow self-hosted project management tool with a clean TypeScript stack and the simplest deployment story in its category. Its limits are feature breadth and the small maintainer base — both worth stress-testing before committing roadmap data to it.

Sources