Supabase Client Package (@repo/supabase-client)
The Supabase Client package provides a wrapped Supabase client with production-ready SSL configuration, TypeScript type safety, and a singleton pattern for efficient client reuse across applications.Overview
@repo/supabase-client abstracts Supabase client creation and configuration, providing a consistent interface for database access, authentication, storage, and real-time subscriptions across all MOOD MNKY applications.
Key Features
- SSL Support: Production-ready SSL certificate configuration
- Type Safety: Full TypeScript types from database schema
- Singleton Pattern: Efficient client reuse
- Environment-Aware: Automatic configuration based on environment
- Error Handling: Consistent error handling patterns
Installation
The package is automatically available as a workspace dependency:Usage
Basic Client Creation
Server-Side Client
Type-Safe Queries
Configuration
Environment Variables
The package uses standard Supabase environment variables:SSL Configuration
For production environments, configure SSL:API Methods
Database Queries
Authentication
Storage
Real-Time Subscriptions
Type Safety
Database Types
Import types from the shared types package:Generated Types
Types are generated from the database schema:Error Handling
Consistent Error Patterns
Best Practices
Client Reuse
- ✅ Reuse client instances when possible
- ✅ Use singleton pattern for client creation
- ❌ Don’t create new clients for each request
Error Handling
- ✅ Always check for errors
- ✅ Provide user-friendly error messages
- ✅ Log errors for debugging
Type Safety
- ✅ Use TypeScript types from database schema
- ✅ Type all queries and responses
- ✅ Keep types synchronized with schema
Related Resources
- Supabase Documentation - Supabase integration guide
- Local Development - Local setup
- SSL Configuration - Production SSL setup
- Applications - See client usage in apps