27/07/2026

Luigi De Rosa from Active Theory — “Intention”

Image
Image

I had high expectations before my conversation with Luigi — and not just because this unassuming 33-year-old developer from Benevento, Italy, is Interactive Director at Active Theory, one of the most respected creative technology studios in the world. Mostly because — no flattery here — I’m a huge fan of his work.

I first met Luigi in the Netherlands, outside the Awwwards venue at the DeLaMar theatre. I remember walking up to him like an over-excited teenager and blurting out, “You’re the Barba.js guy! I love your stuff.” He probably looked back at me thinking, who is this strange guy? — or maybe he’s just used to such behaviors. But I genuinely was a fan, because Barba.js was the first thing in ages that stepped out of the tired old “click a link, get abruptly dumped onto a blank page” model of the web, and treated navigation as something that could carry meaning.

Although the official excuse for this interview was the new Santioni Spirits website, our conversation ranged across a series of much broader topics, with a strong emphasis on open source. Luigi works for a commercial studio and yet remains a firm believer in the open source world — and as a long-standing supporter of the open web, I couldn’t help nodding enthusiastically when I learned that Active Frame, one of the libraries he’s been developing lately, had been released publicly.

Correcting the subtitles of this interview, I realised that not only did Luigi and I share a good number of views on fundamental topics and opinions, but that we merely scratched the surface of a whole series of subjects — ones that could have opened the way to a myriad of interesting and meaningful conversations. I bet we’ll be hearing from him for a long time.

A technical preface: Santioni Spirits and the Notturno Experience

Image
Image

