Vintner

Trellis Web Platform

The central control plane for multi-cloud infrastructure orchestration.

Trellis Web Platform

Trellis is the web-based control plane. It provides a visual interface for configuring infrastructure, managing cloud integrations, monitoring jobs, and viewing provisioned clusters — all from the browser.

Tech Stack

LayerTechnology
FrameworkNext.js 15 (App Router, Server Actions)
DatabaseSupabase PostgreSQL with Row Level Security
AuthSupabase GoTrue (OAuth: GitHub, GitLab, Bitbucket, Google)
RealtimeSupabase Realtime WebSocket (how it works)
StorageSupabase S3 for Terraform state and plan artifacts
UITailwind CSS, shadcn/ui, Zustand state management

Key Pages

Architecture

Browser ──► Next.js App Router
              ├── Server Actions (Supabase client with RLS)
              ├── API Routes (Worker + CLI token auth)
              └── Supabase Realtime (WebSocket subscriptions)
                   └── Live updates → browser stores

All database access goes through Supabase with RLS policies enforcing per-user data isolation. Server Actions inherit the authenticated user's RLS context automatically.

State Management

Trellis uses six Zustand stores for client-side state, each with a 30-second stale threshold and real-time event handlers:

StorePurpose
useVineStoreForm pricing data during vine creation
useJobsStoreJob list with filters, pagination, real-time upserts
useTendrilsStoreTendril list with deploy/update/destroy actions
useClustersStoreActive clusters from provisioned vines
useVineyardsStoreVineyard hierarchy with vine status updates
useCloudProviderStoreSelected provider, identity, cached resources

Real-time subscriptions are established on dashboard layout mount and feed updates into these stores. See Real-time Architecture for details.

On this page