Back to portfolio →

Personal project · web product

Eventech

A calendar of computing events in Brazil, with deadlines, interest-based recommendations and travel planning.

Eventech home page with the week's deadlines and events.
Home page · deadlines and events of the week. View full-size image ↗Open Eventech ↗

Problem: scattered information and missed deadlines

Dates, calls for papers, registration tiers and programs are scattered across each event's website. For students and researchers, missing a deadline means waiting for the next edition.

The application organizes events by series and edition, highlights the week's deadlines and filters by period, free admission, online format and open calls. Signed-in users get recommendations and build a personal calendar, exportable as iCal.

Eventech event page with dates, venue, price and next deadline.
Event page · deadlines, prices and registration. View full-size image ↗Open Eventech ↗

Architecture: Next.js, FastAPI and a typed client

The monorepo contains a Next.js interface with React and TypeScript, a FastAPI API with SQLAlchemy and Alembic migrations, and a TypeScript client generated from the API's OpenAPI schema. CI checks that the client is up to date, keeping both sides aligned.

The database is PostgreSQL with PostGIS for geographic queries and pgvector for similarity. Jobs use an outbox queue in the database itself, without a separate broker.

Data: LLM with human moderation

Ingestion uses Gemini to extract dates, deadlines and prices from event websites. Extractions do not go straight to the public: they enter a moderation queue, and model quality was evaluated against a manually curated dataset.

Open data supports travel planning, such as ANAC direct flights, IBGE municipalities and geographic information from OpenStreetMap and Wikidata.

Eventech trip planning section with distance, ANAC-based flight route, buses and lodging.
Trip planning from the user's home city. View full-size image ↗Open Eventech ↗

Recommendations, alerts and privacy

Recommendations combine embeddings, city and interests, diversifying results and explaining each suggestion. Email alerts cover deadlines and new editions, with LGPD-compliant consent and one-click unsubscribe.

The interface works as a PWA with offline use and a MapLibre map. Usage metrics are first-party and cookie-free.

Eventech search with filters for period, format, price and event type.
Explore · filters and monthly calendar. View full-size image ↗Open Eventech ↗

Building with AI agents

I built Eventech on my own, with Claude Code as my implementation partner. Before writing code, we produced a set of research reports: market and event sources, product and UX, recommendations, architecture, travel integrations and LGPD. Decisions were recorded in a dedicated document, and the work was split into milestones with plans and delivery criteria.

For each milestone, I defined scope and priorities and made the architecture and cost decisions; the agent implemented, and I reviewed before moving on. A local CI script runs lint, migrations, tests, API client checks and the build before any deployment.

Infrastructure and limitations

The interface runs on Vercel and the API on Railway, with infrastructure as code, scheduled ingestion and notification jobs, and daily database backups with a tested restore. API and frontend errors are monitored in Sentry, configured for errors only, without session replay or browsing data. An automatic cap cuts cloud spending if the budget is exceeded. Tests use pytest and Playwright.

The product launched recently and has no user base yet. Some public sources are unstable, and coverage depends on curation and moderation of extractions. The source code is private.

Get in touch →