New features:
- HLS video encoding/streaming (hls routes, hls-encoder) and a media
transcripts pipeline (transcripts route + media-transcript queries)
- AI assistant chat vs. run model: agent-course-generation worker/queue,
run-monitor pane, chat-changes card, content ask-ai bar
- Per-theme course-page previews across org landing-page themes (bold,
classic, corporate, editorial, etc.) with a shared course token/component set
- View-as-student mode and login-link / link-invite invite flows
Refactor:
- Extract packages/core consolidating config (env, storage, dashboard-url),
services and utils previously duplicated under apps/api/src/config
- Remove legacy agent service modules (chat-tools, chat-context,
context-window, document, fetch-url, lesson-content)
- Relax Cross-Origin-Resource-Policy to allow cross-origin media embedding
- Add format script to tenant-router so turbo run format covers it
- Added 'tldts' and 'tldts-core' to the Vite SSR noExternal configuration.
- Refactored error handling in +error.svelte and auth-failed/+page.svelte to use a goHome function for navigation instead of href attributes.
* feat: add README for @cio/db package and remove existingAccounts.json
* load session, load profile and organization, add create profile hook
* chore: cache session request
The trick was passing all the cookies to the backend. Previously I was only passing the better-auth.session_token and not better-auth.session_data. Read about the difference here https://www.better-auth.com/docs/concepts/cookies#custom-cookies
* feat: login, logout, onboarding, verify email, reset password.
* feat: complete change email and email verification
* feat: standardise how we make rpc calls and create org endpoints
* fix ui errors
* fix: handle potential undefined customerId and standardize avatar URL property
* refactor: standardize custom domain handling and update telegram chat ID references
* chore: add tailwind prefix to @cio/ui
this fixed the media query issues because @cio/ui classes were overriding this dashboard tailwind build
* chore: clean up org sidebar
* chore: persist mode state
* feat: implement order breadcrumbs
* chore: upgrade to better auth 1.4
* chore: address common auth flow bugs and setup app for others to setup locally.
* feat: support hono rpc
* add wrangler file
* update name of wrangler file
* add wrangler as a dependency
* add compatibility_flags
* trigger ci
* core: add health check to docker file
* expose port 80
* update custom healthcheck
* feat: implement openapi
* install dependencies in root
* debug yml
* update yml
* update port
* update dockerfile with envs
* completely move away from apiClient
* rename backend to api
* refactor: update server descriptions and comment out local spec saving
* update lock file
* use api.classroomio.com
* add support for redis
* fix: add missing line break in WelcomeModal.svelte
* refactor: remove wrangler configuration and update Vite config for API integration
* feat: move plans into sharable json
* remove unused code
* update pnpm lock
* update plans.json
* implement early adopter pricing
* docs: update meta title and description
* Finished the UI for upgrading plans
* Updated the pricing plans
* Updated the cards ui
* use relative import
* improve styling of upgrade plan card
* styling improvements, lemonsqueezy setup
* trigger lemonsqueezy payment and add webhook
* update pnpm lock
* add logout route
* feat: complete billing functionality
* generate lock file
* make crypto false on browser
* feat: adding upgrade prompts to org
* chore: add upgrade icon to upload video
* feat: add upgrade prompt to certificate and settings
* feat: implement onboarding setup page (#229)
* working on the onboarding setup
* working on the onboarding page
* Almost done with the onboarding UI
* finished the UI of the onBoarding setup
* finished the UI of the onBoarding setup
* Implementing the functions to carryout the logic of updating the UI onmount if a user has carried out a certain step or not
* Implementing the functions to carryout the logic of updating the UI onmount if a user has carried out a certain step or not
* making some chnages
* finished the onBoarding task
* updated some logic
* Removed the uneeded svg from the static folder
* fixed isCoursePublished not returning a boolean
* improved the setup link protection
* chore: make menuItems reactive
* improve formatting
* format supabase queries
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* revamp setup
* improve the upgrade experience
* migration
* feat: add lemonsqueezy customer portal
---------
Co-authored-by: emmanuel <chifez1@gmail.com>
* Merge main into turbo-monrepo
* feat: rename apps
* feat: remove supbase videos and serve all from project
* feat: move supabase to root
* feat: update README
* docs: update link