saeedvir/
supabase
g4t.io

Supabase Package for Laravel

59 stars by Paul Redmond

A Laravel package for integrating with Supabase services

README from saeedvir/supabase Open on GitHub →

Supabase Laravel Package

alt text

A comprehensive Laravel package for integrating with Supabase services including Auth, Database, Storage, and Realtime.

Installation

You can install the package via composer:

composer require saeedvir/supabase

Configuration

Publish the configuration file:

php artisan vendor:publish --provider="Saeedvir\Supabase\SupabaseServiceProvider" --tag="supabase-config"

Add your Supabase credentials to your .env file:

SUPABASE_URL=https://your-project.supabase.co
SUPABASE_KEY=your-supabase-public-key
SUPABASE_SECRET=your-supabase-secret-key

Get URL & KEY

  • go to supabase Dashboard
  • select your project
  • go to "Project Settings"
  • go to "Data API"
  • copy "Project URL" as "SUPABASE_URL"
  • go to "API KEY"
  • copy "service_role" secret key as "SUPABASE_KEY"
  • then php artisan config:clear

Usage

Using the Facade

use Saeedvir\Supabase\Facades\Supabase;

// Database operations
$users = Supabase::db()->select('users', '*', ['active' => true]);

// Auth operations
$result = Supabase::auth()->signIn('user@example.com', 'password');

// Storage operations
$result = Supabase::storage()->upload('avatars', 'user-avatar.png', '/path/to/local/file.png');

// Realtime operations
$url = Supabase::realtime()->channelUrl('public', 'users');

Using the Service Directly

use Saeedvir\Supabase\Services\SupabaseService;

$supabase = new SupabaseService();

// Database operations
$users = $supabase->db->select('users', '*', ['active' => true]);

// Auth operations
$result = $supabase->auth->signIn('user@example.com', 'password');

Features

Auth Service

  • User signup and signin
  • Password reset
  • User management
  • Session management

Database Service

  • Select, insert, update, delete operations
  • Filtering and ordering
  • RPC function calls

Storage Service

  • File upload and download
  • File management (move, copy, delete)
  • Signed URLs for private files
  • Public and authenticated URLs

Realtime Service

  • WebSocket channel URLs
  • Client connection helpers
  • JavaScript snippets for frontend integration

Configuration Options

You can customize the package behavior by modifying the config/supabase.php file:

  • Enable/disable specific services
  • Configure HTTP client settings (timeout, retries)
  • Set API keys and secrets

Requirements

  • PHP ^8.0
  • Laravel ^11.0|^12.0
  • GuzzleHTTP ^7.0

License

The MIT License (MIT). Please see License File for more information.

More from the ecosystem

marcreichel/
laya-php
g4t.io
3 53

LayaPHP: Self-Hosted Text Classification for PHP and Laravel

Classify text in PHP without an LLM bill: typed decisions in 100+ languages, self-hosted. Laravel-ready SDK for Laya, a Jev AI alternative.

ai classification decision-engine
marcreichel/laya-php via Laravel News
Josh-Dovey/
postcodes-laravel
g4t.io
5 9

Postcodes for Laravel: GB Postcode Lookup and Geography Data

Postcodes for Laravel adds typed GB postcode lookups, validation, geography data, distance searches, and test fakes through the GB Postcodes API.

Josh-Dovey/postcodes-laravel via Laravel News
RedberryProducts/
mailbox-for-laravel
g4t.io
4 115

Mailbox for Laravel: Preview and Test Rendered Email

Mailbox for Laravel captures outgoing mail in a local dashboard and lets you test rendered HTML, recipients, and attachments with fluent assertions.

RedberryProducts/mailbox-for-laravel via Laravel News