尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
A holiday-packages marketplace: browse curated trip packages, compare and wishlist them, build a fully custom itinerary, and book — all in one flexible, engaging website. Includes a real backend (Supabase) and an /admin panel for managing the catalogue and incoming leads.查看完整 README ↗A holiday-packages marketplace: browse curated trip packages, compare and wishlist them, build a fully custom itinerary, and book — all in one flexible, engaging website. Includes a real backend (Supabase) and an /admin panel for managing the catalogue and incoming leads.
/admin — a login-gated panel where you can add/edit/delete packages, destinations, suppliers and deals, and see/act on every booking, custom trip quote, contact message and supplier partner application that comes in.@tailwindcss/vite)/api) for anything that writes data or needs to stay secretlocalStorage (per-visitor UI convenience) — everything else (packages, bookings, quotes, messages, applications) lives in the database once it's connected.Without Supabase configured, the site still works exactly as before — it falls back to the demo catalogue in src/data/*.ts, and the admin login page shows a setup notice instead of a login form. This means you can develop and deploy immediately, then wire up the backend whenever you're ready.
supabase/schema.sql, then run it. This creates all the tables and Row Level Security policies.npm install
SUPABASE_URL=https://your-project.supabase.co SUPABASE_SERVICE_ROLE_KEY=your-service-role-key npx tsx scripts/seed.ts
Get both values from Supabase Dashboard → Project Settings → API. This is idempotent — safe to re-run any time..env.local for development (see .env.example):
VITE_SUPABASE_URL — your project URL (safe to expose to the browser)VITE_SUPABASE_ANON_KEY — your anon public key (safe to expose to the browser)SUPABASE_SERVICE_ROLE_KEY — never prefix this with VITE_. It must stay server-side only; the /api functions use it to bypass Row Level Security for writes. Don't commit it, don't put it in a VITE_ variable, don't paste it anywhere public./admin/login on your live site and sign in.npm install
npm run dev # start dev server
npm run build # type-check + production build
npm run preview # preview the production build
npm run lint # oxlint
Note: the /api serverless functions only run when deployed on Vercel (or via vercel dev locally) — npm run dev serves the frontend only. The public site still works locally without them (falls back to demo data); admin writes and the public forms (checkout, contact, supplier applications, trip quotes) need vercel dev or a real deployment to actually reach the database.
image fields (in src/data/*.ts for the demo data, or directly in /admin once connected) for your own brand photography before going live.src/data/testimonials.ts) — edit that file directly to change them.