尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Offline-first PWA for the 3HO Summer Solstice Sadhana 2026 festival schedule
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Offline-first mobile app (PWA + native iOS/Android via Capacitor) for the 3HO Summer Solstice Sadhana 2026 festival at Ram Das Puri, near Española, New Mexico (June 19–27, 2026). It replaces the printed booklet with a searchable program, local favorites and a personal agenda, teacher profiles, an offline info hub, and a zoomable camp map — all working on the device once installed, with no signal required. Offline is the product: every feature degrades gracefully with no connectivity, and the app is fully usable logged out.檢視完整 README ↗
Offline-first mobile app (PWA + native iOS/Android via Capacitor) for the 3HO Summer Solstice Sadhana 2026 festival at Ram Das Puri, near Española, New Mexico (June 19–27, 2026).
It replaces the printed booklet with a searchable program, local favorites and a personal agenda, teacher profiles, an offline info hub, and a zoomable camp map — all working on the device once installed, with no signal required. Offline is the product: every feature degrades gracefully with no connectivity, and the app is fully usable logged out.
The app is evolving into a backend-connected, multi-event native app (see
docs/ROADMAP.md). The backend is WordPress + MySQL on 3ho.org
(the 3ho-solstice-app plugin lives in the separate 3ho.org repository).
ACCOUNT_SIGN_IN_ENABLED = false in src/lib/features.ts) because attendees
cannot create accounts yet; see docs/ACCOUNTS.md./ lists every event 3HO publishes (featured + rows,
one tap downloads and opens), the latest announcements and news & posts; each
event has its own home at /event (hero + sections). Synced events render in the
full app experience (Program/Favorites/Teachers/Info/Map/Menus). Sync Lab
(/sync-lab, internal) remains the backend test bench. See docs/HOME.md.src/data/landings.json;
A Woman's Renewal Experience is the first, see docs/LANDINGS.md), install tutorial,
and an account entry in the global header.Start at the docs index for the full map of docs. Key entries:
output: "export")@ducanh2912/next-pwa (Workbox) for the service workerios/ and android/ native projects are committed and syncednpm install
npm run dev
Open http://localhost:3000 (or npm run dev -- -p 3011 for an alternate port).
| Script | What it does |
|---|---|
npm run dev | Local dev server |
npm run typecheck | TypeScript check (tsc --noEmit) |
npm run lint | ESLint |
npm run build | Production build → static export in out/ |
npm run cap:sync | Build + sync the static export into the native projects |
npm run pull-program | Import the published Teacher & Musician program from the checkout feed |
npm run typecheck && npm run lint && npm run build
Routes export as flat files (out/map.html, out/info.html, …) — verify rendered
content in out/, not only in source. Full checklist in CLAUDE.md.
src/app/manifest.ts; icons live in public/icons/.@ducanh2912/next-pwa.src/components/offline-preloader.tsx) pre-caches every route
and static asset under a versioned cache (currently solstice-full-offline-v57).src/components/offline-preloader.tsx and next.config.ts, kept in sync.Installability: Android Chrome → menu → Install app; iPhone Safari → Share →
Add to Home Screen (in-app tutorial at /install).
ios/ and android/ are committed (app id org.threeho.summersolstice2026). Workflow:
npm run cap:sync
npx cap open ios
npx cap open android
Native-only features: agenda reminders 15 minutes before favorited sessions
(@capacitor/local-notifications) and push-registration groundwork
(@capacitor/push-notifications — device token registered with the backend after
sign-in; server-side sending ships with the messaging phase). Both are no-ops in the
browser/PWA. Details in docs/NATIVE.md.
Two sources feed the static data in src/data/:
program.json, venues.json, categories.json,
info-pages.json, teachers.json were extracted from 01_SSOL_booklet_2026.pdf.
Extraction is imperfect; see TODO_CONTENT_REVIEW.md before publishing widely.npm run pull-program (scripts/pull-program.mjs)
merges the published Teacher & Musician program from the registration platform
(register.3ho.org presenter bundle) into the JSON files: presenter-* entries are
replaced wholesale with stable ids (favorites survive reschedules), teachers are
enriched by name match, and photos are downloaded to public/images/teachers/.
Supports --base, --event, --dry-run, --insecure. See
docs/TEACHERS.md.The app consumes a versioned REST bundle from the 3ho-solstice-app WordPress plugin
(implemented in the 3ho.org repository): auth (opaque bearer tokens on WordPress
users), sync (event bundles with since/ETag), and devices (push tokens). The
backend origin is configurable via a shared base-URL override; the app remains fully
usable logged out and offline. See docs/BACKEND.md and
docs/ACCOUNTS.md.
The app is a static export, so it cannot send email by itself. The contact form saves
messages locally first, then posts them to NEXT_PUBLIC_CONTACT_ENDPOINT when online.
Production setup uses wordpress/3ho-solstice-contact-endpoint.php on the 3HO
WordPress site, which exposes:
https://www.3ho.org/wp-json/3ho-solstice/v1/contact
Public app variables (embedded at build time — update Vercel env vars before deploying):
NEXT_PUBLIC_CONTACT_ENDPOINT="https://www.3ho.org/wp-json/3ho-solstice/v1/contact"
NEXT_PUBLIC_CONTACT_EMAIL="[email protected]" # fallback email-draft target only
The automatic recipient is configured on WordPress
(define('THREEHO_SOLSTICE_CONTACT_TO_EMAIL', '…') — [email protected] in
production). Without the endpoint, messages stay saved locally and can be opened as
email drafts.
Every change set goes on its own type/topic branch, then push and merge on completion;
update CHANGELOG.md and any relevant docs with each change, and bump the offline cache
when the change is user-visible. Full rules are in CLAUDE.md (git workflow,
changelog, and documentation discipline).