A Tech Agenda é um projeto open source que centraliza eventos de tecnologia que estão acontecendo ou prestes a acontecer — para você não perder mais aquela inscrição que queria fazer. A ideia nasceu da frustração de não encontrar um lugar ativo que reunisse essas informações: os que existiam estavam descontinuados.
Os eventos são organizados pelas áreas:
- 💻 #DEV — Desenvolvimento de software
- ⚙️ #DEVOPS — DevOps, engenharia de sistemas e infra
- 📦 #PRODUCT — Criação de produtos tech
- 🎨 #DESIGN — Design de produtos tech
- 👥 #MGMT — Gerenciamento de times tech
- Listagem e busca de eventos por nome, cidade, tags, modalidade (online/presencial) e disponibilidade
- Página de detalhe de cada evento, com local no mapa e Call for Papers (CFP) quando houver
- Login social (OAuth) e perfil do usuário
- Confirmação de presença em eventos ("vou participar")
- Páginas de gestão para criar e administrar eventos
| Camada | Tecnologia |
|---|---|
| Backend | Go 1.25, Echo, Uber fx (DI), Cobra (CLI) |
| Frontend | React 18 + TypeScript, renderizado via SSR com go-react-ssr, Tailwind, PrimeReact, Leaflet (mapas) |
| Banco | PostgreSQL com GORM e migrations via goose |
| Auth | OAuth via goth, sessões em cookie e JWT (ED25519) |
A UI não é uma SPA separada: o servidor Go renderiza o React e devolve HTML. Os tipos consumidos pelo frontend são gerados a partir das structs Go.
Pré-requisitos: Go 1.25+ e Docker (para o Postgres). O frontend precisa de Node.
# 1. Suba o Postgres
docker-compose up -d postgres
# 2. Instale as dependências da UI
cd ui && npm install && cd ..
# 3. Configure o ambiente (ajuste conforme necessário)
cp env.example .env.local
# 4. Instale as ferramentas auxiliares (goose, go-enum)
make install-deps
# 5. Rode as migrations
make migrate-up
# 6. Suba a aplicação (http://localhost:8000)
make runComandos úteis:
make new-migration migration=nome_da_migration # cria uma migration
make migrate-status # status das migrations
make key-gen # gera par de chaves ED25519 para o JWT
go test ./... # roda os testes
golangci-lint run # lintcmd/ Entrypoints da CLI (run, migrator, key-gen) — Cobra
lib/ Infra compartilhada: config, database, server (Echo), ssr, session, logger
pkg/ Módulos de domínio (event, user, venue, tag, cfp, attendee, oauth, ...)
migrations/ Migrations goose (em Go)
ui/ Frontend React/TypeScript (pages, components, organisms, molecules)
Cada módulo em pkg/ é um módulo fx (fx.go) com
suas camadas (model, service, router). Para entender a arquitetura em detalhe
— em especial o contrato Go↔TypeScript do SSR — veja o CLAUDE.md.
A proposta é ser open source e todo mundo é super bem-vindo a colaborar. Para contribuir:
- Faça um fork e crie uma branch a partir da
main. - Garanta que
go build ./...ego test ./...passam (toda mudança de código deve vir com teste cobrindo, ao menos de forma unitária). - Abra um Pull Request descrevendo a mudança.
MIT © Marco Ollivier