Article 001
Hello world: how I built this site
I built the first version of this site back in 2019 with WordPress, and since then it's evolved quite a bit: from WordPress to React and Remix, and now React Router.
How it all started#
In 2019 I decided to create my first personal website. I didn’t have anything particularly complex in mind: I simply wanted a place to showcase my CV online. It wasn’t yet the time to present projects or build a technical portfolio, but rather to have a space that represented me.
I’ve always been strongly drawn to fantasy and cyberpunk, and more broadly to everything that blends future and imagination. Movies like Back to the Future, The Matrix, and Ready Player One had a huge impact on my creative vision, as did cyberpunk works such as Alita and Ghost in the Shell. Video games that marked my growth — Chrono Trigger, Final Fantasy VII, and World of Warcraft — also contributed to shaping my imagination.
Other influences joined them over time. Stranger Things, in particular, fascinates me because of an idea that I now recognise strongly in the way I’m building this portfolio: an apparently ordinary place can conceal another world, close to our own yet completely different. Hawkins and the Upside Down almost occupy the same space, but crossing the right boundary is enough for everything to change. It’s a concept that now reappears in the portals, Easter eggs and different layers of reality I’m introducing into the 3D city.
For that first version, however, I didn’t want to overdo it. The only aesthetic and technical detail that had really captured my attention was parallax scrolling. I was fascinated by the idea of giving movement and depth to a simple presentation site, and in a sense, that became the creative spark: everything else on the site would grow around that effect.

The first iteration#
The first version of my site was built with WordPress. It was the natural choice: I had already used it in other personal projects and, not having yet decided whether to turn the site into a real blog, it seemed like a sensible and above all future-proof solution. It gave me the flexibility to start simple, but also the possibility to expand easily in the future.
Beyond the basic structure, the part I enjoyed the most was building a small internal API that displayed fun facts about technology and computing, based on the timeline of pioneers in the field. Every time the site loaded, a random curiosity would appear in the intro, with a temporal detail calculated relative to today. One of these, for example, told the story of Tommy Flowers developing a system of redundant vacuum tubes, making early computers more reliable. It’s an idea that still intrigues me today: one day I’d love to build a public API and share it with all the curious minds out there.
On the aesthetic side, I was fascinated by the particles.js library, which I used on the homepage. Those moving particles gave the page visual breathing space and, at the same time, reflected something about me: my fascination with everything that can ultimately be reduced to 0 and 1, and with the electronic and computing world that has always captivated me.

The look of that first version still lives on in the site’s legacy edition: legacy.angelo-dagostino.com.
The leap to modern stacks#
Over time, I realized that my first WordPress version had become my personal monolith. Just like at work, where we are moving from a massive custom PHP platform to containerized microservices, in my personal space I also needed something more flexible and modern.
The spark came while browsing GitHub, where I stumbled upon the portfolio of Hamish Williams, which became a major source of inspiration, and Wawa Sensei, which opened up a whole new world of possibilities. I couldn’t remain tied to a development concept that by then felt limiting, both personally and professionally.

The first real migration was mental: de-PHP-izing myself. I started studying the principles of React, understanding the logic of components, and from there moved to Remix, the same framework Hamish’s project had evolved into.
I took the opportunity to learn new technologies:
- Tailwind CSS, after years of pure CSS and Bootstrap
- React and Three.js for 3D
- Remix, as a full-stack framework
- Storybook, for building and testing UI components
- Prisma, as an ORM for the database
What makes me proud of this project is my ability to take inspiration from different sources and rework them into something unique and personal. A bit like Blizzard with Warcraft: Orcs & Humans, which started from the inspiration of Dune II but turned into something completely new. My approach is similar: I don’t invent from scratch, but I recombine, synthesize, and bring everything to a level that feels mine.
Not all smooth sailing#
The most complicated part of this journey was undoubtedly managing the entire development process. Hamish’s original project was based on React 18 and Remix v2, but in the meantime the framework evolved into React Router v8 (official post) and React itself moved to version 19. Migrating was no trivial step: moving everything forward meant facing many bumps along the way, each requiring time and patience to resolve.
There were moments of frustration, especially when I decided to push beyond the original implementation. Beyond Hamish’s already brilliant work, I wanted to take the site to another level by adding a true 3D Experience. The ambitious project by Wawa Sensei, with his animated avatar in React Three Fiber, intrigued me too much: I absolutely wanted to try to integrate something similar.
Then there were the practical issues, like the ScrollControls component of the @react-three/drei package. I ran into a bug that forced me to dive into the code and even propose a small contribution on the package’s official page. It wasn’t easy, but it was also an opportunity to give something back to the community.
Another big challenge was moving from the MDX article system (as in the original project) to a database ORM approach, while also considering multilingual support (Italian and English). It’s a path I’d like to explore further in the future, maybe integrating an intelligent automatic translation system to help cover languages I don’t know.
Looking back, and forward#
Looking back, this experience taught me that patience and perseverance always pay off when you want to achieve concrete results. Every problem solved, every bug fixed, and every migration completed was a small victory that, over time, built my personal and professional growth.
What I like most about the current version is the freedom: I can write and manage the entire blog workflow directly from the site, without relying on an external CMS. I built a tailor-made system around my own needs, and that's what makes it unique. With WordPress, I was used to looking for plugins and ready-made solutions; here, I had to learn new technologies to build something that was truly mine and could tell people who I am through a screen.
For me, having a personal site is not just a business card: it’s a playground, a lab where I experiment with new technologies that, once mastered, I also bring into my daily work. It’s a space that grows along with me.
Among the things I wanted to inherit from Hamish Williams’ project is also the idea of leaving a small homage to Ghost in the Shell in my 404 page. A subtle connection with a manga (later adapted into an anime film) that inspired us both.

Looking forward, I’d like to integrate an AI system to improve blog management and simplify processes like automatic translation. The project is public on GitHub, just like the ones that inspired me, because I strongly believe in the value of sharing. At the same time, I’m also intrigued by the idea of connecting to creative APIs, like those of the Pokémon or other sources available on PublicAPI, and finding original ways to integrate them into the site. I haven’t yet decided how or why, but that’s the beauty of it: leaving space for imagination and experimentation.
As Morpheus says in The Matrix:
“All I’m offering is the truth. Nothing more.”
Today, my site is exactly that: a place where I can tell my truth through code, and where every new iteration is a step forward in my journey.