Feature Status

Last updated: 2026-03-11 · 1,457 tests passing across 96 files

Drawing & Editing

Feature Status Tests Notes
Pen tool Shipped ~30 Bezier curves, straight lines, click + drag modes
Rectangle Shipped ~10 Corner radius via shape params
Ellipse Shipped ~8
Polygon Shipped ~6 Configurable sides
Star Shipped ~4 Inner radius control
Line tool Shipped Straight line segments
Boolean operations Shipped ~87 Union, subtract, intersect, exclude (Paper.js headless)
Selection Shipped ~25 Single, multi (Shift+click), marquee, lasso, crossing-segment
Transform Shipped ~30 Move, scale (8 handles), rotate, flip H/V, nudge with modifiers
Node editing Shipped ~20 Double-click isolation, smooth/corner toggle, handle editing
Scissors tool Shipped Split path at segment (K), De Casteljau subdivision
Anchor tool Shipped Named anchor points
Curve assist Shipped 21 Harmonize, supersmooth, dekink, tunnify (Alt+H/S/D/T)
Curvature visualization Shipped Speed Punk-style comb overlay, green→red hue
Stem measurement Shipped ~15 Hover ray-cast, perpendicular wall-pair thickness readout
Alignment & distribution Shipped ~12 Cmd+Shift+Arrow align, Cmd+Shift+[/] distribute, node-level
Snap to grid Shipped ~10 G toggle, configurable density
Alignment snap guides Shipped Cyan guides, 3px threshold
Groups Shipped ~15 Cmd+G / Cmd+Shift+G, recursive transforms, expand/collapse
Custom guides Shipped Drag from rulers, Cmd+; toggle, lock/delete/clear
Tuner Shipped ~10 Continuous interpolation/extrapolation between snapshots
Context menu Shipped Right-click for common operations

Visual Properties

Feature Status Tests Notes
Fill (solid color) Shipped ~8 Per-path fill, currentColor export
Stroke Shipped ~6 Weight, cap, join, alignment
Per-path opacity Shipped ~4 Renderer per-path alpha
Group opacity Shipped ~6 Composite layer (beginLayer/endLayer or offscreen fallback)
Color picker Shipped Hex input, set-level palette
Semantic tokens Shipped ~20 Named design tokens, icon picker, CSV import, round-trip export

Organization

Feature Status Tests Notes
Layer panel Shipped Auto shape detection, SVG thumbnails, drag reorder with reparenting
Grid view Shipped Browse all icons, search by name/tag, category chips
Icon naming Shipped 4 Validation indicator (known/unknown), suggestions from taxonomy
Tags Shipped ~15 Auto-suggest from taxonomy, frequency badges, ghost chips
Categories Shipped ~15 Auto-derive from taxonomy, frequency indicator
Icon status workflow Shipped Draft → review → production → deprecated
Diagnostics Shipped 48 9 checks (kink, near-vert/horiz, short segment, duplicate node, open path, zero area, fractional coord, tiny path), severity dot
Coverage dashboard Shipped Per-category progress bars in sidebar
Working set Shipped Multi-select → double-click opens working set, Cmd+Left/Right cycles
Search & filter Shipped 42 Inverted index, trigram fuzzy search, compound predicates

Save & Sync

Feature Status Tests Notes
Save to GitHub Shipped ~20 Cmd+S, GraphQL batch commits, auto-install CI workflow
Save to file Shipped ~8 .justdraw JSON download
Conflict resolution Shipped ~10 HeadOid mismatch → ConflictModal → merge
Multi-tab sync Shipped BroadcastChannel + GitHub HEAD polling
Per-icon revert Shipped Restore from savedState or GitHub
Discard all changes Shipped Full reload from GitHub
Dirty flag tracking Shipped Content-aware reconciliation, stale flag cleanup
Undo/redo Shipped 15 Snapshot-based, 300ms coalesce, bulk ops single entry

Import

Feature Status Tests Notes
SVG files Shipped ~40 Full CSS cascade, attribute inheritance, group hierarchy, clip-path
SVG sprites Shipped 5 Extract <symbol> elements
.glyphs files Shipped ~15 GlyphsApp format, browser-safe core
Font files (.otf/.ttf/.woff) Shipped 8 opentype.js, cubic/quadratic conversion
Smart corner detection Shipped Auto-unbake arc patterns on import
Import naming enrichment Shipped Linting + alias-aware semantics

Export Pipeline

