Skip to main content
The cloud component is a Next.js 16 application that provides the multi-tenant backend and web interface for OpenBunny. It’s backed by Supabase PostgreSQL with Row Level Security for data isolation.

What it provides

  • Web dashboard — Kanban board, task detail, calendar, and timeline views
  • Team management — create teams, invite members, assign roles
  • API token authentication — PAK tokens for service-to-cloud communication
  • Push notifications — APNs (iOS), FCM (Android), and Web Push
  • Gmail integration — OAuth flow and webhook handling
  • SSE event bridge — real-time event delivery to the service

Tech stack

ComponentTechnology
FrameworkNext.js 16 (App Router)
FrontendReact 19
StylingTailwind CSS 4
DatabaseSupabase PostgreSQL
AuthSupabase Auth (magic link OTP)
Drag-and-drop@hello-pangea/dnd
CalendarFullCalendar

Web UI pages

PagePathDescription
Dashboard/dashboardKanban board with 5 columns
Task detail/tasks/[id]Full task view with comments
New task/tasks/newTask creation form
Contacts/contactsContact list with search
Contact detail/contacts/[slug]Contact profile with identities
Settings/settingsProfile, team members, API tokens
Email settings/settings/emailGmail connection management
Calendar/calendarCalendar view of reminders
Timeline/timelineActivity timeline

Project structure

cloud/
├── src/
│   ├── app/
│   │   ├── (app)/              # Authenticated routes
│   │   │   ├── dashboard/      # Kanban board
│   │   │   ├── tasks/          # Task views
│   │   │   ├── contacts/       # Contact views
│   │   │   ├── settings/       # Settings & tokens
│   │   │   ├── calendar/       # Calendar view
│   │   │   └── timeline/       # Activity timeline
│   │   ├── api/                # REST API routes
│   │   ├── login/              # Magic link login
│   │   └── auth/               # OAuth callbacks
│   ├── components/             # React components
│   ├── lib/                    # Auth, Supabase clients, types
│   └── middleware.ts           # Auth guard
├── supabase/
│   └── migrations/             # SQL migrations (001-018)
└── package.json