Svelte Commerce
A standalone open-source storefront built with SvelteKit, headless across 26 commerce backends. MIT licensed.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 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.