Ithura

Release notes

Releases

What is new in Ithura, newest first. Every ship, grouped by the month it landed.

Latest: August 2026

August

202610 releases
NewChatCollaboration

Chat: talk where the work already lives

Ithura now has a chat of its own, and it is free on every plan including Free. Channels sit at workspace and project level, direct messages sit beside them, and replies open in a thread instead of burying the channel. The point is not another inbox: it is that the conversation and the work are finally the same graph. Type a task identifier and it becomes a live chip you can hover and click. Type a slash command and the message becomes a real task, or a call, without leaving the thread.

  • Channels are scoped: one set for the workspace, one per project, plus direct messages. Every channel carries a topic, pinned messages, and full-text search that returns the matching snippet rather than a bare hit list.
  • Threads keep channels readable. A reply opens a side panel and the parent row shows its reply count, so a long discussion never pushes the rest of the channel off screen.
  • Task chips are live, not text: #ATL-4 in a message renders as a chip carrying the task name, state, priority and assignees on hover, and clicking opens the task. The same chip works in task descriptions, comments, wiki pages and board nodes.
  • Slash commands reach into the work graph. /task turns the message you are looking at into a real task in the project, and /huddle starts a call in that channel that everyone can join from the header.
  • Live by default: typing indicators, message edit and delete, emoji reactions, file attachments and link previews, all over the same socket the rest of the app uses. Unread is tracked by a monotonic sequence, so the new-messages divider lands in the right place on every device.
  • Alt and the arrow keys move between channels, Alt with Shift jumps to the next unread. Chat is deliberately ungated: a workspace on the Free plan gets the whole thing.
NewPlanningSprints

Plan branches: what-if sprint planning, merged when ready

Try out a sprint reshuffle before your team sees it. A plan branch is a named staging area for planning changes: switch to it from the branch picker on the sprint page, then change task priorities and move tasks in and out of sprints as usual. Every edit stages on the branch instead of touching the live plan, an amber banner makes the mode unmistakable, and the Compare page shows the full before / after diff. Merge everything in one click, cherry-pick single changes, or discard the whole experiment.

  • A branch is an overlay of staged changes, not a copy of the plan: creating one is instant, and nothing on main moves until you merge. Scope a branch to one project or to the whole workspace for a cross-project reshuffle.
  • Stage from the surfaces you already use: the priority dropdown and the sprint picker in the task detail panel record a Staged on branch change while a branch is active. Today staging covers task priority and sprint membership; other edits still apply directly to main.
  • Compare shows every staged change with its on-main and on-branch value side by side, and flags drift ahead of time: if a teammate edited the same field on main since you staged, the row is marked Conflict so nothing surprises you at merge.
  • Merge re-checks every change against main's current value in a single transaction: everything that still cleanly applies lands, and the rest is reported as conflicts instead of silently overwriting newer work. Or cherry-pick one row to apply just that change and keep the branch open.
  • Branches are live: when a teammate stages on the same branch, merges it, or discards it, your banner and Compare page update on their own. Docs at /docs/features/plan-branches; deep dive at /blog/plan-branches; ten-minute walkthrough at /docs/tutorials/plan-branches-first-what-if.
NewEnterpriseSovereign

Time Machine: an undo button on the whole task

A daily worker now captures a canonical snapshot of every task touched in the last 24 hours. Any project member can open the Time Machine on a task, browse snapshot dates, preview the field-by-field diff against the current state, and restore any snapshot back in a single click. Enterprise-only. Every restore lands both on the workspace audit log and on the task's own activity feed.

  • Task detail, More actions menu, Time Machine: opens a modal listing every stored snapshot for the task, most recent first, each flagged with whether it still differs from the current state.
  • Tracked field set: name, description_html, priority, state_id, start_date, target_date, estimate_point, plus assignee_ids, label_ids, module_ids, and cycle_ids (each sorted so the snapshot hash is stable across runs).
  • Selecting a date loads a computed field-by-field diff against the current issue: base fields side by side, arrays as a set-membership summary, description as a compact differs note (v1 does not render an inline HTML diff; restore to see the exact prior content).
  • Restore is a single transaction: base fields go back via one UPDATE (null values in the snapshot truly clear the live field), and join tables are replaced with the snapshot's set. Idempotent on repeat restores.
  • Snapshot worker runs on a 24h scheduler with a 48-hour grace window on updated_at, so the previous day is covered even if the tick slips. Hash-dedup skips writes when nothing tracked changed between two consecutive days (a comment or a subscribe does not accumulate a duplicate row).
  • Audit event on every restore: workspace.issue.time_machine.restored with metadata { issue_id, snapshot_date }. Activity row on the task reads restored the task from a Time Machine snapshot dated <date>.
  • Follow-ups on the roadmap: retention pruning (auto-purge snapshots older than N days per workspace), per-field restore (keep the new description, only reset assignees), and a rich HTML diff for the description field.
