Cycles
Design · c24

Viz Libraries

archivedcreated 2026-03-16· last activity 2026-09-11

Instantiate and document qmap and qflow in the design site

Why

qmap (3D network visualization, Three.js) and qflow (2D traffic visualization, PixiJS) have each gone through extensive experimentation cycles (14 and 9 respectively) and are approaching production readiness. Neither is formally documented or consumable outside of ad-hoc Vite aliases. The design site — as the single source of truth for Qpoint's visual language — is the right place to document them and establish the consumption pattern.

Objective

Make both visualization libraries discoverable and documented on the design site, with live demos. Rename packages to @qpoint-io scope to match the established GitHub Packages pattern. Establish local dev consumption via Nuxt aliases so the design site can render live demos from source.

Scope

In scope:

  • Rename @qpoint/qmap@qpoint-io/qmap and @qpoint/flow@qpoint-io/qflow
  • Update all internal references across qmap, qflow, and app.qpoint.io
  • Add publishConfig and repository fields to both package.json files (prep for future publish)
  • Wire up design site with local aliases, peer deps, and SSR safety config
  • Create /visualization section with overview + detail pages for each library
  • Add nav entry and link from projects page

Not in scope (future phase):

  • Publishing to GitHub Packages (libraries still in experimentation)
  • Production consumption pattern (npm install from registry)
  • Extracting components to the shared layer

Key Changes

Phase 1: Package Identity

  • Rename both packages to @qpoint-io scope
  • Add publishConfig + repository to both package.json files
  • Update references in README, CLAUDE.md, imports, and app.qpoint.io alias

Phase 2: Design Site Consumption

  • Add three and pixi.js as peer deps in design site
  • Add Nuxt aliases pointing at sibling source directories
  • Configure vite.ssr.external for Three.js/PixiJS (browser-only libs)
  • Configure vite.optimizeDeps.exclude for aliased packages

Phase 3: Documentation Pages

  • /visualization — overview with cards for each library
  • /visualization/qmap — live demo, props API, composable API
  • /visualization/qflow — live demo with mock data, props API, layout catalog
  • Nav link + projects page links

Outcome

  • Renamed @qpoint/qmap@qpoint-io/qmap across 18 files + package-lock
  • Renamed @qpoint/flow@qpoint-io/qflow across 26 files + package-lock
  • Both packages have publishConfig + repository for future GitHub Packages publish
  • Updated app.qpoint.io alias to match new names
  • Design site wired as consumer: Nuxt aliases for local HMR, vite.ssr.external for Three.js/PixiJS, three + pixi.js installed as peer deps
  • 3 new pages: /visualization (overview), /visualization/qmap (live 3D demo + API docs), /visualization/qflow (live 2D demo with 500 mock audit logs + API docs)
  • "Viz" nav link added, projects page cards link to viz detail pages
  • All pages SSR-safe (200 status, <ClientOnly> wrappers)

Open Issues

  • QFlow's c9 (dev-tools integration) is still active — API may shift
  • Neither library has TypeScript types yet

Visual record

3 captures — heroes, page slices, and full-page renders. Click to view.

c24 hero
c24 slice
c24 full

In the archive

Artifacts

  • thread: cycle-create — prompt

Qpoint Brand Style Guide