For humans & AI agents

Build ambitious apps.
Limitless by design.

  • Open source. MIT licensed.
  • Fully type-safe.
  • AI-friendly by design.

Try it yourself

View live
playground/dashboard

One feature. One folder.

Your next idea.
One plugin away.

Give each feature a home. Extend the app without untangling the rest.

  • Define it once. Use one Action in buttons, menus and shortcuts.
  • Connect it. Fill a slot. React to an event.
  • Find it. Predictable paths for you and your agent.
See how it works
src/plugins/pipeline
From the live app above.
actions/What it does
services/What it knows
events.tsHow it connects
data/Where it starts
ui/What you see
actions/win.tsReal source
import { defineAction } from '@bitakit/core';
import CheckIcon from 'reicon-react/icons/Check';

export default defineAction<number>({
  title: 'Mark won',
  icon: CheckIcon,
  // A guard: every control bound to this Action is disabled for a deal that is already won.
  enabled: ({ input, services }) =>
    input !== undefined && services.pipeline.deals.find(input)?.stage !== 'won',
  concurrency: 'per-input',
  execute: ({ services, input }) => services.pipeline.deals.win(input),
  success: 'Deal won',
});

Included from the start

Skip the glue.
Ship your ideas.

Actions, settings, themes and search. Ready to work together.

Actions
One Action. Every control in sync.

defineAction({ … })

Slots
Add to a page without editing it.

<PluginSlot name="dashboard.widgets" />

Settings
Declare a preference. App Preferences builds its page.

defineSettings({ … })

Events
Let features talk through typed events.

pipeline.won → activity feed

Themes & layouts
Change the look of every plugin at once.

One theme. Every plugin.

Typed discovery
Your files become IDs your editor knows.

Define → discover → bind

Fits your stack

Your framework underneath. Your features on top.

See the architecture

Less to write. Less to read.

Built for you.
And your agents.

Less code for you. Less context for your agent.

See the measurements
less app code
6×
Measured in the Todo comparison
fewer agent tokens
7×
Estimated for the 50th feature
folder per feature
1
A predictable place for every change

From idea to your first feature

Your next app
starts here.

One command to create your app. Your plugins take it from there.

npm create @bitakit/app@latest my-app
A real app. Your first feature.
Create it. Extend it. Check the connections.
  1. Create your app

    npm create @bitakit/app@latest my-app

    Your framework, ready to build on.

  2. Add a feature

    npx bitakit add plugin reports

    Run inside my-app. Your plugin gets its own folder.

  3. Check the connections

    npx bitakit doctor

    Check services, dependencies and configuration.