Case Study
The official website for Sport Clube Borbense — the football club of Borba, est. 1945 — with fixtures, squad profiles, news and club history, fully managed by club staff through Notion.

The problem
Sport Clube Borbense had no real home on the web. Fixtures, results and club news lived scattered across social media posts — fine for reaching followers, but invisible to anyone searching for the club, and impossible to browse as a record of the season.
The harder constraint was maintenance. A local club has no developer on staff, so any solution that required touching code — or paying for a hosted CMS — was dead on arrival. Whatever I built had to be updatable by non-technical club members, for free.
Key decisions
Club staff already organize things in tables and documents, so I made Notion the content backend. Fixtures, players, news and sponsors are Notion databases; editing the site is as easy as editing a table row. No CMS hosting, no admin panel to learn, no cost.
The site fetches from the Notion API on the server and caches aggressively, so visitors get fast static-feeling pages while the club gets content that updates without a deploy.
The club runs nine age groups, from Seniores down to Pré-Petizes. Fixtures and squads are organized per age group with tabs and position filters, so the site works for the entire club, not just the senior team.
Local sponsorship is how the club survives, so sponsors get their own tiered section and a pitch for local businesses — the site doubles as a fundraising tool.
Stack
Next.js App Router and TypeScript on Vercel, with the Notion API as a zero-cost headless CMS.
The result
The club now has a professional web presence it maintains itself. Staff edit Notion tables; the site stays current — fixtures and results for all nine age groups, a senior squad of 25 with profiles and position filters, news, history and a sponsor showcase. I keep managing the club's digital presence, but the content runs without me.
In the wild


Contact
Have a project in mind, or just want to say hi? My inbox is always open — I usually reply within a day.
Open to internships & freelance