NewSovereignEnterprise

Audit events, streamed to your SIEM in real time

Every workspace audit event is now streamed to a customer-owned HTTPS webhook the moment it lands in the audit log. HMAC-signed with the same scheme used by workspace webhooks and agent-dispatch runners, so a receiver you already have for either surface can be reused as-is. Zero polling, zero export window, zero cron. Splunk and Elastic see the event within a few hundred milliseconds of the actor clicking the button.

  • Settings, SIEM streaming: workspace-admin sets a webhook URL, HMAC secret (Generate button produces a 48-hex random value), timeout, and active toggle. Enterprise plan. Secret is stored AES-256-GCM encrypted and never returned to the SPA after write, so a stolen bearer token cannot exfiltrate the value that would let an attacker forge events into your SIEM.
  • Wire contract: POST application/json to the configured URL with X-Ithura-Signature = hex(hmac_sha256(secret, body)) and User-Agent: Ithura-SIEM/1.0. Envelope carries id, workspace_id, actor_user_id, actor_label, action, entity_type, entity_id, metadata, ip_address, user_agent, created_at.
  • Every audit event is fanned out at write time, not on a schedule. The stream carries SSO sign-ins, SCIM provisioning changes, membership and role changes, integration secret rotations, agent dispatches, and every settings mutation.
  • Follow-ups on the roadmap: retention pruning (per-workspace auto-delete after N days), a deliveries table with retry-with-backoff and a per-workspace success-rate widget, and per-scope filters so a workspace can stream just workspace.member.* or security.* events.
NewAgentsEnterpriseSovereign

Agent Dispatch Queue: hand a task to an agent on your own infra

Register agent runners (Claude Code, Cursor CLI, or any local model behind a webhook) at the workspace level, then dispatch any task to them from the API. Every dispatch is HMAC-signed on the outbound POST, every callback is HMAC-verified with a per-run token, every hop lands in the audit log. Not a chatbot. Not autonomy-by-default. A queue with provenance, running on your infrastructure.

  • Settings, Agent runners: register a runner with a name, webhook URL, HMAC secret (Generate button produces a 48-hex random value), and a timeout. Admins only. The HMAC secret is stored AES-256-GCM encrypted and never returned to the SPA after creation, so a leaked bearer token cannot exfiltrate the value that would let an attacker forge dispatches to customer infrastructure.
  • Dispatch a task: POST /workspaces/{slug}/projects/{projectID}/issues/{issueID}/dispatch-agent/ with a runner id and optional acceptance criteria. Ithura packages the task snapshot (title, description, project + sequence id, state, priority) plus a callback URL and POSTs the signed payload to the runner. Member-level, so any assignee can hand off.
  • The runner works on your infrastructure, then POSTs a terminal callback (in_progress, completed, or failed) with an optional result_url (the PR or MR link) and a summary. Callbacks are HMAC-verified against runner_secret plus the per-run callback token, so a leaked runner secret alone cannot forge callbacks for unrelated runs.
  • Every action lands in the audit log: workspace.agent_runner.created / .deleted, workspace.agent_dispatch.queued / .in_progress / .completed / .failed / .callback_ignored. Enterprise workspaces can export the full trail as CSV via the sovereign audit-log export endpoint.
  • Follow-ups on the roadmap: UI dispatch action on the task detail page, auto-dispatch rules (label + state change), cost tracking from runner callbacks, and a retry policy that reuses the same run row.
NewVideoWikiCollaboration

Async video, native to Ithura