Feature Status Tests Notes
SVG optimization Shipped ~30 currentColor, aria-hidden, viewBox, minified paths
AVD XML generation Shipped ~15 Android VectorDrawable, dp sizing
Export manifest Shipped ~10 Aggregated metadata JSON
Consumer browse page Shipped ~16 Self-contained HTML, search, category chips, copy snippets
Changelog page Shipped 14 Diff-based, added/removed/modified
Deprecation tracking Shipped 4 90-day grace period, auto-undeprecate on re-add
A11y export Shipped 56 ARIA injection, WCAG contrast, touch targets
Iconify JSON Shipped 8 Compatible with @iconify/json spec
Framework adapters Shipped 18 React, React Native, Vue, Svelte, Web Component
npm package gen Shipped 10 Tree-shakeable ESM, barrel, metadata.json
SPM package gen Shipped 5 Package.swift, Icon enum, IconView (SwiftUI)
Gradle package gen Shipped 5 build.gradle.kts, VectorDrawable resources, Icons.kt
GitHub Actions workflow Shipped Auto-trigger on push, validate → export → deploy
GitHub Pages CDN Shipped Auto-deploy SVG + AVD + manifest
Color-aware export Shipped Multi-color icons preserve per-path fills

Developer Tools

Feature Status Tests Notes
CLI (@justdraw/cli) Shipped ~20 v0.3.2, 161KB, zero deps. validate, export, npm-gen, iconify-gen, framework-gen, notify
MCP server (@justdraw/mcp) Shipped ~10 v0.1.0, 21 tools, 2 resources, 4 prompts. 736KB bundle
Consumer SDK Shipped 16 createIconSet() client, manifest/SVG cache, search, injectIcons() DOM helper
Dynamic render API Shipped /api/render/{owner}/{repo}/{icon}?color=&sz=&dl= on Vercel
Taxonomy engine Shipped 117 11,657 icons, 116 categories, tag/category suggest, name validation, gap analysis
Icon matching Shipped 160 Visual + structural matching for WhatTheIcon
Webhook notifications Shipped 10 Slack + Discord + generic, Block Kit / embed payloads

Ecosystem

Feature Status Tests Notes
VS Code extension Built v0.1.0. Icon picker, token search, semantic display. Not yet published
Figma plugin Built v0.1.0. Sync between JustDraw and Figma. Not yet published
CDN Worker Built v0.1.0. Cloudflare reverse proxy. Not yet deployed
WhatTheIcon Built Visual icon search app
Icon registry Built v0.1.0. Concept registry build tools. Not yet published
Reference ghost Shipped CDN overlay of 6 icon sets (Lucide, Phosphor, Tabler, Bootstrap, Feather, Material)
Demand intelligence Shipped Signal ingest + CDN worker endpoints, instrumented in editor/VS Code/MCP

UI & Platform

Feature Status Tests Notes
Touch input Shipped Pinch-to-zoom, two-finger pan, single-finger tool forward
Keyboard shortcuts Shipped 60+ shortcuts, searchable overlay (? key)
Toast notifications Shipped Typed messages, auto-dismiss, color-coded
Settings panel Shipped Grid, drawing, canvas, behavior, export sections
Loading/error/empty states Shipped Spinner, error with retry, canvas hints
Security hardening Shipped ~25 SVG sanitization, CSP, SSRF, rate limiting, httpOnly auth
Icon info panel Shipped 11,657 taxonomy entries, search/filter, add-to-set
Reference ghost Shipped 6 set overlays, three-tier cache
Component refs Shipped Reusable drawing elements, visibility/lock, SVG export flattening

Launch Readiness

Item Status Notes
Landing page Shipped index.html, why.html, compare.html, privacy.html
Surface pages In Progress features, docs, packages, changelog, status
Build pipeline (md→html) Planned scripts/build-pages.ts + content.css
Repo public Blocked (Wolf) Prerequisite for all launch channels
Product Hunt Planned After repo public
HN / Dev.to Planned After repo public
MCP directory listings Planned Smithery, Glama, PulseMCP
Iconify registration Planned First published set needed
VS Code Marketplace Blocked (Wolf) Extension built, needs account
Figma Community Blocked (Wolf) Plugin built, needs account
npm @justdraw/icon-registry Blocked (Wolf) Package built, needs publish

Planned

Feature Target Notes
Animation (JustMove) Post-MVP Spec written (13). Sidebar authoring, SMIL/CSS SVG export. Panel hidden, code preserved
Accessibility audit Post-MVP Keyboard nav, screen reader, contrast, reduced-motion
Offline editing Post-MVP Create/edit/switch/undo all offline
Offline→online sync Post-MVP Edit offline, reconnect, Cmd+S
editor.ts decomposition Backlog 4,900+ line monolith → deep sub-modules
shadcn adapter Backlog Tree-shakeable npx shadcn format
GitHub Actions marketplace action Backlog justdraw/export-action
Cross-set search Backlog
Preview blur Backlog Shift+B legibility test
Variation axis extrapolation Future AI-assisted weight/size/style generation

Summary

Count Tests
Shipped 72 ~1,457
Built (not published) 5
Planned 10
Total 87 1,457