MCPcopy Index your code
hub / github.com/chaibuilder/sdk

github.com/chaibuilder/sdk @v3.2.14

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.2.14 ↗ · + Follow
907 symbols 3,152 edges 455 files 28 documented · 3%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Chai Builder - Open Source Tailwind Builder

Chai Builder is an Open Source Low Code React + Tailwind CSS Visual Builder. It allows you to create web pages visually by dragging and dropping elements onto the canvas. It is a simple React component that renders a full-fledged visual builder into any React application.

Docs: https://docs.chaibuilder.com/

Demo: https://chaibuilder-sdk.vercel.app/

CHAI BUILDER


Manual installation:

Step 1: Install the packages

npm install @chaibuilder/sdk

Step 2: Add a custom tailwind config. Create a new file: tailwind.chaibuilder.config.ts.

Pass the path to your source files.

import { getChaiBuilderTailwindConfig } from "@chaibuilder/sdk/tailwind";
export default getChaiBuilderTailwindConfig(["./src/**/*.{js,ts,jsx,tsx}"]);

Step 3: Create a new chaibuilder.tailwind.css

@config "./tailwind.chaibuilder.config.ts";

@tailwind base;
@tailwind components;
@tailwind utilities;

Step 4: Add the builder to your page.

import "./chaibuilder.tailwind.css";
import "@chaibuilder/sdk/styles";
import {loadWebBlocks} from "@chaibuilder/sdk/web-blocks";
import { ChaiBuilderEditor } from "@chaibuilder/sdk";

loadWebBlocks();

const BuilderFullPage = () => {
  return  (
      <ChaiBuilderEditor
          blocks={[{_type: 'Heading', _id: 'a', content: 'This is a heading', styles: '#styles:,text-3xl font-bold'}]}
          onSave={async ({ blocks, providers, brandingOptions } ) => {
            console.log(blocks, providers, brandingOptions );
            return true
          }}
      />
  );
}

Render the blocks on your page.

export default () => {
    return <RenderChaiBlocks blocks={blocks}/>
}

Support

If you like the project, you can assist us in expanding. ChaiBuilder is a collaborative endeavor crafted by developers in their free time. We value every contribution, no matter how modest, as each one represents a significant step forward in various ways, particularly in fueling our drive to enhance this tool continually.

Buy Me A Coffee

Acknowledgments

Chai Builder stands on the shoulders of many open-source libraries and tools. We extend our gratitude to the developers and maintainers of these projects for their contributions.

Extension points exported contracts — how you extend this code

ChaiBuilderEditorProps (Interface)
(no doc)
src/types/chaibuilder-editor-props.ts
Option (Interface)
(no doc)
src/core/components/chai-select.tsx
State (Interface)
(no doc)
src/ui/shadcn/components/ui/use-toast.ts
State (Interface)
(no doc)
src/hooks/use-toast.ts
ExportModalProps (Interface)
(no doc)
src/_demo/export-button.tsx
CoreBlock (Interface)
(no doc)
src/types/core-block.ts
ChaiSelectProps (Interface)
(no doc)
src/core/components/chai-select.tsx
SheetContentProps (Interface)
(no doc)
src/ui/shadcn/components/ui/sheet.tsx

Core symbols most depended-on inside this repo

cn
called by 102
src/ui/shadcn/lib/utils.ts
getInputTypeAndAutocomplete
called by 72
src/web-blocks/form/input.tsx
convertArbitraryToTailwindClass
called by 69
src/core/functions/convert-brbitrary-to-tailwind-class.ts
useBuilderProp
called by 61
src/core/hooks/use-builder-prop.ts
getTwClassValue
called by 35
src/core/functions/helper-fn.ts
useSelectedBlockIds
called by 35
src/core/hooks/use-selected-blockIds.ts
getUserInputValues
called by 33
src/core/functions/get-user-input-values.ts
pickOnlyAIProps
called by 30
src/core/hooks/use-ask-ai.ts

Shape

Function 831
Interface 47
Method 21
Class 8

Languages

TypeScript100%

Modules by API surface

src/core/hooks/structure-rules.ts17 symbols
src/core/components/settings/new-panel/manage-design-token/manage-design-tokens.tsx15 symbols
src/core/import-html/html-to-json.ts14 symbols
src/core/components/canvas/dnd/drag-and-drop/drag-and-drop-utils.ts14 symbols
src/core/frame/Frame.tsx12 symbols
src/core/components/sidepanels/panels/outline/node.tsx11 symbols
src/web-blocks/hidden/table.tsx10 symbols
src/core/utils/css-theme-parser.ts10 symbols
src/core/components/sidepanels/panels/outline/list-tree.tsx10 symbols
src/core/components/settings/new-panel/manual-classes.tsx10 symbols
src/core/components/canvas/static/chai-canvas.tsx10 symbols
src/ui/shadcn/components/ui/use-toast.ts9 symbols

For agents

$ claude mcp add sdk \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact