Svelte Commerce
A standalone open-source storefront built with SvelteKit, headless across 26 commerce backends. MIT licensed.
Find motorcycle service centres, repair shops and riding gear near you.
CommerceTypeScript · CSSGitHub @keshavchaudhary0403-lgtmOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A Vercel-ready Next.js foundation for BikeHub: an open, location-led service, routes and rider-knowledge platform for India’s premium motorcycle community.
The rider-facing website is public. Visitors do not need to register or sign in to search service centres, read profiles, explore routes or read community content. Authentication is reserved for service-centre partners and administrators.
npm install..env.example to .env.local.sb_publishable_...). Older projects may use the legacy anon key as a fallback.npm run dev and open http://localhost:3000.The public pages render with a safe local fallback when Supabase is unavailable. With Supabase configured, service-centre discovery reads live rows and centre enquiries are inserted into the database.
After deploying with the Supabase environment variables, open /api/health/supabase. A successful connection returns JSON containing "connected": true and the number of service-centre rows visible through RLS.
Create a new Supabase project, open SQL Editor and run these files in order:
supabase/migrations/001_schema.sqlsupabase/migrations/002_rls_policies.sqlsupabase/migrations/003_seed.sqlsupabase/migrations/004_launch_content.sqlsupabase/migrations/005_api_grants.sqlsupabase/migrations/006_listings_live.sqlService centres, repair shops and riding-gear shops are imported from OpenStreetMap for 18 cities (Delhi NCR, Mumbai, Pune, Bengaluru, Hyderabad, Chennai, Kolkata, Ahmedabad, Jaipur, Chandigarh, Lucknow, Kochi, Indore, Dehradun). It needs NEXT_PUBLIC_SUPABASE_URL and SUPABASE_SECRET_KEY in .env.local.
npm run import:osm # all cities
npm run import:osm -- pune # one city
npm run import:osm -- --dry # fetch and classify without writing
Re-running updates existing rows in place (matched on the OSM id) and never overwrites listings a partner has claimed. OSM data must be credited, and the listing pages already do this. OSM covers far fewer shops than Google Maps. service_centres.google_place_id is reserved for a later Google Places API enrichment. Google's terms only allow storing the place id, so other Google fields should be fetched live or cached for no more than 30 days.
Create users in Supabase → Authentication. To link a partner to their listing, set service_centres.owner_id to the user's id. To make someone an administrator, set profiles.role = 'admin'. Partners can then edit their listing and manage enquiries at /partner/dashboard. Admins can verify or hide listings and read enquiries and contact messages at /admin.
Set partner and administrator roles by updating public.profiles.role from a secure administrator process. Never expose the service-role key in browser code.
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY, and NEXT_PUBLIC_SITE_URL in Project Settings → Environment Variables. Add SUPABASE_SECRET_KEY only after a server-only feature genuinely requires it; never expose it with a NEXT_PUBLIC_ prefix.npm run build as the build command.For continued development, connecting a Git repository to Vercel is more reliable than repeatedly uploading folders.
/partner/dashboard and /admin with server-side role checks before production use.Images in public/images were created for the BikeHub concept and optimized for this project. Each primary visible card uses a distinct image. Alt text and stable image containers are included to prevent layout shift.