Before the conversation itself, a bit of context is owed to the project that runs underneath most of it: Santioni Spirits (https://santionispirits.com/) and its launch piece, the Notturno Experience, one of the works Luigi and his team recently shipped at Active Theory.

Santioni is a brand-new luxury spirits label. Its first collection, the Notturno line, is a range of refined, ready-to-pour cocktails — the tagline, “Cocktails to Indulge Now, Atone Later,” tells you immediately that this is a brand built on mood and character rather than on spec sheets. It is exactly the kind of client brief that either becomes forgettable or becomes an excuse to do something genuinely new.

Active Theory chose the second path. Rather than another glossy 3D reel, they built an interactive comic-book experience: a story you move through, with 3D comic panels, carefully considered micro-interactions, and even a voice-over performance. The visual language leans on the French bande dessinée tradition — I kept thinking of Moebius the whole time I looked at it — and the art direction was led by executive creative director Louis Ansa, with Luigi driving the interactive and technical side.

What makes it worth a technical preface is not the “boom, bang” of it. It is that it runs beautifully on a phone. The first time I saw it at Digital Design Days I was impressed; the first time I opened it on a smartphone I was genuinely shocked, because performance like that on mobile is not supposed to be easy. Behind that smoothness sits a very Active Theory philosophy: much of the technology is written in-house — including their own 3D framework — precisely so that they understand the entire pipeline and can work as close to the browser’s native APIs as possible. It is a piece that was tuned, tested and stress-checked on real devices (down to a decade-old iPhone 6) rather than only on a designer’s top-of-the-line laptop.

In other words, the Notturno Experience is the concrete artefact underneath the ideas Luigi talks about below: intention over noise, performance as a belief rather than an afterthought, and technology kept firmly at the service of the creative. Keep it in mind as you read.

Image
Image

The conversation

Fulvio Romanin:

Thank you, Luigi, for accepting my invitation. Let me start where we started in real life. I met you at Awwwards in the Netherlands, and I basically ambushed you as a fan of Barba.js — because for me it was the first time I saw something break out of the usual box of how you navigate the web. After twenty-six years in this business I get bored very quickly, and that was SO not boring. What still strikes me is how satisfying it must be to see it still alive: still open source, still working, still growing — even after you let it go.

Luigi de Rosa:

Thank you for having me for this friendly chat. Barba.js was definitely an interesting side project, and it taught me a lot about the industry and about the open-source space. I’ve always cared about open source; I’ve always been a believer in it. I’m a curious person, I like trying new things, and when I was very young I got into Linux — that’s probably where the open-source culture got hold of me. The idea that you contribute to something bigger than yourself, that you can work with other people on it, is powerful. And the crazy thing about open source is that if you’re a junior fresh out of school, you can end up working alongside senior engineers at Google or Microsoft just by contributing to a project. You learn an enormous amount that way.

Fulvio Romanin:

I still believe in that community too, even in a period of the world where openness and kindness aren’t exactly the dominant words anymore. So I appreciate that you keep participating.

Luigi de Rosa:

Absolutely — and maybe that’s worth dwelling on, because the world feels like it’s heading in the opposite direction, towards one where you have to subscribe to a service just to be able to produce any work at all. But to go back to Barba.js and where it came from: at the time I was living and working in Belgium, at an agency called Epic. This was around 2015, early 2016, and the landscape was completely different. Node.js was still new, server-side rendering meant something else, single-page applications weren’t widely adopted, React wasn’t really a thing yet, Vue wasn’t either — and our stack was mostly WordPress.

What struck me was that Google had just launched its motion and design guidelines, and suddenly apps had these lovely transitions between states and views. Meanwhile web pages still behaved like a Wikipedia article: you click a hyperlink and you’re teleported. For a brief moment the page goes blank, and a second or two later new content appears. And I kept asking myself: why can’t websites behave like an app on your phone, where transitions feel seamless, carry context, and mean something? If you go deeper into a context, an animation that zooms in tells you something about that movement. So we started building sites with page transitions, and every time it was a mountain of scaffolding and boilerplate. Little by little I wanted to abstract that complexity away — and that became the first version of the library. Very quickly people started using it to build award-winning sites. That was the key moment: watching people use the thing you made to solve your own problem, only to discover it was never just your problem.

Fulvio Romanin:

You just used one of the most important words in my vocabulary: meaning. Meaning is one of the biggest issues we face right now, in a context that is full of slop, where it’s increasingly hard to tell what’s valuable. There’s so much ugly stuff that it makes the beautiful stuff look uglier by association. When the context loses meaning, the things inside it lose their beauty and their credibility too. Somewhere you said something like: the web doesn’t need more noise, it needs intention. I’d love you to go further into that.

Luigi de Rosa:

I agree completely. There was a time when, to make an award-winning website, it was enough to reach for the shiny new technology — WebGL, particles, some bloom, some post-processing. It looked cool, and it was enough to stand out, to differentiate a brand. But now that kind of technology has been democratised. Frameworks like Three.js and React Three Fiber, whole open-source ecosystems, and most recently LLMs, have made those effects easy to produce. So it isn’t enough anymore. Using WebGL or the shiny tech, on its own, doesn’t differentiate anything. If you add an effect, it has to have a purpose. It’s not just the tech, and it’s not just the design — it’s the connection between all of it. You need a story to tell, a strategy underneath, and design and technology working together to convey something.

I’ve always believed technology should be at the service of the creative and the strategy, not the other way around. That’s what I try to do at Active Theory. I don’t like to say no to ideas, and I don’t like putting technical constraints on the table before a project has even started. I prefer to begin with blue sky — what do we actually want to do? — let the creatives express themselves, and only then ask: okay, can we get there with the tech, or do we need to invent new methods? Sometimes budget constraints are real and we have to live with them. But that “can we solve it?” part is the part of the job I love most.

Fulvio Romanin:

There’s a quote I read somewhere: “we thought code was the hardest part.” That’s so true. Code thrills us because it’s beautiful — the feeling of shaping technology in your hands, weaving it, that’s the most exciting thing I’ve known for twenty-six years. But the moment you realise you can throw in all the particles and all the booms and bangs, you also feel a kind of void, because without meaning behind it, it’s just noise. And speaking of meaning and budget constraints — you recently published something you’d shown at Digital Design Days. The first time I saw it I thought, wow. Then I opened it on a phone and thought, how is this even working? The performance is shocking, in the best way. That’s the Santioni experience. Personally it took me straight back to reading Moebius as a kid — that French comic style. And what got me wasn’t only the technical beauty, it was how the two things blend. I read it took around nine months?

Luigi de Rosa:

The timeline was long, but it was on-and-off rather than a full team working nine months straight — that would make me feel worse about it! The Notturno Experience was for that new brand, Santioni. What really helped us elevate it was trust. We almost had a blank page: it was a brand-new product with fresh branding, and the client was genuinely open to being brave and audacious, so we could push and play. As for the performance, that’s really just a side effect of what we believe as a company. We want to understand how things work under the hood. A lot of our technology is built in-house — we have our own 3D framework. It’s honestly not as powerful, complete or stable as Three.js or Babylon.js; those have far more features. But because we wrote the library ourselves, we understand the whole pipeline. It’s not unusual, mid-project, to need a specific effect and simply go into our own framework and 3D engine and modify it to be more efficient for that case. That’s the difference between a developer who consumes a third-party library only through its API, and one who makes their own tech, knows how it works, and can find the shortest path — both for performance and for achieving a given effect — by staying as close as possible to the browser’s native APIs.

Fulvio Romanin:

One of the most meaningful things about working on the web is that the technical constraints are genuinely severe. Those beautiful agency reels full of 3D and “boom, bang” — you can’t just run that on a phone. And you have to think about strategies to scale performance across very different phones. If someone opens your site on a €9 Indonesian handset, the fancy version probably won’t work. But everyone wants their work seen everywhere, so you have to plan for that. I really relate to the fact that you took a different approach, instead of just lowering the quality of the models and burning time on optimisation. You went for something with context.

Luigi de Rosa:

Exactly. Fun fact: I keep a little drawer of very old phones in my studio, and at some point in a project I take one out and see if the thing runs on it. If it runs there, it’ll probably run everywhere. For Santioni I tested down to an iPhone 6 — that’s, what, seven, ten years old? — and once it works on that, it’s very likely to work across the board. On top of that we rely on third-party QA companies with hundreds of physical devices, because device segmentation today is not as simple as it looks. So many devices, resolutions, GPUs.

Fulvio Romanin:

I remember the old days when you had one monitor size, 1024×768, and life was a breeze. Then responsive design arrived and turned my life into hell. (laughs)

Luigi de Rosa:

The process depends a lot on the type of experience, but for these very heavy, experiential pieces I actively advocate for design and motion references that are not too specific. I want freedom going into production, without having to replicate things one-to-one. Because at the end of the day, what we ship to the public is not the Figma file, not the Photoshop, not the motion reference — it’s the website. So it makes no sense to spend endless iterations perfecting a design, only to get into production and discover that what looked great on paper doesn’t actually work — and then feel too far down the path to change course. You have to be brave enough to re-challenge everything, to say: I was wrong, that approach won’t work. So I like the design to stay a direction, a moodboard we’re heading towards. We know what we want to build, but we keep our options open, we build inside the browser, and we keep the freedom to change things. That’s what I’m after with these experiences.

Fulvio Romanin:

You also mentioned a library you recently created — Active Frame.

Luigi de Rosa:

Yes, though we didn’t actually end up using it on Santioni — we used it on another project I can’t say much about yet. [smiles] But it’s another one of those libraries born from a technical limitation I knew about and couldn’t find an existing solution for. I wanted to build something the creatives and artists had in their heads, so we sat down, found a technical solve, and created it. And since I’ve taken so much from open source over the years, I like to give something back to the ecosystem whenever it’s possible. I’m grateful the company supports me in those decisions.

Fulvio Romanin:

That’s smart. And knowing you a little, I suspect what you built for that project is closer to a language than a one-off — something scripted once but with a reusable core. Is that right?

Luigi de Rosa:

Yes and no. These pages are largely bespoke. We can evolve them, add sections, reuse components, but there’s always a trade-off between reusability and the uniqueness of the experience. If we’re building a big .com where the client needs to update content and create new pages independently, then sure, we dial the uniqueness down and find a balance for reusability. But I always see that kind of narrative experience as the cherry on top of a larger pie, because not every website should be so narrative — after a while that would even become misleading. If it’s an e-commerce, the product page has to be simple, because the intention there is different.

Fulvio Romanin:

You’re watching this industry from a very high vantage point. Is there anything coming out right now that genuinely excites you — something you’d happily lose time in?

Luigi de Rosa:

The obvious answer would be AI and LLMs, but I’ve always been a little wary of dipping my toes into whatever is hyped up at that exact moment. I tend to wait for the storm to pass, then look at what’s left standing and investigate it calmly. So yes, AI is a hot topic, I’m following it and staying on top of it — but it isn’t the thing that has my full attention. Honestly, I’m a bit disappointed by how the industry reacted to it. I would have loved the conversation to be: we have this powerful new tool — what can we build with it, how can we make our products better? Instead the conversation went straight to how do we make things cheaper and faster, which is far less interesting to me. It gets interesting when AI lets me build things I otherwise couldn’t, when it enables better, not just cheaper. It sometimes does that — just not in the way people expect. I use it daily to speed certain things up, but I wouldn’t hand LLMs the interaction or the motion-heavy work. Because, as I said on stage at DDD, most of the time code is not the bottleneck. It’s a bit like design: design isn’t about drawing rectangles and picking colours. If you already know exactly what to do, that part is easy. The hard part is the thinking behind it — why things are the way they are. If we delegate too much of that to LLMs, we lose control; we’re effectively saying, make all the decisions for me.

There’s a lot of friction about this right now. On X yesterday I saw the two camps: one says vibe coding is the way, we’ll never touch a line of code again, the LLMs will do everything and we’ll just work on ideas; the other says AI only produces slop, refuses to touch it. I’m somewhere in the middle. AI is genuinely useful for certain things, but I wouldn’t go blindly building on my phone with ten agents running. And here’s the thing: the moment you feel you have superpowers, you also lose part of the fun — the fun of actually succeeding at something.

Fulvio Romanin:

That resonates. Part of what drives this whole rush is people my age — I’m fifty-five — thinking, I can work without juniors, cut prices, be faster, because whatever I make will be obsolete in a couple of years anyway. That’s the great excuse in web development: it’ll all be thrown away soon, so why bother, why train anyone? As an entrepreneur I’m against that, and not only because of the technical debt it creates at scale. The real cost is that once you stop bringing new people in, you lose your read on the market — on what people actually want. The other day I told a client, what if I build you an LLM interface so the site updates itself as you type? And he said, no, I don’t want that. I was surprised, and he explained: one of the most important things about a premium agency is that I can pick up the phone and argue with a human — “why isn’t this working?” That’s the moment I’m paying for. Not the moment where you make me write the copy myself. That’s your job. I’d never seen it from that angle.

Luigi de Rosa:

Exactly — just because we can, doesn’t mean we need to. Just because it’s so easy to spin up a prototype doesn’t mean the thing even needs a prototype. It’s worth stopping to think, applying some critical thinking, before jumping on the train and later asking, is this even worth it, what am I building? And that opens a much bigger question: do we really want to be so dependent on a handful of big companies just to ship our products? Do we want a world where, without the latest subscription, you can’t create anything? It’s a genuinely complex topic — sometimes even I struggle to keep track of it, so I can’t imagine how a junior entering the industry right now makes sense of the mess.

Fulvio Romanin:

And there’s the myth that AI makes you five or ten times faster. As a user — not a developer, just a user — I open my phone to copy a phone number and it’s bugged. I open Slack and there are bugs. I see bugs everywhere in my normal day. So we have this tool that supposedly makes everyone ten times faster, and yet software isn’t getting better. If anything it’s getting worse: apps eat more resources, you need a new laptop every two years just to keep up.

Luigi de Rosa:

I wouldn’t blame AI for that — it’s more about management and culture. Instead of focusing on making things better, teams focus on adding features nobody needs, simply because it’s now so easy to add them. So I think we should scale back and offer something smaller: less code, but better. That’s what I try to do on a project — keep it small, but make it very beautiful and very performant. That’s my belief.

Fulvio Romanin:

There’s a fever about the new tools right now, everyone running a high temperature. I’m on the opposite side, which is funny because I’m absolutely an early adopter — that’s a big part of my imposter syndrome, since I genuinely am slow as hell, coding. My logic was always, if I grab this new technology, no one will notice I’m a fraud. So I was one of the first to try AI, and I quickly discovered something: I didn’t work less, I worked much more, and I felt more stressed and drained. I’m a bit of a Guinea pig for the mental illnesses of our profession. So I stepped back and decided the potential is real, but it has to be filtered through our actual daily needs — because the trap is that once you see how many opportunities you suddenly have, you invent needs you never had, and you build things just because they’re nice to build.

Luigi de Rosa:

Right. And this isn’t entirely new either — it was already happening in the Stack Overflow era. There were people trying to understand how to build things, and people copy-pasting snippets hoping they’d work. Now it’s just easier, because you don’t even have to copy-paste and hunt for the snippet.

Fulvio Romanin:

I was a code monkey for the whole first part of my career — that’s the derogatory term for the person copy-pasting and praying it doesn’t break. I appreciate hearing your take, because from an apical position at one of Europe’s biggest studios you have a foresight I simply can’t have. You mentioned it’s a hard time to be a junior. What would you say to someone starting right now?

Luigi de Rosa:

Learn the foundations. That never goes out of date. If you understand the principle of something, the language, the dynamics, then AI and whatever comes next can help you go faster and give you more context — but it won’t replace foundational knowledge. I know it sounds old-fashioned, and it’s probably the slowest, least shiny way to do things, but I’d still bet on learning properly.

Fulvio Romanin:

That’s great advice, and I want to close on a positive note. A few days ago I spoke to a high-school class — a room full of Gen Z kids. I’m not shy; I was born without the gland of shyness, so I rolled out my old showmanship, told them I’d spoken in front of two thousand people and it wasn’t that hard — and they looked completely absent. I thought, I’m losing my grip on the younger generations. Then the teacher came over and said, that was amazing, the kids are excited. I didn’t believe her. THAT was “excited”? But a couple of days later, two of those kids literally rang my doorbell. They said, we were excited by what you said, can we talk? I assumed they wanted to learn about design. No — they wanted to start a company. Completely unpredicted, and completely wonderful.

Luigi de Rosa:

That’s a lovely story. It’s honestly an odd moment to be young in — there’s so much noise, and I wouldn’t envy the younger generation for that. But if you use the tools the right way, it’s a goldmine: being able to reach into so many areas of knowledge, ask a question and get an answer tailored to you, instead of spending hours searching. That part is genuinely easier now.

Fulvio Romanin:

Thank you so much, Luigi. It’s been a real pleasure — thank you for your views, your ideas, and all the best for what’s coming. I’m impatient to see what you cook up next.

Luigi de Rosa:

Grazie, Fulvio. Thank you so much.

Listen on Spotify

Image
Image

Your new project, now,
with Ensoul

We’re a web development studio specialized in Shopify and WordPress. We build infrastructures that scale, hold up under pressure, and turn traffic into revenue.
Got a project in mind? We’re one click away.

Image
Image