A comprehensive TypeScript SDK for building, managing, and executing connectors to third-party APIs. The Databite SDK provides a powerful, type-safe way to create integrations with external services, manage data synchronization, and build robust data pipelines.
The Databite SDK is built as a modular monorepo with the following packages:
databite/
βββ packages/
β   βββ build/          # Core SDK for building connectors
β   βββ connect/        # React components for UI integration
β   βββ connectors/     # Pre-built connector library
β   βββ engine/         # Data synchronization and execution engine
β   βββ server/         # Express server with API endpoints
β   βββ types/          # Shared TypeScript types
β   βββ example-webapp/ # Example Next.js web application
β   βββ example-server/ # Example Express server
- @databite/build - Core SDK for building connectors with fluent API
- @databite/types - Shared TypeScript types and interfaces
- @databite/connectors - Library of pre-built connectors (Slack, Trello, etc.)
- @databite/engine - Data synchronization and execution engine with scheduling
- @databite/connect - React components for UI integration
- @databite/server - Express server with API endpoints for connectors
# Install core packages
npm install @databite/build @databite/types
# Install additional packages as needed
npm install @databite/connectors @databite/engine @databite/connect @databite/serverimport { createConnector, createAction } from "@databite/build";
import { z } from "zod";
// Create a connector
const myConnector = createConnector()
  .withIdentity("my-service", "My Service")
  .withVersion("1.0.0")
  .withAuthor("Your Name")
  .withLogo("https://example.com/logo.png")
  .withDescription("Connector for My Service")
  .withActions({
    getData: createAction({
      label: "Get Data",
      description: "Fetch data from the service",
      inputSchema: z.object({ id: z.string() }),
      outputSchema: z.object({ data: z.any() }),
      handler: async (params, connection) => {
        // Your implementation
        return { data: { id: params.id } };
      },
    }),
  })
  .build();- Connector - A template/blueprint that defines what properties and configurations are available
- Integration - An instance of a connector where specific values have been filled in for the properties and configs
- Connection - When someone actually uses an integration to connect to a service
- π§ Connector Builder: Fluent API for defining connectors with full TypeScript support
- β‘ Flow Engine: Execute complex authentication and data workflows with automatic type inference
- π Sync Engine: Handle recurring data synchronization with cron/interval scheduling
- π Context Manager: Manage execution contexts and state across flows
- π¨ React Components: Pre-built UI components for easy integration
- π Express Server: Ready-to-use Express server with RESTful API endpoints
- @databite/build - Core connector builder SDK
- @databite/types - Shared TypeScript types
- @databite/connectors - Pre-built connector library
- @databite/engine - Data synchronization and execution engine
- @databite/connect - React UI components
- @databite/server - Express server with API endpoints
- Node.js >= 16.0.0
- TypeScript >= 4.5.0
- npm or yarn
# Clone the repository
git clone https://github.com/DatabiteDev/databite.git
cd databite
# Install dependencies
pnpm install
# Build all packages
pnpm run build:all
# Run tests
pnpm testdatabite/
βββ packages/
β   βββ build/                    # Core SDK
β   β   βββ src/
β   β   β   βββ connector-builder/ # Builder implementation
β   β   βββ examples/             # Usage examples
β   β   βββ README.md
β   βββ connect/                  # React components
β   β   βββ src/
β   β   β   βββ components/       # UI components
β   β   β   βββ lib/             # Utility functions
β   β   βββ README.md
β   βββ connectors/               # Pre-built connectors
β   β   βββ src/connectors/       # Connector implementations
β   β   βββ README.md
β   βββ engine/                   # Data synchronization and execution engine
β   β   βββ src/
β   β   β   βββ sync-engine/      # Sync engine implementation
β   β   β   βββ action-executer/  # Action execution logic
β   β   β   βββ rate-limiter/     # Rate limiting functionality
β   β   β   βββ databite-engine/  # Main engine implementation
β   β   β   βββ flow-manager/     # Flow session management
β   β   βββ README.md
β   βββ server/                   # Express server
β   β   βββ src/
β   β   β   βββ server.ts         # Main server implementation
β   β   β   βββ utils.ts          # Utility functions
β   β   βββ README.md
β   βββ types/                    # Shared types
β   β   βββ src/types/            # Type definitions
β   β   βββ README.md
β   βββ example-webapp/           # Example Next.js application
β   β   βββ app/                  # Next.js app directory
β   β   βββ components/           # Shared components
β   β   βββ README.md
β   βββ example-server/           # Example Express server
β       βββ src/
β       β   βββ index.ts          # Server setup example
β       βββ README.md
To document changes for a release:
# Create a changeset describing changes
pnpm changesetWhen ready to release:
# When ready to release:
pnpm releaseWe welcome contributions! Please see our Contributing Guide for details.
This project adheres to a Code of Conduct to ensure a welcoming and inclusive environment for all contributors and community members. We are committed to providing a harassment-free experience for everyone, regardless of background, identity, or experience level.
Please read our Code of Conduct to understand our community guidelines and expectations for participation.
This project is licensed under the MIT License - see the LICENSE file for details.
- π Documentation
- π¬ Discord Community
- π Issue Tracker
- π§ Email Support
