
A JWeb é uma agência de soluções digitais, onde sou o único programador. O trabalho tem três partes: o website institucional, a app iOS e um portal onde os clientes acompanham a relação com a agência.
O portal de clientes corre sobre PostgreSQL com Drizzle ORM e está sincronizado com o Odoo: os tickets do helpdesk, as faturas, as subscrições, a área comercial e os projetos de cada cliente vêm diretamente do ERP da agência. Os clientes não se registam sozinhos. Recebem um convite por e-mail e, no primeiro acesso, configuram a conta e a autenticação de dois fatores com uma app autenticadora no telemóvel, tudo sobre Better Auth. A partir daí, as novidades chegam por notificação push e por e-mail.
O website foi feito com Next.js 16, React 19 e TypeScript, totalmente localizado em português, inglês e espanhol, com pontuação 90+ no Lighthouse. O conteúdo é gerido por um CMS headless Keystatic com blog em Markdoc, os formulários são validados com React Hook Form, Zod e reCAPTCHA v3, e os e-mails transacionais são enviados com o Resend. A analítica corre no Google Tag Manager sob o GDPR Consent Mode v2.
A app iOS, construída com Capacitor, regista os tokens push no backend e suporta universal links e App Tracking Transparency. Os envios passam por uma plataforma de notificações própria: os tokens dos dispositivos ficam em PostgreSQL, uma consola de administração compõe e envia campanhas, e um emissor APNs entrega em lotes com rate limiting via Redis e limpeza automática de tokens inválidos. Tudo é estilizado com Tailwind CSS 4 e componentes acessíveis do shadcn/ui.