We rebuilt Eterna website from Bubble to Next.js in 4 weeks

The story behind leaving our no-code product studio site for custom code - and what changed when we finally matched the studio to how we actually work

by Marko Milojković6 min readNews

Before and after: Eterna Creative website migrated from Bubble to Next.js

TL;DR

  • We migrated eternacreative.com from Bubble to custom Next.js in about 4 weeks, mostly with Cursor AI agents and a lot of human review on top
  • Page load went from below 50 to around 98
  • The bigger shift was identity: from a no-code product studio site to an AI-native product studio - with one clear offer: Application, Automation, Website
  • We redesigned in Bubble first (never published), then rebuilt in code - which is how we like migrations to work when it helps
  • The skills from this project stay with us on every new build - and they are the same muscles we use when we migrate Bubble or vibecode products for clients. The migration guide is the phase worksheet we use on those rescues

The site finally caught up with the studio

I am writing this a few days after we cut over eternacreative.com to a fully custom Next.js site.

If you visited us before, you probably remember a Bubble website that looked good for a product studio site - honestly better than most of what I see from other studios - but never felt as fast or as sharp as the products we were shipping for clients. That gap started to bother me more than I wanted to admit.

The funny part is we did not wake up one morning and decide "custom code is cool now." The studio had already changed. Over the last months we went deep into AI-assisted engineering, tightened how we scope work, and stopped describing ourselves the way a 2024 no-code product studio would. The website was still telling the old story. So we fixed the website.

This post is the story of that rebuild - what we kept, what we threw out, what surprised us, and why I am weirdly proud of a marketing site project.

Bubble was the honest choice - until it wasn't

Our site lived on Bubble for a simple reason: we were a Bubble-first studio. When founders asked what we used, pointing at our own site was part of the proof. That made sense.

And I do not want to rewrite history into "Bubble was bad." It wasn't. We shipped real client work on it. We became a Bubble Bronze Partner. For a long time, even with average page speed sitting below 50, the site still converted conversations because the design craft was there and the offer was clear enough.

What stopped being honest was the positioning.

We were no longer only "the no-code team." We were spending more of our week in AI-assisted custom code, rescuing messy prototypes, building automations, and treating websites as conversion systems - not just pretty pages. Saying "no-code product studio" on the hero while the team had already moved on felt like wearing a jacket from a previous season.

There is another detail that matters for anyone thinking about a migration: we redesigned the site in Bubble first.

That redesign never went live on Bubble. We used it as the design starting point - structure, hierarchy, logo direction, the feel we wanted - and then moved the build to Next.js. So this wasn't "throw everything away and vibe a new homepage in a weekend." It was closer to how we like client migrations when the product deserves it: lock the design intent, then put it on a stack that can actually carry performance, ownership, and the next five years of content.

Four weeks in Cursor (and what stuck)

The rebuild took about four weeks.

Most of the implementation ran through Cursor AI agents, with us reviewing, rewriting, rejecting, and hardening as we went. That combination is the point. AI made the volume of UI, content wiring, redirects, and component work possible at this pace. Humans made sure it didn't become another fragile demo.

Under the hood we cared about things clients rarely see on day one but absolutely feel later:

  • a codebase we can secure, review, and extend without fighting a platform
  • design system tokens on real components and sections, not one-off page styles
  • old Bubble URLs redirected so years of links don't die
  • English and Serbian as first-class locales from the start
  • content systems that don't make publishing feel like archaeology

The PageSpeed jump is the number people will quote - from below 50 to around 98 - and yes, that felt great. But the quieter win is how the studio works now. We can ship a blog post, adjust a service page, tighten the calculator, or add a template without the old friction. Adding content with an AI agent in our own repo is suddenly normal. That compounds.

I also care about this for a selfish studio reason: the skills stay.

Migrating your own site forces you through stack decisions, content architecture, SEO hygiene, i18n, analytics, component discipline, and the boring redirect work that keeps trust intact. Those are the same skills we bring into Application builds, Automation systems, Website funnels - and especially into Bubble / vibecode rescues. We didn't just get a prettier homepage. We got sharper at the craft we sell.

What you see now when you land on the homepage

If you open the new site, the first change isn't a framework. It's the sentence at the top.

We used to say we were a no-code product studio, with a promise that sounded like a countdown: from idea to revenue in 12 weeks. That was true for a chapter of the company. It isn't the whole story anymore.

Now the line is simpler:

From idea to revenue. Products that grow with you.

And the offer stopped being a long menu of almost-services. We cut it down to what we actually deliver every week:

That sounds like "messaging work," and it is - but it also cleaned up the product. Portfolio, Resources, About, Templates, and Book a call all sit on the same system now. The blog isn't a pile of orphaned Bubble posts anymore: posts interlink, there's a table of contents, and a Keep exploring block so readers don't dead-end after one article.

The calculator got the same treatment. It's faster to a result and pointed at real pricing signals across the three lanes, instead of feeling like a side tool from a previous offer map.

Design-wise we refreshed the logo, leaned into a more premium UI, and added a lot of quiet motion. Not circus animations - the kind of presence that makes a first visit feel intentional. In a feed full of AI-looking sameness, I still believe craft is a trust signal. We bet on that.

Still unfinished - and that's the point

I want to be honest about what is not done.

Case studies are still moving over with more depth. Guides are intentionally gated as coming soon while we migrate them properly instead of dumping half-finished pages live. There are edges I already want to polish next month.

That unfinished list used to stress me out. Now it mostly feels like proof the foundation can take weight. We built something we can grow for years - blogs, guides, programs, internal tools - without starting over every time the studio evolves.

This year the pace of change inside Eterna has been a little crazy, in a good way. We studied and tested on our own products first. That's how we got into this work to begin with: build the best version you can for yourself, keep the scars and the lessons, then bring that standard to clients.

If you're stuck on Bubble or vibecode

I'm not writing this to argue that every Bubble site should move tomorrow. I'm writing it because we just did the migration on ourselves, with real constraints, and the playbook is fresh.

If your product or marketing site is stuck on Bubble - or you have an AI-generated prototype that works in a demo and falls apart in production - this is literally the service lane we run:

Rescue no-code and vibecode - phased, flat-priced paths into production code you own, with data and users carried over where it matters.

Or skip the essay and book a free 15-minute strategy call. We'll tell you the lightest next step, including when staying put is smarter than a rebuild.

Stay tuned. More case studies, guides, and studio tools are coming on top of this foundation - and I'm glad we finally have a site that can keep up.

Ready to start?

Book a free 30-min strategy call - we look at where you are, tell you honestly what makes sense, and give you a clear path forward.