Build rich, composable,
canvas-friendly,
AI-powered web apps.
HudsonKit is a shell and primitives library for composing canvas workspaces and single-app dashboards. Provider + Slots + Hooks — apps own state, the shell renders chrome.
The workspace, running inline
Provider + Slots + Hooks
- Apps own their state
Each app is a React Provider. The shell nests providers and renders slots.
- Slots, not prescriptions
Apps declare what they want in the nav, side panels, overlays. The shell composes.
- Strict TypeScript interface
Implement HudsonApp and you get chrome, windows, intents, and AI for free.
Canvas · Windows · Chrome
- Canvas workspace
Pan, zoom, and windowed apps on an infinite plane. Or static panels for dashboards.
- Built-in AI + terminal
Bottom drawer ships with Hudson AI and an embedded PTY terminal.
- Keyboard-first
Command palette, focus model, hold-space pan — designed for power users.
Define a HudsonApp, get the rest.
A single object plugs your component into the workspace — menu, intents, settings, AI capabilities. No shell code to write.
import type { HudsonApp } from 'hudsonkit';
export const notepadApp: HudsonApp = {
id: 'notepad',
name: 'Notepad',
mode: 'panel',
Provider: NotepadProvider,
slots: { Content: NotepadContent },
hooks: {
useCommands: useNotepadCommands,
useStatus: useNotepadStatus,
},
intents: notepadIntents,
};Pick the chrome that fits.
For most consumers. A polished frame around one HudsonApp — nav, sidebar, status bar. Use when you're shipping a focused tool.
Infinite pan/zoom plane with windowed apps. Use when the interface is the environment.
HudsonKit is shipping in the open.
If you're thinking about building on HudsonKit — or just want to follow along as the SDK, workspace, and primitives come together — drop your email. We'll reach out when something worth your attention ships.