World Vibe Web
vibe 코딩 프로젝트용 분산 앱 스토어, GitHub 전역 오픈소스 앱을 탐색·설치
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기topshop
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A mobile-first link-in-bio storefront for creators. Followers tap the link in a creator's bio, pick a product, pay with Stripe (card, Apple Pay, Google Pay), and get their download instantly. Creators keep 100% of sales: payments go straight to their own Stripe account.
/<handle>: avatar, bio, social links, accent color, and a list of product cards.Later phases: courses, calendar bookings, memberships, Instagram AutoDM, and Pro features (email flows, upsells and order bumps, payment plans, discount codes, affiliates).
Next.js 15 (App Router, server actions) · TypeScript · Tailwind CSS 4 · Postgres + Prisma · Stripe Checkout + Connect (Accounts v2 with the full Stripe Dashboard, direct charges) · S3-compatible storage · Resend.
cp .env.example .env # fill in DATABASE_URL and AUTH_SECRET at minimum
npm install
npx prisma migrate dev
npm run dev
Open http://localhost:3000, create a store, and add products. Without Stripe keys, free products and lead magnets work end to end; paid products show as unavailable.
To test paid checkout locally, set Stripe test keys and forward webhooks:
stripe listen --forward-connect-to localhost:3000/api/stripe/webhook --forward-to localhost:3000/api/stripe/webhook
Put the printed whsec_... in STRIPE_WEBHOOK_SECRET. Either connect a test Stripe account from Dashboard → Payments, or set ALLOW_PLATFORM_CHARGES=true to charge on the platform account.
DATABASE_URL, DATABASE_URL_UNPOOLED, and BLOB_READ_WRITE_TOKEN for you. npm run build applies migrations over the direct (unpooled) connection.AUTH_SECRET, STRIPE_SECRET_KEY, and later STRIPE_WEBHOOK_SECRET under Settings → Environment Variables, then redeploy. To see every creator who signs up, also set ADMIN_EMAILS to the email you log in to TapShop with; an Admin tab then appears in your dashboard. APP_URL defaults to the project's production domain.https://<your-domain>/api/stripe/webhook for events from connected accounts: checkout.session.completed, checkout.session.async_payment_succeeded, account.updated, charge.refunded. If you also use ALLOW_PLATFORM_CHARGES, add a second destination for your account and put both signing secrets in STRIPE_WEBHOOK_SECRET, comma-separated.S3 or Cloudflare R2 also work instead of Blob: set the S3_* variables and allow PUT from your domain in the bucket's CORS settings, since browsers upload straight to the bucket.
PENDING order and a Checkout Session on the creator's Stripe account./thanks/<orderId>?session_id=.... The page verifies the session with Stripe and marks the order paid, so the buyer isn't kept waiting on the webhook. The webhook does the same thing; marking paid is idempotent and the delivery email is sent once./api/download/<token>, which checks the order is paid and serves the file (a short-lived signed URL when S3 is used). Paid files are never publicly reachable.