gabriel-salles · portfolio Rio de Janeiro UTC−3
Portrait of Gabriel Salles

Gabriel Salles

Technical Product Builder · AI-Augmented Full-Stack (TypeScript, Cloudflare) · 70+ Products in Production

Product Builder técnico · Full-Stack com IA (TypeScript, Cloudflare) · 70+ produtos em produção

Rio de Janeiro, BrazilBrasil UTC−3 Open to remote workDisponível para trabalho remoto EN advanced · PT nativePT nativo · EN avançado

Designs, ships and operates full-stack web products end to end with AI coding agents, while owning the architecture, code review, QA and production operations.

Concebe, entrega e opera produtos web full-stack de ponta a ponta com agentes de código de IA, mantendo sob sua responsabilidade a arquitetura, a revisão de código, o QA e a operação em produção.

Twelve years across project management, quality, production planning, marketing and IT before moving into software delivery in Nov 2025. Core stack: TypeScript, React, Cloudflare Workers/D1, Azure, Stripe, Mercado Pago and Zoho.

Doze anos em gestão de projetos, qualidade, PCP, marketing e TI antes de passar à entrega de software em nov/2025. Stack principal: TypeScript, React, Cloudflare Workers/D1, Azure, Stripe, Mercado Pago e Zoho.

Concurrent roles: Marketing & IT Coordinator at HotéisRIO/ABIH-RJ (employment) and Owner & CEO of AgenciAR (own business), where independent SaaS products are built and operated.

Atuação simultânea: Coordenador de Marketing e TI na HotéisRIO/ABIH-RJ (emprego) e Proprietário e CEO da AgenciAR (empresa própria), onde também são desenvolvidos e operados os produtos próprios.

70+70+

products live in production

produtos em produção

73 with URL and authorship verified · HTTP check 2026-09-23

73 com URL e autoria verificadas · checagem HTTP em 23/09/2026

5,9365.936

unique authored commits, Nov 2025 → Sep 2026

commits autorais únicos, nov/2025 → set/2026

5,735 in portfolio products · deduplicated by SHA

5.735 em produtos do portfólio · deduplicados por SHA

365365

own repositories

repositórios próprios

191 items catalogued · 172 with verified authorship

191 itens catalogados · 172 com autoria verificada

19%19%

of commits with a declared Claude co-author

dos commits com coautoria declarada do Claude

1,144 commits · a floor: other agents leave no trailer

1.144 commits · um piso: outros agentes não deixam trailer

infra 87 Cloudflare Pages projects · 37 Workers · 17 D1 databases · 21 registrable domains liveinfra 87 projetos Cloudflare Pages · 37 Workers · 17 bancos D1 · 21 domínios no ar

git log --author=cspgabriel · 2025-11 → 2026-09-22

Authored commits per month

Commits autorais por mês

Unique commits by his account across own repositories, deduplicated by SHA. Before Nov 2025 the account had 2 commits, both in 2019. The peak came in Aug 2026 with 1,249.

Commits únicos da conta dele nos repositórios próprios, deduplicados por SHA. Antes de nov/2025 a conta tinha 2 commits, ambos de 2019. O pico veio em ago/2026, com 1.249.

Unique authored commits per month, Nov 2025 to Sep 20262025-11 141, 2025-12 269, 2026-01 395, 2026-02 316, 2026-03 438, 2026-04 164, 2026-05 319, 2026-06 780, 2026-07 1200, 2026-08 1249, 2026-09 663. September is partial, through Sep 22.004004008008001,2001.200141141Novnov2025269269Decdez395395Janjan2026316316Febfev438438Marmar164164Aprabr319319Maymai780780Junjun1,2001.200Juljul1,2491.249Augagopartialparcial663663Sepset Unique authored commits per month, Nov 2025 to Sep 2026 (September partial)004004008008001,2001.200Nov ’25nov/25141141Dec ’25dez/25269269Jan ’26jan/26395395Feb ’26fev/26316316Mar ’26mar/26438438Apr ’26abr/26164164May ’26mai/26319319Jun ’26jun/26780780Jul ’26jul/261,2001.200Aug ’26ago/261,2491.249Sep ’26set/26663 · partial663 · parcial
full monthmês completo September, partial (through Sep 22)setembro, parcial (até 22/09) scale 0–1,400 commitsescala 0–1.400 commits

Agents write much of the code

Os agentes escrevem boa parte do código

Claude Code is the main coding agent, working inside project specs (Spec-Kit, CLAUDE.md, AGENTS.md). Some products began as Google AI Studio prototypes and were rebuilt.

O Claude Code é o principal agente de código e trabalha dentro de especificações do projeto (Spec-Kit, CLAUDE.md, AGENTS.md). Alguns produtos nasceram como protótipos no Google AI Studio e foram reconstruídos.

Gabriel owns the decisions

As decisões ficam com o Gabriel

Architecture, data and permission models, code review, release gates, QA against production and day-to-day operations stay with him.

Arquitetura, modelos de dados e de permissão, revisão de código, gates de publicação, QA contra a produção e a operação do dia a dia ficam com ele.

The share is disclosed

A participação é declarada

1,144 of 5,936 commits (19%) carry a Claude co-author trailer. Treat it as a floor: other agents leave no trailer.

1.144 de 5.936 commits (19%) têm trailer de coautoria do Claude. É um piso: outros agentes não deixam trailer.

12 case studies · 8 live links12 estudos de caso · 8 links no ar

Case studies

Estudos de caso

Each case separates what shipped from what is still pending, and names the part AI agents played. Employer work, the agency and his independent products are labeled apart.

Cada caso separa o que foi entregue do que ainda está pendente e diz qual foi o papel dos agentes de IA. Trabalho para o empregador, a agência e os produtos próprios aparecem rotulados à parte.

host
app.abihrj.com.br + 7 hostnamesapp.abihrj.com.br + 7 hostnames
edge
Cloudflare Workers ← GitHub ActionsCloudflare Workers ← GitHub Actions
api
PHP 8.3 · MySQL · OPA policiesPHP 8.3 · MySQL · políticas OPA
gate
npm run verify · 24-flow Playwright smokenpm run verify · smoke de 24 fluxos (Playwright)
status
LIVE · HTTP 200 · 2026-09-23LIVE · HTTP 200 · 23/09/2026

LIVE · HTTP 200 · checked 2026-09-23LIVE · HTTP 200 · checado em 23/09/2026app.abihrj.com.br

Architecture

Arquitetura

Browser → Cloudflare Worker (SPA and edge routes) → PHP 8.3 API on shared hosting → MySQL, the single source of application data. Firebase Auth only issues ID tokens that the API verifies, and OPA policies decide access; benefit data is also projected to a separate hub on Cloudflare D1 that feeds AI assistants through MCP.

Navegador → Cloudflare Worker (SPA e rotas na borda) → API PHP 8.3 em hospedagem compartilhada → MySQL, fonte única dos dados da aplicação. O Firebase Auth só emite o ID token que a API valida, e as políticas OPA decidem o acesso; os dados de benefícios também são projetados para um hub separado em Cloudflare D1, que alimenta assistentes de IA via MCP.

Stack

Stack

ReactTypeScriptViteTailwind CSSCloudflare WorkersGitHub ActionsPHP 8.3MySQLFirebase AuthOpen Policy AgentOneSignalCapacitor (iOS/Android)Chrome Extension (Manifest V3)PlaywrightNode test runner

AI in the workflow

IA no fluxo de trabalho

Built with Claude Code as the main coding agent, guided by a project CLAUDE.md and Spec-Kit specifications; 115 of the 504 commits (23%) carry a Claude co-author trailer, a floor since other agents leave no trailer. The first generations began as Google AI Studio prototypes. Gabriel owned the architecture decisions (API as the single data gateway, OPA authorization, edge hosting), code review, the verify gate and production operations.

Construído com o Claude Code como principal agente de código, guiado por um CLAUDE.md do projeto e por especificações no Spec-Kit; 115 dos 504 commits (23%) têm trailer de coautoria do Claude, um piso, porque outros agentes não deixam trailer. As primeiras gerações nasceram como protótipos no Google AI Studio. Ficaram com o Gabriel as decisões de arquitetura (API como porta única dos dados, autorização com OPA, hospedagem na borda), a revisão de código, o gate de verificação e a operação em produção.

Caveats

Ressalvas

The iOS/Android builds via Capacitor are not published: an App Store Connect record exists, but no binary has been submitted and there are no distribution certificates yet (checked 2026-09-06). Many of the 30 test files assert against source text rather than exercising runtime behavior. No usage metrics (active members, sessions) are available in the sources.

Os builds iOS/Android via Capacitor não estão publicados: existe o registro no App Store Connect, mas nenhum binário foi enviado e ainda não há certificados de distribuição (verificado em 06/09/2026). Muitos dos 30 arquivos de teste validam o texto-fonte em vez de exercitar o comportamento em execução. As fontes não têm métricas de uso (associados ativos, sessões).

Employer · HotéisRIO / ABIH-RJ · 2025-11 → 2026-09Empregador · HotéisRIO / ABIH-RJ · 2025-11 → 2026-09

HotéisRIO / ABIH-RJ Member Portal

Portal do Associado HotéisRIO / ABIH-RJ

Product and engineering lead for the project as Marketing & IT Coordinator at HotéisRIO / ABIH-RJ: scoped, architected, built and operates the portal with AI coding agents; authored 356 of the 391 commits in the main app repository.

Líder de produto e engenharia do projeto como Coordenador de Marketing e TI da HotéisRIO / ABIH-RJ: definiu o escopo e a arquitetura, construiu e opera o portal com agentes de código de IA; autor de 356 dos 391 commits do repositório principal do app.

Context

Contexto

Rio de Janeiro's city hotel union (HotéisRIO/SindHotéisRIO) and the state hotel association (ABIH-RJ) needed one official digital channel to deliver benefits, communications and support to member hotels under both brands. The first generations (Nov 2025 to Jun 2026) started as Google AI Studio prototypes; the goal became a single maintainable codebase with server-side authorization and an automated release path.

O sindicato da hotelaria carioca (HotéisRIO/SindHotéisRIO) e a associação estadual da indústria de hotéis (ABIH-RJ) precisavam de um canal digital oficial para entregar benefícios, comunicados e apoio aos hotéis associados das duas marcas. As primeiras gerações (nov/2025 a jun/2026) nasceram como protótipos no Google AI Studio; o objetivo passou a ser uma base de código única e sustentável, com autorização no servidor e publicação automatizada.

What he built

O que construiu

  • React + TypeScript (Vite) web app serving both brands on 8 production hostnames, deployed to Cloudflare Workers by GitHub Actions on every push to main (migrated from Vercel).
  • PHP 8.3 REST API as the only gateway to MySQL: verifies Firebase ID tokens and enforces access with Open Policy Agent policies. Firebase is limited to sign-in and Firestore is set to deny-all (documented architecture decision); an experimental Node runtime was removed so a single implementation carries the authorization controls.
  • In-app AI assistant streamed over SSE through the API (no model keys in the browser), with a PII filter and a daily per-profile message quota; reused as a Chrome (Manifest V3) side-panel extension with its own sign-in.
  • Push notifications (OneSignal), transactional e-mail endpoints and webhooks, a benefits catalog synced to other systems by a scheduled workflow, and an iOS/Android project via Capacitor (not published in the stores).
  • Release gate npm run verify (typecheck, lint, tests, npm audit at high level, build), 30 Node test-runner files covering LGPD and security invariants, and a Playwright smoke test of 24 navigation flows on desktop and mobile.
  • Web app em React + TypeScript (Vite) que atende as duas marcas em 8 hostnames de produção, com deploy em Cloudflare Workers pelo GitHub Actions a cada push na main (migrado da Vercel).
  • API REST em PHP 8.3 como única porta de acesso ao MySQL: valida o ID token do Firebase e aplica as regras de acesso com políticas em Open Policy Agent. O Firebase ficou restrito ao login e o Firestore em modo deny-all (decisão de arquitetura documentada); um runtime experimental em Node foi removido para que uma só implementação carregue os controles de autorização.
  • Assistente de IA dentro do app, com streaming por SSE via API (nenhuma chave de modelo no navegador), filtro de dados pessoais e cota diária de mensagens por perfil; reaproveitado como extensão do Chrome (Manifest V3) em painel lateral, com login próprio.
  • Notificações push (OneSignal), endpoints e webhooks de e-mail transacional, catálogo de benefícios sincronizado com outros sistemas por workflow agendado e projeto iOS/Android via Capacitor (não publicado nas lojas).
  • Gate de publicação npm run verify (typecheck, lint, testes, npm audit em nível high e build), 30 arquivos de teste no Node test runner cobrindo invariantes de LGPD e de segurança, e smoke test em Playwright com 24 fluxos de navegação em desktop e mobile.

Results

Resultados

  • Live in production on 8 hostnames across the two associations' domains (all HTTP 200 on 2026-09-23; app.abihrj.com.br re-checked on 2026-09-25).
  • Consolidated several prototype generations into one codebase: 504 unique authored commits across the product's repositories (Nov 2025 to Sep 2026), 356 of 391 in the main app.
  • Moved production hosting from Vercel to Cloudflare Workers with push-to-main deploys through GitHub Actions.
  • The automated 24-flow smoke test caught real production defects, including Firestore permission errors and Tailwind loaded from a CDN in production.
  • Audited code against marketing copy and corrected the benefit count for new launch materials from 28 to the 25 benefits members actually see.
  • No ar em 8 hostnames nos domínios das duas entidades (todos com HTTP 200 em 23/09/2026; app.abihrj.com.br conferido de novo em 25/09/2026).
  • Consolidou várias gerações de protótipos em uma base de código única: 504 commits autorais únicos nos repositórios do produto (nov/2025 a set/2026), 356 dos 391 no app principal.
  • Migrou a produção da Vercel para Cloudflare Workers, com deploy por push na main via GitHub Actions.
  • O smoke test automatizado de 24 fluxos encontrou defeitos reais em produção, entre eles erros de permissão no Firestore e Tailwind carregado por CDN em produção.
  • Cruzou o código com as peças de marketing e corrigiu a contagem de benefícios das novas peças de lançamento de 28 para os 25 que o associado realmente vê.
Clinicafy home page

LIVE · HTTP 200 · checked 2026-09-23LIVE · HTTP 200 · checado em 23/09/2026www.clinicafy.com.br

Architecture

Arquitetura

The same Express API runs on Vercel (current public domain) and inside a Cloudflare Worker via cloudflare:node, where Prisma reaches MySQL through Hyperdrive with verified TLS (pinned CA) and a 5-connection origin pool. A single 15-minute cron trigger dispatches 7 scheduled jobs to stay within the per-account cron quota.

A mesma API em Express roda na Vercel (domínio público atual) e dentro de um Cloudflare Worker via cloudflare:node, onde o Prisma chega ao MySQL pelo Hyperdrive com TLS verificado (CA fixada) e pool de 5 conexões na origem. Um único gatilho de cron a cada 15 minutos despacha 7 tarefas agendadas para respeitar a cota de cron por conta.

Stack

Stack

TypeScriptReact 19VitePWA (vite-plugin-pwa)ExpressPrismaMySQLFirebase AuthCloudflare WorkersCloudflare HyperdriveCloudflare R2VercelStripeMercado PagoOpenRouterModel Context Protocol (OAuth 2.1)VitestSupertestPlaywrightGitHub ActionsAndroid (Google Play)

AI in the workflow

IA no fluxo de trabalho

Built with Claude Code and other coding agents; 134 of the 316 commits (42%) carry a Claude co-author trailer, a floor since other agents leave no trailer. Gabriel set the architecture, the tenancy and permission model and the security gate, reviewed agent output behind the test suite and CI, and ran the deploys. Inside the product, AI appears as an in-app copilot and as the MCP server that lets external assistants connect to a clinic workspace under OAuth.

Construído com o Claude Code e outros agentes de código; 134 dos 316 commits (42%) têm trailer de coautoria do Claude, um piso, porque outros agentes não deixam trailer. Ficaram com o Gabriel a arquitetura, o modelo de multi-tenancy e de permissões e o gate de segurança, a revisão do que os agentes entregaram com base na suíte de testes e no CI, e os deploys. Dentro do produto, a IA aparece como copiloto no app e como o servidor MCP que permite a assistentes externos se conectar ao ambiente da clínica via OAuth.

Caveats

Ressalvas

No paying customers, clinic count or revenue are recorded in the sources: checkout is implemented, not proven. The Cloudflare Worker deployment responds on its workers.dev host, but the public domain was still served by Vercel on 2026-09-25 (cutover pending). The RBAC and audit trail are LGPD-oriented; there is no certification or legal opinion. The iOS app has not been submitted.

As fontes não registram clientes pagantes, número de clínicas nem receita: o checkout está implementado, mas não comprovado. O deploy no Cloudflare Worker responde no host workers.dev, mas o domínio público ainda era servido pela Vercel em 25/09/2026 (virada pendente). O RBAC e a trilha de auditoria são orientados à LGPD; não há certificação nem parecer jurídico. O app iOS não foi enviado à loja.

Independent product · under AgenciAR · 2026-05 → 2026-09Produto próprio · sob a AgenciAR · 2026-05 → 2026-09

Clinicafy

Clinicafy

Founder and developer (independent product under AgenciAR): product definition, architecture, backend, security, payments, Android release and SEO, delivered with AI coding agents.

Fundador e desenvolvedor (produto independente sob a AgenciAR): definição do produto, arquitetura, backend, segurança, pagamentos, publicação Android e SEO, com entrega assistida por agentes de código de IA.

Context

Contexto

Small clinics need one tool for patients, scheduling, clinical records, exams, prescriptions, TISS/TUSS billing codes, inventory and finances, with multi-clinic tenancy and strict control over who can read clinical data, since health records are sensitive personal data under Brazil's LGPD.

Clínicas pequenas precisam de uma única ferramenta para pacientes, agenda, prontuário, exames, prescrições, códigos TISS/TUSS, estoque e financeiro, com várias clínicas isoladas na mesma plataforma e controle rigoroso de quem pode ler dados clínicos, já que prontuário é dado pessoal sensível pela LGPD.

What he built

