Multi-app canvas workspace for React
Build apps with Provider + Slots + Hooks. Compose them into spatial workspaces with pan, zoom, and windowing — all for free.

Infinite canvas with pan, zoom, snap-to guides, and minimap. Apps float as draggable windows or render natively.
One interface is all you need. Declare a Provider, slot components, and hooks — the shell does everything else.
Cmd+K merges every app's commands into one palette. Built-in terminal drawer with multi-app tabs.
Compose apps into workspaces. Canvas mode, panel mode, windowed — all configurable per workspace.
Implement the HudsonApp interface and plug into any workspace
export interface HudsonApp {
id: string;
name: string;
description?: string;
mode: 'canvas' | 'panel';
Provider: React.FC<{ children: ReactNode }>;
slots: {
Content: React.FC;
LeftPanel?: React.FC;
Inspector?: React.FC;
Terminal?: React.FC;
};
hooks: {
useCommands: () => CommandOption[];
useStatus: () => { label: string; color: StatusColor };
useSearch?: () => SearchConfig;
};
}