尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證一個以「思維」與「故事」為核心的社群平台
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
一個以「故事卡片」為核心的多語社交書寫平台。使用者撰寫故事卡片、透過「共振」(撰寫一張回應卡片,而非按讚)與他人連結。視覺識別建立在執行期程序化生成的手繪風 SVG 之上。 部署 Firestore 規則/索引(修改 firebase/firestore.rules 或 firestore.indexes.json 後必須執行):檢視完整 README ↗
Resonance (共振, gòngzhèn) is a social writing platform built around story cards. You write a piece of your life on a card: a title, a story, perhaps a photo. When someone else's card moves you, you don't tap a heart. You resonate with it, by writing a card of your own that answers it. The two cards are linked from then on, and so are the two of you.
It runs on the web at resonance.channel and as native apps for iPhone and Android, in Traditional Chinese and English. Anyone can read public cards without an account.
Most social apps measure attention: likes, views, time spent. What gets measured gets optimized, and the result is performance. Resonance is built on the opposite bet. It rewards only the response that costs something, which is writing.
The full reasoning, in Chinese, is in docs/product-design-principles.md.
| Write cards | A warm paper editor for a title, a story (headings, quotes, pictures, links, other cards) and a cover photo, or a doodle illustration drawn from your story. Each card is for everyone, for your connections, or for you alone. Drafts save themselves. |
| Resonate | Answer a card with a card. A card's page shows the cards that answer it. |
| Notes | A private letter to a card's author. It connects you only if they write back. |
| Connections and messages | One-to-one conversations between people who met through a story, with replies, shared cards and link previews. |
| Thought map | Lay your own cards out on dotted paper: group them into regions, draw arrows and label how they relate. |
| Feeds | The latest public cards, and picks for you with the reason each was chosen. |
| Notifications | A bell on the web, and push notifications in the apps. |
| Safety and your data | Anonymous cards, blocking, reporting, data export, account deletion with a grace period. |
Web (Next.js + React) iOS app (SwiftUI) Android app (Compose)
│ │ │
└──────────── /api/v1 (Zod → OpenAPI) ────────────┘
│
Firebase Auth · Cloud Firestore · Cloudflare R2 · OpenAI · FCM
firebase/firestore.rules);
anything that reaches another person (publishing, notes, messages, pen names) goes through the
server, which uses the Admin SDK and re-checks what the rules guarantee./api/v1 is a contract. Zod schemas in src/lib/api/v1/schemas.ts generate
openapi/v1/openapi.json, from which the iOS and Android clients are generated. It only changes
additively.apps/ios, XcodeGen) and Jetpack Compose (apps/android). They take their
design tokens, strings, icons and story editor from the web (npm run apps:generate), so the web
stays the single source.src/lib/design), so the server and the
browser draw the same wobble. See designs/DESIGN.md.| Where | What |
|---|---|
src/app | pages ([locale]/…) and API routes (api/…) |
src/components | atoms, molecules, sections |
src/lib | auth, data layer, API contract, AI, push, storage, design geometry |
src/messages | UI strings, en.json and zh-TW.json (the apps read them too) |
firebase/ | Firestore rules and indexes |
apps/ | the iOS and Android apps (apps/README.md) |
test/ | shared test setup; tests live next to their code |
docs/ | product principles, policies, store listings, architecture in Chinese |
CLAUDE.md is the detailed, current architecture guide (written for AI coding agents and humans alike).
You need Node.js 22 and npm. To run against local Firebase emulators (recommended; nothing touches
real data) you also need Java 21 and the Firebase CLI
(npm install -g firebase-tools).
git clone https://github.com/resonance-crew/Resonance.git
cd Resonance
npm ci
npm run emulators # terminal 1: Auth + Firestore emulators (project demo-resonance)
npx tsx scripts/seed-emulator.ts # terminal 2: a small known world (alice, bob, carol, dora)
npm run dev:emulator # http://localhost:3000, wired to the emulators
To sign in as a seeded account, open the browser console on the site and run
await window.__emulatorSignIn('[email protected]', password). The password is SEED_PASSWORD in
scripts/seed-emulator.ts; the helper exists only in emulator builds.
dev:emulator needs no secrets: it points Firebase at the emulators and leaves image storage off.
Features that call OpenAI need OPENAI_API_KEY in a .env file (copy .env.example).
npm run lint
npm run typecheck
npm test # Vitest: unit and component tests
npm run test:emulator # Firestore rules and server suites against the emulators
Run the site for them on port 3100 (npm run dev:emulator -- --port 3100), then:
cd apps/ios && xcodegen generate, build the Resonance scheme,
and launch it with -emulator YES.cd apps/android && ./gradlew :app:assembleDebug, and
start it with --ez emulator true.apps/README.md has the full commands, launch arguments and tests.
Bug reports, fixes and ideas are welcome. Please read CONTRIBUTING.md first. In short: work on a branch, add a test that fails without your change, keep every string in both languages, build UI from the design system's primitives, and check it at desktop and phone widths.
Before proposing a feature, read the product principles above. Resonance will not add like counts, public comment threads or open messaging, however small.
Please don't open a public issue for a vulnerability. Email [email protected] instead; SECURITY.md explains what to include and what happens next.
The source code is released under the MIT License, Copyright (c) 2026 resonance-crew.
The license covers the code. It does not cover the Resonance name, the wave logo or the app icons: please don't use them for your own product, and give a fork you publish its own name and icon. Fonts, flags and the store badges in this repository come from others under their own terms; see THIRD_PARTY_NOTICES.md.
Apple, the Apple logo and App Store are trademarks of Apple Inc. Google Play and the Google Play logo are trademarks of Google LLC.