Record a screen or webcam clip from any wiki page, task description, or task comment, and drop it inline as an HTML5 video player. A floating recorder pill follows you around the app so the recording survives navigating between tasks mid-explanation, and Cmd+Shift+R starts a recording from any page. The recorder is the browser's own MediaRecorder API; the file uploads to your workspace's own object store; playback is a plain video tag. No Loom subscription, no external service, no data leaving your infrastructure.

  • New Video button on the wiki, task description, and task comment editor toolbars. Click, pick camera or screen, click Start, and the mode picker closes.
  • A floating recorder pill takes over at the bottom-right of the app: elapsed timer, source label, Stop and Cancel buttons. The pill stays visible on every page you visit, so a recording started from a task comment survives clicking around to grab context, jumping to a wiki page to demo it, or opening a different project mid-recording.
  • Keyboard shortcuts: Cmd+Shift+R (Ctrl+Shift+R on Windows / Linux) starts a recording from any page in the app, whether or not you have an editor open. Cmd+Shift+S stops the current recording from anywhere. Both live in the keyboard shortcuts help panel under a new Recording section.
  • If you navigated away from the source editor before stopping, the upload still completes and a toast gives you a Copy URL affordance so you can paste the embed anywhere.
  • Up to 10 minutes per recording, WebM by default (VP9 or VP8 with Opus, whichever the browser negotiates). MP4 uploads also accepted for videos brought in from other tools.
  • Storage stays in your infrastructure: self-hosted keeps every byte on your hardware, Ithura Cloud keeps it in the EU. No third-party CDN, no cross-account replication, no telemetry back to a video vendor.
  • Works for bug repros, product tours, retro takes, onboarding pages, and any comment that would otherwise need ten messages of back-and-forth. The recording lives with the task or page it is about; no link rot.
NewSovereignComplianceEnterprise

Sovereign Ithura: the compliance answer pack, live

Ithura now ships a full sovereign answer pack for procurement, security review, and DPO-facing work: eight docs covering GDPR, NIS2, DORA, data residency, air-gap install, SBOM and signatures, and audit-log export, plus a fill-in DPA template and a dedicated /sovereign landing. Every release image is signed and every workspace on Enterprise can stream its full audit log to CSV.

  • New public section at /sovereign with a one-page pitch, and a curated /docs/sovereign tree: data residency, GDPR (Articles 30 and 32), NIS2 (all ten Article 21(2) measures), DORA, DPA template, air-gap install, SBOM and signatures, and audit CSV export.
  • Signed SBOM in CI: every release image now ships with a syft-generated SPDX SBOM and a cosign signature. The SBOM doc explains how to verify without cosign, and how to regenerate locally.
  • Streaming audit-log export: GET /workspaces/{slug}/audit-logs/export.csv returns the workspace's audit trail as CSV with the same filter surface as the list endpoint. Enterprise, workspace-admin only, streamed row-by-row so a year of events downloads without a memory spike.
  • Fill-in DPA template usable in the three common processor scenarios (you host, a partner hosts, or Anorph runs Ithura Cloud), with clause-level guidance and no vendor lock-in language.
  • Admin panel gets a Sovereign section so an operator can see which sovereign controls are configured on the instance at a glance.
NewSovereignExportEnterprise

Workspace file: your whole workspace as one SQLite you can grep

The new Workspace File export packages your entire Ithura workspace into a single SQLite database: 19 tables, indexed, with parent-child foreign keys intact and a bundled DuckDB cookbook README. GDPR Article 20 answered in one click, and a portable archive you can query in every tool that speaks SQL, without an Ithura API token.

  • One-click export from Settings, Exports: pick Workspace file (SQLite) and receive a zip containing workspace.db plus a README with the schema and copy-paste DuckDB queries.
  • Nineteen tables cover projects, cycles, modules, issues, comments, activity, wiki pages, boards, groups, memberships, custom fields, labels, and more, with real foreign keys so joins work out of the box.
  • Bundled DuckDB cookbook: aggregate issue counts by state, throughput by month, per-assignee cycle time, and cross-project rollups, all runnable against the shipped file with zero Ithura tooling installed.
  • Enterprise plan, workspace-admin only. Available immediately on staging; queued for production on the next release train.
  • Docs live at /docs/features/workspace-file; deep dive on the blog at /blog/workspace-file.
NewForecastsAnalytics

Delivery dates as a probability distribution

