尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Papo na Arena: Produtos da Semana (Replit)
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Radar dos produtos da semana citados no podcast Papo na Arena: ranking dos mais mencionados, episódios, categorias e o que cada pessoa recomendou. Este site foi feito com Replit. O que dá para fazer no site查看完整 README ↗
Radar dos produtos da semana citados no podcast Papo na Arena: ranking dos mais mencionados, episódios, categorias e o que cada pessoa recomendou.
Acesse: https://paponaarena-produtosdasemana.replit.app
Ouça o podcast: Spotify · YouTube
Este site foi feito com Replit.
DESIGN.md).| Camada | Tecnologias |
|---|---|
| Front-end | React 18, TypeScript, Vite, wouter (rotas) |
| UI | Tailwind CSS, shadcn/ui (Radix UI), Recharts, Lucide |
| Servidor | Node.js, Express 5 (serve o app e gera sitemap.xml e o HTML de cada rota) |
| Analytics | PostHog (opcional) |
Os dados do podcast ficam no próprio código (client/src/lib/data.ts). Não há banco de dados nem chamadas de API para o conteúdo. O esquema de banco em shared/schema.ts existe, mas não é usado pelo app.
Requisitos: Node.js 20 ou superior e npm.
git clone https://github.com/bronze/paponaarena-produtosdasemana-replit.git
cd paponaarena-produtosdasemana-replit
npm install
npm run dev
O app abre em http://localhost:5000 (use a variável PORT para trocar a porta).
Crie um arquivo .env na raiz para ativar o PostHog:
VITE_POSTHOG_KEY=...
VITE_POSTHOG_HOST=...
Sem elas, o app funciona normalmente e o PostHog simplesmente não é iniciado. O .env está no .gitignore.
| Comando | O que faz |
|---|---|
npm run dev | Servidor de desenvolvimento (Express + Vite com HMR) |
npm run build | Valida os dados e gera o build de produção em dist/ |
npm start | Roda o build de produção (dist/index.cjs) |
npm run check | Checagem de tipos (tsc) |
npm run check:data | Valida a consistência de data.ts (ids, menções, hosts/cohosts) |
client/
index.html # metadados padrão do site
public/ # robots.txt, imagens e arquivos estáticos
src/
pages/ # dashboard, episódios, produtos, categorias, pessoas, sobre
components/ # UI (shadcn/ui), sidebar, SEO por rota
lib/
data.ts # TODOS os dados: episódios, produtos, pessoas, menções
data-utils.ts # agregações e rankings
seo.ts # title, description, canonical e JSON-LD por rota
server/
index.ts # Express
seo.ts # sitemap.xml e validação de rotas (404 real)
prerender.ts # injeta head e conteúdo de cada rota no HTML
script/
build.ts # build do cliente (Vite) e do servidor (esbuild)
check-data.ts # validação dos dados
attached_assets/ # avatares e áudios usados nas páginas de pessoa
Tudo vive em client/src/lib/data.ts, em quatro listas:
| Entidade | Campos principais |
|---|---|
Episode | id, title, date, description, hosts, cohosts?, youtubeLink?, spotifyLink? |
Product | id, name, category, url?, parentId?, alsoCredits? |
Person | id, name, linkedinUrl? |
Mention | id, episodeId, personId, productId, context? |
Papéis nos episódios
hosts: quem apresenta o episódio (normalmente Arthur e Aíquis, mas é preenchido a cada episódio, sem padrão implícito).cohosts: convidados que participam ao vivo, no palco ou em call.hosts nem em cohosts: aparece só nas menções, como "Comunidade".Regras de contagem (em data-utils.ts)
parentId é uma variação: as menções contam para o produto pai, e a variação não aparece nos rankings.alsoCredits é um combo: uma menção credita todos os produtos listados.Em client/src/lib/data.ts, adicione o episódio ao final de episodes, com hosts (e cohosts, se houver).
Cadastre em people e products quem ou o que ainda não existir (ids em kebab-case, sem acento).
Adicione as menções ao final de mentions, com ids no formato m{episodio}-{n} (ex.: m137-1).
Valide:
npx tsc && npm run check:data
Quem usa o Claude Code pode automatizar as menções com o comando /add-produtos, definido em .claude/commands/add-produtos.md.
O site é uma SPA, mas cada rota sai do servidor com HTML pronto para buscadores e prévias de link:
<head> por página (title, description, canonical, Open Graph, Twitter Card);WebSite, PodcastSeries, PodcastEpisode, BreadcrumbList);sitemap.xml gerado a partir dos dados e robots.txt;O plano e o que já foi feito estão em seo-todo.md.
O deploy é feito no Replit (autoscale):
npm run buildnode ./dist/index.cjsO sitemap e o HTML das rotas são gerados quando o servidor sobe, então basta republicar depois de alterar os dados.
replit.md: visão geral da arquitetura do projeto.posthog-setup-report.md: eventos de analytics instrumentados.Sugestões e correções são bem-vindas. Se encontrou uma menção errada, um produto faltando ou uma pessoa duplicada, abra uma issue ou um pull request alterando client/src/lib/data.ts. Rode npx tsc && npm run check:data antes de enviar.
MIT, conforme o campo license do package.json.