AI-assisted course authoring and delivery — design programs, browse the catalog, and chat with course agents on the ibl.ai platform.
The video demo is available here.
Course is deployed at course.ibl.ai.
Course is an end-to-end course-authoring workspace on the ibl.ai platform. Plan a project, attach mentors, browse or create courses, and chat with an agent that helps draft outlines and unit content — all from one shell powered by the @iblai/iblai-js SDK and connected to iblai.app.
| Home | My Courses |
|---|---|
![]() |
![]() |
| Feature | Description |
|---|---|
| Chat | Agent chat at /platform/{tenant}/{mentor} via the SDK chat surface — streaming, sessions, files, voice |
| Explore Agents | Browse agents through the SDK <AgentSearch> component at /agents |
| My Courses | Per-tenant course list fetched from the course-creation API (/api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/course/) with About / Schedule / Edit / Preview / Delete actions and the "View Creation Prompt" dialog |
| Course Catalog | Cross-tenant public marketplace via the SDK useDiscover({ tenantOverride: "main" }) hook |
| Course Content | edX learner UI at /course-content/[id]/{course,dates,progress,discussion,bookmarks} |
| Projects | Create + manage projects in the sidebar, attach mentors per project |
| Customize | Tenant-wide configuration surface at /customize |
| Users | User directory + role management |
| Account | Profile, social, security, and admin tabs in the SDK account dialog |
| SSO Authentication | Login via iblai.app — no tokens to manage |
| Tenant Switching | Switch organizations from the avatar dropdown |
Refer to CLAUDE.md (when present) at the repository root for component priorities, SDK import conventions, and the env-setup flow Claude Code should follow when running the app for the first time.
- Node.js 18+
- pnpm (fall back to npm only if unavailable)
- An ibl.ai platform login (or a tenant you can SSO into via iblai.app)
- The
iblaiCLI — install from source (see below)
The CLI is installed from source via make. clone + make install is the supported install path — the version you run tracks the templates the team is editing.
macOS / Linux (Python 3.11+, pip, git, make):
git clone https://github.com/iblai/iblai-app-cli.git
cd iblai-app-cli
make -C .iblai install
cd - # back to your projectIf iblai isn't found afterwards, add ~/.local/bin to your PATH:
export PATH="$HOME/.local/bin:$PATH" # add to ~/.bashrc or ~/.zshrc to persistWindows (Python 3.11+, pip, git):
git clone https://github.com/iblai/iblai-app-cli.git
cd iblai-app-cli
pip install -e .iblai/
cd -If iblai isn't found, ensure Python Scripts is on PATH (typically %APPDATA%\Python\Python311\Scripts\).
Verify the install:
iblai --versionpnpm install
pnpm devOpen http://localhost:3000. You'll be redirected to https://login.iblai.app for SSO; on return, the home page resolves your active tenant and lands you on the workspace home.
.env.local is already populated with the iblai.app endpoints — no manual platform credentials are needed up front. Tenant + username are resolved at runtime from the SDK after SSO completes.
pnpm build
pnpm startVitest covers the libraries, hooks, providers, components, and modals:
pnpm test # one-shot
pnpm test:watch # rerun on file changes
pnpm test:coverage # html + console v8 report under coverage/Playwright covers user journeys via real SSO:
pnpm test:e2e # spins up `next dev`, runs auth.setup.ts once, then the journeys
pnpm test:e2e:ui # Playwright UI mode
pnpm test:e2e:headed # headed browseriblai deploy vercelThe CLI auto-detects the deploy mode from next.config.mjs. Course is a server-rendered Next.js app, so the CLI will:
- deploy the repo root to Vercel for a remote build,
- disable Vercel authentication / password protection,
- upload env vars from
.env.localto production + preview (NEXT_PUBLIC_*asplain, the rest asencrypted; reserved keys andyour-…placeholders are skipped), - rerun the deploy with
--force+VERCEL_FORCE_NO_BUILD_CACHE=1whenever env vars changed so the newNEXT_PUBLIC_*values are re-inlined into the client bundle.
Override detection with --mode static or --mode server when needed. Full guide: /iblai-ops-deploy.
Setup: generate a Vercel token at https://vercel.com/account/tokens and add it to iblai.env:
echo 'VERCEL_TOKEN=<token>' >> iblai.envTip: You can change the Vercel domain name by clicking on the three-dot button on your Vercel project on
vercel.comand selecting "Manage Domains".
Wrap Course in a native shell with Tauri v2 using the iblai builds family of commands (full guide: /iblai-ops-build). All platforms share a single static next build export — the CLI runs the frontend build automatically before starting the Tauri dev server, and the WebView loads the same out/ bundle. Stop pnpm dev (and any other process on port 3000) before running a dev build.
iblai add builds # Add Tauri support to the project
pnpm install
iblai builds iconography logo.png # Generate per-platform app iconsYou'll also need Rust via rustup.
For mobile SSO, set TAURI_CUSTOM_SCHEME=courseai in iblai.env so the auth SPA redirects via a custom URI scheme (mobile WebViews can't return from an https:// redirect to a native app).
Requires macOS + Xcode + Xcode Command Line Tools.
rustup target add aarch64-apple-ios aarch64-apple-ios-sim
iblai builds ios init # one-time
iblai builds device # list simulators
iblai builds ios dev "iPhone 16 Pro Max" # run on simulator
iblai builds ios dev --device # run on a connected iPhone
iblai builds ios build # produce .ipa
iblai builds ci-workflow --ios # generate App Store CIRequires Android Studio with the Android SDK + NDK installed.
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
iblai builds android init # one-time
iblai builds device # list emulators
iblai builds android dev "Pixel_9" # run on emulator
iblai builds android dev --device # run on a connected device
iblai builds android build # produce APK
iblai builds ci-workflow --android # generate Play Store CIRequires xcode-select --install.
iblai builds dev # run as a desktop app
iblai builds build # produce .dmg / .app
iblai builds ci-workflow --mac # generate macOS CISystem deps (Debian/Ubuntu):
sudo apt install libwebkit2gtk-4.1-dev build-essential libssl-dev \
libgtk-3-dev libayatana-appindicator3-dev librsvg2-deviblai builds dev # dev shell
iblai builds build # produce .deb / .AppImage
iblai builds ci-workflow --linux # generate Linux CIRequires Visual Studio Build Tools (C++ workload) and WebView2 (bundled with Windows 11).
iblai builds dev # dev shell
iblai builds build # produce .msi / .exe
iblai builds ci-workflow --windows # generate Windows CIiblai builds ci-workflow --allapp/
├── layout.tsx # Root layout — wraps with providers
├── page.tsx # Home redirect (auth check → workspace)
├── login/ # SSO entry
├── sso-login-complete/ # SSO callback (SDK <SsoLogin>)
├── home/ # Authed home / dashboard
├── agents/ # <AgentSearch> grid
├── platform/[tenantId]/[mentorId]/ # Mentor chat
├── chat/ # Standalone chat surface
├── course/ # Per-course landing
├── course-catalog/ # Cross-tenant public catalog (useDiscover tenantOverride:"main")
├── course-content/[id]/ # edX learner UI (course / dates / progress / discussion / bookmarks)
├── courses/ # My Courses — course-creation list view
├── customize/ # Tenant customization
├── project/ # Project workspaces
└── users/ # User directory + roles
components/
├── account-dialog.tsx # Profile / social / security / admin tabs in a modal
├── analytics-navigation.tsx # Analytics surface (when enabled)
├── chat-input/ # Custom chat input form
├── chat-tabs/ # Chat tab strip
├── course-creation-academy-block.tsx # AI-assisted course-creation entry point
├── create-academy-dialog.tsx # School / academy creation flow
├── credential-detail-modal.tsx # Integration credential viewer
└── modals/ # Shared dialogs (invite, rename, delete, create project, ...)
lib/iblai/
├── config.ts # NEXT_PUBLIC_* env reader
├── tenant.ts # Tenant resolution
├── course-actions.ts # Course-creation REST helpers (list, delete, brief lookup)
├── auth-utils.ts # redirectToAuthSpa, logout, handleTenantSwitch
└── use-url-context.ts # tenantKey + mentorId + username from URL params
providers/
└── iblai-providers.tsx # Redux + AuthProvider + TenantProvider
- Next.js — App Router
- @iblai/iblai-js — SDK for auth, UI components, and data
- @iblai/data-layer — RTK Query data layer
- @iblai/web-containers — framework-agnostic SDK components
- LiveKit — WebRTC transport for real-time avatar / voice sessions
- Tailwind CSS — utility-first styling with ibl.ai design tokens
- shadcn/ui — accessible UI primitives
- iblai.app — production backend for auth, AI agents, billing, and analytics
- Fork the repo and clone it
- Install dependencies:
pnpm install - Start the dev server:
pnpm dev
- Create a branch from
main:git checkout -b feat/my-feature - Make your changes
- Run
pnpm buildandpnpm testto verify - Commit and push your branch
- Open a pull request against
main
- Use ibl.ai SDK components first — do not build custom components when an SDK equivalent exists
- Use shadcn/ui for custom UI — install via
npx shadcn@latest add <component>, not raw HTML or third-party libraries - Do not override SDK styles — SDK components ship with their own styling
- Use SDK design tokens — reference CSS variables like
var(--primary-color),var(--border-color),var(--text-secondary)instead of hardcoded colors - Course-creation API: paths like
/api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/course/{id}/take the integerEdxCourse.id, not the edX locator. Seelib/iblai/course-actions.ts. - Use
pnpmas the package manager
Use the iblai CLI and Claude Code skills to add new features:
iblai add auth # SSO authentication
iblai add profile # User profile
iblai add account # Account/org settings
iblai add analytics # Analytics dashboard
iblai add notification # Notification bell
iblai add invite # Invite dialogs
iblai add builds # Tauri v2 desktop/mobile shellSee CLAUDE.md for the full list of skills and component priority rules.
- ibl.ai Documentation
- iblai-app-cli — CLI for scaffolding ibl.ai apps
- @iblai/mcp — MCP server for AI-assisted development
- Vibe — developer toolkit for building with ibl.ai
- Vibe Starter — pre-wired Next.js + ibl.ai SSO template
Released under the MIT License.
Built with ibl.ai Vibe


