Supabase is an open source Firebase alternative. We're building the features of Firebase using enterprise-grade open source tools.
This repository contains all the functionality for our CLI.
- Running Supabase locally
- Managing database migrations
- Pushing your local changes to production
- Create and Deploy Supabase Functions
- Manage your Supabase Account
- Manage your Supabase Projects
- Generating types directly from your database schema
- Generating API and validation schemas from your database
Available via Homebrew. To install:
brew install supabase/tap/supabaseTo upgrade:
brew upgrade supabaseAvailable via Scoop. To install:
scoop bucket add supabase https://github.com/supabase/scoop-bucket.git
scoop install supabaseTo upgrade:
scoop update supabaseAvailable via Homebrew and Linux packages.
To install:
brew install supabase/tap/supabaseTo upgrade:
brew upgrade supabaseLinux packages are provided in Releases. To install, download the .apk/.deb/.rpm file depending on your package manager and run sudo apk add --allow-untrusted <...>.apk/sudo dpkg -i <...>.deb/sudo rpm -i <...>.rpm respectively.
supabase helpCommand & config reference can be found here.
The CLI is a WIP and we're still exploring the design, so expect a lot of breaking changes. We try to document migration steps in Releases. Please file an issue if these steps don't work!
To run from source:
# Go >= 1.18
go run . helpA simple e-commerce landing page generator for individual product sales. Sellers can create multiple standalone product pages, each with a "Buy Now" button leading to a universal order form.
- Create and manage multiple independent products
- Choose from three beautiful templates (Minimal, Standard, Premium)
- Secure seller authentication
- Order management dashboard
- Real-time status updates
- Responsive design
- Dark mode support
- Next.js (App Router) — React framework for routing and rendering
- Tailwind CSS — Utility-first styling
- Radix UI — Accessible UI primitives
- Lucide Icons — Modern icon set
- React Hook Form + Zod — Form management and validation
- next-themes — Light/Dark theme support
- Next.js API Routes — Server-side logic and APIs
- JWT Auth (with HttpOnly cookies) — Seller login and protected routes
- Supabase — PostgreSQL Database, Auth, and optional file storage
- TypeScript — Strong typing for maintainability
- ESLint & Prettier — Code quality and formatting
- Docker — Local development & potential deployment
- Vercel — For simple and fast frontend deployments
- Node.js 18+
- pnpm
- Docker (optional)
- Supabase account
Create a .env.local file in the root directory with the following variables:
# App
NEXT_PUBLIC_APP_URL=http://localhost:3000
# Supabase
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key- Clone the repository:
git clone https://github.com/yourusername/ecome.git
cd ecome- Install dependencies:
pnpm install- Set up the database:
pnpm supabase:migrate- Start the development server:
pnpm devThe app should now be running at http://localhost:3000.
- Create a new Supabase project
- Copy the environment variables from your project settings
- Run the migrations:
pnpm supabase:migratepnpm dev- Start development serverpnpm build- Build for productionpnpm start- Start production serverpnpm lint- Run ESLintpnpm format- Format code with Prettierpnpm type-check- Run TypeScript type checking
src/
├── app/ # Next.js App Router pages
├── components/ # React components
│ ├── ui/ # Reusable UI components
│ ├── products/ # Product-related components
│ └── orders/ # Order-related components
├── lib/ # Utilities and helpers
│ └── validations/ # Zod schemas
└── types/ # TypeScript types
- Push your code to GitHub
- Import the repository in Vercel
- Add the environment variables
- Deploy
- Build the image:
docker build -t ecome .- Run the container:
docker run -p 3000:3000 ecomeMIT License - see LICENSE for details
