A modern and efficient e-commerce solution tailored for startups, enabling seamless setup and free hosting on Vercel and Supabase Cloud.
The ulisha-store-next project is now officially deprecated and will be migrated to ulisha-store-laravel.
Effective immediately:
- No new features will be added
- No bug fixes will be implemented
- No maintenance or support will be provided
This repository is now archived in place and should be considered read-only moving forward.
All future development, improvements, and support will continue under:
ulisha-store-laravel
This decision was made after evaluating architectural, scalability, and long-term maintenance concerns encountered in the Next.js implementation.
For a full breakdown of the issues and lessons learned, read:
👉 https://www.melvinjonesrepol.com/blog/ulisha-store-next-to-laravel-what-did-go-wrong
- Both projects are based on the Polyform Noncommercial License 1.0.0
- ulisha-store-next remains available under this license for reference use
- ulisha-store-laravel is closed source
- A separate license is required to access or use the Laravel version
- A open-source migration program to automatically migrate database will be released
For more details about the Laravel project, visit:
👉 https://www.melvinjonesrepol.com/ulisha-store-laravel
- Start using ulisha-store-laravel for all new deployments
- Avoid building on top of ulisha-store-next
- Plan migration of existing setups as soon as possible
Note: This repository will remain available for reference purposes only.
- Node.js
- Supabase (requires Docker)
- Google ReCaptcha
- MixPay (Payment)
- PayStack (Payment)
- Sentry (Optional)
First by creating a supabase cloud project:
- go to Supabase Dashboard
- click
New Project - choose:
- Organization → (create one if needed)
- Project Name → e.g. super-ulisha-store-app
- Database Password → choose a secure one
- Region → pick the nearest location
- Click Create new project
- Wait a few moments for the database to be provisioned.
Copy the .env.example to .env
cp .env.example .env| Variable | Description | Location |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL |
Your Supabase project URL (e.g., https://<project-id>.supabase.co) |
Supabase Project → Settings → General → Project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
Public anonymous key for client-side access | Supabase Project → Settings → API → Project API Keys |
SUPABASE_SERVICE_ROLE_KEY |
Service role key for server-side access ( |
Supabase Project → Settings → API → Project API Keys |
Login first (if you haven't):
npx supabase loginLink the cloud project to this local one:
npx supabase linkIt'll show the list of project you have select your project.
Push migrations to cloud:
npx supabase db pushPull migrations from cloud:
npx supabase db pullUpdating types (if you ever changed migrations):
npx supabase gen types typescript --project-id <project-id> --schema public > src/supabase-types.tsCreating a bucket:
- Go to your project storage -> buckets
- Create new bucket name
product-images
Seed the database:
npm run db:seedTo start a local development server, run:
npm run devOnce the server is running, open your browser and navigate to http://localhost:4000/. The application will automatically reload whenever you modify any of the source files.
To build the project run:
npm run buildThis will compile your project and store the build artifacts in the dist/ directory. By default, the production build optimizes your application for performance and speed.
This project is licensed under the Polyform Noncommercial License 1.0.0.
© 2025 Ulisha Limited.