Product graph browser for product architects
Translation pending
Developer toolsTypeScript · JavaScriptGitHub @alexisbohnsOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
A product graph browser built with React Flow on Next.js. Map your product's anatomy — from user flows down to API endpoints — in one navigable, local-first graph.
Existing tools silo product knowledge across Jira, Figma, Notion, dbdiagram, and Swagger. arkaik lets you traverse across all these layers fluidly — from a user flow down to the API payload it touches, or from a data model up to which screens render its data, across platforms.
It's not a task tracker, not a wiki, not a design tool. It's a navigable, multi-dimensional map of a product's full anatomy.Read the full README ↗A product graph browser built with React Flow on Next.js. Map your product's anatomy — from user flows down to API endpoints — in one navigable, local-first graph.
Existing tools silo product knowledge across Jira, Figma, Notion, dbdiagram, and Swagger. arkaik lets you traverse across all these layers fluidly — from a user flow down to the API payload it touches, or from a data model up to which screens render its data, across platforms.
It's not a task tracker, not a wiki, not a design tool. It's a navigable, multi-dimensional map of a product's full anatomy.
blocked_by flag for nodes stalled by a dependencyarkaik.app/p/{id}) and full JSON import/export for backup, sharing, and self-hostingarkaik CLI, an arkaik-mcp MCP server, a Claude Code plugin/skill for coding agents that maintain the map as a side effect of development, and machine-readable schema surfaces (/llms.txt)git clone https://github.com/alexisbohns/arkaik.git
cd arkaik
npm install
npm run dev
Open http://localhost:4242 — create a project or load the seed example from the projects page.
app/
layout.tsx # Root layout: fonts, theme, global CSS
page.tsx # Home / landing page (signed in → /projects)
projects/page.tsx # Project list, create, import, seed, restore
project/[id]/ # The project shell — page.tsx redirects to overview/
overview/ # Dashboard: coverage, gauges, release pulse, backlog
maps/ + maps/[mapId]/ # Maps index and renderer (journey, system, custom)
canvas/ # Redirect to maps/journey — old links keep working
library/ # Filterable node browser (gallery + directory)
delivery/ # Board of (node × platform) items by status
acceptances/ # Acceptance matrix
decisions/ # Decision log
pyramid/ # Value-elements aggregation
changelog/ + history/ # Releases + backlog, and the raw event log
settings/ # Project settings, products, linked repos
settings/tokens/ # Account-level `ark_` API token management
p/[id]/ # Publik snapshot preview
generate/ # Prompt builder for LLM-assisted bundle generation
api/ # graph (hosted projects), tokens, publik, synk, auth,
# github/webhook (acceptance promotion from PRs)
components/
graph/
Canvas.tsx # React Flow wrapper + node/edge type registry
JourneyCanvas.tsx # Journey graph → ELK → Canvas, props only (JourneyMap is the controller)
SystemCanvas.tsx # System graph → ELK → Canvas, props only (SystemMap is the controller)
nodes/ # FlowNode, ViewNode, DataModelNode, ApiEndpointNode
edges/ # ComposeEdge, CrossLayerEdge, FloatingDottedEdge
maps/ # JourneyMap, SystemMap, map cards + editor dialog
overview/ delivery/ acceptances/ decisions/ pyramid/ journal/ values/
layout/ # ProjectSidebar, ProjectSwitcher, CommandPalette, StatusBadge, etc.
panels/ # PanelStack, NodeDetailPanel, NewNodeForm, PlaylistEditor, etc.
publik/ sync/ settings/ # Share dialog, Synk status, product/repo/token managers
ui/ # shadcn/ui primitives (button, card, dialog, etc.)
lib/
config/ # Label/order arrays for the ids in @arkaik/schema (see docs/conventions.md)
data/ # DataProvider interface + local (Dexie), remote, seed and routing providers,
# and the query cache the hooks observe (project-queries.ts)
hooks/ # useNodes, useEdges, useProject, useJournal, etc.
services/ # Server-side: hosted graph store, publik, synk, github app
utils/ # export, layout, cycle detection, platform-status rollups
packages/
schema/ # @arkaik/schema — canonical zod model, validation, projections (MIT)
cli/ # arkaik — init, validate, log, release, deliverable, sync, pack,
# open, push, link, restore, bootstrap (MIT)
mcp/ # arkaik-mcp — stdio MCP server over a bundle (MIT)
plugin/ # Claude Code plugin: the agent skill + generated assets (MIT)
seed/
pebbles.json # Example project data
arkaik-self-map.json # Arkaik's own map — the built-in public seed project
docs/ # Architecture, graph model, data layer, conventions, vision, specs
| Layer | Choice |
|---|---|
| Framework | Next.js 16 (App Router) |
| UI | React 19 |
| Graph canvas | React Flow (@xyflow/react 12) |
| Styling | Tailwind CSS 4 + shadcn/ui + CVA |
| Storage | IndexedDB via Dexie (local-first, the default); optional Postgres-backed services (Publik, Synk, hosted projects) |
| Schema | @arkaik/schema — canonical zod model, generated JSON Schema + validator |
See docs/ for detailed documentation:
supersedes, generates, impacts)Scenario: Record a Pebble
Data Models: events (pebble), pearl, event_pearl, pearl_emotions, souls, event_souls, profiles, cards, event_cards
API Endpoints:
GET /pebbles/:id → Consolidated pebble (full relations)GET /pebbles → List of compact pebbles (lighter)POST /pebbles → Create a new pebblePUT /pebbles/:id/emotions → Attach emotions to a pebblearkaik is built on top of these great projects: