尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Pinfo's website
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Source for pinfoapp.com, Pinfo's marketing website, served via GitHub Pages.
index.html — landing pageprivacy/index.html — privacy policy, served at /privacytos/index.html — terms of service, served at /tossite-notice/index.html — German Impressum (site notice), served at /site-noticeevent/index.html — event landing page, served at /event404.html — catch-all fallback that also handles per-event links
(/event/<uuid>) on GitHub Pages, since GitHub Pages has no server-side
rewrites. Kept byte-identical to event/index.html on purpose — see
"Two hosting setups" below. If you edit one, copy it over the other:
cp event/index.html 404.html.functions/event/[id].js — Cloudflare Pages Function that does the same
job as 404.html/event/index.html server-side (see below). Only takes
effect once this repo is actually deployed on Cloudflare Pages._headers, _routes.json — Cloudflare Pages config (ignored by GitHub
Pages). See "Two hosting setups".style.css — shared styleslib/carousel.js — testimonial carousel on the landing pagelib/qna.js — FAQ accordion on the landing pageassets/ — images, icons, badgesCNAME — custom domain (pinfoapp.com)robots.txt — allows all crawlers, points at sitemap.xmlsitemap.xml — lists the site's static pagesThis repo currently supports two ways of being hosted, and only one is actually live:
/event/<uuid> has no matching file, so it falls through to
404.html, served with an HTTP 404 status. Buttons/tags are filled in by
client-side JS after a Supabase fetch, so link-preview crawlers (which
don't run JS and mostly require a 200) never see the real event title,
image, or the magic-invite buttons — the crawler only sees the generic
placeholder card. This is a real, known limitation of static hosting, not
a bug to chase further here.functions/event/[id].js
server-renders the real og:/twitter: tags and returns HTTP 200 for
/event/<uuid>, which is what actually makes link previews work in
WhatsApp/iMessage/Slack. This requires the account owner to (a) create a
Cloudflare Pages project connected to this GitHub repo, and (b) move
pinfoapp.com's nameservers to Cloudflare and add it as the project's
custom domain. Neither step can be done from a coding session — both need
the Cloudflare dashboard and the domain registrar. Until that happens,
this repo keeps working exactly as it does today on GitHub Pages; none of
the Cloudflare-only files (functions/, _headers, _routes.json) do
anything on GitHub Pages, they're just inert.Because of this, event/index.html and 404.html must stay identical.
event/index.html is what Cloudflare's Function fetches as its template and
what serves the exact /event URL on GitHub Pages; 404.html is what
actually serves /event/<uuid> on GitHub Pages today. Any change to the
event page's markup or script (new buttons, copy changes, meta tags) needs
to go into both files, or the two hosting setups will silently drift and
whichever one is live at the time won't have the fix. Once the Cloudflare
cutover happens, 404.html's only remaining job is the true 404 case
(non-event unmatched paths), and it could reasonably be trimmed back down
at that point.
Event links can carry an invite token: https://pinfoapp.com/event/<event_id>?t=<token>.
Opening the link never validates or consumes the token on the website - that
happens only inside the app via an authenticated call, so that a chat app's
link-preview bot (which fetches the URL to build its card) can't burn the
invite before the person taps it. event/index.html/404.html:
?t= is absent — no
buttons, unchanged from before this feature.?t= is present, show two buttons: "Get Pinfo" (App Store) and
"I have Pinfo - open my invite" (pinfo://event/<event_id>?t=<token>, the
app's custom scheme — required because a pinfoapp.com link tapped from a
page already on pinfoapp.com stays in Safari; Universal Links only fire
coming from another app).index.html's <head> carries a meta description, canonical URL, Open Graph
and Twitter Card tags, and SoftwareApplication JSON-LD, so links shared in
WhatsApp/iMessage/Slack render a title, description, and image instead of a
bare URL.aggregateRating to the JSON-LD until there is a real App Store
rating to show — fabricated review markup risks a search-quality penalty.<title>/<h1>/meta description should track the App Store
listing's positioning (discovery/nightlife, not "event planning" — see the
iOS repo's ASO playbook) so the site and the App Store target the same terms.Event links of the form https://pinfoapp.com/event/<uuid> are meant to open the Pinfo iOS app directly instead of Safari.
.well-known/apple-app-site-association and apple-app-site-association (root copy, for pre-iOS 9.3.2 compatibility) declare the association with app ID C2M4B3336A.Pinfo.PinfoApp for the /event/* path..nojekyll is required so GitHub Pages serves the .well-known/ directory (Jekyll hides dot-directories by default).application/octet-stream, not application/json. This is expected and does not need to change — iOS 9.3.1+ does not require the application/json content type. _headers forces application/json for both AASA paths on Cloudflare Pages instead, once/if that's live — see "Two hosting setups"./event/<uuid> cannot resolve to a static per-path file. event/index.html serves the exact /event URL; individual event links (/event/<uuid>) fall through to 404.html, which reads the event id from the path, fetches the event from Supabase for a rich preview (title/date/cover image), and offers to open the app (pinfo://event/<uuid>) or the App Store. GitHub Pages returns these with an HTTP 404 status even though the page renders correctly — some link-preview crawlers may reject that status, which is a known limitation of this hosting setup, not a bug in the page itself.curl -I https://pinfoapp.com/.well-known/apple-app-site-association
Should return 200 with a Content-Type of application/octet-stream.
pinfoapp.com (apex)A records for pinfoapp.com pointing to
185.199.108.153, 185.199.109.153, 185.199.110.153, 185.199.111.153The code side of this migration is done and merged (functions/event/[id].js,
_headers, _routes.json). What's left needs the Cloudflare account and the
domain registrar, which no coding session can do:
PinfoApp/pinfoapp.github.io), branch master. Build
command: none (static site). Build output directory: / (repo root —
Cloudflare auto-detects functions/).pinfoapp.com's nameservers to Cloudflare, then add pinfoapp.com
as the Pages project's custom domain (the Cloudflare dashboard walks
through both together).curl -I https://pinfoapp.com/event/<a real public event uuid> → 200
(not 404), and curl -s on the same URL shows the real event title
and image in the raw og: tags.200 with the generic card
and no leaked details.Content-Type: application/json.apps.apple.com from any
sandbox used so far): confirm https://apps.apple.com/app/id6463236759
still resolves to the real Pinfo App Store listing. It's referenced
throughout this repo (event/index.html, 404.html, index.html,
the Cloudflare Function's fallback card) as the canonical download link.