Doop
Doop: 오픈소스 멀티플레이어 디자인 캔버스 및 AI 에이전트용 MCP
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗The studio, club and brand workspaces, the tech pack and the factory files, the Launch content surface and the ops console behind Knitwright's made-to-order teamwear. A person describes, uploads or configures a design; the platform turns it into a factory-ready package with a source on every value; and ops takes the order through a weekly batch to the factory, quality control, packing and shipping.
This repository is the platform only. The Store and Sell storefronts (cart, checkout, payment, team
stores, club sites) are separate. There are two doors between them: the database function
submit_order_for_production (docs/decisions/0043-ops-console-batches.md) and the read-only Store
contract (docs/store-contract-v2.md).
The platform cannot place a real order today, for six reasons, four of which are purchases or
decisions only the owner can make. They are set out at the top of
docs/owner/README.md. That page is the first thing to read if you want to
know what state this is actually in.
| If you are | Read |
|---|---|
| New to the code | docs/architecture.md: apps, code areas and the workstream that built each, data flow, the two panel contracts, stubbed providers, how the repository is worked on, CI |
| The owner | docs/owner/README.md: what is blocked and why, then docs/owner/open-questions-v5.md, the 252 open questions grouped by what kind of answer each needs |
| Building the Store | docs/store-contract-v2.md |
| Running production | docs/runbook/ops.md |
| Setting up hosting | docs/runbooks/supabase-hosted.md |
| Preparing to launch | docs/launch-checklist.md |
| Looking for why something is built a way | docs/decisions/README.md, 107 records |
| About to open a pull request here | "How this repository is worked on" — it is unusual, and the next person will otherwise get it wrong |
Node 22.13 or newer (CI uses 24), pnpm 10, and a container runtime for local Supabase — Docker, or Podman, which is what the agent sandboxes use.
pnpm install
cp supabase/.env.example supabase/.env # the bot check needs TURNSTILE_SECRET_KEY, or every sign-in fails
pnpm db:start # starts local Supabase and writes apps/web/.env.local
pnpm dev # http://localhost:3000
With Podman, start its socket and point Docker's client at it first:
systemctl --user start podman.socket
export DOCKER_HOST=unix:///run/user/$(id -u)/podman/podman.sock
apps/web/.env.example describes every environment variable. Without provider keys, paid features say
they are not available (see "Where providers are stubbed" in the architecture map). Set OWNER_EMAIL
by hand if you want the owner-only paths — the pattern bridge and the print-file library.
If a database is already running, do not restart or reset it. pnpm db:start, pnpm db:reset and
pnpm db:env are owner commands here: one local Supabase on fixed ports is shared by every session, and
a reset destroys everyone else's fixtures. To apply migrations that landed since it started, use
supabase migration up --local --include-all — --include-all because workstreams take assigned
timestamps in parallel, so a new migration is often older than the last one applied.
Before you push: pnpm typecheck, pnpm lint, pnpm test:cov, pnpm build. For a migration also
pnpm --filter web test:db. The browser tests are not part of the per-pull-request gate: pass the
e2e label when you open the pull request (gh pr create --label e2e) if your change is one they are
the only cover for.
apps/web/ the Next.js app: app/, lib/, components/, e2e/, tests/, scripts/
supabase/ 76 migrations and the local configuration (never edit supabase/config.toml)
docs/ decisions, owner documents, the spec, runbooks, launch records, reviews
plans/ the build plans (current: plans/platform-v5.md)
scripts/ repository checks, the decision index generator, local setup
Sportswear/ not platform work; never changed from here
kitwright/ not platform work; never changed from here
Reports from the review and hardening pass. Plan v4's (workstream W5):
docs/reviews/security-v4.mddocs/reviews/code-v4.mddocs/reviews/coverage-v4.mdPlan v5's are workstreams R1 to R3:
docs/reviews/code-v5.md (R2, decision 0112)security-v5.md (R1) and coverage-v5.md (R3)R4 is this documentation pass (decision 0115).
apps/web/lib/editor/slots.ts, apps/web/lib/launch/panels.ts).ruleId
that resolves to a rulebook entry. A check with no entry yet carries R-GAP-000 and is listed.apps/web/lib/copy/vocabulary.ts. Text may say "reviewed by",
"accepted by" or "signed by" with a name and a date. It may not say a thing is settled unless a
person with a name said so.apps/web/AGENTS.md before changing a route or page: this is not the
Next.js version older docs describe.