Interactive portfolio
The projects on this page, turned into dashboards you explore in the browser, with nothing to install.
Web and interface · JavaScript · In production
The problem
Almost nobody clones a repository to judge whether work is any good: they click a link and decide in fifteen seconds. A portfolio that requires installing Python has already lost its reader.
What it does
- Brings the published work into a single app; most of it is served as interactive dashboards with real charts, not screenshots.
- A custom inline SVG icon system that inherits each card’s accent colour and renders identically on any system.
- Bilingual, with language switching across the whole app.
- Static-data architecture: pre-aggregated JSON served directly, no backend and no cost.
What was decided while building it
- The homepage figures are counted, not typed
- The homepage advertised seven live demos when there were already fourteen: five projects had gone from linking a repository to having their own dashboard and nobody updated the number. They are now counted off the list itself, and what counts as a demo is defined: something you can use, not a link to code.
- Static data: the dashboard reads files, not a database
- Each project publishes its results pre-aggregated and the portfolio serves them as they are. No server, no cost and nothing to fall over: a portfolio that depends on a running database is a portfolio that one day does not open, and that day is usually the interview.
- Heavy routes load when they are visited
- The chart dashboards are the expensive part of the bundle and only load when you enter them. Someone opening the homepage does not pay for fourteen dashboards they may never look at, and the first screen — the one that decides whether there is a second — appears straight away.
- The simulator is embedded rather than rewritten
- The original is already a complete dependency-free page, and rebuilding it would have meant maintaining two versions of the same calculation with the risk that they stopped agreeing. It is embedded and its height measured live, because otherwise a thousand pixels of dead space sit underneath it.
How far it goes
- No dashboard queries live data: everything is files each project publishes when it runs. What you see is the last generated result, not this moment's.
- Not every card has a full technical page; some are a link to the repository and nothing more.
- The public repository count is written by hand and dated, because it cannot be queried from the browser. It may have fallen behind.
- The data behind the dashboards is synthetic or public, depending on the project. There is no client information in any of them.
Built with
- React 19
- Vite
- Recharts
- Firebase