尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Landing page de pré-lançamento do Mentorque, o app de educação em mecânica automotiva (do básico ao avançado) com consultoria especializada. Captura de e-mails para a lista de espera, bilíngue (PT-BR / EN), pronta para deploy na Vercel. Stack: Next.js 14 (App Router) · TypeScript · Tailwind CSS · framer-motion · Supabase. Outros scripts: npm run build (build de produção), npm start (servir o build), npm run lint.檢視完整 README ↗
Landing page de pré-lançamento do Mentorque, o app de educação em mecânica automotiva (do básico ao avançado) com consultoria especializada. Captura de e-mails para a lista de espera, bilíngue (PT-BR / EN), pronta para deploy na Vercel.
Stack: Next.js 14 (App Router) · TypeScript · Tailwind CSS · framer-motion · Supabase.
npm install
cp .env.example .env.local # preencha as variáveis (veja abaixo)
npm run dev # http://localhost:3000
Outros scripts: npm run build (build de produção), npm start (servir o
build), npm run lint.
.env.local)| Variável | Para quê |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | URL do projeto Supabase (captura da waitlist). |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Chave publishable/anon (segura para expor; o RLS controla o acesso). |
NEXT_PUBLIC_SITE_URL | URL canônica do site (usada nas imagens absolutas de Open Graph). |
Sem essas variáveis o site roda normalmente: o formulário aceita o e-mail e mostra o estado de sucesso, mas não persiste nada (e loga um aviso no servidor). É só plugar as chaves para começar a gravar.
Todo o conteúdo fica em arquivos de strings — nada de copy hardcoded nos componentes:
lib/i18n/strings.pt.ts — Português (idioma primário, fonte da verdade dos tipos).lib/i18n/strings.en.ts — Inglês (mesma estrutura).Para alterar um texto, edite o arquivo .pt (e o .en correspondente). O
seletor de idioma (header e footer) troca em tempo real e guarda a preferência
no localStorage; o idioma também é detectado pelo navegador na primeira visita
(PT-BR como padrão).
Para adicionar um novo idioma: crie strings.xx.ts no mesmo formato e registre
em lib/i18n/index.tsx (objeto DICTS e tipo Locale).
O fluxo: components/ui/WaitlistForm.tsx → POST /api/waitlist
(app/api/waitlist/route.ts) → Supabase (lib/supabase.ts).
Rode o SQL de supabase/migrations/0001_waitlist.sql no SQL editor do seu
projeto Supabase (ou via Supabase CLI). Ele cria a tabela waitlist com índice
único por e-mail e uma policy de RLS que permite apenas insert pela chave
anon — leitura só pelo dashboard / service role.
Preencha NEXT_PUBLIC_SUPABASE_URL e NEXT_PUBLIC_SUPABASE_ANON_KEY no
.env.local (e nas Environment Variables da Vercel).
Edite só app/api/waitlist/route.ts. Há um // TODO marcando onde plugar.
Exemplo com Formspree: troque o bloco do Supabase por um fetch para o endpoint
do form. O front-end não precisa mudar.
NEXT_PUBLIC_SUPABASE_URL,
NEXT_PUBLIC_SUPABASE_ANON_KEY e NEXT_PUBLIC_SITE_URL (a URL final do site).next build automaticamente.Dica: depois do primeiro deploy, atualize
NEXT_PUBLIC_SITE_URLpara o domínio de produção para que os cards de Open Graph apontem para a imagem correta.
app/
layout.tsx next/font (Space Grotesk + Inter), metadata SEO/OG, skip-link
page.tsx compõe as 11 seções (sanduíche escuro/claro)
globals.css Tailwind + base da marca
icon.svg favicon (sextavado sólido) — auto-injetado pelo Next
apple-icon.png apple touch icon
api/waitlist/route.ts handler POST (Supabase ou stub)
components/
Header.tsx
sections/ Hero, TrustBar, ProblemSolution, Features, HowItWorks,
Consulting, Plans, Benefits, FAQ, FinalCta, Footer
ui/ Button, Section, Reveal (motion), HexMotif (motivo),
PhoneMockup, StoreBadges, Logo, WaitlistForm, LangSwitcher
lib/
i18n/ strings.pt.ts · strings.en.ts · index.tsx (provider + useI18n)
icons.tsx conjunto de ícones próprios (line, 24px)
supabase.ts client Supabase (null-safe)
public/
logo/ lockups, marca e motivo do sextavado (SVG)
og-image.png imagem de compartilhamento
supabase/migrations/ 0001_waitlist.sql
tools/ pipeline de geração dos assets da marca (independente da LP)
tailwind.config.ts. Âmbar é
o acento — usado em CTAs e destaques.prefers-reduced-motion.alt em imagens, contraste forte,
skip-link e aria-* no carrossel do hero e no formulário.Os SVGs em public/logo/ são gerados pelo pipeline em tools/ (Node + resvg +
opentype). Para regenerar: cd tools && node build-web-assets.js.