Mar-Alto

Plataforma de bilhética, reservas de vouchers e sistema de pontos para o Mar-Alto (Círculo Cultural da Nazaré), associação sem fins lucrativos e com estatuto de utilidade pública.

Cliente
Círculo Cultural da Nazaré
Ano
2025
Papel
Diretor
Stack
Next.js 16, Firebase, TypeScript, Vercel
Mar-Alto

O problema

O Mar-Alto (Círculo Cultural da Nazaré) é uma associação cultural da Nazaré que até então não tinha um website próprio, apesar de ter uma forte comunicação e presença online via redes sociais.

Fui convidado para pertencer à direção desta associação em 2022, estando atualmente (no momento da escrita - Ago 2026) no meu segundo mandato enquanto membro da Direção.

Como forma de poder contribuir com o meu conhecimento e experiência, decidi criar primeiro uma mini app de votação pública para o baile de máscaras, onde até então só o júri podia votar nos concursos.

Posteriormente e de forma a que a associação tivesse um sítio oficial online, criei um site institucional não só para marketing bem como para auxiliar na gestão de eventos próprios.

A solução

Hoje o site do Mar-Alto é uma plataforma completa que integra páginas dedicadas ao Carnaval, listagem de eventos, sistema de bilhética e controlo de acessos via PDF e QR Code, compra de vouchers para os bailes de Carnaval, e backoffice administrativo para gestão de conteúdo.

Esta solução permite complementar a oferta física de bilhetes e vouchers com pagamentos online (via MBWay e Multibanco), bem como permitir aos utilizadores participar em votações públicas (concursos de máscaras; prémios Mar-Alto).

Na dashboard de administração é também possível notificar os utilizadores com notificações push e email de modo a divulgar eventos.

Stack e decisões

Sendo uma associação cultural com estatuto de utilidade pública, não existe fins lucrativos. Todas as decisões de stack e arquitetura foram feitas de modo a permitir o uso de ferramentas com planos gratuitos generosos, havendo recurso a planos pagos apenas quando estritamente necessário.

O site do Mar-Alto utiliza Next.js 16 (App Router) com TypeScript tanto no frontend como no backend — as API routes correm no servidor e usam firebase-admin para aceder ao Firestore (base de dados) e à autenticação. O design é responsivo e o website é também uma PWA permitindo instalação e uso nativo em dispositivos móveis.

A hospedagem é feita em Vercel com integração direta via GitHub, para facilitar a manutenção e não haver necessidade de gerir um servidor manualmente.

Desafios de engenharia

De modo a podermos oferecer pagamentos online, houve a necessidade de integrar com a IfThenPay, um gateway de pagamento que oferece documentação pública mas não tem ambiente de sandbox para testes. De modo a testar o fluxo completo de pagamento antes do lançamento, construí um gateway de pagamento local (mock) de modo a simular localmente as chamadas entre serviços. Posteriormente, testei o fluxo real em produção com dinheiro do meu próprio bolso de modo a garantir antes da abertura ao público que a emissão, pagamento e validação dos bilhetes funcionava sem falhas.

Outro desafio aconteceu durante a votação dos Prémios Mar-Alto, onde registámos um pico de tráfego que comprometeu o envio de emails de confirmação. O cliente SMTP nativo de email tinha um limite diário de envio que atingimos sem dar por isso; foram os próprios utilizadores que reportaram não ter recebido o email. Troquei o envio para o Resend em poucas horas e reenviei os emails em falta, sem que a votação chegasse a parar.

Projeto parecido em mente?

Fala comigo