Join the Agent Deck Discord Server!
Discord에서 Agent Deck 커뮤니티 확인, 357명과 자유 음성·텍스트 채팅 이용
Frequency는 커뮤니티 콜렉티브로 서클·근처 이벤트·스페이스를 한 곳에 제공하고 예약 수익은 전액 보유, 우리는 소액만 얻습니다
Frequency is a Community Collective. Everything a community needs, in one place: start a Circle, host Events near you, and grow a Space. You keep 100% of your own bookings; we earn only a small, shrin
소셜TypeScript · JavaScriptGitHub @hellofrequencylab온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Frequency is a Community Collective. Everything a community needs, in one place: start a Circle, host Events near you, and grow a Space. You keep 100% of your own bookings; we earn only a small, shrinking network-only take-rate on what the network sends you.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A platform for place-based, in-person community practice. Four nouns:
Member, Space, Circle, Event. Channels are the topical
layer people tune into. Hubs and Nexuses emerge from Circles; they are not
primary nav. An Outpost is a Nexus home base, not the top unit.
Mobile-first (the app is the primary doorway; the web is the secondary
surface and the SEO/discovery front), with a physical-world engagement layer
(QR / NFC / geolocation).
Current build: Next.js 16 (App Router / RSC) + Supabase (Postgres, Auth,
Realtime, Storage) on Vercel, Tailwind v4.README 전문 보기 ↗A platform for place-based, in-person community practice. Four nouns: Member, Space, Circle, Event. Channels are the topical layer people tune into. Hubs and Nexuses emerge from Circles; they are not primary nav. An Outpost is a Nexus home base, not the top unit.
Mobile-first (the app is the primary doorway; the web is the secondary surface and the SEO/discovery front), with a physical-world engagement layer (QR / NFC / geolocation).
Current build: Next.js 16 (App Router / RSC) + Supabase (Postgres, Auth, Realtime, Storage) on Vercel, Tailwind v4.
| Home | Audience | Contains |
|---|---|---|
GitHub (/docs, AGENTS.md, this README) | Developers | architecture, schema, conventions. Status: docs/BUILD-BACKLOG.json |
Public help center (content/help/, served at /help) | Members | how to use the product, in member language |
| Notion | Operators, hosts, training | how to operate/moderate the product, host/admin guides, community policy |
Rule of thumb: if it tells a developer how to build it, it goes in Git; if it tells a member how to use it, it goes in the help center; if it tells an operator how to run or moderate it, it goes in Notion. One change updates each home in its own voice: we single-source the routing, not the prose. Full spec: docs/DOCS-PROTOCOL.md and docs/HELP-CENTER.md.
Five layers separated by stable contracts, so no single framework choice can trap us (full rationale in SCALE-ARCHITECTURE):
PRESENTATION web: Next.js/RSC · mobile: Expo/RN (later) · design tokens · headless UI ← replaceable
COMPOSITION server-composed capability MODULES, chosen per user by role + involvement
CONTRACT one typed, presentation-neutral contract (RPC view-models) ← shared by web + mobile
DOMAIN/CORE business rules + capability resolver, framework-independent
DATA Supabase/Postgres (+PostGIS) as source of truth · AUTHZ = RLS + SECURITY DEFINER RPCs
Engagement/gamification rides on top as one pipeline (ENGAGEMENT-ARCHITECTURE):
SOURCE adapters (web · task · QR · NFC · geo · P2P) → server VERIFICATION
→ append-only EVENT LEDGER + rules → REWARD ledger (+ realtime feedback)
The one decision everything hinges on: the contract + capability layer — presentation-neutral data, computed server-side, consumed identically by web and mobile.
The repo carries years of planning documents, and several of them describe themselves as the single source of truth. The live set is short, and AGENTS.md §"Which plan is live" is its authority; this section mirrors it:
| Question | Where the answer lives |
|---|---|
| Where does the work stand? | docs/BUILD-BACKLOG.json — the ONE list. Run pnpm backlog for the working view. Status never lives in prose (ADR-1043). |
| What ships next? | UX-MATURITY-PLAN (ADR-925; its §Sequencing table) + BUILD-LIST (ADR-921; the phase runway, including the parked phases). |
| Why was it decided? | DECISIONS — the ADR record. A plan doc that contradicts an ADR is stale, not authoritative. |
| What are the product nouns? | NAMING wins names. CORE-MODEL is commercial law (ADR-1294). FOCUS-MODEL is the accepted interior (ADR-1403). Four nouns: Member, Space, Circle, Event. Channels are the topical layer. |
| The editor, blocks, block registry | EDITOR-ARCHITECTURE (ADR-974…978), phases E0–E10. Read it before touching any of them. |
The locked canons, each machine-enforced or gated: NAMING +
CONTENT-VOICE (every word a human reads),
PAGE-FRAMEWORK (one shell, seven page shells, one chrome map; RailGrid is not a shell; WidgetSlot is a sketch; railFor is the code default and operator overrides can beat it),
STUDIO (creation wizards derive from a manifest),
MENU-CONTRACT (the admin menu derives from four catalogs), and
DEPLOY-SAFETY (merging main deploys to production; the artifact gates).
Everything below this line is context. DEVELOPMENT-MAP, BUILD-PHASES,
ROADMAP, CHECKLIST and BACKLOG are history with superseded banners: worth reading for
rationale, never for status. BUILD-SEQUENCE and MASTER-TODO were absorbed into
docs/BUILD-BACKLOG.json (HYG-104) and removed. When the code and a doc disagree, the code wins, and the doc gets
fixed in the same pass.
RailGrid is not a shell. WidgetSlot is a sketch.docs/BUILD-BACKLOG.json + pnpm backlog — where the work
stands. Every row states how it is proven; pnpm check:backlog runs the probes and fails both
ways (a stale open row and a regressed done row).BUILD-SEQUENCE and MASTER-TODO were absorbed into the one list (HYG-104) and removed.As-is vs to-be:
ARCHITECTURE.md/DATABASE.md/GLOSSARY.mddescribe what exists today (pnpm check:arch-docholdsARCHITECTURE.mdto the tree). The strategy docs describe where we're going;BUILD-BACKLOG.jsonrecords how far along it is.
Prerequisites: Node 20+ and pnpm 10.33.0 — pinned via the packageManager
field, so let corepack manage it (don't npm i -g pnpm).
corepack enable # use the exact pnpm version this repo pins
pnpm install
pnpm approve-builds # first time only: allow sharp + unrs-resolver to build
cp .env.example .env.local # then fill in the values below
pnpm dev # Next.js dev server (Turbopack) → http://localhost:3000
Environment variables (.env.local). vercel env pull does not help here —
the Vercel vars are marked Sensitive, so they pull back blank. Fill these by hand
(the minimum to boot the app):
| Var | Where to get it |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Supabase → Settings → API → Project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase → Settings → API → publishable key |
SUPABASE_SERVICE_ROLE_KEY | Supabase → Settings → API → secret key (server-only) |
NEXT_PUBLIC_SITE_URL, NEXT_PUBLIC_APP_URL | http://localhost:3000 |
Feature keys (Stripe, Resend, AI, KV/Redis, VAPID) only matter when you exercise those features — leave them blank otherwise.
Quality gates (run before you push):
pnpm exec tsc --noEmit # the project's main correctness gate
pnpm lint
pnpm test # Vitest unit suite (repo-wide co-located *.test.ts)
pnpm check:authz # authz contract gate (admin-client guards)
Tests are a repo-wide unit suite of co-located *.test.ts files (under test/ and
alongside the code they cover in app/, components/, and lib/ — capabilities,
currency, the outbox queue, suppression, webhook verification, and more). They
complement, not replace, tsc --noEmit + ESLint + pnpm check:authz + manual
verification. Schema source
of truth is supabase/migrations/; see ARCHITECTURE for the
authorization model you must follow (the admin client bypasses RLS — authz is
enforced in application code today, converging on RLS + RPCs per the strategy).
main is protected — every change goes through a pull request (you cannot push to
main directly).
git checkout main && git pull
git checkout -b feature/your-change
# ...edit, run pnpm dev + the gates, commit...
git push -u origin feature/your-change
Open a PR → Vercel builds a preview URL → CI + preview must be green → merge deploys to production. The full workflow (local + on-the-go, and the path to a team-grade setup) lives in docs/WORKFLOW.md.
⚠️ One shared database (for now). Local, preview, and production all point at the same Supabase project. Develop freely, but never run destructive or migration commands against it — in particular, do not run
supabase db pushuntil the migration baseline is established. See WORKFLOW.md → Scaling to a team.
pnpm backlog (docs/BUILD-BACKLOG.json) for where we
are and what is built; take the ordered "what to build next" from
UX-MATURITY-PLAN §Sequencing and BUILD-LIST.
(DEVELOPMENT-MAP.md and BUILD-PHASES.md are superseded history.
BUILD-SEQUENCE and MASTER-TODO were absorbed into the one list and removed.)source.file). A probe measures the consequence, never the row's own title.Mirror, don't duplicate, the Git docs — translate them into human language:
(Ask before scaffolding — needs the target Notion workspace.)