Status: Active development — pre-npm release Compliance target: WCAG 2.1 Level AA (browser debugger UI) Contribute: open-source-labs/Reactime-Native
| Milestone | Theme | Status |
|---|---|---|
| v0.2.0 | Core functionality complete | 🔧 In progress |
| v0.3.0 | npm packaging ready | 📋 Planned |
| v1.0.0 | Production release | 📋 Planned |
These items complete the core value proposition of the tool: full state visibility and true time-travel replay.
-
Full Fiber tree capture — Preserve the complete Fiber tree structure across serialization, not just stateful nodes. Will's work in progress on
feat/fiber-capture. The frontend adapter layer (normalizeFiberSnapshot.ts) is already in place and waiting for the new data shape. -
Bidirectional state replay — Send a selected snapshot back through the WebSocket pipeline to rewind the RN app to that state. This is the "time-travel" in time-travel debugging; without it the tool is a state observer, not a state replayer.
- Complete performance metrics serialization — Extend commit metrics capture beyond the first render; ensure lag and first-render data is emitted consistently across the full app lifecycle.
These items make the tool installable via npm install reactime-native with a clean developer experience.
-
Clean npm package API — Define the public entry point for the RN agent (
import { initReactimeNative } from 'reactime-native'). Declare peer dependencies (react,react-native,redux). Setmain,types, andexportsfields inpackage.json. -
Server distribution strategy — Decide and implement how the WebSocket server is started: bundled CLI (
npx reactime-native), separate package (reactime-native-server), or auto-started by the agent. This decision gates packaging. -
Browser UI distribution — Move the browser UI from a local Vite dev server to a distributable format: hosted web app, Chrome/Firefox DevTools panel, or bundled Electron app.
-
TypeScript types exported — Ensure all public API types are explicitly exported for TypeScript consumers. Current strict mode coverage: 91.72%.
-
Browser-side WebSocket error boundaries — Auto-reconnect is implemented on the RN side. The browser UI needs matching resilience: graceful degradation when the connection drops mid-session, reconnection with state preservation.
-
React error boundaries in browser UI — Prevent a single component render failure from crashing the entire debugger.
-
Complete README — Install instructions, configuration options, quick-start guide, and troubleshooting section targeted at developers adding Reactime Native to an existing RN project.
-
API reference — Document all public configuration options for
initReactimeNativeand the WebSocket server.
These items bring the tool to production quality: polished UX, full accessibility compliance, and integration with the broader Reactime ecosystem.
-
Reactime v.26 frontend UI integration — Connect the RN-specific WebSocket/Redux pipeline to Reactime v.26's modern frontend, which was originally designed for the React/Chrome extension. Preserves the familiar Reactime developer experience for users coming from the web tool.
-
Chrome/Firefox DevTools panel — Integrate the browser UI as a native DevTools panel rather than a separate browser window, matching the UX pattern developers expect from debugging tools.
-
Contrast audit — Full axe DevTools pass on all metrics displays, diff views, and component tree against the 4.5:1 minimum (WCAG 1.4.3). Metrics text and table cells not yet audited.
-
aria-liveregions for snapshot changes — Snapshot state changes are currently visual only. Anaria-live="polite"region on the snapshot panel would announce updates to screen reader users as they navigate the timeline (WCAG 4.1.3 / 1.3.1). -
Roving
tabIndexin component tree — Current implementation givestabIndex={0}to every visible node header. APG recommends roving focus for large trees. Warranted when Will's full fiber tree serialization lands and node counts grow significantly.
-
LCS array diffing in snapshot diff — Arrays are currently compared atomically (via
JSON.stringify). Element-level diffing via a Longest Common Subsequence algorithm would surface array insertions, deletions, and reordering as granular diff nodes. TheisPlainObjectboundary indiffSnapshots.tsis the explicit extension point. -
Snapshot compression — JSON snapshots of complex Fiber trees can produce large payloads. Evaluate delta compression or binary serialization for high-frequency state updates.
-
E2E tests (Detox) — Current test coverage: unit (Vitest + RTL) and integration (real WebSocket server). Device-level behavior — native gesture handling, platform rendering, physical WebSocket connections — requires Detox E2E tests.
All roadmap items have corresponding GitHub Issues. Filter by milestone to find work at your level:
- 🔴
blocking— Must land before the next milestone ships - 🟡
enhancement— Improvements that are planned but not blocking - 🟢
good first issue— Well-scoped, documented, good entry point for new contributors - ♿
accessibility— WCAG-related work
See CONTRIBUTING.md for setup instructions and contribution guidelines.
Reactime Native is developed in partnership with OSLabs.