Loading the full README. The saved excerpt is shown below.
Vamboo — Next.js + TypeScript + Supabase Projeto real (não é mais só protótipo estático) do Vamboo: roteiro, despesas e hospedagem, com login de verdade. 1. Crie um projeto em https://supabase.com (se ainda não tiver). 2. Rode as migrations de supabase/migrations/ — veja a seção 2 abaixo pra duas formas de fazer isso (CLI, recomendado, ou colar no SQL Editor). 3. Em Settings > API, copie a Project URL e a anon public key (ou publishable key, em projetos mais novos — é o mesmo valor pro NEXT_PUBLIC_SUPABASE_ANON_KEY). 4. Copie .env.local.example para .env.local e preencha:Read the full README ↗
Projeto real (não é mais só protótipo estático) do Vamboo: roteiro, despesas e hospedagem, com login de verdade.
supabase/migrations/ — veja a seção 2 abaixo pra
duas formas de fazer isso (CLI, recomendado, ou colar no SQL Editor).Project URL e a anon public key
(ou publishable key, em projetos mais novos — é o mesmo valor pro
NEXT_PUBLIC_SUPABASE_ANON_KEY)..env.local.example para .env.local e preencha:
NEXT_PUBLIC_SUPABASE_URL=...
NEXT_PUBLIC_SUPABASE_ANON_KEY=...
DOCS_ENCRYPTION_KEY=... # gere com `openssl rand -base64 32`
O Supabase não expõe uma API REST genérica pra "rodar SQL arbitrário" (por
segurança) — o jeito certo de aplicar migrations por fora do dashboard é a
CLI oficial, que já está instalada localmente como dependência do projeto
(npx supabase ..., não precisa instalar nada global).
npx supabase login — abre o navegador pra gerar um access token.npx supabase link --project-ref hqeufkxtgvdxcbbsqajz — liga esta pasta
ao seu projeto (vai pedir a senha do banco, a que você definiu ao criar o
projeto no Supabase — se não lembrar, dá pra resetar em
Settings > Database).supabase/migrations/20250101000000_initial_schema.sql (o schema
base) já foi rodado antes manualmente pelo SQL Editor, avise a CLI que
ela já está aplicada — senão ela tenta recriar tabela que já existe:
npx supabase migration repair --status applied 20250101000000
npx supabase db push
Isso roda só as migrations que ainda não foram aplicadas nesse projeto.npx supabase migration new nome_da_mudanca
cria o arquivo vazio já com timestamp certo em supabase/migrations/;
edite o SQL e rode npx supabase db push de novo.Sem instalar/logar em nada: abra cada arquivo de supabase/migrations/ na
ordem do nome (o timestamp no início do nome é a ordem), cole no SQL
Editor do dashboard e rode um de cada vez.
Pra quando o banco fica com dado de teste bagunçado ou schema inconsistente e é mais fácil recomeçar do que consertar:
supabase/reset.sql — ⚠️ destrutivo, apaga todas as tabelas,
views, funções e tipos do app (não mexe em auth.users, login
continua funcionando). Cole no SQL Editor e rode.supabase/recreate.sql — recria o schema inteiro do zero, já com
tudo (equivalente às 3 migrations de supabase/migrations/ juntas).
Cole no SQL Editor e rode logo em seguida.Em Authentication > Providers no Supabase:
http://localhost:3000/auth/callback (e depois a URL de produção) na lista
de Redirect URLs.Sem isso configurado, os botões de Google/Microsoft aparecem mas dão erro — o e-mail/senha funciona independente disso.
O convite de pessoas pra uma trip (aba "Pessoas" > "Convidar") manda um e-mail de verdade com um link de aceite. Isso usa o SMTP da sua própria conta do Gmail (via Nodemailer) — sem custo, sem precisar de domínio próprio nem criar conta em serviço nenhum.
.env.local:
[email protected]
GMAIL_APP_PASSWORD=a-senha-de-16-caracteres-gerada
npm run dev (variáveis de ambiente só carregam na
inicialização) e teste convidando alguém numa trip.Diferente de provedores como Resend/SendGrid em modo de teste, o Gmail via SMTP manda pra qualquer destinatário desde o primeiro e-mail — não tem limitação de "só entrega pro seu próprio endereço". O limite prático é o do Gmail normal (por volta de 500 e-mails/dia numa conta pessoal).
Sem GMAIL_USER/GMAIL_APP_PASSWORD configuradas, o convite mostra um erro
claro na tela em vez de travar — e o link de convite gerado
(/convite/[token]) continua existindo, só não é enviado por e-mail
automaticamente.
npm install
npm run dev
Abra http://localhost:3000 — vai te mandar pro login.
O Vamboh também roda como um app nativo do Windows — uma janela do Electron que carrega o site publicado (mesma tela de login, mesmo dashboard depois de autenticar). Não é uma reimplementação: é o mesmo app web, só empacotado numa janela própria em vez de um navegador.
Por padrão aponta pra https://vamboo.vercel.app.
Download: ainda não há uma release publicada — assim que o
instalador (.exe, gerado em desktop/dist/ conforme abaixo) for
anexado como uma Release do repositório, o link
entra aqui.
This is the beginning of the README. Read the rest at the original. Read the full README ↗