Skip to content

airbytehq/embedded-demoapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ Airbyte Embedded Widget Demo

Experience the power of Airbyte's Embedded Widget in action!

This is a Turborepo-powered monorepo containing the Airbyte Embedded Widget demo with multiple frontend implementations:

  • Vanilla JavaScript + Server
  • React
  • Next.js

โšก 2-Minute Quick Start

๐Ÿ”ง Setup (All Apps)

# Clone and install dependencies for all apps
git clone https://github.com/airbytehq/embedded-demoapp.git
cd embedded-demoapp
npm install

# Configure server environment
cd apps/server
cp .env.example .env
# Edit .env with your credentials

๐Ÿš€ Run All Apps

# From root directory - starts all apps simultaneously
npm run dev

โ†’ Server & Vanilla JS: http://localhost:3000
โ†’ Next.js: http://localhost:3001
โ†’ React: http://localhost:3002

๐ŸŽฏ Run Individual Apps

# Run only the server
npm run dev --filter=@airbyte-demoapp/server

# Run only React app  
npm run dev --filter=@airbyte-demoapp/reactjs

# Run only Next.js app
npm run dev --filter=@airbyte-demoapp/nextjs

๐ŸŽฎ Demo Flow

  1. ๐Ÿ” Enter Demo Password: Protects the demo from public access
  2. ๐Ÿ‘ค Create User Account: Simple email-based authentication
  3. ๐Ÿ”— Connect Your Data: Launch the Airbyte Embedded Widget

Get Your Credentials

  1. Contact Airbyte: Reach out to [email protected] or [email protected] for Embedded access
  2. Get Your Keys: You'll receive your organization ID, client ID, and client secret
  3. Update Config: Add them to your .env file:
# server/.env
SONAR_AIRBYTE_WEBAPP_PASSWORD=your_demo_password
SONAR_AIRBYTE_ALLOWED_ORIGIN=http://localhost:3000
SONAR_AIRBYTE_ORGANIZATION_ID=your_organization_id
SONAR_AIRBYTE_CLIENT_ID=your_client_id
SONAR_AIRBYTE_CLIENT_SECRET=your_client_secret

๐Ÿ› ๏ธ Technical Details

Prerequisites

  • Node.js 18+ (uses native fetch API)
  • Modern browser (Chrome, Firefox, Safari, Edge)

Turborepo Structure

๐Ÿ“ embedded-test/
โ”œโ”€โ”€ ๐Ÿ“ apps/
โ”‚   โ”œโ”€โ”€ ๐Ÿ”ง server/           # Express.js backend (@airbyte-demoapp/server)
โ”‚   โ”œโ”€โ”€ โš›๏ธ reactjs/          # React app (@airbyte-demoapp/reactjs)  
โ”‚   โ””โ”€โ”€ ๐Ÿš€ nextjs/           # Next.js app (@airbyte-demoapp/nextjs)
โ”œโ”€โ”€ ๐Ÿ“ packages/             # Shared packages (empty for now)
โ”œโ”€โ”€ ๐Ÿ“„ package.json          # Root workspace configuration
โ”œโ”€โ”€ ๐Ÿ“„ turbo.json            # Turborepo configuration
โ””โ”€โ”€ ๐Ÿ“– README.md             # You are here!

Available Commands

  • npm run dev - Start all apps in development
  • npm run build - Build all apps for production
  • npm run lint - Lint all apps
  • npm run clean - Clean build artifacts and node_modules
  • npm run test - Run tests across all apps

๐ŸŽจ Customization Examples

Change Theme Colors

/* In any version's CSS file */
:root {
  --accent-primary: #your-brand-color;
  --bg-primary: #your-background;
}

Add Your Logo

// Replace octavia-sonar.png with your logo
<img src="/your-logo.png" alt="Your Brand" className="logo" />

๐Ÿš€ Deployment Guide

๐ŸŒ Complete Vercel Deployment (Recommended)

Deploy the server with one-click button (includes environment variable setup):

Deploy Server

Manual server deploy:

cd apps/server && npx vercel

โš™๏ธ Environment Configuration

Required Environment Variables:

Airbyte Configuration:

SONAR_AIRBYTE_WEBAPP_PASSWORD=your_demo_password
SONAR_AIRBYTE_ALLOWED_ORIGIN=https://your-deployed-app.vercel.app
SONAR_AIRBYTE_ORGANIZATION_ID=your_organization_id
SONAR_AIRBYTE_CLIENT_ID=your_client_id
SONAR_AIRBYTE_CLIENT_SECRET=your_client_secret

Optional Services:

# Redis for user session persistence (optional - falls back to local filesystem)
REDIS_URL=redis://your-redis-url

๐Ÿ’ก Tip: The one-click Vercel button above will prompt you to enter all these variables during deployment!

๐Ÿ“š Detailed Guides

๐Ÿค Contributing

Found a bug? Want to add a feature? PRs welcome!

  1. Fork the repo
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“ž Support


๐ŸŽ‰ Happy data moving! Built with โค๏ธ by the Airbyte team.