Interactive guide to European citizenship
Six interactive flows that show readers whether they may qualify for a European citizenship
Context
The world desk of Folha de S.Paulo, Brazil’s largest newspaper, gets the same reader question over and over: whether they can get a European passport. It depends on the country and on your family, and the rules change often. So Folha published a tool instead of another explainer. The reader picks a country (Germany, Spain, France, Italy, Portugal or the United Kingdom), answers a short flow of questions, and gets a verdict on whether they appear to meet the current legal requirements. It went live on the site on September 14, 2025.
My role
I designed and built it. Sole author of the repo: the question flows for all six countries, the reader-facing copy, the interface, and the CMS embed that puts it inside a Folha article page.
The tech is deliberately boring. Six self-contained single-page flows in plain HTML, CSS and JavaScript. No framework, no build step, no dependencies. Each page is one file you can open in a browser and read top to bottom. It has to survive inside a news site’s CMS for years. So there is nothing to upgrade and nothing that breaks when a build tool changes version.
- 01 Reader inside a Folha article page
- 02 Country picker six self-contained flows
- DE
- ES
- FR
- IT
- PT
- UK
- 03 Question flow yes or no questions reduced from the current nationality law, one at a time
- 04 Verdict appears to meet, or not, the requirements
- what to do next
- restart on another country
The hard part
Turning nationality law into questions a person can answer was harder than any of the code.
Each country has its own routes: descent, residence, marriage, language requirements, each with its own exceptions. I read the current requirements for all six and reduced each one to a handful of yes/no questions a reader gets through in a few minutes. Every branch that got collapsed had to stay accurate for the reader who lands on it. The output is worded as “you appear to meet the requirements”, never as legal advice, and every verdict ends with what to actually do next.
The second problem was keeping six variants from drifting apart. They share one markup pattern, so adding a country means duplicating the page and swapping the copy, the rules and the colors. One flow gets a fix, the others get the same fix by hand. Not elegant, but with six files and no dependencies I could diff two countries and see exactly where they differed.
Then there were the publishing constraints. The flows are embedded in article pages through server-side includes. A small script reports the frame height back to the parent page, so the article resizes as the reader advances. Typography comes from the paper’s font CDN so the tool matches the article around it, and the layout is mobile-first.


Outcome
Folha launched it publicly in the Mundo section on September 14, 2025, with its own launch article. It had strong audience performance; the published page is linked above.