尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A production-ready marketing landing page for VoyZa, a trip planning mobile app.
npm install
npm run dev
voyza_landing/
├── app/
│ ├── globals.css # Global styles with Tailwind
│ ├── layout.tsx # Root layout with metadata
│ └── page.tsx # Main landing page
├── components/
│ ├── Hero.tsx # Hero section component
│ ├── FeatureCard.tsx # Reusable feature card
│ ├── PricingCard.tsx # Reusable pricing card
│ └── CTA.tsx # Call-to-action section
├── tailwind.config.ts # Tailwind configuration
├── postcss.config.js # PostCSS configuration
└── next.config.js # Next.js configuration
npm run build
npm start
This project is hosted on Vercel as a Next.js static export (output: 'export' in next.config.js), which is perfect for a landing page with no server-side requirements.
Deployment is automatic via Vercel's GitHub integration: push to the main branch and Vercel builds and deploys to production. There is no manual deploy step, and build artifacts (.next/, out/) are gitignored — Vercel builds from source.
For a rare one-off manual deploy you can run npx vercel --prod with the Vercel CLI, but the standard flow is push-to-main.
public/r/index.html is a self-contained referral invite page. vercel.json rewrites every /r/{CODE} path to it, so share links like https://voyza.xtremon.com/r/VOYZA-ABC234 render with the referral code shown and route the visitor to the app store.
Because the rewrite runs on Vercel's platform, the /r/{CODE} path only resolves once deployed — not in next dev or a local static preview (there, only /r/index.html and the ?c=CODE fallback work).
public/c/index.html is the page behind a trip someone shared from the app's trip page. vercel.json rewrites every /c/{CODE} path to it, so https://voyza.xtremon.com/c/AB12CD shows the trip code and an Open in VoyZa button. The button hands the code to the installed app (voyza://copy/AB12CD; on Android an intent:// link that falls back to Google Play), which opens its copy-a-trip wizard with the code filled in. Without the app the page offers the store buttons and the code to type.
Like /r/{CODE}, the path only resolves once deployed; locally use /c/index.html?c=AB12CD.
Tapping https://voyza.xtremon.com/c/{CODE} in a messenger can open the app without passing through the page. Each platform checks a file on this site first:
public/.well-known/apple-app-site-association (app id J57YQ6F7J9.com.superiordev.voyza, path /c/*). It has no file extension, so vercel.json sets its Content-Type to application/json. The app must also carry the Associated Domains capability with applinks:voyza.xtremon.com. Apple caches the file, so a change can take a day to reach phones.public/.well-known/assetlinks.json, which lists the SHA-256 fingerprint of the key Google Play signs the app with (Play Console → Protected with Play → Play Store distribution → Play app signing → App signing key). If Google ever rotates that key, add the new fingerprint to the list. Builds signed with any other key (a local release build, for one) are not covered and keep opening the page.The page stays as the fallback in both cases: people without the app, links opened inside a browser, and Android until its file exists.