edsonfrancisco.site
Bilingual, dark personal page that sends each visitor to the portfolio, the CV or a meeting.
- Period
- 2026
- Status
- In production
- Role
- Author (product, design and code)
Problem
Partners, clients and developers arrived through different links and found different pages. There was no short entry point saying who Edson is and where to go next.
Solution
A single Next.js 16 page, dark by default, in PT and EN, with profile, availability, cards for portfolio, CV and scheduling, current focus and videos. It was built in six documented sprints, with AI agents working on separate branches.
Technical decisions
01
shadcn/ui-compatible tokens
Colours are semantic tokens named the way shadcn/ui expects, so new components drop in without remapping styles. It is recorded in an ADR.
02
Dark only in v1, with a path to light mode
Shipping only the dark theme cut design work; a CSS variant already in place lets light mode be added without a refactor.
03
Self-hosted fonts
Geist is served by the site itself through next/font/local: no Google Fonts request and no layout shift on load.
Images
01 / 02 — Dark home page with name, title, PT/EN selector and cards for portfolio, CV and meeting
Technologies
- Next.js
- React
- TypeScript
- Tailwind CSS
Verifiable results
- documented sprints
- 6