Every module and sprint header now carries a live Monte Carlo forecast pill: P50, P85, and P95 finish dates computed on demand from your team's real 90-day throughput. Drag scope in, the band slides right; drag scope out, it slides left. Bootstrap sampling with 10,000 simulations per request, running inline on your Postgres. The end of astrology-driven target dates.

  • Pill on every module (epic) and sprint header shows the P85 finish date by default, with a hover card that reveals the full P50 / P85 / P95 band, the throughput history it was drawn from, and a soft-forecast note when under 14 days of history.
  • Bootstrap sampler runs 10,000 futures per request, each drawing a random daily throughput from the team's actual last 90 days, stopping when remaining scope is done, then reading percentiles off the distribution.
  • Public API for dashboards and automation: GET /workspaces/{slug}/projects/{projectID}/modules/{moduleID}/forecast/ and the matching cycles endpoint return the band, remaining issues, average throughput, and samples used. ~2ms per call, cheap enough for a dashboard poll.
  • No AI service and no cloud dependency: the sampler is a pure Postgres query plus in-process arithmetic. Runs on air-gap installs unchanged.
  • Docs at /docs/features/forecasts; deep dive at /blog/forecasts.
NewWikiReactive

Live Task List: wiki pages that never rot

A wiki page can now embed a Live Task List: a filtered view of the tracker that refreshes on its own. Drop one in a PRD, a sprint retro, or an onboarding page and it never rots. Everyone reading the page sees the CURRENT state of the work, without anyone editing the page. Notion's synced blocks are one-way; this is the two-way tie only a tool with wiki and tracker under one binary can ship.

  • New Sparkles button on the wiki editor toolbar inserts a Live Task List block. Click the title to rename it. Click the gear on the block header for an inline filter builder that scopes the list by state (checkboxes), assignee (anyone or 'me' for whoever is reading), priority, and limit. A chip row under the header summarises any non-default filter so readers see at a glance what is being shown.
  • One row per matching task: state icon, project chip like PAR-482, title, priority, first assignee. Footer shows the shown count and the refresh cadence.
  • Auto-refreshes every 30 seconds, or on click. Re-renders in place so the surrounding prose never scrolls.
  • Public API mirror at GET /workspaces/{slug}/reactive/issues/ for dashboards and automation. Same filter shape as the block's picker.
  • Runs on your Postgres, no external endpoints. Docs at /docs/features/reactive-docs; deep dive at /blog/reactive-docs; walkthrough at /docs/tutorials/reactive-docs-first-live-block.

July

20269 releases
NewHuddlesCollaborationVideo

Huddles: audio and video calls, built into your work

Start an audio or video call from any task, project room, sprint, or board and everyone lands in the same context. Calls run in a dock that follows you around the app, keep a chat transcript, record with consent, schedule with calendar invites, and can be encrypted end to end. Huddles are included in Pro; recording and end-to-end encryption are Enterprise.

  • Start or join a call from a task, a project's persistent team room, a sprint, or a board. It runs in a compact dock that survives navigation, so you keep browsing while you talk, and expands to a full window when you want the video front and center.
  • Mic, camera, screen sharing, and device pickers, plus a per-call chat transcript that late joiners can read back, quick emoji reactions, and raise-hand.
  • Record a call with a consent step and a banner so everyone knows it is on. Recordings save privately to your workspace and play back from the call's history through a signed link. A presenter can also share their in-app view so others follow along on the real page, not a video of a screen.
  • Schedule calls for later with emailed calendar invites that work with Google, Outlook, and Apple Calendar, an in-app reminder before the start, and an agenda of what is upcoming.
  • See who is in a call across the app, ring teammates in with an instant prompt (with a Do not disturb switch), and open any past call to replay its chat and recording.
  • Turn on end-to-end encryption for a whole workspace: audio and video are encrypted in the browser, so the media server only ever relays scrambled media.
NewTasksCollaborationAI

Task descriptions: live co-editing, version history, and AI drafting

The task description is now a fully collaborative document: edit together in real time, see every change in the activity feed, restore any prior version in one click, and let AI draft the description straight from the discussion thread.

  • Real-time co-editing: several people can write in the same description at once and every keystroke merges cleanly, with live cursors and a presence strip showing who else is on the task.
  • Version history with restore: every change is captured automatically (editing sessions are grouped so history stays readable). Open History from the description toolbar or from any description change in the activity feed, preview any version, and restore it in one click. A restore is itself versioned, so it is always reversible.
  • Description changes now appear in the activity feed, attributed to the person who made them, with a direct link into the version history.
  • AI: Draft description from thread. On tasks with a discussion, one click turns the comment thread into a structured description (context, requirements, decisions, open questions, acceptance criteria). You preview the draft first and apply it only if it is right; the previous description stays in History.
  • Reliability across the board: images, mentions, and links survive every save and reload; pasting an image from the clipboard now works; and a slow connection can never present an empty editor that overwrites your content. The stored description renders instantly, read-only, until the live session is ready.
