World Vibe Web
The distributed app store for vibe-coded projects. Browse, discover, and install open-source apps from across GitHub.
Resolutoo: catálogo, checkout, Pix e WhatsApp prontos pra sua loja rodar online. Assine, configure e comece a vender.
Translation pending
CommerceTypeScript · PLpgSQLGitHub @pablo9hierroOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
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.Read the full 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).