Svelte Commerce
SvelteKit으로 만든 독립형 오픈소스 스토어프론트, 26개 상거래 백엔드와 헤드리스 연동, MIT 라이선스
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 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.