NewImportReliability

Imports: bring several projects at once, with a pre-flight preview

The import wizard now takes several source projects in one pass and shows you exactly what is about to land before it runs. Under the hood, every importer was re-tested against the live provider APIs so imports keep working.

  • Pick more than one source project at once with checkboxes. Each imports into its own new Ithura project, named after the source, so a whole tracker can move over in a single run.
  • Re-importing is idempotent per project: a source that already has a same-named Ithura project updates it in place instead of creating a duplicate, so a later top-up run is safe.
  • A pre-import preview: when you continue, every selected project is validated and the wizard shows the combined issue and task counts plus the full list of source people who have no matching Ithura account, whose work would be attributed to you, before anything is created.
  • Multi-select applies to Jira, Linear, GitHub, and Asana. Confluence keeps its one-click OAuth flow for importing pages into a project.
  • Imports from Jira, Linear, GitHub, Asana, and Confluence were all re-verified against the current provider APIs and updated where those APIs changed, so connecting, previewing, and importing stay reliable.
NewIntegrationsSentry

Sentry, linked to your work

Sentry joins Ithura's deep app integrations: link an error group to a work item and let its status sync on its own through signed webhooks.

  • Sentry as a deep App: link a Sentry error group to a work item, keep its status and level on the issue, and refresh it on demand. Connect per workspace with an internal-integration token and a webhook signing secret.
  • Sentry status sync: resolving or ignoring an error in Sentry moves the linked work item through a workspace mapping (resolved to Done, ignored to Cancelled, unresolved to no change by default). Inbound webhooks are signature-verified and de-duplicated.
NewBitbucketIntegrations

Bitbucket sync

Bitbucket Cloud joins GitHub and GitLab: connect once, and your pull requests keep issue status in step automatically.

  • Link Bitbucket pull requests to issues automatically from the branch name or title (the issue key, e.g. PAR-123), or by pasting a pull-request URL.
  • Issue status follows the pull request: it moves to started when the PR opens, completed when it merges, and cancelled when it is declined. Draft PRs do not move it.
  • Connect a workspace in one click via OAuth. Linking a repository to a project registers its webhook automatically, and every delivery is signature-verified.
  • Tokens are encrypted at rest and refreshed automatically, and the same per-project status mapping applies across all three providers.
BoardsCollaborationComments

Boards: real-time collaboration, smarter arrows, comments 2.0

The whiteboard grew into a place a whole team can work at once: live cursors and presence, a hand-drawn drawing feel with a full style rail, arrows that track what they connect, comment threads anchored to the canvas, and a presentation mode built for showing the result.

  • Live cursors with names and a presence roster in the header. Drags, text edits, and colour changes sync instantly for everyone on the board, and autosave means your work survives refreshes and reconnects.
  • Hand-drawn shape styles: three sloppiness levels (Architect, Artist, Cartoonist), five fill styles, stroke and opacity controls, corner rounding, HEX input with an eyedropper, and QWERTY-row colour hotkeys on selected stickies and shapes.
  • Arrows that behave: floating ends track element borders with a breathing gap, clicks near an arrow select the arrow first, endpoints re-route via grab dots, and standalone arrows drag by the body.
  • Comments 2.0: node-anchored threads with @mentions, emoji reactions, resolve, and per-comment permalinks, plus a board-wide comments inbox that jumps you to any thread.
  • Presentation mode upgrades: a curated slide order, dark mode, and fullscreen, stepped with the arrow keys.
  • Collections with emoji and a collections sidebar keep busy projects tidy; a template picker starts new boards from a pattern instead of a blank canvas.
  • The workspace home opens with a boards section: recently modified and recently visited boards, with Cmd+K or Cmd+P quick search from anywhere.
  • Polish across the editor: responsive canvas panels, more prominent selection styling, and sticky notes that open for editing on a double-click.
  • PNG export and public read-only share links carry the finished board to anyone, no account needed.
