A infraestrutura de bilhética construída para a próxima geração de experiências ao vivo.
O Pylon é uma plataforma white-label de bilhética para eventos, desenhada para velocidade, fiabilidade e total controlo de marca. Da bilheteira ao scan do código de barras, cada ponto de contacto é teu.
Visão Geral
Uma plataforma. Todas as marcas.
O Pylon é um motor de bilhética multi-tenant que alimenta plataformas de eventos com marca própria. Cada deployment opera com a sua identidade — eventslisbon.pt, houseparties.com, zoolisboa2025.pt — enquanto partilha a mesma infraestrutura robusta por baixo.
Os organizadores têm um dashboard admin completo. O staff tem uma app de check-in que funciona offline. Os clientes têm uma loja online que parece nativa da marca em que confiam. Ninguém vê "Pylon" — e é esse o objetivo.
Para Organizadores
Cria eventos em minutos. Gere sessões, tipos de bilhetes, escalões de preço e colaboradores num único dashboard. Emite bilhetes de cortesia, acompanha vendas e monitoriza taxas de check-in em tempo real.
Para Staff
Uma app de check-in dedicada, construída como Progressive Web App. Funciona offline com credenciais pré-descarregadas. Leitura de códigos de barras por câmara com validação sub-segundo. Feedback de áudio e háptico. Sem app store.
Para Clientes
Uma loja online com marca própria, com carrinho, checkout e bilhetes digitais. Múltiplos métodos de pagamento incluindo cartões, MB Way e Multibanco. Bilhetes entregues instantaneamente com QR codes. Transfere bilhetes para amigos com um toque.
Capacidades
Tudo o que precisas. Nada que não precises.
Gestão de Eventos
Ciclo de vida completo do evento desde rascunho até conclusão. Eventos recorrentes com suporte RRULE. Eventos multi-sessão com tracking independente de capacidade. Acesso de colaboradores com papéis de Owner, Editor e Viewer.
Emissão de Bilhetes
Geração automática de bilhetes no cumprimento de encomendas. Códigos de barras únicos com validação criptográfica (HMAC-SHA256). Credenciais QR code com suporte de regeneração. Emissão direta para cortesias, imprensa, staff e vendas manuais.
Sistema de Check-in
Leitura de códigos de barras e QR por câmara ou entrada manual. Políticas de re-entrada (única, ilimitada ou limitada). Arquitetura offline-first com cache de credenciais em IndexedDB e sincronização em background.
Processamento de Pagamentos
Integração Stripe com cartões, Apple Pay, Google Pay e 3D Secure. Métodos de pagamento portugueses: MB Way e transferências Multibanco. Sistema de crédito de loja com gestão completa do ciclo de vida.
Gestão de Encomendas
Ciclo de vida completo de encomendas com detalhe por linha. Reembolsos parciais e totais. Cancelamento com tracking de motivo. Captura de informação do comprador. Suporte multi-moeda com value objects de Money.
Controlo de Inventário
Locking distribuído baseado em Redis para prevenir overselling. Reservas com tempo limitado e expiração automática. Tracking de disponibilidade em tempo real por sessão e tipo de bilhete. Persistência de carrinho entre sessões.
Administração de Bilhetes
Pesquisa global de bilhetes por número ou código de barras. Listas de bilhetes por sessão com estatísticas. Ações de anulação e reembolso com audit trail. Regeneração de credenciais. Gestão de participantes.
Gestão de Espaços
Entidades de espaço standalone com capacidade, coordenadas geográficas e informação de contacto. Reutilizáveis entre eventos e sessões. Metadata de morada e localização para páginas orientadas ao cliente.
Multi-Tenancy
Isolamento completo de dados entre tenants. Domínios e branding personalizados (logo, cores, fontes, CSS customizado). Configurações ao nível do tenant para fuso horário, moeda e idioma.
Autenticação e Autorização
OAuth 2.0 / OpenID Connect via OpenIddict. Tokens JWT com permissões embebidas. Cinco níveis de papéis desde Cliente até Platform Admin. Sistema de permissões granular.
Integração de AI Agent
IA conversacional para suporte ao cliente e assistência de reservas. Persistência de histórico de conversas com tracking de invocação de ferramentas. Tipos de agentes extensíveis com contexto personalizado.
Observabilidade
Distributed tracing com OpenTelemetry em todos os módulos. Exportação de métricas compatível com Prometheus. Logging estruturado via Serilog com enriquecimento de tenant e utilizador.
Arquitetura
Bem construído. Feito para durar.
O Pylon é um monólito modular .NET 10 — o meio-termo pragmático entre um monólito emaranhado e microserviços prematuros. Cada módulo de domínio (Events, Orders, Tickets, Payments, Reservations) é estruturado independentemente com o seu próprio contexto de base de dados, camada de domínio, camada de aplicação e contratos.
A comunicação entre módulos acontece através de integration services e domain events, não acesso direto à base de dados. Isto significa que qualquer módulo pode ser extraído para um serviço standalone quando a escala o exigir — sem reescrever lógica de negócio.
Camada API
Endpoints REST • OpenAPI 3.1 • Rotas versionadas
Camada de Aplicação
Commands • Queries • Handlers • Validators
Camada de Domínio
Entities • Value Objects • Domain Events • Aggregates
PostgreSQL
Redis
Stripe
Wolverine
Frontend (Next.js 16 • Turborepo)
Dashboard Admin
Loja Online
Check-in PWA
Backend
.NET 10 com C# 13. Clean Architecture com Domain-Driven Design. Padrão CQRS com MediatR. FluentValidation em todos os commands. Padrão Result para tratamento de erros — sem exceções para lógica de negócio. PostgreSQL com Entity Framework Core. Isolamento multi-schema por tenant. Wolverine message bus para processamento assíncrono e orquestração de sagas. Redis para locks distribuídos e caching.
Frontend
Next.js 16 com React 19. Monorepo Turborepo com 13 packages partilhados e 3 aplicações (Admin, Loja Online, Check-in PWA). TypeScript strict mode end-to-end. API client gerado com Orval com React Query hooks e validadores Zod — zero chamadas API escritas à mão. Tailwind CSS v4 com sistema de design tokens. 40+ componentes UI construídos com primitivas Radix.
API
API RESTful com especificação OpenAPI 3.1. Documentação auto-gerada com Scalar UI. Endpoints versionados (v1). Acesso baseado em papéis (público, autenticado, organizador, admin, platform admin). Respostas paginadas com ordenação e pesquisa full-text.
Segurança
Autenticação OAuth 2.0 / OpenID Connect. JWT com papéis e permissões embebidas. Validação criptográfica de bilhetes (HMAC-SHA256). Verificação de assinatura de webhooks Stripe. Processamento idempotente de webhooks. Isolamento de dados por tenant ao nível da base de dados. Tratamento de dados consciente do RGPD.
Hosting
Deployado em infraestrutura cloud compatível com AWS. Base de dados PostgreSQL gerida. Redis para estado distribuído. Container-ready com suporte Docker. CI/CD via GitHub Actions. Frontend deployado no Vercel com edge caching.
Roadmap
Onde estamos. Para onde vamos.
O Pylon é lançado em fases. Cada fase é desenhada para desbloquear valor real para organizadores e os seus clientes. Não construímos funcionalidades isoladas — cada release é validado contra cenários reais.
Fundação Backend (Fase 1-6)
Backend completo com seis módulos de domínio: Events, Reservations, Orders, Payments, Tickets e Tenants. Ciclo de vida completo de eventos, gestão de inventário com locking distribuído, processamento de pagamentos Stripe com MB Way e Multibanco, emissão de bilhetes com credenciais QR e isolamento multi-tenant. Mais de 80 endpoints REST com documentação OpenAPI.
Infraestrutura Frontend (Fase 7-10)
Monorepo Turborepo com 13 packages partilhados. Biblioteca de componentes com 40+ componentes UI. Sistema de design tokens para theming white-label. API client gerado com Orval com type safety completa. Sistema de auth com OAuth 2.0 e JWT. App shell com composição de providers.
Dashboard Admin (Fase 11)
Dashboard completo para organizadores com CRUD de eventos, gestão de sessões, configuração de tipos de bilhetes, gestão de espaços, tracking de encomendas com estatísticas, administração de bilhetes com pesquisa global, gestão de colaboradores, séries de eventos com regras de recorrência e configurações de branding do tenant.
Check-in PWA (Fase 12)
Progressive Web App offline-first para staff de venue. Leitura de códigos de barras por câmara com fallback de entrada manual. Cache de credenciais em IndexedDB para validação offline. Fila de sincronização em background com exponential backoff. Wake lock, feedback háptico e pistas de áudio.
Emissão Direta de Bilhetes (Fase 13)
Emissão de bilhetes iniciada pelo admin, sem passar pelo checkout. Usado para bilhetes de cortesia, passes de imprensa, credenciais de staff, alocações VIP e transações manuais de ponto de venda. Cumprimento instantâneo com geração de QR code. Audit trail completo.
Atlas — Aplicação POS Kiosk
Ponto de venda em tablet operado por staff para vendas walk-in. Interface single-page otimizada para velocidade: catálogo de eventos à esquerda, formulário de venda à direita. Tempo de interação alvo inferior a 30 segundos. Recolha de dados compatível com RGPD.
Meridian — Loja Online Self-Service
Loja online com marca própria para compra de bilhetes online. Navegação de eventos com media rico. Carrinho de compras com suporte multi-evento. Checkout com Stripe Elements. Entrega instantânea de bilhetes com QR codes. Design responsivo mobile-first. Suporte multi-idioma.
Prism — Preços Dinâmicos e Promoções
Escalões de preço baseados em tempo (early bird, regular, last-minute). Códigos promocionais com uso único e múltiplo. Preços de pacote para bundles multi-evento. Descontos de volume. Campanhas flash sale. Códigos de tracking de afiliados.
Compass — Analytics e Relatórios
Dashboard de vendas com tracking de receita e taxas de sell-through. Monitorização de check-in em tempo real. Comparação de performance entre eventos. Relatórios exportáveis (CSV, PDF). Analytics de utilização de capacidade. Insights de comportamento do cliente.
Horizon — Lugares Marcados
Mapa de lugares interativo com hierarquia de zona, secção, fila e lugar. Seleção visual de lugares baseada em SVG durante o checkout. Tracking de disponibilidade de lugares por sessão. Lugares de acessibilidade com regras de lugar de acompanhante.
Nexus — Funcionalidades de Marketplace
Revenda de bilhetes fan-to-fan com limites de preço controlados pelo organizador. Sistema de lista de espera para eventos esgotados. Sala de espera virtual para momentos de alta procura. Medidas anti-scalping com rotação de credenciais.
Forge — Page Builder
Construtor visual drag-and-drop de landing pages de eventos. Componentes pré-construídos (hero, seletor de bilhetes, countdown, lineup, FAQ). Sistema de templates com herança de marca. Widget de checkout embebido.
Pulse — Notificações
Email transacional para confirmações de encomenda e entrega de bilhetes. Templates white-label com branding do tenant. Lembretes e atualizações de eventos. Triggados por domain events. Push notifications (futuro).
Bridge — Integrações
Webhooks outbound para sistemas parceiros. Sincronização com CRM (Salesforce, HubSpot). Integração de plataforma de email (Mailchimp, SendGrid). Widget de checkout embebível. Conector Zapier.
Aplicações Móveis
Apps nativas iOS e Android. Geração de passes Apple Wallet e Google Wallet. Push notifications para lembretes de eventos. Autenticação biométrica para acesso a bilhetes.
Credenciais Avançadas
Credenciais TOTP rotativas para segurança reforçada. Entrada NFC para venues com infraestrutura tap-to-enter. QR codes dinâmicos com janelas de expiração.
Funcionalidades Enterprise
Hierarquia de contas multi-localização para cadeias de venues. Gestão de sub-promotores com partilha de receita. Relatórios consolidados entre marcas. Delegação avançada de permissões.
Expansão Internacional
Checkout multi-moeda com conversão automática. Métodos de pagamento específicos por região (iDEAL, Bancontact, SEPA). Opções de residência de dados para compliance. Localização para 10+ idiomas.
Engenharia
Como construímos.
O Pylon é construído por engenheiros que se preocupam com o craft. Cada linha de código é escrita com intenção. Não lançamos funcionalidades — lançamos confiança.
Result Pattern, Não Exceções
A lógica de negócio nunca faz throw. Cada operação retorna um Result tipado com sucesso ou falha explícitos. Os códigos de erro são específicos do domínio e acionáveis. Isto elimina falhas silenciosas e torna cada caminho de código testável.
Structured Logging como First-Class Citizen
Cada handler regista eventos de negócio ao nível apropriado. Information para operações críticas, Warning para recusas de negócio, Error para falhas de infraestrutura. Todos os logs usam parâmetros estruturados — nunca interpolação de strings.
Desenvolvimento Orientado por Métricas
Métricas de negócio (encomendas criadas, receita por bilhete, taxa de check-in) e métricas técnicas (duração de chamadas de integração, falhas de validação) são instrumentadas desde o dia um. OpenTelemetry alimenta distributed tracing em cada fronteira de módulo.
Type Safety End-to-End
A spec OpenAPI é a single source of truth. O Orval gera hooks TypeScript com integração React Query e validadores Zod. Uma alteração num DTO do backend quebra o build do frontend em segundos. Zero chamadas API escritas à mão.
Domain-Driven Design
Cada módulo é dono do seu modelo de domínio, do seu contexto de base de dados e das suas regras de negócio. A comunicação entre módulos acontece através de integration services com contratos explícitos. Value objects impõem invariantes. Aggregate roots protegem consistência.
Offline-First Onde Importa
A app de check-in não assume conectividade. As credenciais são pré-descarregadas para IndexedDB. A validação acontece localmente com verificação criptográfica. Os check-ins entram numa fila de sincronização e reconciliam quando a conectividade regressa.
Progressive Enhancement
A plataforma começa simples e cresce com a procura. Um monólito modular hoje pode tornar-se serviços distribuídos amanhã. Arquitetura message-driven significa que qualquer módulo pode ser extraído sem reescrever lógica de negócio.
Code Style como Comunicação
Limite de 120 caracteres por linha. Inline até ao limite, depois wrap inteligente. Sem verbosidade de um-parâmetro-por-linha. Tipos explícitos para clareza. Comentários apenas quando acrescentam contexto. O codebase lê-se como uma conversa entre profissionais.
Tech Stack
As ferramentas por trás da plataforma.
Backend
- .NET 10 / C# 13
- PostgreSQL
- Redis
- Entity Framework Core
- Wolverine(message bus)
- MediatR(CQRS)
- FluentValidation
- OpenIddict(OAuth 2.0)
- Serilog(logging)
- OpenTelemetry(observability)
Frontend
- Next.js 16
- React 19
- TypeScript 5.5
- Turborepo
- Tailwind CSS v4
- Radix UI(primitives)
- TanStack React Table
- React Query v5
- React Hook Form
- Zod(validation)
- Zustand(state)
- Orval(API generation)
Check-in PWA
- Serwist(service worker)
- Dexie(IndexedDB)
- react-zxing(barcode scanning)
- Wake Lock API
- Web Audio API
Payments
- Stripe(cards, Apple Pay, Google Pay)
- MB Way
- Multibanco
Infrastructure
- AWS-compatible cloud
- Docker containers
- GitHub Actions(CI/CD)
- Vercel(frontend hosting)
- Scalar(API documentation)
Quality
- Vitest(testing)
- ESLint(linting)
- Prettier(formatting)
- Central Package Management