O que construiu

  • Multi-clinic SaaS covering patients, scheduling, structured records, exams, prescriptions, receipts, TISS/TUSS codes, inventory and accounting/fiscal close, plus an importer for official clinical terminologies (CID-10/TUSS) with a mandatory preview step.
  • React 19 + Vite PWA over an Express + Prisma/MySQL API; a Firebase ID token is required on every business route, and private files live in Cloudflare R2 with cascade deletion of exam files.
  • RBAC with 8 roles and 14 permissions: admin panel with invitations and owner protection, and an LGPD-oriented audit trail that does not store CPF, phone, e-mail or clinical content.
  • Security CI gate on pull requests (dependency audit, typecheck, multi-tenant isolation tests) and subscription checkout with Stripe (card, Apple Pay, Google Pay) and Mercado Pago (Pix, boleto).
  • MCP server with OAuth 2.1 (dynamic client registration, PKCE, consent, form-urlencoded token exchange) so ChatGPT and Claude can connect as clients, backed by a model fallback chain on OpenRouter; plus an Android app on Google Play.
  • SaaS multi-clínica com pacientes, agenda, prontuário estruturado, exames, prescrições, recibos, códigos TISS/TUSS, estoque e fechamento contábil e fiscal, além de importador de terminologias clínicas oficiais (CID-10/TUSS) com etapa obrigatória de prévia.
  • PWA em React 19 + Vite sobre API em Express + Prisma/MySQL; o ID token do Firebase é obrigatório em toda rota de negócio, e os arquivos privados ficam no Cloudflare R2, com exclusão em cascata dos arquivos de exames.
  • RBAC com 8 papéis e 14 permissões: painel administrativo com convites e proteção do titular, e trilha de auditoria orientada à LGPD que não guarda CPF, telefone, e-mail nem conteúdo clínico.
  • Gate de CI de segurança nos pull requests (auditoria de dependências, typecheck, testes de isolamento multi-tenant) e checkout de assinatura com Stripe (cartão, Apple Pay, Google Pay) e Mercado Pago (Pix, boleto).
  • Servidor MCP com OAuth 2.1 (registro dinâmico de clientes, PKCE, consentimento e troca de código em form-urlencoded) para que ChatGPT e Claude se conectem como clientes, com cadeia de modelos de reserva no OpenRouter; e app Android na Google Play.

Results

