The road
Built in the open, in the order that made it cheap
The core was built first and completely; automation, operations and the clients followed. This page is the plan and the method — not a set of dates, because a date on a one-person project is a guess with a font.
The milestones
What was built, and in which order
- 0.1Foundation
A walking skeleton with exactly one use case — and every cross-cutting concern driven through it once, completely: security gates, resilience, observability, the audit chain, the data catalogue, the synchronisation foundations. Deliberately first, because a gate that starts biting when there are two hundred methods finds two hundred defects at once.
- 0.2 – 0.4The business core
Hierarchy and items, buckets, labels, ordering, the query language, trash and archive. Then comments, members and assignment, covers, attachments, custom fields, search, notifications and the live stream. Then time: due dates, reminders, recurrence across daylight saving, templates, saved views and the calendar feed.
- 0.4.5Backup, retention, audit
Backup targets and the encrypted archive format, schedules and generational retention, restore in every mode; retention rules with a preview and safeguards; audit query, export and verification; legal hold; data subject requests with deadline tracking.
- 0.5 – 0.6Automation and operations
The rule engine with a dry run, signed webhooks, personal access tokens and service accounts, the intake inbox. Then multi-workspace operation, provisioning and export, quotas, sign-in through your identity provider, multi-factor, session management, envelope encryption with key rotation, and the fleet deployment under load.
- 0.7 – 0.9AI, languages, offline, ecosystem
The MCP server complete, the AI port with a local and a hosted provider, suggestions and hybrid semantic search — all optional. Then the full internationalisation surface and offline synchronisation with per-field merging and conflict preservation. Then the ecosystem: client libraries, the n8n and Zapier connectors, CalDAV, and imports from the tools people are leaving.
- F1 – F10The web app
The client, built beside the core: the design system and its workbench, the working surface with boards and drag and drop, collaboration and time, automation drawn as a flow, the administration, AI and languages, offline work in the browser, a tour and a small celebration, and the shell on a phone, a tablet and a desk.
- SISigning in
The password over its lifetime with a rule in three levels and a lock, recovery codes, several sign-in providers with their owners’ marks, and the installation level above every workspace — operators, defaults with a lock, an elevated hour and a dashboard.
- SC · PHCoherent, and private
Measured for the first time against written use cases and the seven ways Hubtask is run. Signing in and the installation made coherent: one rule in one place, the first start in the browser, operators and machines on the screen, terms agreed, AI offered by the installation, invitations without mail. Then privacy and the household: private hubs, accounts without a mail address, a legal hold that wins over an erasure, and each person’s say over AI.
the use cases - NextPasskeys, plans, domains
In that order, each with its own decision record: signing in without a password; plans with their own limits, features and locks, and events that tell a purchase platform what happened; and a workspace’s own domain. Beside them, the installed desktop and mobile apps, once their signing certificates exist.
- 0.9.5Convergence
Not a feature milestone. The scope window closes, a coverage report records where every use case is reachable in every client and why any omission is deliberate, and everything with external lead time starts — signed installers, store submissions, and this website’s 1.0 content.
- 1.0Stable
Twenty-one prerequisites, each demonstrable: the API frozen and its deprecation process exercised, a security review including an external audit of the tenant boundary, restore drills from every released target type, offline conformance passed by a real client, accessibility demonstrated with a published statement, a service level report over at least thirty days, and reproducible reference deployments.
roadmap.md · the full list
The method
Why the guarantees on this site are checkable
None of the claims elsewhere on this site would survive without the working method underneath them. It is unusual enough for a project this size to be worth describing.
Decisions are written down before they are coded
Every architectural choice is an numbered decision record with the alternatives that were weighed and the reason one won — including the ones that were declined. The architecture document and the decision index are reconciled by a check, so neither can quietly drift from the other.
the decision recordsThe specification moves first
An API change starts in the contract, then the code is generated, then it is implemented. A data model change brings its migration in the same order. Hand-editing generated code is not a style question here; the build notices.
Gates block the merge
Architecture boundaries, the concurrency rule, security, privacy, licences of every dependency, documentation cross-references, the observability catalogue — all of it runs on every change. And a self-test deliberately breaks each rule to prove the gate turns red, because a gate nobody has seen fail is decoration.
ci-cd.mdEvidence rather than assertion
Resilience runs, load figures, restore drills and maturity decisions are written to evidence files with a date on them. When this site says the drill runs, there is a file you can open.
docs/evidenceAfter 1.0
What the freeze means
From the convergence milestone onwards there are no new features until the release — only defects. A stabilisation phase that still accepts features is not a stabilisation phase, and every date after it is a guess. New requirements go to the next minor, or they arrive with a decision record that says what the exception costs.
After 1.0, API v1 is stable, event schemas are versioned, and a client regression blocks a release exactly as an API regression does.