Roadmap to V2 (professional UI redesign)

Open
#582 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
20/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Quiet
Tech stack
clickhouse, typescript

Research direction

Start with docs/V2-UX-HANDOVER.md and review the linked issues, especially #487, #488, #420, and #526, along with the dependencies and sequencing notes. This is a broad V2 tracking roadmap rather than a self-contained change; completion requires coordinating multiple UI, dashboard, search, and infrastructure workstreams.

Written by the indexing model from the issue text.

Description

Purpose

This is the roadmap for V2 — a professional UI redesign — scoped in discussion with @btyshkevich on 2026-07-31. It supersedes #68 ("Roadmap to 1.0.0") for V2 purposes: #68 remains the V1 roadmap; this issue is the V2-scoped tracking point. Most V2 functionality carries over unchanged from V1 (V1 is nearly finished, per that discussion); this roadmap only covers the surfaces and features carried into V2 scope — it is not a rewrite of the whole app.

A companion working document, docs/V2-UX-HANDOVER.md, inventories the current shipped UX and the committed-but-unshipped product contracts (#487, #488, etc.) for handoff to a design tool (Claude Design).

Architecture note

#577 (Preact evaluation) and #578 (phased Preact migration) are decoupled from this roadmap's design work — they determine implementation only, not the product/visual contracts of #487/#488/etc. (both issues say so explicitly: "the behavior is fixed; the implementation boundary is selected by #577"). They proceed on their own track and do not block V2 design exploration, since Claude Design's own mockup output is React-based regardless of what SQL Browser ships underneath.

In scope

Shell / UI surfaces
  • #487 — drag-foldable desktop left navigation (rail + focused drawer). Phases 1–3 shipped (#571/#573/#574); remaining work (structural focus continuity, separator discoverability, centre/right-panel reflow, #428 drag-hover integration) is blocked on #577's architecture decision.
  • #488 — foldable desktop right inspector (cell / rows / reference tools). Depends on #425; coordinates with #487 on a shared centre-width policy; do not start before #577 resolves.
  • #214 — type-aware cell-detail viewer with shared Markdown rendering. Feeds #488.
  • #420 (umbrella) / #421 (search service) / #422 (drawer UI, needs #421) / #423 (ranking, needs #421) — server-backed documentation search in the Reference drawer. #420 closes only when all three children are done.
  • #73 — accessibility pass (ARIA on menus/autocomplete/tabs, aria-live on errors, visible focus rings). Residual sweep over pre-existing widgets not already covered by #487/#488/#422/#214's own ARIA contracts.
Dashboard analytics/sharing
  • #392 — [SS] cross-filtering from chart/table selections.
  • #393 — [SS] drill-to-detail from charts/tables.
  • #525 — share a Dashboard through a compressed URL fragment.
  • #526 — import Dashboards from a read-only ClickHouse catalogue. Supersedes #378's read side; extends #506 and #452.
Standalone enhancements
  • #42 — cap the EXPLAIN AST fan-out in schema-lineage loading.
  • #59 — safe live-tail results for SELECT … STREAM (prerequisite for #61).
  • #61 — live visualizations for streaming queries (needs #59).
  • #66 — schema graph multi-select + group-move. Tracked as #68 Phase 5; needs extraction into core/graph-selection.js / ui/graph-surface.js first (reconciled 2026-06-30 under #88).
  • #307 — render ClickHouse FORMAT PNG results in Workbench and Dashboard.
  • #409 — cross-tab workspace conflict detection and stale-write protection. Follows #406/#407/#408.
  • #448 — queries-only bundle import no longer produces a Dashboard. Unblocked by #428.
Housekeeping (kept in the V2 roadmap, not part of UI-redesign scope)
  • #453 — split dashboard-viewer-session.ts (pure code refactor, no product surface).

Out of scope / deferred for V2

  • Google Sheets integration — #398, #399, #400, #401, #402, #403, #404, #405 (8 issues; separate product surface)
  • ACM "sup" transport adapter — #353, #354, #355, #356, #357 (5 issues; separate embedding surface)
  • #394 — pivot tables
  • #389 — FlameGraph panel
  • #175 — Dashboard shared-session setup wave
  • #39 — composable queries (CTE-merge)
  • #67 — native-OAuth loopback for the local runner
  • #71 — supported-browser-matrix docs
  • #243 — live ClickHouse compatibility test matrix

Fix regardless of V2 (ordinary V1 polish, not roadmap items)

#311, #489, #497, #509, #542, #543, #559, #560, #570, #581

Cross-reference / sequencing notes

  • #487 and #488 are both hard-blocked on #577 (and conditionally re-homed into #578 Phases 2 and 3 respectively).
  • #488 additionally depends on #425 and coordinates with #487 on centre width.
  • #421 → #422 / #423 under umbrella #420.
  • #61 depends on #59.
  • #66 is #68 Phase 5, with an extraction prerequisite.
  • #448 is unblocked by #428.
  • #526 extends #506 and #452, and supersedes #378's read side.
  • #409 follows #406/#407/#408.
Dominant language
TypeScript
Stars
8
Forks
2
Avg merge
1h 34m
Merged PRs (30d)
6

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Altinity/altinity-sql-browser

All issues in Altinity/altinity-sql-browser

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.