World Vibe Web
The distributed app store for vibe-coded projects. Browse, discover, and install open-source apps from across GitHub.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A plataforma SaaS que vende o "Ecommerce" (motor multi-tenant em ecommerce/, uma cópia multi-tenant do ecommerce retrofitada pra atender centenas de lojas — ver ecommerce/README-TENANCY.md). A Rodoletas em si não é uma loja — é a landing, o cadastro/checkout, o dashboard do assinante e o onboarding que provisiona automaticamente um Tenant novo dentro do motor. Cadastro/login usam o Auth nativo do Supabase (e-mail+senha com confirmação de e-mail de verdade) e são separados da escolha de plano — ver ARQUITETURA.md §6 pro desenho completo.檢視完整 README ↗
A plataforma SaaS que vende o "Ecommerce" (motor multi-tenant em ecommerce/,
uma cópia multi-tenant do ecommerce retrofitada pra atender centenas de lojas — ver
ecommerce/README-TENANCY.md). A Rodoletas em si não é uma loja — é a
landing, o cadastro/checkout, o dashboard do assinante e o onboarding que
provisiona automaticamente um Tenant novo dentro do motor.
backend/ Rust + Axum + SQLx — assinatura, auth, dashboard, onboarding
frontend/ Vite + React + TS + Tailwind v4 + Framer Motion — landing, área logada
ecommerce/ motor de e-commerce multi-tenant (o que a Rodoletas vende)
supabase/ (não usado ainda por este app — reservado pra integração futura)
Cadastro/login usam o Auth nativo do Supabase (e-mail+senha com
confirmação de e-mail de verdade) e são separados da escolha de plano —
ver ARQUITETURA.md §6 pro desenho completo.
Landing (/) -> Escolher plano (#planos) -> /cadastro?plano=X (conta + plano já atrelado)
OU Landing -> /cadastro (conta sem plano) -> Dashboard -> /planos -> /assinar?plano=X
-> /assinar (forma de pagamento) -> Pagamento (Pix ou cartão) -> /obrigado (polling de status)
-> Onboarding (/onboarding) -> POST /internal/provision-tenant no motor
-> Dashboard (/dashboard) -> "Entrar no painel da loja" (ecommerce/frontend)
ecommerce/backend/migrations/0005_tenancy.sql).MP_ACCESS_TOKEN está setado.
AbacatePay fica como fallback se só ABACATEPAY_API_KEY existir — ver
backend/src/gateway.rs. Sem nenhum token, tudo roda em modo mock.
Script de smoke: node scripts/test-mp-subscription.mjs (token via env).POST /internal/provision-tenant no motor de e-commerce (chave
compartilhada ECOMMERCE_INTERNAL_KEY/INTERNAL_API_KEY), que cria
Organization + Tenant + Subscription + o admin da loja numa unica
transação. O admin da loja usa o mesmo e-mail e senha da conta
Rodoletas (o hash Argon2 é reaproveitado, a senha em si nunca trafega) —
ver backend/src/routes/onboarding.rs.cd backend
docker compose up -d # Postgres na porta 5434
O projeto Supabase dedicado do ufersin (retmfoorwjwzuevaqlsr) continua
documentado em backend/.env.example pra quando a integração real
acontecer — não usado agora, de propósito (mesma decisão já tomada pro
motor de e-commerce).
# 1. Motor de e-commerce (porta 8080) — ver ecommerce/README.md
cd ecommerce/backend && docker compose up -d && cargo run
# 2. Backend Rodoletas (porta 8081)
cd backend && cargo run
# 3. Frontend Rodoletas (porta 5174)
cd frontend && npm install && npm run dev
Acesse http://localhost:5174. O frontend do motor de e-commerce
(ecommerce/frontend, porta 5173) só é necessário se você for testar o
"Entrar no painel da loja" depois do onboarding.
Copie backend/.env.example -> backend/.env e frontend/.env.example ->
frontend/.env. ECOMMERCE_INTERNAL_KEY (aqui) precisa ser IGUAL a
INTERNAL_API_KEY (em ecommerce/backend/.env) — é a chave que autoriza a
chamada de provisionamento entre os dois backends.
Login/cadastro do lojista usam o Auth nativo do Supabase (ver
ARQUITETURA.md §6) — sem isso, nenhuma rota autenticada funciona:
backend/.env: SUPABASE_URL (ex: https://<project-ref>.supabase.co).
O backend usa isso só pra buscar o JWKS público do projeto (Dashboard ->
Settings -> API -> JWT Keys) e verificar os tokens — não precisa de
nenhum secret. Faz panic no boot se essa variável estiver vazia, de
propósito.frontend/.env: VITE_SUPABASE_URL / VITE_SUPABASE_ANON_KEY (mesmo
projeto). No Dashboard desse projeto, configure Authentication -> URL
Configuration com o Site URL/Redirect URLs cobrindo
http://localhost:5174/** (e o domínio de produção), e habilite
"Confirm email" em Authentication -> Settings..github/workflows/deploy-vercel.yml já faz deploy
automático em todo push pra main (precisa configurar os secrets
VERCEL_TOKEN/VERCEL_ORG_ID/VERCEL_PROJECT_ID no repo, ver comentário
no topo do workflow)..github/workflows/ci.yml roda cargo check + tsc/vite build
em todo push/PR pra main, antes do deploy.<slug>.rodoletas.app, e nem isso
está de fato roteado ainda — é só o texto mostrado no dashboard).ecommerce/supabase/sunset_admin_auth.sql for portado pra
respeitar tenant (Fase 1B do motor, ver ecommerce/README-TENANCY.md).backend/src/routes/me.rs).