Skip to content

lpazzim.com

2025 — 2026 — Portfolio / Living CV
  • React
  • TypeScript
  • Vite
  • Tailwind CSS
  • Framer Motion
  • TanStack Query
  • i18next
  • Notion API
  • Vercel
Role
Design & Engineering
Company
Personal project
Period
2025 — 2026

This site: a bilingual, editorial-style portfolio that doubles as a living CV, with a blog powered by Notion as a headless CMS.

Context

I wanted a portfolio that shows how I work rather than just listing technologies: typed content, motion with intent, real data and a publishing flow I actually enjoy using.

What I did

  • Designed the editorial visual language: oversized serif type, restrained palette, scroll-driven reveals.
  • Built a typed, bilingual content model so every case study and role is written once per language and checked by TypeScript.
  • Integrated Notion as a headless CMS through Vercel Serverless Functions, keeping the API token out of the client bundle.
  • Set up EN / PT-BR internationalization with persisted language preference.

Key decisions

  1. 01

    Notion as the CMS

    Writing happens where I already take notes. A serverless function queries the database, filters by a Published flag and returns plain JSON, cached at the edge with stale-while-revalidate.

  2. 02

    Content as typed data, not markup

    Case studies live in TypeScript objects instead of JSX. Missing translations become compile errors, and the same data can later generate a PDF résumé.

  3. 03

    Generated covers over stock photos

    Each case gets a generative line-art cover seeded by its id and tinted by its own accent color, so the archive stays visually consistent without stock imagery.

Results

languages, fully translated
2
image weight after asset cleanup
-95%
secrets shipped to the browser
0

Takeaway

“A portfolio is a product with one very specific user: the person deciding whether to talk to you. Every section should answer a question they have.”
Next Project

Treeunfe

View Case Study
Back to Archive
© 2026 Lucas Pazzim