NewSlackEmailWeb form

Asks: multichannel intake

Anyone can file a request into an Ithura project from Slack, email, or a public web form, without an Ithura account. Every request becomes a normal issue your team triages, and updates flow back to the person who sent it.

  • File from Slack (react with a ticket emoji or mention the bot), from email (write to your intake address), or from a public web form you can share anywhere.
  • Submitters need no account. They follow their request on a private, no-login status page showing what they sent and the updates your team chooses to share.
  • Reply to a submitter straight from the inbox. Internal triage notes stay private; only updates you explicitly share reach them, by email, in the Slack thread, and on their status page.
  • Trace every request to its origin: Slack requests link straight to the original thread. Attachments arrive with their real filenames, ready to download.
WikiPermissions

Wiki: team permissions and project spaces

The wiki grew up: scope knowledge to the right people and give every project its own space.

  • Collection-level permissions (open or restricted) with per-team and per-member grants.
  • Grant a whole collection to a team at once, using reusable groups managed in Settings > Groups.
  • Each project gets its own dedicated wiki space alongside the workspace wiki.
BoardsRealtime

Boards: smoother real-time collaboration

Live cursors and drags stay responsive even under load, with a cleaner canvas and controls.

  • Live drag routes through the presence channel when real-time sync is congested, so movement never stalls.
  • Refined canvas controls, selection, and inspector layout.

June

20265 releases
NewWiki

Wiki: a full knowledge base

A Confluence-style wiki built into Ithura: rich pages, nested structure, and a familiar editor, all next to your issues.

  • Rich page editor with the same blocks as Pages (including boards and diagrams).
  • Nested collections and page trees, backlinks, and search.
NewBoards

Boards: visual whiteboards

Infinite-canvas whiteboards for diagrams, planning, and workshops, linked to your issues and multiplayer by default.

  • Shapes, connectors, sticky notes, and freehand, with live multiplayer editing.
  • Public board sharing for read-only viewers outside the workspace.
Import

Confluence importer

Bring an existing Confluence space into an Ithura wiki, structure and attachments included.

  • Guided import wizard with a per-run report of what came in.
  • Attachment binaries and internal references are rewritten to point at the imported pages.
  • Confluence permissions are mapped onto Ithura collections.
GitHubGitLabIntegrations

GitHub and GitLab sync

Link code to work: connect repositories and keep issue status in step with your pull and merge requests.

  • Link pull/merge requests to issues automatically from the branch name or title; status moves as PRs open, merge, or close.
  • Or link one by pasting its URL, and keep several pull requests tied to a single issue at once.
  • Copy a ready-made branch name from any issue, and post outbound PR comments.
  • GitLab reaches parity with GitHub, with encrypted tokens.
IssuesEstimates

Estimates

Size work your way, with numeric, t-shirt, or time-based scales and per-value icons.

  • Estimate templates: Numeric, Qualitative, and Time, chosen per project.
  • Custom icon per estimate value, shown on issue chips.

May

20265 releases
EnterpriseSecuritySSO

Enterprise: SSO, SCIM, and governance

Everything larger teams need to adopt Ithura safely: single sign-on, provisioning, and admin controls.

  • Per-workspace SAML 2.0 and OIDC single sign-on, with enforced SSO.
  • SCIM 2.0 user and group provisioning.
  • Two-factor enforcement, IP allowlists, custom roles, and organizations.
  • Workspace-wide audit log of admin actions.
Analytics

Analytics and Insights

Understand delivery with built-in reporting, now unified in one place.

  • Throughput by epic, cycle-time histograms, and custom-field aggregations.
  • Insights merged into Analytics as tabs, with clear empty states.
Notifications

Notifications inbox

A focused, Linear-style inbox at /inbox that gathers everything that needs your attention.

  • One place for mentions, assignments, and subscribed-issue activity.
IntegrationsAI

More ways to connect: Zapier and AI

Reach Ithura from the tools you already use, and put AI to work on your issues.

  • Zapier and Make surface via an outbound-webhook connector with its own settings and OpenAPI.
  • AI features wired to your own model key.
Mobile

Native mobile apps

Ithura on the go, as native iOS and Android apps.

  • Native shells with push, deep links, and offline-friendly sync.