Ecommerce Template
Next.js·React 등으로 만든 최신 전자상거래 템플릿
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Build digital "michi binders" — aesthetically curated Pokémon card layouts — on web, iOS, and Android from a single codebase. Live on the web as michi-maker.com. Most collection apps organize cards by number or set. michi-maker is about composition: arranging cards into visually cohesive pages the way collectors do with the Michi Method — anchor layouts, single-Pokémon pages, color-themed spreads, artist pages, and full-page artwork, with intentional negative space and cards that span multiple pockets.README 전문 보기 ↗
Build digital "michi binders" — aesthetically curated Pokémon card layouts — on web, iOS, and Android from a single codebase. Live on the web as michi-maker.com.
Most collection apps organize cards by number or set. michi-maker is about composition: arranging cards into visually cohesive pages the way collectors do with the Michi Method — anchor layouts, single-Pokémon pages, color-themed spreads, artist pages, and full-page artwork, with intentional negative space and cards that span multiple pockets.
Status: live and selling (billing cutover 2026-07-22). The ~28k-card catalog, images, prices, and similarity search come from the shared tcgscan-data server via the tcgscan-browse kit; users sign in (email / Google / Apple / guest), build and share binders, import their collection (CSV or scans from the sibling TCGScan app), and print real fill-sheet PDFs. PRO/VIP subscriptions, a 14-day PRO trial, per-binder PDF unlocks, and a cross-app bundle with TCGScan are all live — see docs/PAYMENTS.md. Without Supabase credentials the app still runs in a local, in-memory mode.
| Layer | Choice |
|---|---|
| Framework | Expo SDK 56 (React Native 0.85, React 19) |
| Language | TypeScript (strict) |
| Routing | Expo Router (file-based) |
| Targets | Web (react-native-web), iOS, Android — one codebase |
| User backend | Supabase — Postgres, Auth, RLS, Edge Functions (project piikwvntldytjejxmcla, shared with tcgscan-app) |
| Card data | Shared tcgscan-data Supabase server (bmhjizcmwtmcrstadqto, read-only) via the tcgscan-browse kit — see docs/DATA-SERVER.md |
| Payments | Stripe Checkout + webhook fulfillment (Supabase Edge Functions) — see docs/PAYMENTS.md |
| Web hosting | Vercel — SPA export + serverless Open Graph previews (api/) |
npm install
The app runs without its own backend. Binders come from a local, in-memory store seeded
with example binders, so you can skip straight to step 3 to try it out. Without credentials
the app stays in local mode (supabase is null and never throws); Supabase powers
auth, cloud sync, entitlements, and printing.
When you're ready to enable it:
cp .env.example .env
Fill in EXPO_PUBLIC_SUPABASE_URL and EXPO_PUBLIC_SUPABASE_PUBLISHABLE_KEY from your project's
Settings → API page, then apply the database schema — see supabase/README.md.
The EXPO_PUBLIC_CATALOG_* variables (already filled in .env.example) point the card catalog
at the hosted tcgscan-data server.
npm run web # open in the browser
npm run ios # open in the iOS simulator (requires macOS + Xcode)
npm run android # open in the Android emulator
npm start # start the dev server and choose a target
michi-maker/
├── src/
│ ├── app/ # Expo Router routes (file-based)
│ │ ├── _layout.tsx # Root layout + providers (auth, binders, language)
│ │ ├── index.tsx # Home — your binders + examples
│ │ ├── browse.tsx # Card catalog browser (tcgscan-browse kit)
│ │ ├── welcome.tsx # Marketing / landing page (web-first)
│ │ ├── plans.tsx … # Billing surfaces (plans, pricing, purchases, subscriptions)
│ │ ├── binder/[id].tsx # Binder viewer & editor
│ │ ├── u/[id].tsx # Public profiles
│ │ ├── learn/ # Guides
│ │ └── legal/ # Terms, privacy, DMCA
│ ├── components/ # binder/, auth/, monetization/, landing/, brand/, people/, ui/ …
│ ├── constants/ # Theme: colors, spacing, fonts
│ ├── data/ # Repos (binderRepo, printRepo, …), tiers, wizard, bundled examples
│ ├── hooks/ # use-tier, use-entitlement, use-catalog, use-trial, …
│ ├── lib/ # Supabase client, catalog config/source/cache shims
│ ├── store/ # auth.tsx + binders.tsx providers
│ └── types/ # database.ts (generated), domain.ts
├── api/ # Vercel serverless functions — Open Graph link previews
├── supabase/
│ ├── migrations/ # SQL schema + RLS (source of truth for the user DB)
│ ├── functions/ # Edge functions: stripe-checkout, payments-webhook, auth-handoff, art-proxy
│ └── README.md # How to apply migrations & generate types
├── scripts/ # Build/QA scripts (example binders, art library, screenshots …)
├── docs/ # Architecture, data server, payments, auth, roadmap …
├── public/ # Static web assets (og.png, fonts, browse fallback)
├── app.json / vercel.json # Expo app config / Vercel build + crawler rewrites
└── .env.example # Environment variable template
| Command | Description |
|---|---|
npm start | Start the Expo dev server |
npm run web | Run in the browser |
npm run ios | Run in the iOS simulator |
npm run android | Run in the Android emulator |
npm run build:web | Export the web SPA to dist/ + inject share meta |
npm run deploy | Deploy to Vercel production |
npm run lint | Lint with expo lint |
npm test | Unit tests (node --test over src/**/*.test.ts) |
npx tsc --noEmit | Type-check the project |
Maintenance scripts (regenerating example binders, the art library, screenshots, …) are documented in scripts/README.md.
user_cards collection handofftcgscan-browse/michi-method) crediting @peeplopWhat's next lives in docs/roadmap/.
See LICENSE. Pokémon and all related card artwork are © Nintendo / Creatures Inc. / GAME FREAK inc. This is a fan project for personal collection display and is not affiliated with or endorsed by them.