Resultados

  • Live at clinicafy.com.br and on Google Play as 'Clinicafy: Prontuário e Agenda', the only app store listing in the portfolio (both HTTP 200 on 2026-09-23).
  • 451/451 tests passing across 38 files after the RBAC admin panel shipped, with a clean TypeScript check (2026-09-13).
  • Worker build fits the Cloudflare free tier: 2.23 MiB gzipped against the 3 MiB limit, with a 143 ms startup.
  • Fixed the connector failure seen by ChatGPT and Claude: the OAuth token endpoint lacked a form-urlencoded body parser (the RFC 6749 format real clients send), and the all-free model chain now ends in paid fallbacks (PR #57, 2026-08-21).
  • 316 unique authored commits between 2026-05-16 and 2026-09-13.
  • No ar em clinicafy.com.br e na Google Play como 'Clinicafy: Prontuário e Agenda', a única ficha de loja de apps do portfólio (ambos com HTTP 200 em 23/09/2026).
  • 451/451 testes aprovados em 38 arquivos após a entrega do painel administrativo com RBAC, com verificação TypeScript limpa (13/09/2026).
  • O build do Worker cabe no plano gratuito da Cloudflare: 2,23 MiB compactado contra o limite de 3 MiB, com inicialização em 143 ms.
  • Corrigiu a falha de conexão vista pelo ChatGPT e pelo Claude: o endpoint de token OAuth não tinha parser de corpo form-urlencoded (o formato da RFC 6749 que os clientes reais enviam), e a cadeia de modelos, antes toda gratuita, passou a terminar em modelos pagos de reserva (PR #57, 21/08/2026).
  • 316 commits autorais únicos entre 16/05/2026 e 13/09/2026.
host
internal · no public linkinterno · sem link público
runtime
Cloudflare Pages Functions + D1Cloudflare Pages Functions + D1
crm
Zoho CRM v8 · Zoho Campaigns APIZoho CRM v8 · API do Zoho Campaigns
cutover
Vercel → Cloudflare · 2026-09-01Vercel → Cloudflare · 01/09/2026
status
PRODUCTION · 4 hostnames · HTTP 200 · 2026-09-23PRODUÇÃO · 4 hostnames · HTTP 200 · 23/09/2026

Architecture

Arquitetura

React SPA and Pages Functions on Cloudflare Pages; the Functions call the Zoho CRM v8 and Zoho Campaigns APIs with server-side OAuth token handling. D1 stores idempotency and audit records, so a repeated webhook never creates a duplicate record in the CRM.

SPA em React e Pages Functions no Cloudflare Pages; as Functions chamam as APIs do Zoho CRM v8 e do Zoho Campaigns, com o token OAuth tratado no servidor. O D1 guarda os registros de idempotência e de auditoria, de modo que um webhook repetido nunca cria registro duplicado no CRM.

Stack

Stack

ReactTypeScriptViteTailwind CSSCloudflare Pages FunctionsCloudflare D1WranglerZoho CRM API (v8)Zoho Campaigns APIZoho Forms (webhooks)Google Apps ScriptSpec-Kit

AI in the workflow

IA no fluxo de trabalho

Claude Code wrote a large share of the code inside Spec-Kit specifications and an AGENTS.md; 62 of the 275 authored commits (23%) carry a Claude co-author trailer, and commits the agent made under its own identity are not counted in that total. Gabriel defined the data split and the integration contracts, reviewed the changes, ran migrations and deploys, and worked out the Zoho API behavior against live responses.

O Claude Code escreveu boa parte do código dentro das especificações do Spec-Kit e de um AGENTS.md; 62 dos 275 commits autorais (23%) têm trailer de coautoria do Claude, e os commits que o agente fez com identidade própria não entram nesse total. Ficaram com o Gabriel a divisão dos dados e os contratos de integração, a revisão das mudanças, as migrações e os deploys, e a investigação do comportamento real da API do Zoho a partir de respostas ao vivo.

Caveats

Ressalvas

No public link: it is an internal system holding third-party personal data, so contact counts and the composition of the base are intentionally left out. Production deploys are manual (wrangler), not triggered by Git; on 2026-09-10 production was found 3 commits behind the repository. The current Zoho token scopes do not cover every operation, such as creating mailing lists via API.

Sem link público: é um sistema interno com dados pessoais de terceiros, por isso contagens de contatos e a composição da base ficam de fora de propósito. O deploy de produção é manual (wrangler), sem gatilho pelo Git; em 10/09/2026 a produção estava 3 commits atrás do repositório. Os escopos atuais do token do Zoho não cobrem todas as operações, como criar listas de e-mail pela API.

Employer · HotéisRIO / ABIH-RJ · 2025-11 → 2026-09Empregador · HotéisRIO / ABIH-RJ · 2025-11 → 2026-09

HotéisRIO / ABIH-RJ CRM

CRM HotéisRIO / ABIH-RJ

Architect and primary developer for the project as Marketing & IT Coordinator at HotéisRIO / ABIH-RJ: designed the Zoho + Cloudflare split, built the app and integrations, ran the hosting migration and operates the system; teammates contributed a minority of commits.

Arquiteto e principal desenvolvedor do projeto como Coordenador de Marketing e TI da HotéisRIO / ABIH-RJ: desenhou a divisão entre Zoho e Cloudflare, construiu o app e as integrações, conduziu a migração de hospedagem e opera o sistema; colegas de equipe fizeram uma parte minoritária dos commits.

Context

Contexto

The associations needed one relationship base for member hotels and prospects that marketing could use for institutional campaigns, public sign-up forms landing directly in the CRM, and a reliable, auditable link to e-mail marketing. The work started as about 13 prototype iterations (Google AI Studio and Firebase) that had to be consolidated into one production system.

As entidades precisavam de uma base única de relacionamento com hotéis associados e prospects, que o marketing pudesse usar em campanhas institucionais, com formulários públicos de cadastro caindo direto no CRM e uma ligação confiável e auditável com o e-mail marketing. O trabalho começou com cerca de 13 iterações de protótipos (Google AI Studio e Firebase) que precisavam virar um único sistema de produção.

What he built

O que construiu

  • Split system of record: contacts live in Zoho CRM, while Cloudflare D1 holds only technical metadata, webhook idempotency keys and a webhook audit log.
  • React + TypeScript front end with Cloudflare Pages Functions as the API layer; native public forms feeding Zoho CRM through webhooks, plus Google Apps Script automations.
  • Zoho Campaigns integration via API (campaign creation and dispatch, list sync, CRM tagging), with undocumented request formats and limits written up as team runbooks, such as camelCase-only endpoints, the 25-character tag limit and token-based pagination above 2,000 records.
  • Spec-driven development with Spec-Kit and an AGENTS.md, so coding agents work inside documented specifications.
  • Migrated the marketing CRM host from Vercel to Cloudflare Pages + D1 on 2026-09-01, replacing a double hop (HTML on Vercel plus /api rewrites to Pages) with a single origin; DNS stayed at the registrar and the custom domain was re-provisioned after the cutover.
  • Sistema de registro dividido: os contatos ficam no Zoho CRM e o Cloudflare D1 guarda apenas metadados técnicos, chaves de idempotência de webhooks e o log de auditoria dos webhooks.
  • Front-end em React + TypeScript com Cloudflare Pages Functions como camada de API; formulários públicos nativos que alimentam o Zoho CRM por webhook, além de automações em Google Apps Script.
  • Integração com o Zoho Campaigns via API (criação e disparo de campanhas, sincronização de listas e tags no CRM), com os formatos e limites não documentados registrados em runbooks para a equipe, como endpoints que só aceitam camelCase, o limite de 25 caracteres por tag e a paginação por token acima de 2.000 registros.
  • Desenvolvimento orientado a especificação com Spec-Kit e um AGENTS.md, para que os agentes de código trabalhem dentro de especificações documentadas.
  • Migração do host do CRM de marketing da Vercel para Cloudflare Pages + D1 em 01/09/2026, trocando um salto duplo (HTML na Vercel e rewrite de /api para o Pages) por uma origem única; o DNS continuou no registrador e o domínio customizado foi reprovisionado após a virada.

Results

Resultados

  • In production on 4 employer hostnames, including the public forms host (all HTTP 200 on 2026-09-23).
  • Consolidated about 13 prototype iterations into one production architecture: 275 unique authored commits across the product line, 84 of them in the current production repository.
  • Cut the marketing CRM over from Vercel to Cloudflare Pages + D1 on 2026-09-01, serving it from a single origin.
  • Campaign creation and dispatch through the Zoho Campaigns API working, with the non-obvious request formats documented for reuse (2026-09-18).
  • No ar em 4 hostnames do empregador, incluindo o host dos formulários públicos (todos com HTTP 200 em 23/09/2026).
  • Consolidou cerca de 13 iterações de protótipos em uma única arquitetura de produção: 275 commits autorais únicos na linha do produto, 84 deles no repositório atual de produção.
  • Migrou o CRM de marketing da Vercel para Cloudflare Pages + D1 em 01/09/2026, servido agora por uma origem única.
  • Criação e disparo de campanhas pela API do Zoho Campaigns funcionando, com os formatos de requisição pouco óbvios documentados para reuso (18/09/2026).
Brasil Pedidos home page

LIVE · HTTP 200 · checked 2026-09-23LIVE · HTTP 200 · checado em 23/09/2026brasilpedidos.com.br

Architecture

Arquitetura

React/Vite PWA on Cloudflare Pages; a Hono API in Pages Functions over D1 (tenants, orders, integrations) with R2 reserved for media. Firebase Auth issues identities, and every role, plan and price rule is evaluated in the API, never in the browser.

PWA em React/Vite no Cloudflare Pages; API em Hono nas Pages Functions sobre D1 (lojas, pedidos, integrações), com R2 reservado para mídia. O Firebase Auth emite as identidades, e toda regra de papel, plano e preço é avaliada na API, nunca no navegador.

Stack

Stack

TypeScriptReactVitePWA (service worker)HonoCloudflare Pages FunctionsCloudflare D1Cloudflare R2Firebase Auth (JWKS)iFood Merchant API (OAuth, polling)Mercado Pago (preapproval, webhooks)Wrangler

AI in the workflow

IA no fluxo de trabalho

Started from a Google AI Studio scaffold and rebuilt with Claude Code; 15 of the 20 authored commits (75%) carry a Claude co-author trailer. Gabriel defined the tenancy, role and billing model, specified the server-side rules for roles, prices and plans, and verified them against production with QA accounts before release.

Nasceu de um scaffold do Google AI Studio e foi reconstruído com o Claude Code; 15 dos 20 commits autorais (75%) têm trailer de coautoria do Claude. Ficaram com o Gabriel o modelo de multi-tenancy, de papéis e de cobrança, a especificação das regras de papel, preço e plano no servidor e a verificação delas contra a produção com contas de QA antes da publicação.

Caveats

Ressalvas

The iFood integration is pending homologation in the iFood Partner Portal, and polling runs only while the Live Orders screen is open (a cron Worker is still needed). Online payment for orders is not integrated yet; customers settle payment directly with the restaurant. Mercado Pago subscriptions run on test credentials only, and no active restaurants or revenue are reported in the sources. Media upload to R2 exists but has not been exercised in production.

A integração com o iFood está pendente de homologação no Portal do Parceiro, e o polling só roda com a tela Pedidos ao Vivo aberta (ainda falta um Worker com cron). O pagamento online do pedido ainda não está integrado; o cliente combina o pagamento direto com o restaurante. A assinatura do Mercado Pago roda só com credenciais de teste, e as fontes não informam restaurantes ativos nem receita. O upload de mídia para o R2 existe, mas ainda não foi usado em produção.

Independent product · under AgenciAR · 2026-05 → 2026-09Produto próprio · sob a AgenciAR · 2026-05 → 2026-09

Brasil Pedidos

Brasil Pedidos

Founder and developer (independent product under AgenciAR): database migration, API design, server-side authorization, and the iFood and billing integrations.

Fundador e desenvolvedor (produto independente sob a AgenciAR): migração de banco, desenho da API, autorização no servidor e integrações com o iFood e com a cobrança.

Context

Contexto

Small restaurants need one system for their own online storefront, counter and table sales, kitchen and delivery, with marketplace (iFood) orders in the same queue. The first version started from a Google AI Studio scaffold on Firestore; turning it into a multi-tenant product required a server-side API where roles, prices and plan limits are enforced.

Restaurantes pequenos precisam de um único sistema para a própria loja online, as vendas no balcão e na mesa, a cozinha e a entrega, com os pedidos do marketplace (iFood) na mesma fila. A primeira versão nasceu de um scaffold do Google AI Studio sobre Firestore; transformá-la em produto multi-tenant exigiu uma API no servidor que aplica papéis, preços e limites de plano.

What he built

O que construiu

  • Multi-tenant SaaS: public storefront per restaurant (two-step cart, search, coupons), POS with tables and cashier, kitchen display (KDS), deliveries with a courier role, live order board, per-channel reports and an installable PWA whose service worker deliberately never caches the API.
  • Migrated from Firestore to Cloudflare D1 with a Hono API on Pages Functions (2026-09-13); Firebase kept only for authentication, with token verification moved to the official JWKS, and a separate TypeScript project so the API is type-checked on its own.
  • Server-side authorization and pricing: 30 routes gated by role groups (counter, kitchen, delivery), order prices re-read from the catalog on the server, and plan limits enforced by middleware (the monthly order quota returns HTTP 402).
  • iFood integration for a distributed app: per-store OAuth (user code, authorization code, refresh token), order polling with acknowledgment and no duplicates, and status updates sent back to iFood; pending homologation.
  • Subscription billing with Mercado Pago preapproval, where only the webhook, after re-querying Mercado Pago, can change a tenant's plan; the always-polling live screens became paid-plan features, because a store with all three screens open makes about 12,000 requests a day against the Workers free-tier ceiling of 100,000.
  • SaaS multi-tenant: loja pública por restaurante (sacola em duas etapas, busca, cupons), PDV com mesas e caixa, tela de cozinha (KDS), entregas com perfil de entregador, painel de pedidos ao vivo, relatórios por canal e PWA instalável, cujo service worker nunca guarda a API em cache, de propósito.
  • Migração do Firestore para o Cloudflare D1 com API em Hono nas Pages Functions (13/09/2026); o Firebase ficou só para autenticação, a validação de token passou a usar o JWKS oficial e um projeto TypeScript separado passou a checar os tipos da API.
  • Autorização e preço no servidor: 30 rotas protegidas por grupos de papéis (balcão, cozinha, entrega), preço do pedido relido do catálogo no servidor e limites de plano aplicados por middleware (a cota mensal de pedidos devolve HTTP 402).
  • Integração com o iFood para app distribuído: OAuth por loja (user code, authorization code, refresh token), polling de pedidos com confirmação e sem duplicidade, e atualização de status devolvida ao iFood; pendente de homologação.
  • Cobrança de assinatura com preapproval do Mercado Pago, em que só o webhook, depois de reconsultar o Mercado Pago, pode mudar o plano da loja; as telas ao vivo, que consultam o servidor o tempo todo, viraram recurso de plano pago, porque uma loja com as três telas abertas faz cerca de 12 mil requisições por dia, contra o teto de 100 mil do plano gratuito do Workers.

Results

Resultados

  • Live at brasilpedidos.com.br since 2026-09-13 (HTTP 200 on 2026-09-23 and 2026-09-25).
  • 76 flow and permission tests passing against production with QA accounts: 30/30 owner write flows, 25/25 kitchen and delivery flow, 21/21 permission matrix (2026-09-13).
  • Completed the Firestore to D1 migration and hardened 30 API routes with server-side role checks and price recalculation.
  • Plan limits enforced on the server since 2026-09-14; before that they existed only as landing-page copy.
  • No ar em brasilpedidos.com.br desde 13/09/2026 (HTTP 200 em 23/09/2026 e em 25/09/2026).
  • 76 testes de fluxo e de permissão aprovados contra a produção com contas de QA: 30/30 fluxos de escrita do dono, 25/25 no fluxo de cozinha e entrega, 21/21 na matriz de permissões (13/09/2026).
  • Concluiu a migração do Firestore para o D1 e reforçou 30 rotas da API com checagem de papel e recálculo de preço no servidor.
  • Limites de plano aplicados no servidor desde 14/09/2026; antes disso existiam só como texto da landing page.
transport
MCP Streamable HTTPMCP Streamable HTTP
auth
OAuth 2.1 + PKCE (S256) · BearerOAuth 2.1 + PKCE (S256) · Bearer
runtime
3 Cloudflare Workers · D1 · KV3 Cloudflare Workers · D1 · KV
surface
27 tools · 17 data domains27 ferramentas · 17 domínios de dados
status
DEPLOYED · endpoint answered 2026-09-25NO AR · endpoint respondeu em 25/09/2026

Architecture

Arquitetura

Three Workers on the association's Cloudflare account. An MCP client authenticates through the OAuth provider (grants stored in KV) or a Bearer check, then tool handlers read curated catalogs and a D1 read model synced from the source systems, and every response passes the sanitization gate. Writes stay in the source systems, and the hub never queries the CRM.

Três Workers na conta Cloudflare da entidade. O cliente MCP se autentica pelo provedor OAuth (grants guardados em KV) ou por Bearer; em seguida, as ferramentas leem catálogos curados e um modelo de leitura em D1 sincronizado com os sistemas de origem, e toda resposta passa pela barreira de sanitização. As escritas continuam nos sistemas de origem, e o hub nunca consulta o CRM.

Stack

Stack

TypeScriptCloudflare WorkersCloudflare D1Cloudflare KVModel Context Protocol SDK (Streamable HTTP)OAuth 2.1 + PKCEFirebase Auth (identity provider)ZodVitestPython (data pipeline)

AI in the workflow

IA no fluxo de trabalho

Implemented with Claude Code; 13 of the 34 commits (38%) carry a Claude co-author trailer. Gabriel designed the split between OAuth and Bearer access, the role model and the privacy gate, wrote the rules for what each source may expose, and reviewed the OAuth and MCP transport tests. The product itself exists to serve AI assistants, so the same agents used to build it are also its clients.

Implementado com o Claude Code; 13 dos 34 commits (38%) têm trailer de coautoria do Claude. Ficaram com o Gabriel a separação entre acesso OAuth e Bearer, o modelo de papéis e a barreira de privacidade, as regras do que cada fonte pode expor e a revisão dos testes de OAuth e do transporte MCP. O produto existe para servir assistentes de IA, então os mesmos agentes usados para construí-lo também são seus clientes.

Caveats

Ressalvas

Most domains in the universal hub are still served from a curated catalog embedded in the Worker rather than from live databases. No usage metrics (calls, active clients) are available in the sources. Small codebase (34 commits) and no public demo: the endpoints are OAuth-protected APIs without a visitor-facing page.

A maior parte dos domínios do hub universal ainda é servida por um catálogo curado embutido no Worker, e não por bancos de dados ao vivo. As fontes não têm métricas de uso (chamadas, clientes ativos). Base de código pequena (34 commits) e sem demo pública: os endpoints são APIs protegidas por OAuth, sem página para visitante.

Employer · HotéisRIO / ABIH-RJ · 2026-08 → 2026-09Empregador · HotéisRIO / ABIH-RJ · 2026-08 → 2026-09

HotéisRIO / ABIH-RJ MCP server layer

Camada MCP HotéisRIO / ABIH-RJ

Architect and developer for the project as Marketing & IT Coordinator at HotéisRIO / ABIH-RJ: designed and implemented the three MCP servers, their authentication and privacy gates, tests and deploys.

Arquiteto e desenvolvedor do projeto como Coordenador de Marketing e TI da HotéisRIO / ABIH-RJ: desenhou e implementou os três servidores MCP, a autenticação e as barreiras de privacidade, os testes e os deploys.

Context

Contexto

The team and partners wanted to query member benefits, events, job openings, legal guidance and other institutional content directly from AI assistants (Claude.ai, Claude Code, Cursor) without pasting data into prompts, and without exposing personal data held in the CRM, the job board or member records.

A equipe e os parceiros queriam consultar benefícios, eventos, vagas, orientações jurídicas e outros conteúdos institucionais direto em assistentes de IA (Claude.ai, Claude Code, Cursor), sem colar dados em prompts e sem expor os dados pessoais guardados no CRM, no Banco de Talentos ou nos cadastros de associados.

What he built

O que construiu

  • Universal MCP hub on Cloudflare Workers (Streamable HTTP transport): 27 tools across 17 institutional domains, such as benefits, events, holidays, wine and cheese routes, job openings, laws and decrees, the collective labor agreement, courses, maintenance SOPs and official communications; write tools refuse to act without authentication.
  • Two deliberately separate auth paths: OAuth 2.1 with PKCE (S256), Dynamic Client Registration and RFC 8414 / RFC 9728 discovery for Claude.ai, with sign-in delegated to the Member Portal identity (Google or e-mail and password); and Bearer tokens (Portal ID token or service token) for local agents. Roles map to public, associate, board and agent.
  • Benefits hub: a Cloudflare D1 read model fed by sync adapters from the source systems and exposed as REST (/v1) and MCP. Beyond each adapter's sanitization, a final barrier strips CRM, authentication, contact and personal identifiers from every response.
  • Read-only MCP server for aggregate lodging-market data (no establishment-level records), plus an SSE chat backend with a daily quota per device and IP.
  • CI with typecheck, Vitest suites and versioned D1 migrations, plus dedicated test scripts for OAuth, the HTTP MCP transport and AI output.
  • Hub MCP universal em Cloudflare Workers (transporte Streamable HTTP): 27 ferramentas em 17 domínios institucionais, como benefícios, eventos, feriados, rotas do vinho e do queijo, vagas, leis e decretos, convenção coletiva, cursos, POPs de manutenção e comunicados oficiais; as ferramentas de escrita recusam a ação sem autenticação.
  • Dois caminhos de autenticação separados de propósito: OAuth 2.1 com PKCE (S256), registro dinâmico de clientes e descoberta pelas RFC 8414 e RFC 9728 para o Claude.ai, com o login delegado à identidade do Portal do Associado (Google ou e-mail e senha); e tokens Bearer (ID token do Portal ou token de serviço) para agentes locais. Os papéis são público, associado, diretoria e agente.
  • Hub de benefícios: modelo de leitura em Cloudflare D1 alimentado por adaptadores de sincronização a partir dos sistemas de origem e exposto em REST (/v1) e MCP. Além da sanitização de cada adaptador, uma barreira final remove campos de CRM, de autenticação, de contato e identificadores pessoais de toda resposta.
  • Servidor MCP somente leitura com dados agregados do mercado de hospedagens (sem registros por estabelecimento), com backend de chat por SSE e cota diária por dispositivo e IP.
  • CI com typecheck, suítes em Vitest e migrations versionadas do D1, além de scripts de teste dedicados a OAuth, ao transporte MCP por HTTP e à saída da IA.

Results

Resultados

  • Three MCP Workers deployed on the association's Cloudflare account; the benefits hub's public endpoint answers with its service descriptor (REST routes plus /mcp) on 2026-09-25.
  • 27 tools across 17 data domains available to Claude.ai through OAuth 2.1 + PKCE and to local agents through Bearer tokens.
  • Privacy barrier on every REST and MCP response; the universal hub actively blocks establishment-level lodging records and the personal data of members and job candidates.
  • Delivered in about four weeks (2026-08-18 to 2026-09-14) with 34 unique authored commits.
  • Três Workers MCP publicados na conta Cloudflare da entidade; o endpoint público do hub de benefícios responde com o seu descritor de serviço (rotas REST e /mcp) em 25/09/2026.
  • 27 ferramentas em 17 domínios de dados disponíveis para o Claude.ai via OAuth 2.1 + PKCE e para agentes locais via token Bearer.
  • Barreira de privacidade em toda resposta REST e MCP; o hub universal bloqueia ativamente os registros por estabelecimento de hospedagem e os dados pessoais de associados e candidatos.
  • Entregue em cerca de quatro semanas (18/08/2026 a 14/09/2026), com 34 commits autorais únicos.
LegiRJ home page

LIVE · HTTP 200 · checked 2026-09-23LIVE · HTTP 200 · checado em 23/09/2026www.leisedecretosrj.com.br

Architecture

Arquitetura

Fully static site: one data file is the single source of truth and every law, city, category and sector page is generated, never edited by hand. Scheduled Python collectors feed raw CSVs, and the build is deployed to Cloudflare Pages with Wrangler.

Site totalmente estático: um único arquivo de dados é a fonte da verdade e toda página de norma, cidade, categoria e setor é gerada, nunca editada à mão. Coletores em Python agendados alimentam os CSVs brutos, e o build é publicado no Cloudflare Pages com o Wrangler.

Stack

Stack

JavaScript (Node.js)HTML/CSSPWA (service worker)Python (requests, BeautifulSoup, lxml)GitHub Actions (scheduled workflows)Cloudflare PagesWranglernode:testWordPressWP-CLIGoogle AdSense

AI in the workflow

IA no fluxo de trabalho

7 of the 112 authored commits carry a Claude co-author trailer; collectors, build scripts and the municipal expansion were developed with AI coding agents under Gabriel's direction. Data collection itself is deterministic Python, not LLM output. Blog articles are AI-drafted by parallel writer agents and pass automated checks, including a mandatory legal note.

7 dos 112 commits autorais têm trailer de coautoria do Claude; coletores, scripts de build e a expansão municipal foram desenvolvidos com agentes de código de IA sob a direção do Gabriel. A coleta dos dados em si é Python determinístico, não saída de LLM. As matérias do blog são redigidas por agentes de IA em paralelo e passam por checagens automáticas, incluindo a nota jurídica obrigatória.

Caveats

Ressalvas

  • No traffic or ad-revenue data in the sources.
  • Production deploy is a manual Wrangler step, so the live base (1,514 norms, built 07/09/2026) lags the repository (1,521 since the 14/09/2026 refresh).
  • The Android app is not publicly available on Google Play (the listing returned 404 on 23/09/2026).
  • Listing a norm does not certify that it is in force or consolidated; scanned municipal documents are shown as published, with no OCR presented as validated legal text.
  • The state legislature's server is intermittently unreachable from CI runners; the refresh skips collection when the probe fails.
  • Não há dados de tráfego nem de receita de anúncios nas fontes.
  • A publicação em produção é um passo manual com o Wrangler, então a base no ar (1.514 normas, gerada em 07/09/2026) fica atrás do repositório (1.521 desde a atualização de 14/09/2026).
  • O app Android não está disponível publicamente no Google Play (a ficha deu 404 em 23/09/2026).
  • Estar no catálogo não atesta que a norma está vigente ou consolidada; documentos municipais digitalizados aparecem como publicados, sem OCR apresentado como texto jurídico validado.
  • O servidor da ALERJ às vezes não responde aos runners de CI; nesse caso a atualização pula a coleta.

Independent product · under AgenciAR · 2026-05 → 2026-09Produto próprio · sob a AgenciAR · 2026-05 → 2026-09

LegiRJ

LegiRJ

Founder and developer (independent product, AgenciAR)

Fundador e desenvolvedor (produto independente, AgenciAR)

Context

Contexto

Rio de Janeiro state and municipal legislation lives in legacy government systems (a Lotus Notes database at the state legislature, SAPL portals at city councils) that are hard to search and barely indexable. The aggregator used at first (LexML) started answering every automated request with an anti-bot challenge in Aug 2026. LegiRJ is a search-friendly portal, prepared for ad monetization, that republishes official texts with their source.

A legislação estadual e municipal do Rio de Janeiro fica em sistemas públicos antigos (uma base Lotus Notes na ALERJ, portais SAPL nas Câmaras Municipais), difíceis de pesquisar e quase nada indexáveis. O agregador usado no início (LexML) passou a responder a toda requisição automatizada com um desafio anti-bot em ago/2026. O LegiRJ é um portal pensado para busca e preparado para monetização por anúncios, que republica os textos oficiais com a fonte de cada um.

What he built

O que construiu

  • Static PWA (service worker, offline page, manifest) with search and filters by type, category and year, generated by a Node.js pipeline: merge raw CSVs → law pages → category, city and sector hubs → ad configuration → sitemap and a JSON API.
  • Python collector for the state legislature's Lotus Notes views that works around a WAF dropping any paginated request, latin-1 responses without a declared charset, all-caps summaries converted to sentence case and dates that alternate between DD/MM and MM/DD.
  • Weekly GitHub Actions refresh with a 30-second source health probe, per-source failure isolation and a guardrail that aborts the commit if the generated base drops below 900 laws.
  • Municipal expansion (07/09/2026): 300 laws from three city councils' SAPL systems and full text for Rio's city council, with SHA-256 provenance per document, identity checks before rendering, polite collection that honors HTTP 429/Retry-After, and quarantine of unverified legacy records.
  • Trust and monetization: a government non-affiliation notice on every generated page plus an official-sources page (added after a Google Play policy notice), a privacy policy, AdSense tag and ads.txt, and a WordPress blog on a subdomain.
  • PWA estática (service worker, página offline, manifesto) com busca e filtros por tipo, categoria e ano, gerada por um pipeline em Node.js: consolidação dos CSVs brutos → páginas das normas → hubs por categoria, cidade e setor → configuração de anúncios → sitemap e API JSON.
  • Coletor em Python para as views Lotus Notes da ALERJ que contorna um WAF que derruba qualquer requisição paginada, respostas em latin-1 sem charset declarado, ementas em caixa alta convertidas para caixa de frase e datas que alternam entre DD/MM e MM/DD.
  • Atualização semanal no GitHub Actions com sonda de saúde da fonte em 30 segundos, isolamento de falha por fonte e uma trava que aborta o commit se a base gerada cair abaixo de 900 leis.
  • Expansão municipal (07/09/2026): 300 leis dos sistemas SAPL de três Câmaras Municipais e texto integral da Câmara do Rio, com proveniência por SHA-256 em cada documento, conferência de identidade antes de renderizar, coleta respeitosa que obedece ao HTTP 429/Retry-After e quarentena de registros antigos não verificados.
  • Confiança e monetização: aviso de não afiliação governamental em todas as páginas geradas e página de fontes oficiais (criados após uma notificação de política do Google Play), política de privacidade, tag do AdSense e ads.txt, e um blog WordPress num subdomínio.

Results

Resultados

  • Live with 1,514 legal norms (921 laws, 361 decrees, 229 decree-laws and others): 920 at state level and the rest from 19 municipalities, with a 1,568-URL sitemap (checked 25/09/2026).
  • Scheduled refresh running unattended since the switch from LexML to the state legislature's own database on 29/08/2026 (weekly runs on 31/08, 07/09, 14/09 and 21/09); the repository base reached 1,521 norms on 14/09/2026.
  • Launched the blog with 20 AI-drafted explainer articles in one day, each checked for front matter, word count and a mandatory legal note before import via WP-CLI (13/09/2026).
  • 112 authored commits (May to Sep 2026).
  • No ar com 1.514 normas (921 leis, 361 decretos, 229 decretos-lei e outras): 920 estaduais e as demais de 19 municípios, com sitemap de 1.568 URLs (conferido em 25/09/2026).
  • Atualização agendada rodando sem intervenção desde a troca do LexML pela base oficial da ALERJ, em 29/08/2026 (execuções semanais em 31/08, 07/09, 14/09 e 21/09); a base do repositório chegou a 1.521 normas em 14/09/2026.
  • Lançou o blog com 20 matérias explicativas redigidas com IA em um dia, cada uma checada quanto a front matter, contagem de palavras e nota jurídica obrigatória antes da importação via WP-CLI (13/09/2026).
  • 112 commits autorais (mai a set/2026).
Home page of the HotéisRIO job board

LIVE · HTTP 200 · checked 2026-09-23LIVE · HTTP 200 · checado em 23/09/2026bancodetalentos.hoteisrio.com.br

Architecture

Arquitetura

Browser → Azure App Service (React + Express) → Azure PostgreSQL (profiles, RBAC, audit) and private Blob Storage (résumés) through managed identity; Firebase Auth handles passwords only, and Azure OpenAI and Langfuse sit behind the API. One deployment serves three brand domains, and a strict CSP limits framing to the Member Portal domains.

Navegador → Azure App Service (React + Express) → Azure PostgreSQL (perfis, RBAC, auditoria) e Blob Storage privado (currículos) por identidade gerenciada; o Firebase Auth cuida só das senhas, e o Azure OpenAI e o Langfuse ficam atrás da API. Um único deploy atende três domínios de marca, e uma CSP restrita limita a incorporação em iframe aos domínios do Portal do Associado.

Stack

Stack

ReactTypeScriptExpressAzure App ServiceAzure Database for PostgreSQLAzure Blob StorageAzure Managed IdentityAzure Key VaultAzure OpenAILangfuseFirebase AuthZodVitestesbuildFirestore (v1)Android TWA / Bubblewrap (v1)

AI in the workflow

IA no fluxo de trabalho

Version 1 started from a Google AI Studio scaffold; the Azure rewrite was built with AI coding agents under Gabriel's direction (14 of the 156 commits carry a Claude co-author trailer). Gabriel defined the data model, the RBAC rules, the storage and identity design and the release gate. Inside the product, AI is a restricted, assistive résumé analysis on Azure OpenAI with store: false, and every call is traced in Langfuse.

A versão 1 nasceu de um scaffold do Google AI Studio; a reescrita em Azure foi feita com agentes de código de IA sob a direção do Gabriel (14 dos 156 commits têm trailer de coautoria do Claude). Ficaram com o Gabriel o modelo de dados, as regras de RBAC, o desenho de armazenamento e identidade e o gate de publicação. Dentro do produto, a IA é uma análise de currículo restrita e assistiva no Azure OpenAI com store: false, e toda chamada é rastreada no Langfuse.

Caveats

Ressalvas

No placement or candidate metrics are published: candidate data is personal and deliberately excluded from this case. Firebase Auth is still the password provider while identities move fully to the new stack. The version 1 Android TWA was never published to Google Play.

Não há métricas de contratações nem de candidatos: os dados de candidatos são pessoais e ficaram fora deste case de propósito. O Firebase Auth ainda é o provedor de senha enquanto as identidades migram por completo para a nova stack. O Android TWA da versão 1 nunca foi publicado na Google Play.

Employer · HotéisRIO / ABIH-RJ · 2026-01 → 2026-08Empregador · HotéisRIO / ABIH-RJ · 2026-01 → 2026-08

HotéisRIO Hospitality Job Board

Banco de Talentos HotéisRIO

Developer and migration lead for the project as Marketing & IT Coordinator at HotéisRIO / ABIH-RJ: built version 1 and led the rewrite to Azure, including the data model, RBAC and private résumé storage.

Desenvolvedor e líder da migração no projeto como Coordenador de Marketing e TI da HotéisRIO / ABIH-RJ: construiu a versão 1 e conduziu a reescrita para Azure, incluindo o modelo de dados, o RBAC e o armazenamento privado de currículos.

Context

Contexto

The associations run a recruiting channel for Rio de Janeiro's hotel industry. Version 1 (Jan 2026) was a Firebase/Firestore PWA on Vercel. Because the product stores candidates' résumés and personal data for candidates, recruiters and staff, the rewrite needed a relational source of truth, private file storage, roles enforced on the server and traceable AI features.

As entidades mantêm um canal de recrutamento para a hotelaria do Rio de Janeiro. A versão 1 (jan/2026) era um PWA em Firebase/Firestore na Vercel. Como o produto guarda currículos e dados pessoais de candidatos, recrutadores e equipe, a reescrita precisava de uma fonte de verdade relacional, armazenamento privado de arquivos, papéis aplicados no servidor e recursos de IA rastreáveis.

What he built

O que construiu

  • Version 1 (Jan 2026): React PWA on Firebase/Firestore evolved from a Google AI Studio scaffold, with an Android TWA project (Bubblewrap, not published), technical SEO (clean URLs, sitemap, robots.txt) and embedding inside the Member Portal.
  • Version 2 (Jul to Aug 2026): React + Express on Azure App Service (Brazil South), with Azure PostgreSQL as the single source of profiles, roles and audit, and résumés in a private Azure Blob container, both reached through managed identity instead of static keys; secrets referenced from Key Vault.
  • Server-side authorization: roles come only from the PostgreSQL users table, public sign-up always creates a candidate, staff accounts are created by an admin, and sessions are revocable HttpOnly, Secure, SameSite=Strict cookies; Firebase Auth remains only as the password provider during the transition.
  • Restricted résumé analysis with Azure OpenAI (store: false), with Langfuse tracing of prompts and LLM calls.
  • Daily job-feed script that publishes open hospitality roles in Rio (from a public ATS API) as JSON for the portal and the MCP hub; a npm run gate step runs tests, typecheck, builds, dependency audit and a redacted secret scan before release.
  • Versão 1 (jan/2026): PWA em React sobre Firebase/Firestore, evoluído a partir de um scaffold do Google AI Studio, com projeto Android TWA (Bubblewrap, não publicado), SEO técnico (URLs limpas, sitemap, robots.txt) e incorporação dentro do Portal do Associado.
  • Versão 2 (jul a ago/2026): React + Express no Azure App Service (Brazil South), com Azure PostgreSQL como fonte única de perfis, papéis e auditoria e currículos em contêiner privado do Azure Blob, ambos acessados por identidade gerenciada em vez de chave estática; segredos referenciados no Key Vault.
  • Autorização no servidor: o papel vem só da tabela users do PostgreSQL, o cadastro público sempre cria um candidato, contas da equipe são criadas por um administrador e a sessão é um cookie revogável HttpOnly, Secure e SameSite=Strict; o Firebase Auth ficou apenas como provedor de senha durante a transição.
  • Análise restrita de currículos com Azure OpenAI (store: false) e rastreamento de prompts e chamadas de LLM no Langfuse.
  • Script diário de vagas que publica em JSON as vagas abertas de hotelaria no Rio (a partir da API pública de um ATS) para o portal e para o hub MCP; a etapa npm run gate roda testes, typecheck, builds, auditoria de dependências e varredura redigida de segredos antes de cada publicação.

Results

Resultados

  • Azure version live on three brand domains from one deployment (HTTP 200 on 2026-09-23; DNS confirmed pointing to Azure App Service on 2026-09-25).
  • PostgreSQL and private Blob Storage replaced Firestore and Vercel as the canonical production path; the Firebase/Vercel version is now treated as legacy.
  • 156 unique authored commits across both versions, 106 of them exclusive to the Azure rewrite (2026-07-09 to 2026-08-26).
  • Security headers verified in production: HSTS and a strict Content Security Policy that only allows framing by the Member Portal domains.
  • Versão Azure no ar em três domínios de marca a partir de um único deploy (HTTP 200 em 23/09/2026; DNS confirmado apontando para o Azure App Service em 25/09/2026).
  • PostgreSQL e Blob Storage privado substituíram Firestore e Vercel como caminho canônico de produção; a versão Firebase/Vercel passou a ser tratada como legado.
  • 156 commits autorais únicos nas duas versões, 106 deles exclusivos da reescrita em Azure (09/07/2026 a 26/08/2026).
  • Cabeçalhos de segurança conferidos em produção: HSTS e Content Security Policy restrita, que só permite a incorporação pelos domínios do Portal do Associado.
Pro Clubs America home page

LIVE · HTTP 200 · checked 2026-09-23LIVE · HTTP 200 · checado em 23/09/2026proclubsamerica.com

Architecture

Arquitetura

Static export of the Next.js app to Cloudflare Pages (pre-rendered profiles plus a static fallback for community-created URLs), with Pages Functions as the only API layer. Identity comes from Firebase Auth and all community data lives in Supabase PostgreSQL, reached server-side only.

Exportação estática do app Next.js para o Cloudflare Pages (perfis pré-renderizados e fallback estático para URLs criadas pela comunidade), com as Pages Functions como única camada de API. A identidade vem do Firebase Auth e todos os dados da comunidade ficam no Supabase PostgreSQL, acessado só pelo servidor.

Stack

Stack

Next.js 16React 19TypeScriptCloudflare PagesCloudflare Pages FunctionsSupabase (PostgreSQL, PL/pgSQL, RLS)Firebase AuthenticationRechartsPWA (service worker)GitHub Actions (macOS runner)Xcode / WKWebView (PWABuilder)Supabase MCP

AI in the workflow

IA no fluxo de trabalho

15 of the 101 authored commits carry a Claude co-author trailer. AI agents did much of the implementation, applied the database migrations through the Supabase MCP server and ran the App Store compliance pass; running the Supabase advisors after migrations caught a function-configuration warning that review had missed. Gabriel owns the product decisions (verified-only friendly scores, server-only database access, non-affiliation notice) and the production checks.

15 dos 101 commits autorais têm trailer de coautoria do Claude. Agentes de IA fizeram boa parte da implementação, aplicaram as migrações do banco pelo servidor MCP do Supabase e fizeram a revisão de conformidade para a App Store; rodar os advisors do Supabase depois das migrações pegou um alerta de configuração de função que a revisão tinha deixado passar. As decisões de produto (placar de amistoso só verificado, banco acessado só pelo servidor, aviso de não afiliação) e a conferência em produção são do Gabriel.

Caveats

Ressalvas

  • Not affiliated with or endorsed by Electronic Arts; data depends on the availability of EA's public pages.
  • 25 user profiles and no active-user metric; directory counts are indexed public data, not users.
  • The iOS app has never been submitted: the Apple Developer account had no distribution certificate and the App ID was not registered (06/09/2026). It is not on the App Store.
  • The plans page (Free, Pro, VIP) is a mockup; payments are disabled.
  • The deploy workflow does not apply database migrations, so schema changes go out separately; once the front end shipped first and the new API returned 500 until the migrations ran.
  • Sem afiliação nem endosso da Electronic Arts; os dados dependem da disponibilidade das páginas públicas da EA.
  • 25 perfis de usuários e nenhuma métrica de usuários ativos; os números do diretório são dados públicos indexados, não usuários.
  • O app iOS nunca foi enviado: a conta Apple Developer não tinha certificado de distribuição e o App ID não estava registrado (06/09/2026). Não está na App Store.
  • A página de planos (Free, Pro, VIP) é um mockup; os pagamentos estão desativados.
  • O workflow de deploy não aplica as migrações do banco, então mudanças de schema saem em separado; numa ocasião o front foi ao ar antes e a API nova respondeu 500 até as migrações rodarem.

Independent product · under AgenciAR · 2026-06 → 2026-09Produto próprio · sob a AgenciAR · 2026-06 → 2026-09

Pro Clubs America

Pro Clubs America

Founder and developer (independent product, AgenciAR)

Fundador e desenvolvedor (produto independente, AgenciAR)

Context

Contexto

EA SPORTS FC Clubs shows club, roster and match stats on public web pages but has no community layer for discovering clubs, recruiting players or arranging friendlies with results people can trust. Pro Clubs America is an independent, non-affiliated community PWA for South American players, built on that public data.

O EA SPORTS FC Clubs mostra estatísticas de clubes, elencos e partidas em páginas públicas, mas não tem uma camada de comunidade para descobrir clubes, recrutar jogadores ou marcar amistosos com resultado confiável. O Pro Clubs America é uma PWA comunitária independente, sem afiliação com a EA, feita para jogadores da América do Sul sobre esses dados públicos.

What he built

O que construiu

  • Next.js 16 / React 19 PWA with club and player directories, global search, club and player rankings by metric, a transfer market (open spots and free agents), a friendlies board with invites and open challenges, and regional communities in Portuguese, Spanish and English.
  • API on Cloudflare Pages Functions that validates the Firebase Auth token and only then reads or writes Supabase PostgreSQL with the service role; 24 tables have RLS enabled and no client policies by design, so the browser never reaches the database.
  • Friendly scores cannot be typed in: completed matches are checked against EA's public match data, stored as deduplicated snapshots through a signed internal endpoint, and confirmed by a PL/pgSQL reconciliation function.
  • Tournaments with an approval workflow (club owners propose, admins approve and referee) and an admin overview panel; schema migrations applied through the Supabase MCP server and followed by the Supabase advisors check.
  • iOS wrapper (PWABuilder WKWebView) versioned in the repository with fixes for three App Store blockers in the generated template (missing privacy manifest, 32-bit armv7 capability, macOS sandbox entitlements) and arbitrary network loads disabled; a GitHub Actions workflow on a macOS runner builds the unsigned .ipa.
  • PWA em Next.js 16 / React 19 com diretórios de clubes e jogadores, busca global, rankings de clubes e de jogadores por métrica, mercado de transferências (vagas abertas e jogadores sem time), mural de amistosos com convites e desafios abertos, e comunidades regionais em português, espanhol e inglês.
  • API em Cloudflare Pages Functions que valida o token do Firebase Auth e só então lê ou grava no Supabase PostgreSQL com a service role; as 24 tabelas têm RLS ligada e nenhuma policy para o cliente, por design, então o navegador nunca acessa o banco.
  • Placar de amistoso não pode ser digitado: partidas concluídas são conferidas com os dados públicos de partidas da EA, gravadas como snapshots deduplicados por um endpoint interno assinado e confirmadas por uma função PL/pgSQL de conciliação.
  • Campeonatos com fluxo de aprovação (dono de clube propõe, admin aprova e arbitra) e painel administrativo; migrações de schema aplicadas pelo servidor MCP do Supabase e seguidas da checagem dos advisors do Supabase.
  • Wrapper iOS (WKWebView do PWABuilder) versionado no repositório, com correção de três bloqueios de App Store do template gerado (manifesto de privacidade ausente, capacidade armv7 de 32 bits, entitlements de sandbox do macOS) e carregamento arbitrário de rede desativado; um workflow do GitHub Actions em runner macOS compila o .ipa sem assinatura.

Results

Resultados

  • In production at proclubsamerica.com; the admin panel, verified live on 08/09/2026, showed 25 user profiles and a directory of 736 clubs and 8,181 players indexed from public EA data (not user sign-ups).
  • Production build generates 3,453 static pages, and the Pages Functions compile in the same check.
  • Unsigned iOS build green on a GitHub Actions macos-15 runner in 1 min 41 s (06/09/2026), at no runner cost because the repository is public.
  • Diagnosed and fixed a production admin-panel failure (HTTP 500: a query asked for a column that does not exist on that table, and one failed call brought down the whole panel), then verified the fix live.
  • 101 authored commits (Jun to Sep 2026).
  • Em produção em proclubsamerica.com; o painel administrativo, conferido no ar em 08/09/2026, mostrou 25 perfis de usuários e um diretório de 736 clubes e 8.181 jogadores indexados de dados públicos da EA (não são cadastros de usuários).
  • O build de produção gera 3.453 páginas estáticas, e as Pages Functions compilam na mesma checagem.
  • Build iOS sem assinatura aprovado num runner macos-15 do GitHub Actions em 1 min 41 s (06/09/2026), sem custo de runner porque o repositório é público.
  • Diagnosticou e corrigiu uma falha do painel administrativo em produção (HTTP 500: uma consulta pedia uma coluna que não existe naquela tabela, e uma única chamada com erro derrubava o painel inteiro), e conferiu a correção no ar.
  • 101 commits autorais (jun a set/2026).
target
Windows desktop · local-firstdesktop Windows · local-first
runtime
Electron · React · SQL.js · BaileysElectron · React · SQL.js · Baileys
mcp
12 tools · stdio + Streamable HTTP12 ferramentas · stdio + Streamable HTTP
guard
10 sends/min default · allowlist10 envios/min por padrão · allowlist
status
RELEASE 1.4.7 · 2026-09-13RELEASE 1.4.7 · 13/09/2026

Architecture

Arquitetura

The Electron main process runs the WhatsApp Web sessions (Baileys) and a local SQL.js store, and the React renderer handles inbox and CRM. A loopback REST API with bearer auth is the single integration surface: the MCP server and the Chrome extension both call it, so every send is logged locally and there is no cloud fallback.

O processo principal do Electron roda as sessões do WhatsApp Web (Baileys) e um banco local em SQL.js, e o renderer em React cuida da caixa de entrada e do CRM. Uma API REST de loopback com autenticação bearer é a única superfície de integração: o servidor MCP e a extensão do Chrome passam por ela, então todo envio fica registrado localmente e não existe fallback para a nuvem.

Stack

Stack

ElectronTypeScriptReactNode.jsBaileysSQL.jsModel Context Protocol (MCP)electron-builderOpenRouterGoogle Gemini APIOpenAI APIDeepSeekChrome Extension (Manifest V3)Next.jsMercado PagoDocker ComposeEvolution APIPostgreSQLRedisVercelCloudflare R2

AI in the workflow

IA no fluxo de trabalho

Built with AI coding agents, mainly Claude Code: 4 of the 66 authored commits carry a Claude co-author trailer, which is a floor because other agents leave no trailer. Gabriel set the scope and the guardrail rules; changes shipped through pull requests, build and packaging checks, and an end-to-end test from a separate Claude Code session that sent no real message. AI is also a product feature (reply suggestions, transcription, voice), powered by provider keys that each user supplies.

Construído com agentes de código de IA, principalmente o Claude Code: 4 dos 66 commits autorais têm trailer de coautoria do Claude, o que é um piso, porque outros agentes não deixam trailer. Gabriel definiu o escopo e as regras de guardrail; as mudanças entraram por pull requests, checagens de build e de empacotamento e um teste de ponta a ponta feito a partir de outra sessão do Claude Code, sem enviar nenhuma mensagem real. A IA também é recurso do produto (sugestão de resposta, transcrição, voz), com chaves de provedor fornecidas por cada usuário.

Caveats

Ressalvas

  • Relies on Baileys, an unofficial WhatsApp Web library: usage is subject to WhatsApp's terms and carries account-ban risk.
  • Checkout is implemented, but no sales are recorded in the sources.
  • Windows-only desktop build; the Chrome extension is loaded unpacked (not in the Chrome Web Store) and the multi-tenant SaaS variant is still beta.
  • Known issue documented on 13/09/2026: the AI endpoint intermittently returns a misleading 'no provider configured' error when the provider is unstable.
  • Depende do Baileys, biblioteca não oficial do WhatsApp Web: o uso está sujeito aos termos do WhatsApp e traz risco de banimento da conta.
  • O checkout está implementado, mas nenhuma venda aparece nas fontes.
  • Build desktop só para Windows; a extensão do Chrome é carregada sem empacotar (fora da Chrome Web Store) e a variante SaaS multi-tenant ainda está em beta.
  • Falha conhecida, documentada em 13/09/2026: a rota de IA devolve de forma intermitente o erro enganoso 'nenhum provedor configurado' quando o provedor está instável.

Independent product · under AgenciAR · 2026-06 → 2026-09Produto próprio · sob a AgenciAR · 2026-06 → 2026-09

Zap Mágico

Zap Mágico

Founder and developer (independent product, AgenciAR)

Fundador e desenvolvedor (produto independente, AgenciAR)

Context

Contexto

Small teams run sales and support on WhatsApp without a shared inbox, a pipeline or AI help, and most cloud tools require a server or the official Business API. Zap Mágico tests a local-first alternative: a Windows desktop app that connects by QR code, keeps data on the user's machine and, in a later phase, lets AI agents (Claude, ChatGPT, Cursor, n8n) use WhatsApp under explicit guardrails.

Equipes pequenas vendem e atendem pelo WhatsApp sem caixa de entrada compartilhada, sem funil e sem apoio de IA, e a maioria das ferramentas em nuvem exige servidor ou a API oficial do WhatsApp Business. O Zap Mágico testa uma alternativa local-first: um app desktop para Windows que conecta por QR Code, mantém os dados na máquina do usuário e, numa segunda fase, permite que agentes de IA (Claude, ChatGPT, Cursor, n8n) usem o WhatsApp sob guardrails explícitos.

What he built

O que construiu

  • Electron + React desktop app with multiple WhatsApp accounts via QR code, isolated per-account sessions stored encrypted in a local SQL database, a real-time inbox with tags, priority and internal notes, and a CRM pipeline with stages, owner and deal value.
  • AI reply suggestions with a manual-review editor, four optional providers (OpenRouter, Gemini, OpenAI, DeepSeek), a searchable model catalog with price filters, a per-account prompt and knowledge base (PDF, DOCX, XLSX and more), audio transcription and text-to-speech delivered as WhatsApp voice notes.
  • Authenticated local REST API bound to 127.0.0.1 for agents and n8n, plus a Node.js MCP server with 12 tools over stdio and stateless Streamable HTTP, bundled into the Windows installer by electron-builder.
  • MCP guardrails: token read only from the environment and never logged, phone normalization to international format, connection check before every send, per-minute send rate limit (default 10), optional recipient allowlist, and server instructions that treat inbox messages as data, not instructions (prompt-injection defense).
  • Go-to-market pieces: a Chrome (Manifest V3) companion extension that adds AI actions to WhatsApp Web through the local API, a marketing landing page with Mercado Pago checkout, and a multi-tenant SaaS variant on Evolution API, PostgreSQL and Redis (beta).
  • App desktop em Electron + React com várias contas de WhatsApp por QR Code, sessões isoladas por conta e gravadas de forma criptografada num banco SQL local, caixa de entrada em tempo real com etiquetas, prioridade e notas internas, e funil de CRM com etapas, responsável e valor da oportunidade.
  • Sugestão de resposta por IA com editor para revisão manual, quatro provedores opcionais (OpenRouter, Gemini, OpenAI, DeepSeek), catálogo pesquisável de modelos com filtro de preço, prompt e base de conhecimento por conta (PDF, DOCX, XLSX e outros), transcrição de áudio e voz sintetizada entregue como nota de voz do WhatsApp.
  • API REST local autenticada, restrita a 127.0.0.1, para agentes e n8n, e um servidor MCP em Node.js com 12 ferramentas via stdio e Streamable HTTP sem estado, empacotado no instalador do Windows pelo electron-builder.
  • Guardrails do MCP: token lido só do ambiente e nunca registrado em log, normalização do telefone para o formato internacional, checagem da conexão antes de cada envio, limite de envios por minuto (padrão de 10), allowlist opcional de destinatários e instruções do servidor que tratam as mensagens da caixa de entrada como dados, nunca como instruções (defesa contra prompt injection).
  • Peças de go-to-market: extensão companion para Chrome (Manifest V3) que acrescenta ações de IA ao WhatsApp Web pela API local, landing page com checkout Mercado Pago e uma variante SaaS multi-tenant sobre Evolution API, PostgreSQL e Redis (beta).

Results

Resultados

  • Shipped release 1.4.7 with the MCP server embedded (13/09/2026) and verified the installed build end to end: the WhatsApp session reconnected without data loss and the server registered in Claude Code with status Connected.
  • Expanded the MCP server from 7 to 12 tools in one day. An independent Claude Code session called three read-only tools and received live data; the smoke test covers the handshake, all 12 tools and the rejection of invalid phone numbers without sending any message.
  • Caught a release-integrity problem before shipping the next installer: the installed build (1.4.5) was newer than the repository (1.4.4) because two releases existed only in an unpushed worktree. Recovered and merged them into 1.4.7, avoiding a silent two-version downgrade.
  • 66 authored commits across 6 repositories (Jun to Sep 2026).
  • Lançou a versão 1.4.7 com o servidor MCP embutido (13/09/2026) e validou a instalação de ponta a ponta: a sessão do WhatsApp reconectou sem perda de dados e o servidor foi registrado no Claude Code com status Connected.
  • Ampliou o servidor MCP de 7 para 12 ferramentas em um dia. Uma sessão independente do Claude Code chamou três ferramentas somente leitura e recebeu dados reais; o teste de fumaça cobre o handshake, as 12 ferramentas e a rejeição de telefone inválido sem enviar nenhuma mensagem.
  • Detectou um problema de integridade de release antes de gerar o próximo instalador: a versão instalada (1.4.5) era mais nova que a do repositório (1.4.4), porque duas releases existiam só num worktree nunca enviado ao GitHub. Recuperou e uniu tudo na 1.4.7, evitando um downgrade silencioso de duas versões.
  • 66 commits autorais em 6 repositórios (jun a set/2026).
Home page of the municipalities events calendar

LIVE · HTTP 200 · checked 2026-09-23LIVE · HTTP 200 · checado em 23/09/2026calendariodeeventos.abihrj.com.br

Architecture

Arquitetura

Static site on Cloudflare Pages with Pages Functions serving a JSON API from a dedicated D1 database. Plain-text research files per municipality are the auditable source, imported and seeded by Node.js scripts, so every event traces back to an official publication.

Site estático no Cloudflare Pages, com Pages Functions servindo uma API JSON a partir de um banco D1 dedicado. Arquivos de pesquisa em texto, um por município, são a fonte auditável, importados e carregados por scripts em Node.js, de modo que todo evento remete a uma publicação oficial.

Stack

Stack

PythonNode.jsJavaScriptHTML/CSSCloudflare PagesCloudflare Pages FunctionsCloudflare D1 (SQLite)WranglerGitHub ActionsZoho Formsschema.org / JSON-LD

AI in the workflow

IA no fluxo de trabalho

Built predominantly in Claude Code sessions: 23 of the 24 authored commits carry a Claude co-author trailer. The collection rules written in the README work as acceptance criteria for both code and data, and corrections such as the 17 date fixes were checked against the official source before publishing.

Construído principalmente em sessões do Claude Code: 23 dos 24 commits autorais têm trailer de coautoria do Claude. As regras de coleta escritas no README funcionam como critério de aceite do código e dos dados, e correções como as 17 datas foram conferidas na fonte oficial antes de publicar.

Caveats

Ressalvas

  • Usage is not measured in the sources.
  • Coverage depends on what municipalities publish: 67 of 92 had no official calendar found (25/09/2026), and all listed events fall in 2026.
  • An MCP endpoint (8 tools, including search and fetch for ChatGPT and a suggestion queue that never edits data directly) exists in the repository but did not respond in production on 25/09/2026.
  • 8 more commits under an institutional Git identity are not counted until authorship is confirmed.
  • O uso não é medido nas fontes.
  • A cobertura depende do que os municípios publicam: em 67 dos 92 não foi encontrado calendário oficial (25/09/2026), e todos os eventos listados são de 2026.
  • Um endpoint MCP (8 ferramentas, incluindo search e fetch para o ChatGPT e uma fila de sugestões que nunca altera os dados direto) existe no repositório, mas não respondia em produção em 25/09/2026.
  • Outros 8 commits feitos com uma identidade Git institucional não entram na conta até a autoria ser confirmada.

Employer · HotéisRIO / ABIH-RJ · 2026-08 → 2026-09Empregador · HotéisRIO / ABIH-RJ · 2026-08 → 2026-09

Events calendar for Rio de Janeiro's 92 municipalities

Calendário de eventos dos 92 municípios do RJ

Marketing & IT Coordinator, HotéisRIO / ABIH-RJ: concept, data pipeline, front end and deployment

Coordenador de Marketing e TI, HotéisRIO / ABIH-RJ: concepção, pipeline de dados, front-end e publicação

Context

Contexto

Hotels across the 92 municipalities of Rio de Janeiro state need to plan occupancy and rates around local events, but official calendars are scattered across city halls, tourism secretariats and official gazettes, and most municipalities publish none. ABIH-RJ, the state hotel association, needed one reference in which every event cites its official source.

Os hotéis dos 92 municípios do estado do Rio de Janeiro precisam planejar ocupação e tarifa em torno dos eventos locais, mas os calendários oficiais estão espalhados entre prefeituras, secretarias de turismo e diários oficiais, e a maioria dos municípios não publica nenhum. A ABIH-RJ precisava de uma referência única em que cada evento cite a sua fonte oficial.

What he built

O que construiu

  • Collection pipeline with one research file per municipality (official source in the header, one line per event) → JSON → SQL seed → Cloudflare D1, plus Python probes that check each municipality's official portal.
  • Static site generated from the data: home, 92 municipality pages, 8 tourist-region pages based on the state tourism map, one page per event, monthly and category hubs, schema.org markup and sitemap, with titles and descriptions kept within search-result limits.
  • Public REST API over D1 (events filterable by municipality, category and date; municipalities with their official source and event count) and token-protected write endpoints; CI deploys to Pages on every push to main.
  • Hotel quote-request form (Zoho Forms) on event pages with mandatory LGPD consent, Excel/CSV export of the base, and HTML launch and monthly-agenda e-mails in the association's template.
  • Source rules enforced in the data: official sources only, events without a confirmed day left out, no event inferred from past editions, a source link on every page, and 17 dates corrected against the official publication.
  • Pipeline de coleta com um arquivo de pesquisa por município (fonte oficial no cabeçalho, uma linha por evento) → JSON → seed SQL → Cloudflare D1, e sondas em Python que conferem o portal oficial de cada município.
  • Site estático gerado a partir dos dados: home, 92 páginas de município, 8 páginas de região turística com base no mapa da Setur, uma página por evento, hubs por mês e por categoria, marcação schema.org e sitemap, com títulos e descrições dentro do limite da página de resultados.
  • API REST pública sobre o D1 (eventos filtráveis por município, categoria e data; municípios com fonte oficial e contagem de eventos) e rotas de escrita protegidas por token; o CI publica no Pages a cada push na main.
  • Formulário de cotação de hospedagem (Zoho Forms) nas páginas de evento com consentimento LGPD obrigatório, exportação da base em Excel/CSV, e e-mails HTML de lançamento e de agenda mensal no padrão da entidade.
  • Regras de fonte aplicadas nos dados: só fonte oficial, eventos sem dia confirmado ficam de fora, nenhum evento deduzido de edições anteriores, link da fonte em toda página e 17 datas corrigidas conforme a publicação oficial.

Results

Resultados

  • Live on the association's domain covering all 92 municipalities with 964 official events; 25 municipalities have a published official calendar, and the other 67 pages record the absence and point to the official channel (API, 25/09/2026).
  • Launched on 27/08/2026, the day of the first commit, and iterated to 08/09/2026 across 24 authored commits.
  • 394 URLs in the sitemap after expired events were filtered out (25/09/2026).
  • No ar no domínio da entidade, cobrindo os 92 municípios com 964 eventos oficiais; 25 municípios têm calendário oficial publicado, e as outras 67 páginas registram a ausência e apontam o canal oficial (API, 25/09/2026).
  • Lançado em 27/08/2026, no mesmo dia do primeiro commit, e evoluído até 08/09/2026 em 24 commits autorais.
  • 394 URLs no sitemap depois do filtro de eventos já encerrados (25/09/2026).
input
340 CSV exports · 261 header layouts340 exportações CSV · 261 layouts de cabeçalho
output
5,647 unique responses5.647 respostas únicas
span
Dec 2020 → Sep 2026dez/2020 → set/2026
publish
aggregates only · Cloudflare Pagessó agregados · Cloudflare Pages
status
PRIVATE REPO · SHA-256 manifestREPO PRIVADO · manifesto SHA-256

Architecture

Arquitetura

Raw exports are preserved unchanged in a private Git repository with SHA-256 manifests. Node.js and Python scripts build a canonical series and publish only an aggregate JSON snapshot to a static dashboard on Cloudflare Pages.

As exportações brutas ficam preservadas sem alteração num repositório Git privado, com manifestos SHA-256. Scripts em Node.js e Python montam a série canônica e publicam só um snapshot JSON agregado num dashboard estático no Cloudflare Pages.

Stack

Stack

PythonNode.jsJavaScriptPowerShellMicrosoft 365 CLI (SharePoint)Zoho FormsReactViteTypeScriptRechartsCloudflare Pages

AI in the workflow

IA no fluxo de trabalho

Parsers, canonicalization and analysis were written and run in AI coding-agent sessions, with the analysis scripts kept in a separate operations folder, so the survey repositories show 16 authored commits and no co-author trailers. Gabriel framed the questions and set the publication rule (aggregates only); re-running the analysis on the full base is what exposed the error in the partial read.

Parsers, canonicalização e análise foram escritos e executados em sessões com agentes de código de IA, e os scripts de análise ficam numa pasta de operações separada, por isso os repositórios da pesquisa mostram 16 commits autorais e nenhum trailer de coautoria. Gabriel formulou as perguntas e definiu a regra de publicação (só agregados); foi a nova execução da análise sobre a base completa que expôs o erro da leitura parcial.

Caveats

Ressalvas

  • Dashboard averages are simple means, not weighted by room count; SharePoint daily data without a validated consolidation remains unavailable.
  • Raw data holds personal and commercial information, so the repositories stay private and only aggregates can be shown.
  • Collection still runs on Zoho Forms and direct e-mail with no send instrumentation; the re-engagement segments were prepared, and the sources show no execution results yet.
  • Published survey reports and press coverage do not credit him; his contribution is the data pipeline and the analysis.
  • As médias do dashboard são simples, sem ponderar pelo número de quartos; os dados diários do SharePoint sem consolidação validada continuam indisponíveis.
  • Os dados brutos têm informação pessoal e comercial, então os repositórios ficam privados e só os agregados podem ser mostrados.
  • A coleta ainda roda no Zoho Forms e por e-mail direto, sem instrumentação de envio; os segmentos de reengajamento foram preparados, e as fontes ainda não mostram resultado de execução.
  • Os relatórios divulgados e a cobertura da imprensa não o creditam; a contribuição dele é o pipeline de dados e a análise.

Employer · HotéisRIO / ABIH-RJ · 2025-12 → 2026-09Empregador · HotéisRIO / ABIH-RJ · 2025-12 → 2026-09

Hotel occupancy survey data pipeline

Pipeline de dados da Pesquisa de Ocupação Hoteleira

Marketing & IT Coordinator, HotéisRIO / ABIH-RJ: data engineering, analysis and reporting

Coordenador de Marketing e TI, HotéisRIO / ABIH-RJ: engenharia de dados, análise e relatórios

Context

Contexto

HotéisRIO and ABIH-RJ run a recurring hotel occupancy survey on Zoho Forms (responses on file since Dec 2020) whose results the associations publish and national press has cited (context). Years of CSV exports sat in Downloads folders and SharePoint with 261 different header layouts, so basic questions such as 'is participation falling?' or 'who actually responds?' had no reliable answer, and reading only part of the files (36 of 340) suggested a 94% drop that the full base later disproved.

A HotéisRIO e a ABIH-RJ fazem uma pesquisa recorrente de ocupação hoteleira no Zoho Forms (respostas arquivadas desde dez/2020), cujos resultados as entidades divulgam e a imprensa nacional já citou (contexto). Anos de exportações em CSV estavam espalhados em pastas de Downloads e no SharePoint, com 261 formatos de cabeçalho diferentes, então perguntas básicas como 'a participação está caindo?' ou 'quem de fato responde?' não tinham resposta confiável, e ler só parte dos arquivos (36 de 340) sugeria uma queda de 94% que a base completa depois desmentiu.

What he built

O que construiu

  • Private versioned repository of 340 original CSV exports (296 unique by SHA-256) with a per-file integrity manifest, synced from SharePoint through Microsoft 365 CLI scripts in PowerShell.
  • Parser that maps 261 header variants by column-name heuristics instead of position, recovers the month from header dates in the 83 files that have no date column, and deduplicates by content hash.
  • Canonicalization of free-text fields: 89 municipality spellings collapsed into 26 real municipalities and 536 hotel spellings into 385 hotels, using accent-insensitive, sorted-token keys.
  • Aggregate-only dashboard (React + Vite on Cloudflare Pages) with filters and a Zoho vs SharePoint comparison view; raw files, archived e-mails and personal data never enter the public build.
  • Recency × frequency segmentation of respondents for re-engagement (role and region were empty in most records, so those cuts were not viable), plus a Christmas 2025 occupancy dashboard in Recharts.
  • Repositório privado e versionado com 340 exportações CSV originais (296 únicas por SHA-256) e manifesto de integridade por arquivo, sincronizado a partir do SharePoint por scripts em PowerShell com o Microsoft 365 CLI.
  • Parser que mapeia 261 variações de cabeçalho por heurística de nome de coluna, e não por posição, recupera o mês pelas datas do cabeçalho nos 83 arquivos sem coluna de data e deduplica por hash de conteúdo.
  • Canonicalização de campos de texto livre: 89 grafias de município reduzidas a 26 municípios reais e 536 grafias de hotel a 385 hotéis, com chaves sem acento e de tokens ordenados.
  • Dashboard só com dados agregados (React + Vite no Cloudflare Pages), com filtros e uma visão comparativa Zoho x SharePoint; arquivos brutos, e-mails arquivados e dados pessoais nunca entram no build público.
  • Segmentação dos respondentes por recência × frequência para reengajamento (cargo e região estavam vazios na maior parte dos registros, então esses recortes não serviam) e um dashboard de ocupação do Natal 2025 em Recharts.

Results

Resultados

  • Consolidated 340 CSV files into 5,647 unique responses covering Dec 2020 to Sep 2026, with 99% of responses placed on the time series.
  • Reversed a misleading diagnosis: participation did not collapse, and 2026 is the second-best year of the series (1,262 responses, against 1,540 in 2024).
  • Surfaced the real risk: 32 people account for 50.5% of all responses, and a one-off drop-off in Apr 2026 (25 respondents stopped in a single wave) explains the loss better than gradual decline.
  • Found that no survey invitation had ever gone out through the e-mail marketing platform (all 10 survey campaigns in the platform were still drafts), so there were no open-rate metrics to optimize; recommended instrumenting the sends before any optimization.
  • Consolidou 340 arquivos CSV em 5.647 respostas únicas, de dez/2020 a set/2026, com 99% das respostas posicionadas na série temporal.
  • Reverteu um diagnóstico enganoso: a participação não despencou, e 2026 é o segundo melhor ano da série (1.262 respostas, contra 1.540 em 2024).
  • Expôs o risco real: 32 pessoas respondem por 50,5% de todas as respostas, e uma evasão pontual em abr/2026 (25 respondentes pararam de uma vez) explica a perda melhor que um declínio gradual.
  • Descobriu que nenhum convite da pesquisa jamais saiu pela plataforma de e-mail marketing (as 10 campanhas da pesquisa na plataforma estavam todas em rascunho), portanto não havia taxa de abertura para otimizar; recomendou instrumentar os envios antes de qualquer otimização.
AgenciAR home page

LIVE · HTTP 200 · checked 2026-09-23LIVE · HTTP 200 · checado em 23/09/2026www.agenciarmktdigital.com.br

Architecture

Arquitetura

A single-page React app pre-rendered at build time into static HTML for every indexable route, with the XML sitemap and page metadata generated from one route catalog. Hosted on Vercel behind Cloudflare, with Supabase for CRM data.

Um app React de página única pré-renderizado no build em HTML estático para cada rota indexável, com o sitemap XML e os metadados gerados a partir de um único catálogo de rotas. Hospedado na Vercel atrás da Cloudflare, com o Supabase para os dados do CRM.

Stack

Stack

ReactTypeScriptViteNode.jsTailwind CSSSupabaseThree.jsschema.org / JSON-LDGoogle Search ConsoleGoogle Analytics 4VercelCloudflare

AI in the workflow

IA no fluxo de trabalho

The regional SEO rollout and the readiness audit were run in AI coding-agent sessions guided by an SEO skill, with a reproducible script that checks every URL; 12 of the 104 authored commits carry a Claude co-author trailer. The audit deliberately separates 'sitemap available' from 'indexation confirmed' instead of reporting success, and lists the gaps it found.

A implantação do SEO regional e a auditoria de prontidão foram feitas em sessões com agentes de código de IA guiadas por uma skill de SEO, com um script reproduzível que confere cada URL; 12 dos 104 commits autorais têm trailer de coautoria do Claude. A auditoria separa de propósito 'sitemap disponível' de 'indexação confirmada', em vez de declarar sucesso, e lista as lacunas encontradas.

Caveats

Ressalvas

  • Indexation is not confirmed yet: at audit time the canonical www sitemap had not been submitted in Search Console, and one region still showed an old noindex crawl state.
  • The visual sitemap offered 200 niche routes that are not in the XML sitemap, and a sampled route returned 404 (defect logged).
  • Conversion tracking is not reliable yet: GA4 page_view on in-app route changes is unconfirmed, generate_lead fires when the thank-you page mounts and is not a key event, and lead-form persistence was not verified.
  • Pages are template-generated combinations; there was no page-by-page editorial review, Core Web Vitals test or full schema validation.
  • The project started from a Google AI Studio React template; the sources hold no lead or revenue figures, and the local ranking snapshot predates the regional pages.
  • A indexação ainda não está confirmada: na data da auditoria o sitemap canônico com www não tinha sido enviado ao Search Console, e uma região ainda aparecia com um rastreamento antigo marcado como noindex.
  • O mapa do site visual oferecia 200 rotas de nicho fora do sitemap XML, e uma rota da amostra respondeu 404 (defeito registrado).
  • A medição de conversão ainda não é confiável: o page_view do GA4 nas trocas de rota internas não foi confirmado, o generate_lead dispara ao montar a página de obrigado e não é evento principal, e a gravação do lead pelo formulário não foi verificada.
  • As páginas são combinações geradas por template; não houve revisão editorial página a página, teste de Core Web Vitals nem validação completa de schema.
  • O projeto nasceu de um template React do Google AI Studio; as fontes não têm números de leads nem de receita, e o retrato do ranking local é anterior às páginas regionais.

Own business · AgenciAR · 2026-03 → 2026-09Empresa própria · AgenciAR · 2026-03 → 2026-09

AgenciAR site and programmatic local SEO

Site da AgenciAR e SEO local programático

CEO and developer, AgenciAR Marketing Digital: strategy, local SEO, development and operations

CEO e desenvolvedor, AgenciAR Marketing Digital: estratégia, SEO local, desenvolvimento e operação

Context

Contexto

AgenciAR, his digital marketing agency in Rio de Janeiro, depends on being found by local businesses that search for a service in their neighborhood or niche. A brochure site cannot rank for thousands of 'service + location' and 'service + niche' long-tail queries, and scaling pages without controls creates duplicate metadata, canonical errors and thin content.

A AgenciAR, agência de marketing digital dele no Rio de Janeiro, depende de ser encontrada por negócios locais que buscam um serviço no próprio bairro ou nicho. Um site institucional simples não ranqueia para milhares de buscas de cauda longa do tipo 'serviço + local' e 'serviço + nicho', e escalar páginas sem controle gera metadados duplicados, erros de canonical e conteúdo raso.

What he built

O que construiu

  • React + TypeScript + Vite site whose build chains sitemap generation, the Vite build and per-route static SEO HTML (canonical, robots, schema.org), guarded by an automated SEO contract check and a route-metadata audit.
  • Programmatic regional SEO: 1,917 canonical static URLs, including 156 neighborhood and city pages, 936 service × location, 50 service × niche and 750 service × niche × location pages for 15 priority regions, each with diagnosis, action plan, local context and FAQ blocks, and areaServed markup that makes clear the regions are served, not branch offices.
  • Duplicate control: 2 exact city duplicates and 12 service-derived duplicates consolidated with 301 redirects; titles kept at 30 to 60 characters and descriptions at 121 to 160.
  • Built-in CRM on Supabase, local e-mail and WhatsApp API servers used by the agency, Three.js visual elements, and a mobile layout validated at 320 px and 1440 px without horizontal overflow.
  • Read-only readiness audit across Search Console, GA4 and every sitemap URL, with a reproducible script, documenting what is and is not measured yet.
  • Site em React + TypeScript + Vite cujo build encadeia a geração do sitemap, o build do Vite e o HTML estático de SEO por rota (canonical, robots, schema.org), protegido por uma checagem automática de contrato de SEO e uma auditoria de metadados por rota.
  • SEO regional programático: 1.917 URLs canônicas e estáticas, entre elas 156 páginas de bairro e cidade, 936 de serviço × local, 50 de serviço × nicho e 750 de serviço × nicho × local para 15 regiões prioritárias, cada uma com blocos de diagnóstico, plano de ação, contexto local e FAQ, e marcação areaServed deixando claro que a região é atendida, não uma filial.
  • Controle de duplicação: 2 duplicações exatas de cidade e 12 derivadas de serviço consolidadas por redirect 301; títulos entre 30 e 60 caracteres e descrições entre 121 e 160.
  • CRM próprio no Supabase, servidores locais de API de e-mail e de WhatsApp usados pela agência, elementos visuais em Three.js e layout mobile validado em 320 px e 1440 px sem rolagem horizontal.
  • Auditoria de prontidão somente leitura no Search Console, no GA4 e em todas as URLs do sitemap, com script reproduzível, documentando o que já é medido e o que ainda não é.

Results

Resultados

  • Published 1,917 canonical URLs (13/09/2026); a read-only audit the same day found 1,917 of 1,917 returning HTTP 200 with a matching canonical and no noindex.
  • Metadata audit passed with 0 duplicate titles, 0 duplicate descriptions and 0 items outside the defined length ranges.
  • Google Business Profile snapshot (08/08/2026, public desktop search, before the regional pages launched): 5.0 rating from 15 reviews; position 1 for 'agência de marketing digital Recreio dos Bandeirantes' and 7 for 'agência de marketing digital Rio de Janeiro'.
  • 104 authored commits (Mar to Sep 2026).
  • Publicou 1.917 URLs canônicas (13/09/2026); uma auditoria somente leitura no mesmo dia encontrou as 1.917 respondendo HTTP 200, com canonical correto e sem noindex.
  • A auditoria de metadados passou com 0 títulos duplicados, 0 descrições duplicadas e 0 itens fora das faixas de tamanho definidas.
  • Retrato do Perfil de Empresa no Google (08/08/2026, busca pública no desktop, antes do lançamento das páginas regionais): nota 5,0 com 15 avaliações; 1ª posição em 'agência de marketing digital Recreio dos Bandeirantes' e 7ª em 'agência de marketing digital Rio de Janeiro'.
  • 104 commits autorais (mar a set/2026).

78 listed · 191 catalogued · 53 live here78 listados · 191 catalogados · 53 no ar aqui

Product explorer

Explorador de produtos

The stronger catalogue items (rated 3 to 5 of 5) that are cleared for public view and have verified authorship. Agency clients appear by sector only. Links go only to URLs verified live on 2026-09-23 and cleared for publication.

Os itens mais fortes do catálogo (nota 3 a 5 de 5) liberados para exibição pública e com autoria verificada. Clientes da agência aparecem só pelo setor. Os links vão apenas para URLs verificadas no ar em 23/09/2026 e liberadas para publicação.

Showing 78 of 78 listed · 191 items catalogued, 172 with verified authorshipExibindo 78 de 78 listados · 191 itens catalogados, 172 com autoria verificada

ProductProdutoCategoryCategoria StatusStatusLinkLinkStack
Portal do Associado HotéisRIO / ABIH-RJ

Official member app and portal for associated hotels (benefits, AI assistant, push notifications) with its own API, a Chrome extension and an iOS/Android project via Capacitor (not published to the app stores as of 2026-09-23).Aplicativo e portal oficial dos hotéis associados (benefícios, assistente de IA, notificações), com API própria, extensão Chrome e projeto iOS/Android via Capacitor (não publicado nas lojas em 23/09/2026).

Institutional portalPortal institucionalLiveNo arReact · TypeScript · Vite · Capacitor (iOS/Android)
Clinicafy

Multi-clinic SaaS with medical records, scheduling, exams, prescriptions, TISS/TUSS billing codes, inventory and finance, with RBAC, an LGPD-oriented audit trail and an Android app on Google Play.SaaS multi-clínica com prontuário, agenda, exames, prescrições, TISS/TUSS, estoque e financeiro, com RBAC, trilha de auditoria orientada à LGPD e app Android na Google Play.

SaaS productProduto SaaSLiveNo arTypeScript · React 19 · Vite · Express
MentePrumo

SaaS for psychologists and psychiatrists with voice session transcription and AI-structured clinical notes at the edge (Whisper + Llama on Workers AI).SaaS para psicólogos e psiquiatras com transcrição de sessão por voz e evolução clínica estruturada por IA na borda (Whisper + Llama em Workers AI).

SaaS productProduto SaaSLiveNo arReact 19 · TypeScript · Vite · Cloudflare Workers
CRM HotéisRIO / ABIH-RJ

Cloud CRM for the associations: contacts live in Zoho CRM while metadata, idempotency and webhook audit live in Cloudflare D1, with native public forms and Zoho Campaigns integration.CRM em nuvem das entidades: contatos no Zoho CRM, metadados, idempotência e auditoria de webhooks no Cloudflare D1, formulários públicos nativos e integração com Zoho Campaigns.

Institutional portalPortal institucionalProduction · no public linkProdução · sem link públicoReact · TypeScript · Vite · Cloudflare Pages Functions
Banco de Talentos HotéisRIO

Hospitality job board and résumé bank for Rio, rebuilt on Azure (App Service, PostgreSQL, private Blob Storage, Azure OpenAI) with RBAC and LLM observability.Portal de vagas e currículos da hotelaria do Rio reescrito em Azure (App Service, PostgreSQL, Blob privado, Azure OpenAI) com RBAC e observabilidade de IA.

Institutional portalPortal institucionalLiveNo arReact · Express · TypeScript · Azure App Service
NutriFoco

Practice management for nutritionists (patients, scheduling, records, meal plans, patient portal) rewritten from Express/MySQL/Vercel to Cloudflare Worker + D1 + R2.Gestão para nutricionistas (pacientes, agenda, prontuário, planos alimentares, portal do paciente) reescrita de Express/MySQL/Vercel para Cloudflare Worker + D1 + R2.

SaaS productProduto SaaSLiveNo arReact 19 · Vite · TypeScript · Cloudflare Workers
LegiRJ

Public PWA for searching Rio de Janeiro state laws, decrees and regulations, with thousands of generated static pages and its own collector for the state legislature's official records.Portal público (PWA) de consulta a leis, decretos, resoluções e portarias do RJ, com milhares de páginas estáticas geradas e coleta própria da fonte oficial (ALERJ).

Content & SEOConteúdo e SEOLiveNo arHTML · JavaScript · CSS · Python
AgenciAR — site institucional, SEO local e sistemas internos

The agency's own site with CRM, e-mail marketing, programmatic regional SEO (1,917-URL sitemap), WhatsApp/e-mail APIs and 3D elements.Site da própria agência com CRM, e-mail marketing, SEO regional programático (sitemap com 1.917 URLs), APIs de WhatsApp/e-mail e elementos 3D.

Campaign & event siteCampanha e eventoLiveNo arReact · TypeScript · Vite · Supabase
Pro Clubs America

Independent EA Sports FC Pro Clubs community PWA with a directory of clubs and players indexed from public data, rankings, transfers and friendlies, plus an iOS wrapper (PWABuilder) that builds unsigned on GitHub Actions.PWA comunitária independente com diretório de clubes e jogadores indexados de dados públicos, rankings, transferências e amistosos, e wrapper iOS (PWABuilder) que compila no GitHub Actions sem assinatura.

SaaS productProduto SaaSLiveNo arNext.js · TypeScript · Cloudflare Pages Functions · Supabase (PostgreSQL/PLpgSQL)
Calmô / Levemente

AI emotional-wellbeing app (check-ins, exercises, journal, guided tracks, SOS): a local-first PWA with an Android/iOS project via Capacitor (not published to the app stores as of 2026-09-23), payments and monitoring.App de bem-estar emocional com IA (check-in, exercícios, diário, trilhas, SOS), PWA local-first com projeto Android/iOS via Capacitor (não publicado nas lojas em 23/09/2026), pagamentos e monitoramento.

Mobile & PWA appApp mobile e PWALiveNo arReact · TypeScript · Vite · Capacitor (Android/iOS)
Rota do Vinho RJ

Guide to Rio de Janeiro state's wineries on its own domain, with winery sign-up and curation, a MySQL backend and an iOS project via Capacitor (not published).Guia das vinícolas do Estado do RJ em domínio próprio, com cadastro e curadoria de vinícolas, backend MySQL e projeto iOS via Capacitor (não publicado).

Institutional portalPortal institucionalLiveNo arNext.js 15 · React 19 · TypeScript · MySQL (Hostinger)
Zap Mágico

Local-first Electron desktop app for WhatsApp customer service with inbox, lightweight CRM, automations, AI replies and its own MCP server exposing 12 tools to Claude, ChatGPT, Cursor and n8n.App desktop (Electron) local-first de atendimento no WhatsApp com inbox, CRM leve, automações, respostas por IA e servidor MCP próprio com 12 ferramentas para Claude, ChatGPT, Cursor e n8n.

SaaS productProduto SaaSProduction · no public linkProdução · sem link públicoElectron · TypeScript · React · Baileys
Prêmio Top Hotel RJ

Official awards site with a 5-edition archive (2019–2026), Zoho Forms registration and a sponsor-facing landing page.Site oficial do prêmio com arquivo histórico de 5 edições (2019–2026), inscrição via Zoho Forms e landing comercial para patrocinadores.

Campaign & event siteCampanha e eventoLiveNo arReact · Vite · Tailwind (CDN) · react-router-dom (BrowserRouter)
Portal de Influenciadores HotéisRIO × ABIH-RJ

Directory of partner creators on Cloudflare Pages + D1 + R2 with fully server-side authorization, Turnstile and admin behind Cloudflare Access.Diretório de criadores parceiros em Cloudflare Pages + D1 + R2 com autorização 100% server-side, Turnstile e admin atrás de Cloudflare Access.

Internal toolFerramenta internaLiveNo arReact · TypeScript · Vite · Tailwind CSS
Operação editorial · portais ABIH-RJ e SINDHotéisRIO

AI-assisted curation and writing from monitored sources, with editorial review, for the associations' WordPress news sites, guided by Search Console and GA4 data.Curadoria e redação assistidas por IA a partir de fontes monitoradas, com revisão editorial, nos WordPress institucionais, orientadas por dados de Search Console e GA4.

Content & SEOConteúdo e SEOLiveNo arNode.js · JavaScript · PHP · @mozilla/readability
TrainerPro

SaaS for personal trainers with a PWA front end on Cloudflare Pages, Workers API, multi-tenant D1 data, a student mini-site and Android packaging (TWA).SaaS para personal trainers com front PWA em Cloudflare Pages, API em Workers, dados multi-tenant em D1, mini-site do aluno e empacotamento Android (TWA).

SaaS productProduto SaaSLiveNo arReact · Vite · TypeScript · Cloudflare Workers
Camada MCP do ecossistema HotéisRIO/ABIH-RJ

MCP servers on Cloudflare Workers that expose institutional data to AI assistants (Claude.ai and local agents) with OAuth 2.1/PKCE, quotas and an LGPD (privacy) sanitization gate.Servidores MCP em Cloudflare Workers que expõem dados institucionais a assistentes de IA (Claude.ai e agentes locais) com OAuth 2.1/PKCE, cotas e barreira de sanitização LGPD.

AI agent & automationAgente de IA e automaçãoProduction · no public linkProdução · sem link públicoTypeScript · JavaScript · Cloudflare Workers · OAuth 2.1
Portal institucional HotéisRIO

Official Next.js site with a full membership form (canvas signature), Zoho CRM/Forms integration and Google Ad Grants optimizations.Site oficial em Next.js com formulário completo de filiação (assinatura em canvas), integração com Zoho CRM/Forms e otimizações para Google Ad Grants.

started from a Google AI Studio templatenasceu de template do Google AI Studio
Institutional portalPortal institucionalLiveNo arNext.js · TypeScript · Tailwind CSS · Edge Runtime (Cloudflare next-on-pages)
Mega Fluxo de Agentes de Auditoria

Own agent-squad framework (14 auditors + a synthesis agent + a C-level board) that audits any repository across 6 pillars and produces an HTML board, with a desktop app.Framework próprio de squad de agentes (14 auditores + síntese + conselho C-level) que audita repositórios em 6 pilares e gera board HTML, com app desktop.

AI agent & automationAgente de IA e automaçãoProduction · no public linkProdução · sem link públicoHTML · Python · JavaScript · TypeScript
Brasil Pedidos

Multi-tenant restaurant SaaS with storefront, table POS, kitchen display, delivery, an iFood integration implemented (distributed-app OAuth + polling, pending partner certification), per-channel reports and PWA.SaaS multi-tenant para restaurantes com vitrine, PDV com mesa, KDS, entregas, integração iFood implementada (OAuth distribuído + polling, pendente de homologação), relatórios por canal e PWA.

case study ↑estudo de caso ↑started from a Google AI Studio templatenasceu de template do Google AI Studio
SaaS productProduto SaaSLiveNo arTypeScript · React · Vite · Firebase
Client · Consumer credit / consortiumCliente · Crédito e consórcio

Consortium platform: site, simulator, CRM and e-mail marketing.Plataforma de consórcio: site, simulador, CRM e e-mail marketing.

Client websiteSite de clienteLiveNo arReact · TypeScript · Vite · Tailwind CSS
Calendário de Eventos do Rio

Public events calendar for the city of Rio to support occupancy planning, with a Pages Functions API, D1 database, admin panel and a no-code update CLI.Calendário público de eventos da cidade do Rio para planejamento de ocupação, com API em Pages Functions, banco D1, painel admin e CLI para atualização sem código.

Institutional portalPortal institucionalLiveNo arReact · TypeScript · Vite · Cloudflare Pages
Portal de Fornecedores HotéisRIO

Supplier directory for the hospitality sector with AI search, profiles and case studies.Diretório de fornecedores do setor com busca por IA, perfis e página de cases.

started from a Google AI Studio templatenasceu de template do Google AI Studio
Institutional portalPortal institucionalLiveNo arReact · TypeScript · Vite · Gemini API (@google/genai)
23º Fórum de Segurança ACIR/HotéisRIO

Event landing pages, media kit and sponsorship sheets, rebuilt after an 11-AI-agent audit of the previous material.Landing pages, media kit e fichas de cota do fórum, reconstruídos a partir de auditoria por 11 agentes de IA do material anterior.

Campaign & event siteCampanha e eventoLiveNo arJavaScript · HTML · CSS · Python
Concurso de Decoração Natalina

Official contest platform: public gallery, judges' portal with criteria-based voting, real-time ranking and sponsor directory.Plataforma oficial do concurso: galeria pública, portal de jurados com votação por critérios, ranking em tempo real e diretório de patrocinadores.

Institutional portalPortal institucionalLiveNo arReact 19 · Vite 6 · TypeScript 5 · Tailwind CSS 4
Informativo / Portal Boletim HotéisRIO

Archive and portal of institutional newsletters since 2022.Arquivo e portal de boletins institucionais desde 2022.

Content & SEOConteúdo e SEOLiveNo arReact · Vite · JavaScript · axios
Demandas de Ordem Pública

System for logging and managing public-order issues (security, urban cleaning) reported by hotels, migrated from Firebase/Vercel to a single Cloudflare Worker with D1 and R2.Sistema de registro e gestão de demandas de ordem pública (segurança, limpeza urbana) reportadas por hotéis, migrado de Firebase/Vercel para um único Worker Cloudflare com D1 e R2.

Internal toolFerramenta internaProduction · no public linkProdução · sem link públicoReact · React Router · TypeScript · Firebase (Auth + Storage)
PROENH-RJ — capacitação jurídica para hotelaria

Institutional landing with an 11-edition hub (2023–2026), per-edition page generator, e-mail sequence, design system and automated QA.Landing institucional com hub de 11 edições (2023–2026), gerador de páginas por edição, sequência de e-mails, design system e QA automatizado.

Campaign & event siteCampanha e eventoLiveNo arHTML · JavaScript · Python (gerador) · Vercel
Press Center ABIH-RJ & HotéisRIO

News, press and sector-intelligence portal with AI (Gemini), on its own domain.Portal de notícias, imprensa e inteligência setorial com IA (Gemini), em domínio próprio.

started from a Google AI Studio templatenasceu de template do Google AI Studio
Content & SEOConteúdo e SEOLiveNo arReact · Vite · TypeScript · Firebase
Resiliência e Luz

Daily emotional-support app derived from the Levemente codebase, preserving 21 original reflection pieces.App de apoio emocional diário derivado da base do Levemente, preservando 21 pílulas de reflexão autorais.

Mobile & PWA appApp mobile e PWALiveNo arReact · TypeScript · Vite · Firebase
CONEX HotéisRIO

B2B service connecting event organizers, consulates and convention centers directly to member hotels' sales directors, generating group leads with no commission.Serviço B2B que conecta organizadores de eventos, consulados e centros de convenções aos diretores comerciais dos hotéis, gerando leads de grupos sem comissão.

started from a Google AI Studio templatenasceu de template do Google AI Studio
Institutional portalPortal institucionalLiveNo arReact 19 · TypeScript · React Router · Tailwind CSS 4
Gestão de Imóveis / Zyphez

Multi-tenant SaaS for real-estate agencies and rental management (listings, lead CRM, reports, public storefront) with PIX billing over WhatsApp.SaaS multi-tenant para imobiliárias e gestão de aluguel (imóveis, CRM de leads, relatórios, vitrine pública) com cobrança PIX via WhatsApp.

started from a Google AI Studio templatenasceu de template do Google AI Studio
SaaS productProduto SaaSLiveNo arReact · TypeScript · Vite · Prisma
Calendário de Eventos dos Municípios do RJ

Public aggregator of official event calendars from all 92 municipalities of Rio de Janeiro state, with a Python collection pipeline and a Cloudflare D1 database.Agregador público dos calendários oficiais de eventos dos 92 municípios fluminenses, com coleta em Python e banco Cloudflare D1.

Institutional portalPortal institucionalLiveNo arJavaScript · HTML · CSS · Python
Site institucional ABIH-RJ

Next.js (App Router) institutional site with member-acquisition pages, dynamic routes and code-generated sitemap/robots.Site institucional em Next.js (App Router) com páginas de prospecção de associados, rotas dinâmicas e sitemap/robots gerados por código.

Institutional portalPortal institucionalLiveNo arNext.js · TypeScript · Tailwind CSS · React Hook Form
Calendário e Planejador de Feriados

Public holidays site (national, state, municipal and international) with a D1-backed API and a deploy-free editing CLI.Site público de feriados nacionais, estaduais, municipais e internacionais com API sobre D1 e CLI de edição sem deploy.

Institutional portalPortal institucionalLiveNo arReact · TypeScript · Vite · Cloudflare Pages
Meu Hotel Online

Productized landing and direct-booking site templates for hotels and inns, with full Schema.org markup and provisioning scripts.Landing produtizada e templates de site com reserva direta para hotéis e pousadas, com Schema.org completo e scripts de provisionamento.

SaaS productProduto SaaSLiveNo arHTML · CSS · JavaScript · Next.js 14
Central de Comunicados HotéisRIO

Portal that reconciles internal notices sent via SharePoint, Outlook and Zoho/E-goi campaigns, with timeline, search and indicators.Portal que reconcilia comunicados internos enviados por SharePoint, Outlook e campanhas Zoho/E-goi, com linha do tempo, busca e indicadores.

Institutional portalPortal institucionalLiveNo arJavaScript · CSS · Python · HTML
Observatório Hoteleiro Rio

Monthly hotel-occupancy dashboard for the city of Rio with year-over-year comparison, fed by the monthly survey through SharePoint.Dashboard de ocupação hoteleira mensal da cidade do Rio com comparação ano a ano, alimentado pela pesquisa mensal via SharePoint.

started from a Google AI Studio templatenasceu de template do Google AI Studio
Data & analyticsDados e analyticsLiveNo arReact 19 · Vite · TypeScript · Recharts
XXIII Fórum de Meio Ambiente ACIR/HotéisRIO

Event site with registration, automatic e-mail, calendar integration and an admin panel with Excel export.Site do evento com inscrição, e-mail automático, integração de calendário e painel admin com exportação Excel.

Campaign & event siteCampanha e eventoLiveNo arNext.js · TypeScript · Firebase (Firestore + Auth) · Google APIs (googleapis)
Sistema de Divulgação de Fornecedores/Parceiros

Panel to register and promote sponsors, with an embeddable carousel, embed-code generator and renewal e-mails.Painel para cadastrar e divulgar patrocinadores, com carrossel embutível, gerador de embed e e-mail de renovação.

started from a Google AI Studio templatenasceu de template do Google AI Studio
Internal toolFerramenta internaLiveNo arTypeScript · React · Vite · Firebase (Auth+Firestore)
CLI Dashboard

Open-source desktop app (Python + CustomTkinter) to install, update, connect and audit local CLIs (Git, gcloud, Wrangler, Vercel, Supabase, Azure, AWS, Docker...).App desktop open source (Python + CustomTkinter) para instalar, atualizar, conectar e auditar CLIs locais (Git, gcloud, Wrangler, Vercel, Supabase, Azure, AWS, Docker...).

MCP & developer toolMCP e ferramenta devBeta / MVPBeta / MVPPython · CustomTkinter · PyInstaller · HTML
AI Policy Kit

SaaS of AI-usage policy templates for small businesses with 5 AI-generated tools, native to Cloudflare Workers + D1 + Workers AI.SaaS de modelos de política de uso de IA para pequenas empresas com 5 ferramentas geradas por IA, nativo em Cloudflare Workers + D1 + Workers AI.

SaaS productProduto SaaSBeta / MVPBeta / MVPHTML · JavaScript · CSS · Cloudflare Workers
Client · Imported-goods retailCliente · Varejo de importados

Online store for imported goods with WhatsApp checkout.Loja virtual de importados com checkout via WhatsApp.

E-commerceE-commerceLiveNo arJavaScript · Cloudflare Pages Functions · Cloudflare D1 · Cloudflare R2
Observatório de Ocupação do Interior

Public dashboard of hotel occupancy in inland Rio de Janeiro state by holiday and high season.Painel público de taxa de ocupação hoteleira do interior do RJ por feriado e alta temporada.

Data & analyticsDados e analyticsLiveNo arReact 19 · Vite · TypeScript · Recharts
Cursos IA Mágica

Portal and CMS for free AI courses, 100% on Cloudflare (Next.js + D1 + R2 + KV + Stream + Turnstile), with an agent showcase and prompt vault.Portal e CMS de cursos gratuitos de IA 100% Cloudflare (Next.js + D1 + R2 + KV + Stream + Turnstile), com vitrine de agentes e cofre de prompts.

EducationEducaçãoBeta / MVPBeta / MVPNext.js 15 · React 19 · TypeScript · Tailwind CSS
Campanhas sazonais HotéisRIO 2026

Institutional campaign microsites with hotel sign-up, approval panel, transactional e-mail and AI-assisted content.Microsites de campanhas institucionais com cadastro de hotéis, painel de aprovação, e-mail transacional e conteúdo assistido por IA.

Campaign & event siteCampanha e eventoLiveNo arNext.js · TypeScript · Tailwind · Firebase
PROCAP RJ — portal do programa de capacitação

Institutional site for the training program with an interactive municipality map and editions, plus a presentation microsite for the Teresópolis edition.Site institucional do programa com mapa interativo de municípios e edições, mais microsite de apresentação da edição Teresópolis.

started from a Google AI Studio templatenasceu de template do Google AI Studio
Institutional portalPortal institucionalLiveNo arNext.js · TypeScript · Tailwind · Leaflet/react-leaflet
Clippings HotéisRIO

Press-clipping viewer with automatic import from the clipping vendor's e-mails via Google Workspace CLI.Visualizador de clippings de imprensa com importação automática a partir de e-mails do fornecedor de clipping via Google Workspace CLI.

started from a Google AI Studio templatenasceu de template do Google AI Studio
Internal toolFerramenta internaLiveNo arReact · TypeScript · Vite · Gemini API
IA Mágica

Family of AI-assistant PWAs with per-profession prompt libraries (base, marketing, psychology and medicine), with Firebase authentication.Família de PWAs de assistente de IA com biblioteca de prompts por profissão (base, marketing, psicologia e medicina), com autenticação Firebase.

SaaS productProduto SaaSBeta / MVPBeta / MVPReact · TypeScript · Vite · PWA
Client · Pet retailCliente · Pet shop

Online store and website for a pet shop.Loja virtual e site para petshop.

Client websiteSite de clienteLiveNo arTypeScript · React · Vite · @google/genai (Gemini)
SocialOS

SaaS with CRM, post planner, reports and AI tools for social media managers.SaaS com CRM, planejador de posts, relatórios e ferramentas de IA para social media.

started from a Google AI Studio templatenasceu de template do Google AI Studio
SaaS productProduto SaaSBeta / MVPBeta / MVPNext.js · TypeScript · Firebase (App Hosting) · Gemini API
LEGAL TURIS RJ — base de legislação hoteleira

Lookup of federal, state and municipal legislation applicable to Rio hotels, with 240 catalogued documents and filters.Consulta de legislação federal, estadual e municipal aplicável à hotelaria do RJ, com 240 documentos catalogados e filtros.

Content & SEOConteúdo e SEOLiveNo arHTML · CSS · JavaScript · React
Client · FitnessCliente · Fitness

Workout PWA with an AI coach for personal trainers.PWA de treinos com AI Coach para personal trainers.

started from a Google AI Studio templatenasceu de template do Google AI Studio
Mobile & PWA appApp mobile e PWALiveNo arReact · TypeScript · Vite · Google Gemini
Hotéis Rock in Rio 2026

Page with an interactive (Leaflet) map of the official Rock in Rio 2026 partner hotels, with automated tests.Página com mapa interativo (Leaflet) dos hotéis parceiros oficiais do Rock in Rio 2026, com testes automatizados.

Campaign & event siteCampanha e eventoOfflineFora do arReact · TypeScript · Vite · Leaflet
Portal ESG HotéisRIO / ABIH-RJ

ESG tool for hotels with AI-assisted analysis.Ferramenta ESG para hotéis com análise assistida por IA.

Institutional portalPortal institucionalLiveNo arNext.js · TypeScript · Google Gemini API · recharts
Portal de Parceiros

Tool for promotional formats with image/PDF export and a partner manual.Ferramenta de peças e formatos de divulgação com exportação de imagem/PDF e manual de parceiros.

Internal toolFerramenta internaLiveNo arReact · TypeScript · Vite · html2canvas
HotéisRIO QA Agent

Playwright QA agent covering several of the associations' products and producing reproducible evidence (screenshots, JSON) for bug triage.Agente de QA com Playwright que cobre vários produtos das entidades e gera evidências reproduzíveis (screenshots, JSON) para triagem de bugs.

Internal toolFerramenta internaLiveNo arPlaywright · Node.js · Vercel (apresentacao) · Playwright (via hoteisrio-qa-agent)
Hub de Marketing IA HotéisRIO

Generates multichannel content (LinkedIn, Instagram, press release, e-mail, WhatsApp, official letter) and campaigns from an uploaded file.Gera conteúdo multicanal (LinkedIn, Instagram, press release, e-mail, WhatsApp, carta oficial) e campanhas a partir de um arquivo.

started from a Google AI Studio templatenasceu de template do Google AI Studio
Internal toolFerramenta internaBeta / MVPBeta / MVPReact · TypeScript · Vite · Google Gemini API (@google/genai)
Client · Affiliate marketingCliente · Afiliados

Offers landing page and link-in-bio for an affiliate partner.Landing de ofertas e link-in-bio para parceiro de afiliados.

Client websiteSite de clienteLiveNo arHTML · CSS · JavaScript · Node.js
Briefing AgenciAR

Multi-step intake form with automatic Gemini analysis, PDF export and Firebase persistence.Formulário multi-etapas com análise automática por Gemini, PDF e persistência Firebase.

started from a Google AI Studio templatenasceu de template do Google AI Studio
Internal toolFerramenta internaLiveNo arTypeScript · React · Vite · Firebase
Relatório de Atividades Biênio 2023–2025

Interactive portal with statistics of the two-year activities, presented at the general assembly.Portal interativo com estatísticas das atividades do biênio, apresentado em assembleia.

started from a Google AI Studio templatenasceu de template do Google AI Studio
Institutional portalPortal institucionalBeta / MVPBeta / MVPReact · TypeScript · Vite · Recharts
Opensquad

Framework of agent squads with personas, YAML pipelines and persistent memory for QA, engineering and marketing.Framework de squads de agentes com persona, pipeline em YAML e memória persistente para QA, engenharia e marketing.

AI agent & automationAgente de IA e automaçãoBeta / MVPBeta / MVPMarkdown/YAML (definição de agentes) · HTML (site de documentação)
Gerador de Newsletter para Parceiros

Generates HTML partner newsletters via Gemini, with preview and export.Gera newsletters HTML para parceiros via Gemini, com preview e exportação.

started from a Google AI Studio templatenasceu de template do Google AI Studio
Internal toolFerramenta internaOfflineFora do arReact · TypeScript · Vite · Gemini API
AgenciAR Carousel Studio / Content OS

HTML/CSS carousel generator with a visual editor, Gemini content and an editorial hub.Gerador de carrosséis HTML/CSS com editor visual, conteúdo por Gemini e central editorial.

Content & SEOConteúdo e SEOBeta / MVPBeta / MVPReact 19 · Vite · Express (server-api.js) · Gemini API
Guia do Réveillon nos Hotéis do Rio

Web guide to New Year's Eve programs and packages at Rio hotels with dedicated SEO; the 2027 edition expands statewide.Guia web de programação e pacotes de Réveillon nos hotéis, com SEO dedicado; edição 2027 ampliada ao Estado.

Campaign & event siteCampanha e eventoBeta / MVPBeta / MVPReact · TypeScript · Vite · React 19
Exportador de sessões de agentes

Open-source tools that export and browse local coding-agent sessions as Markdown/JSON with automatic redaction of sensitive data; evolved into a multi-agent exporter.Ferramentas open source que exportam e navegam sessões locais de agentes de código em Markdown/JSON com redação automática de dados sensíveis; evoluiu para exportador multi-agente.

MCP & developer toolMCP e ferramenta devLiveNo arPython · HTML · CSS · JavaScript
Rota do Queijo RJ

Directory of Rio de Janeiro cheese makers with public sign-up, gallery, admin approval and a page per producer.Diretório de queijarias do RJ com cadastro público, galeria, aprovação por painel admin e página por queijaria.

Institutional portalPortal institucionalLiveNo arNext.js 15 · TypeScript · Firebase (Firestore + Storage) · Tailwind
Agente Pessoal de IA

Landing page with e-mail capture (Brevo) and a download portal for a prompt kit to build personal agents.Landing com captura de e-mail (Brevo) e portal de download de kit de prompts para criar agentes pessoais.

Campaign & event siteCampanha e eventoLiveNo arHTML/CSS/JS vanilla · Node.js serverless · Brevo API v3 · Vercel
GuiaHoteis

Hotel guide built with Next.js.Guia de hotéis em Next.js.

Content & SEOConteúdo e SEOLiveNo arNext.js · TypeScript · Tailwind CSS · lucide-react
Cotação de Reservas HotéisRIO

Reservation-quote landing page with a Zoho form and a webhook Worker for the quote flow.Landing de captação de cotações de reserva com formulário Zoho e Worker de webhook para o fluxo de cotação.

Campaign & event siteCampanha e eventoOfflineFora do arHTML · CSS · Zoho Forms · Vercel
Guia de Cidades ABIH-RJ

SEO city guide for Rio de Janeiro state in Next.js.Guia SEO de cidades do Estado do RJ em Next.js.

Content & SEOConteúdo e SEOLiveNo arNext.js · TypeScript · Tailwind CSS · Google Gemini API
Client · Perfume retailCliente · Perfumaria

E-commerce MVP for a perfume store.E-commerce MVP para perfumaria.

E-commerceE-commerceBeta / MVPBeta / MVPNext.js · TypeScript · Tailwind
Portal Placas RJ

Catalog of legally required signs for hotel front desks, with search and PDF/image export.Catálogo de placas e avisos legalmente obrigatórios para recepções de hotéis, com busca e exportação PDF/imagem.

started from a Google AI Studio templatenasceu de template do Google AI Studio
Internal toolFerramenta internaBeta / MVPBeta / MVPVite · React · TypeScript · jsPDF
GSC Reporter

Agent that every 3 days pulls Search Console data for all domains, builds an HTML dashboard and e-mails it with SEO suggestions.Agente que a cada 3 dias coleta Search Console de todos os domínios, gera dashboard HTML e envia por e-mail com sugestões de SEO.

AI agent & automationAgente de IA e automaçãoProduction · no public linkProdução · sem link públicoPython · Google Search Console API · gcloud auth · Brevo (email)
Client · Industrial sealingCliente · Indústria de vedação

Landing page with an AI technical assistant for a sealing-products manufacturer.Landing com assistente técnico de IA para indústria de vedação.

started from a Google AI Studio templatenasceu de template do Google AI Studio
Client websiteSite de clienteOfflineFora do arReact · TypeScript · Vite · Gemini API
SkillSpector Agent

Agent squad with a 5-phase pipeline that scans AI-agent skills for vulnerabilities before installation (inspired by NVIDIA SkillSpector).Squad de agentes com pipeline de 5 fases para varrer skills de agentes de IA em busca de vulnerabilidades antes da instalação (inspirado no NVIDIA SkillSpector).

Security & infraSegurança e infraBeta / MVPBeta / MVPHTML · JavaScript · Vercel
PM Commander

Claude Code orchestrator routing product-management requests to 54 skills (methodology adapted from a third party), with a reports console.Orquestrador para Claude Code que roteia pedidos de produto a 54 skills (metodologia adaptada de terceiro), com console de relatórios.

AI agent & automationAgente de IA e automaçãoBeta / MVPBeta / MVPClaude Code (subagent + skills) · HTML · Python · Vercel
Chrome MCP Bridge

Chrome MV3 extension + Node server exposing the user's authenticated browser as an MCP server for AI agents.Extensão Chrome MV3 + servidor Node que expõe o navegador autenticado como servidor MCP para agentes de IA.

MCP & developer toolMCP e ferramenta devBeta / MVPBeta / MVPJavaScript · Node.js · Chrome Extension Manifest V3 · MCP

10 groups10 grupos

Skills

Competências

Levels are set against the evidence in the catalogue. Items marked declared come from his earlier résumé and are not yet backed by code in the sources.

Os níveis foram definidos a partir das evidências do catálogo. Itens marcados como declarados vêm do currículo anterior e ainda não têm código que os comprove nas fontes.

AI-Augmented Delivery & Agents

Entrega assistida por IA e agentes

  • AI-augmented / agentic software delivery (Claude Code, Codex) with human architecture, review, QA and operationsDesenvolvimento assistido por agentes de IA (Claude Code, Codex), com arquitetura, revisão, QA e operação humanas advancedavançado
  • LLM API integration (Gemini, OpenAI, Azure OpenAI, OpenRouter, Workers AI)Integração com APIs de LLM (Gemini, OpenAI, Azure OpenAI, OpenRouter, Workers AI) advancedavançado
  • MCP servers (Model Context Protocol), including OAuth 2.1/PKCE in 2 serversServidores MCP (Model Context Protocol), com OAuth 2.1/PKCE em 2 servidores advancedavançado
  • Multi-agent orchestration (subagents, agent squads)Orquestração multi-agente (subagentes, squads de agentes) upper-intermediateintermediário-avançado
  • LLM observability (Langfuse)Observabilidade de LLM (Langfuse) intermediateintermediário
  • Prompt engineering and prompt librariesEngenharia de prompts e bibliotecas de prompts upper-intermediateintermediário-avançado

Languages

Linguagens

  • TypeScriptTypeScript advancedavançado
  • JavaScript / Node.jsJavaScript / Node.js advancedavançado
  • HTML / CSSHTML / CSS advancedavançado
  • SQL (PostgreSQL, MySQL, SQLite/D1)SQL (PostgreSQL, MySQL, SQLite/D1) advancedavançado
  • Python (data pipelines, collectors, automation scripts)Python (pipelines de dados, coletores, scripts de automação) intermediateintermediário
  • PHPPHP intermediateintermediário

Front End & Clients

Front-end e clientes

  • React, ViteReact, Vite advancedavançado
  • Next.jsNext.js advancedavançado
  • Tailwind CSSTailwind CSS advancedavançado
  • Data visualization (Recharts, Leaflet)Visualização de dados (Recharts, Leaflet) advancedavançado
  • PWA / service workers / local-firstPWA / service worker / local-first advancedavançado
  • Hybrid mobile packaging (Capacitor, Android TWA); Google Play publishing (1 public app)Empacotamento mobile híbrido (Capacitor, Android TWA); publicação na Google Play (1 app público) intermediateintermediário
  • Electron desktop apps; Chrome extensions (Manifest V3)Apps desktop em Electron; extensões Chrome (Manifest V3) intermediateintermediário

Back End & APIs

Back-end e APIs

  • REST APIs (Hono, Express, PHP)APIs REST (Hono, Express, PHP) advancedavançado
  • Serverless functions (Cloudflare Pages Functions, Vercel Functions)Funções serverless (Cloudflare Pages Functions, Vercel Functions) advancedavançado
  • Authentication: OAuth 2.1/PKCE in MCP servers; Firebase and Supabase Auth elsewhereAutenticação: OAuth 2.1/PKCE nos servidores MCP; Firebase e Supabase Auth nos demais upper-intermediateintermediário-avançado
  • Server-side RBAC and authorizationRBAC e autorização no servidor upper-intermediateintermediário-avançado
  • Prisma ORMPrisma ORM intermediateintermediário
  • Multi-tenant SaaS; webhooks and idempotent integrationsSaaS multi-tenant; webhooks e integrações idempotentes intermediateintermediário

Cloud, Edge & DevOps

Cloud, edge e DevOps

  • Cloudflare Pages, Workers, D1, R2, KV, Hyperdrive, Access, TurnstileCloudflare Pages, Workers, D1, R2, KV, Hyperdrive, Access, Turnstile advancedavançado
  • Platform migrations (Vercel/Firebase → Cloudflare) in 10+ production productsMigração de plataformas (Vercel/Firebase → Cloudflare) em mais de 10 produtos em produção advancedavançado
  • Vercel, Firebase, SupabaseVercel, Firebase, Supabase advancedavançado
  • Microsoft Azure (App Service, PostgreSQL, Blob Storage, Azure OpenAI)Microsoft Azure (App Service, PostgreSQL, Blob Storage, Azure OpenAI) intermediateintermediário
  • CI/CD with GitHub ActionsCI/CD com GitHub Actions upper-intermediateintermediário-avançado
  • Docker and self-hostingDocker e self-hosting intermediateintermediário
  • DNS, TLS, e-mail authentication (SPF/DKIM/DMARC), CDN and cache debuggingDNS, TLS, autenticação de e-mail (SPF/DKIM/DMARC), depuração de CDN e cache upper-intermediateintermediário-avançado
  • WordPress hosting operations (SSH, WP-CLI)Operação de WordPress em hospedagem (SSH, WP-CLI) advancedavançado
  • Corporate IT: infrastructure, networks, backup and recovery, security, governanceTI corporativa: infraestrutura, redes, backup e recuperação, segurança, governança declareddeclarado

Data & Analytics

Dados e analytics

  • Data pipelines / ETL (Python, CSV, spreadsheets, SharePoint)Pipelines de dados / ETL (Python, CSV, planilhas, SharePoint) advancedavançado
  • Dashboards and public data productsDashboards e produtos de dados públicos advancedavançado
  • Web analytics (GA4, Search Console)Web analytics (GA4, Search Console) intermediateintermediário
  • Public datasets integration (CNAE, Cadastur, state legislature records)Integração de bases públicas (CNAE, Cadastur, registros da ALERJ) intermediateintermediário

Quality & Security

Qualidade e segurança

  • Automated QA (Playwright, Vitest)QA automatizado (Playwright, Vitest) advancedavançado
  • Application security review (dependency audits, headers, scanners), finding and fixing real flawsRevisão de segurança de aplicações (auditoria de dependências, headers, scanners), com falhas reais identificadas e corrigidas intermediateintermediário
  • Privacy by design: PII sanitization and LGPD-oriented audit trailsPrivacidade desde a concepção: sanitização de dados pessoais e trilhas de auditoria orientadas à LGPD intermediateintermediário

Payments & Business Integrations

Pagamentos e integrações de negócio

  • Payments and subscriptions (Stripe, Mercado Pago)Pagamentos e assinaturas (Stripe, Mercado Pago) upper-intermediateintermediário-avançado
  • CRM and marketing automation APIs (Zoho CRM, Zoho Campaigns, Zoho Forms, HubSpot)APIs de CRM e automação de marketing (Zoho CRM, Zoho Campaigns, Zoho Forms, HubSpot) advancedavançado
  • Transactional and marketing e-mail (Brevo, Resend)E-mail transacional e de marketing (Brevo, Resend) advancedavançado
  • Microsoft 365 / SharePoint and Google Workspace APIsAPIs do Microsoft 365 / SharePoint e do Google Workspace intermediateintermediário
  • WhatsApp automation with anti-spam guardrails; push (OneSignal); monitoring (Sentry, PostHog)Automação de WhatsApp com guardrails anti-spam; push (OneSignal); monitoramento (Sentry, PostHog) intermediateintermediário
  • Marketplace integration (iFood OAuth + polling, pending homologation)Integração com marketplace (iFood com OAuth + polling, pendente de homologação) intermediateintermediário

Marketing & Growth

Marketing e growth

  • Technical and programmatic SEO (sitemaps, Schema.org, JSON-LD)SEO técnico e programático (sitemaps, Schema.org, JSON-LD) advancedavançado
  • Landing pages, funnels and campaign sitesLanding pages, funis e sites de campanha advancedavançado
  • Content operations and WordPressOperação de conteúdo e WordPress advancedavançado
  • Institutional campaigns and eventsCampanhas e eventos institucionais advancedavançado
  • Social media managementGestão de redes sociais declareddeclarado
  • Partnerships with public tourism bodies (Riotur, Setur)Parcerias com órgãos de turismo (Riotur, Setur) declareddeclarado
  • Paid media (Google Ads, Meta Ads)Tráfego pago (Google Ads, Meta Ads) declareddeclarado
  • Copywriting and marketing designCopywriting e design para marketing declareddeclarado

Product, Projects & Operations

Produto, projetos e operações

  • Product discovery and rapid prototypingDescoberta de produto e prototipagem rápida upper-intermediateintermediário-avançado
  • Portfolio governance and version consolidationGovernança de portfólio e consolidação de versões advancedavançado
  • Spec-driven development (spec-kit)Desenvolvimento orientado a especificação (spec-kit) intermediateintermediário
  • Project management and production planning & control (PCP)Gestão de projetos e PCP declareddeclarado
  • Quality management (ISO 9001, ISO/IEC 17025)Gestão da qualidade (ISO 9001, ISO/IEC 17025) declareddeclarado
  • ERP (Alterdata) and SharePoint/Office 365 rollout and trainingImplantação e treinamento de ERP (Alterdata) e SharePoint/Office 365 declareddeclarado
  • Agency leadership, client portfolio and financeLiderança de agência, carteira de clientes e finanças declareddeclarado

2014 → 2026

Career timeline

Linha do tempo da carreira

In order. Each step notes whether it is verified in code and live checks or declared from his earlier résumé.

Em ordem. Cada etapa indica se está verificada em código e checagens ao vivo ou se é declarada a partir do currículo anterior.

  1. 012014–20182014–2018

    TECMETAL · Project Management, Production Planning (PCP) & IT

    TECMETAL · Gestão de Projetos, PCP e TI

    Opened, tracked and closed all company projects; ran production planning from proposal to satisfaction survey; supported ISO 9001 and ISO/IEC 17025 certification; rolled out the Alterdata ERP and a SharePoint/Office 365 intranet; owned all IT.

    Abriu, acompanhou e encerrou todos os projetos da empresa; conduziu o PCP da proposta à pesquisa de satisfação; atuou nas certificações ISO 9001 e ISO/IEC 17025; implantou o ERP Alterdata e a intranet SharePoint/Office 365; respondeu por toda a TI.

    declareddeclarado
  2. 0220192019

    Two concurrent tracks begin

    Começam duas frentes simultâneas

    Marketing & IT Coordinator at HotéisRIO / SindHotéisRIO and ABIH-RJ (employment) and Owner & CEO of AgenciAR Marketing Digital (own business).

    Coordenador de Marketing e TI na HotéisRIO / SindHotéisRIO e ABIH-RJ (emprego) e Proprietário e CEO da AgenciAR Marketing Digital (empresa própria).

    declared + public signalsdeclarado + indício público
  3. 032019–20242019–2024

    Marketing and operations for the associations

    Marketing e operações nas entidades

    Social media, websites, landing pages and SEO for both entities; campaigns with Riotur and Setur; monthly member events and trade-show booths; occupancy surveys; the legacy member app, cloud CRM and hospitality talent bank.

    Redes sociais, sites, landing pages e SEO das duas entidades; campanhas com Riotur e Setur; eventos mensais em hotéis e estandes em feiras; pesquisas de ocupação; app do associado legado, CRM em nuvem e banco de talentos da hotelaria.

    declareddeclarado
  4. 042024–20262024–2026

    Technologist degree in Marketing

    Tecnólogo em Marketing

    Centro Universitário IBMR (Ânima Educação), online, completed.

    Centro Universitário IBMR (Ânima Educação), EAD, concluído.

    declareddeclarado
  5. 05Nov 2025nov/2025

    AI-augmented software delivery starts

    Começa a entrega de software assistida por IA

    First Member Portal and CRM prototypes for the associations. The account goes from 2 commits in total (2019) to 141 in the month.

    Primeiros protótipos do Portal do Associado e do CRM das entidades. A conta passa de 2 commits no total (2019) para 141 no mês.

    verifiedverificado
  6. 06Dec 2025dez/2025

    Independent product line opens under AgenciAR

    Abre a linha de produtos próprios sob a AgenciAR

    First own-product commit on Dec 22, 2025. For the associations: the Christmas decoration contest platform and a Christmas occupancy dashboard.

    Primeiro commit de produto próprio em 22/12/2025. Para as entidades: a plataforma do Concurso de Decoração Natalina e o dashboard de ocupação do Natal.

    verifiedverificado
  7. 07May 2026mai/2026

    Own SaaS products launch

    Nascem os SaaS próprios

    Clinicafy, LegiRJ, Calmô, TrainerPro and the NutriFoco line start; Brasil Pedidos begins as a multi-tenant restaurant system.

    Começam Clinicafy, LegiRJ, Calmô, TrainerPro e a linha NutriFoco; o Brasil Pedidos nasce como sistema multi-tenant para restaurantes.

    verifiedverificado
  8. 08Jul 2026jul/2026

    Job board rebuilt on Azure; Zap Mágico

    Banco de Talentos reescrito em Azure; Zap Mágico

    Azure rewrite with PostgreSQL, private Blob Storage and server-side RBAC; the local-first WhatsApp service app; 1,200 authored commits in the month.

    Reescrita em Azure com PostgreSQL, Blob privado e RBAC no servidor; o app local-first de atendimento no WhatsApp; 1.200 commits autorais no mês.

    verifiedverificado
  9. 09Aug 2026ago/2026

    MCP layer and public data products

    Camada MCP e produtos de dados públicos

    Three MCP servers with OAuth 2.1 for the associations, the 92-municipality events calendar (launched Aug 27) and NutriFoco rewritten on Cloudflare Workers. Peak month: 1,249 commits.

    Três servidores MCP com OAuth 2.1 para as entidades, o calendário de eventos dos 92 municípios (lançado em 27/08) e o NutriFoco reescrito em Cloudflare Workers. Mês de pico: 1.249 commits.

    verifiedverificado
  10. 10Sep 2026set/2026

    Migrations and hardening

    Migrações e reforço

    CRM cut over to Cloudflare Pages + D1 (Sep 1); Brasil Pedidos moved to D1 and Clinicafy reached 451/451 tests (Sep 13); 73 products verified live with URL and authorship (Sep 23).

    CRM migrado para Cloudflare Pages + D1 (01/09); Brasil Pedidos levado ao D1 e Clinicafy com 451/451 testes (13/09); 73 produtos verificados no ar, com URL e autoria (23/09).

    verifiedverificado

Rio de Janeiro · UTC−3 · remoteremoto

Résumés and contact

Currículos e contato

Based in Rio de Janeiro, with full overlap with US Eastern business hours.

Baseado no Rio de Janeiro, com sobreposição total com o horário comercial da costa leste dos EUA.

Résumés

Currículos

  • Master résuméCurrículo mestre

    Technical Product Builder · AI-Augmented Full-Stack (TypeScript, Cloudflare) · 70+ Products in ProductionProduct Builder técnico · Full-Stack com IA (TypeScript, Cloudflare) · 70+ produtos em produção

  • Technical Product & Project ManagerGerente de Produto Técnico e de Projetos

    Technical Product & Project Manager · AI-Native Builder · APIs, Integrations & Payments · 70+ Products in ProductionGerente de Produto Técnico e de Projetos · Builder com IA · APIs, integrações e pagamentos · 70+ produtos em produção

  • Full-Stack & AI Automation EngineerEngenheiro Full-Stack e de Automação com IA

    Full-Stack & AI Automation Engineer · TypeScript, React, Cloudflare Workers/D1 · MCP Servers & LLM IntegrationsEngenheiro Full-Stack e de Automação com IA · TypeScript, React, Cloudflare Workers/D1 · Servidores MCP e LLMs

  • Growth Engineer / MarTechGrowth Engineer / MarTech

    Growth Engineer / Marketing Technologist · CRM, SEO & Automation · Full-Stack TypeScript + AI Agents · Hospitality & TourismGrowth Engineer / Especialista em MarTech · CRM, SEO e automação · Full-Stack TypeScript e agentes de IA · Hotelaria e turismo

By sector and role · based on remote openings, Sep 2026Por setor e tipo de vaga · com base em vagas remotas abertas em set/2026

  • AI Automation & MCP Integrations — AI Solutions / Forward Deployed EngineerAutomação com IA e integrações MCP — Engenheiro de Soluções de IA / Forward Deployed

    AI Solutions & Integrations Engineer · MCP Servers with OAuth 2.1/PKCE in Production · LLM, CRM & WhatsApp Integrations on Cloudflare WorkersEspecialista em Soluções de IA e Integrações · Servidores MCP com OAuth 2.1/PKCE em produção · LLMs, CRM e WhatsApp em Cloudflare Workers

  • Martech & CRM — CRM Operations, E-mail Governance & RevOps AutomationMartech e CRM — operação de CRM, governança de e-mail e automação de RevOps

    CRM & Marketing Operations · Zoho CRM/Campaigns + Cloudflare D1 · E-mail Governance, Deliverability (SPF/DKIM/DMARC) & AI-Assisted AutomationCRM e Marketing Ops · Zoho CRM/Campaigns + Cloudflare D1 · Governança de e-mail, entregabilidade (SPF/DKIM/DMARC) e automação com IA

  • Developer Platforms (Supabase, Resend, Cloudflare ecosystem) — Support, Customer Success & Solutions EngineeringPlataformas para desenvolvedores (Supabase, Resend, ecossistema Cloudflare) — suporte técnico, customer success e solutions engineering

    Developer Platform Support & Solutions Engineer · Cloudflare Workers/Pages/D1, Supabase, Vercel, Firebase · 10+ Production MigrationsDeveloper Platform Support & Solutions Engineer · Cloudflare Workers/Pages/D1, Supabase, Vercel, Firebase · 10+ Production Migrations

  • Hospitality & Travel Tech — Data, Implementation & IntegrationsHotelaria e travel tech — dados, implantação e integrações

    Hospitality Tech · 7 Years at Rio de Janeiro's Hotel Associations · Occupancy & Events Data, Member Platforms, CRM and Hotel WebsitesHospitality Tech · 7 Years at Rio de Janeiro's Hotel Associations · Occupancy & Events Data, Member Platforms, CRM and Hotel Websites

  • SaaS Implementation & Technical Account Management — Onboarding, Integrations & MigrationsImplantação de SaaS e gestão técnica de contas — onboarding, integrações e migrações

    Implementation & Technical Account Manager · SaaS Onboarding, Integrations and Platform Migrations · 12 Years Across Projects, Operations & ITEspecialista em Implantação e Gestão Técnica de Contas · Onboarding, integrações e migrações de plataforma · 12 anos em projetos, operações e TI

  • AI-Native Product Manager — Conversational AI, LLM Features & Data/Content PlatformsProduct Manager de IA — IA conversacional, funcionalidades com LLM e plataformas de dados e conteúdo

    AI Product Manager (Builder) · Conversational AI, LLM Features & MCP · 0→1 Products Prototyped with AI and Shipped to ProductionProduct Manager de IA (builder) · IA conversacional, LLMs e MCP · Produtos 0→1 da prototipagem com IA à produção

  • Healthtech SaaS — Technical Product & ImplementationHealthtech SaaS — produto técnico e implantação

    Healthtech SaaS Builder · Clinic Practice Management with 451/451 Tests, 8-Role RBAC & Audit Trail · Android App on Google PlayHealthtech SaaS · Gestão de clínicas com 451/451 testes, RBAC de 8 papéis e trilha de auditoria · App Android na Google Play

Contact

Contato

E-mailcspgabriel@outlook.com.br
PhoneTelefone+55 21 99316-5605

Education

Formação

Technologist Degree in Marketing (Tecnólogo, 2-year undergraduate degree) — Centro Universitário IBMR (Ânima Educação) · 2024–2026 · Online · Completed

Tecnólogo em Marketing — Centro Universitário IBMR (Ânima Educação) · 2024–2026 · EAD · Concluído

Languages

Idiomas

Portuguese native · English advanced · Spanish basic

Português nativo · Inglês avançado · Espanhol básico