Lesse Studio was based 5 years in the past in Bali. Again then, we had been a small workforce figuring issues out as we went, delivering tasks throughout many various frameworks, experimenting with alternative ways of working, and studying no less than as a lot from our failures as from our successes. So much has modified since then. We relocated to Italy, grew the workforce, and regularly developed a clearer understanding of how we wished to work and what we actually valued in our expertise stack.
The Problem
Our earlier web site leaned closely into visible experimentation. It was atmospheric, expressive, and really a lot a mirrored image of the place the studio was creatively on the time. We favored it. However over time, it grew to become clear that liking your personal web site and having it truly work to your purchasers are two very various things. Navigation was unfastened, essential data was tougher to search out than it ought to have been, and the general expertise, whereas visually attention-grabbing, wasn’t all the time comfy for somebody merely attempting to know what we do and whether or not we’re the fitting match.
The core problem of the brand new web site was discovering the fitting stability between creativity and performance. We wished to protect the emotional and creative essence of the model whereas constructing one thing that naturally guides folks by way of the expertise. That’s a tougher downside than it sounds, as a result of the temptation throughout a redesign is both to play it secure and lose the model’s identification or to double down on the artwork route and find yourself with the identical usability points yet again.
The Resolution
We redesigned the construction with a stronger concentrate on readability and person circulation, simplifying navigation and creating extra intuitive paths all through the positioning. We additionally made it simpler to entry the inquiry kind and discover details about our course of at a number of factors alongside the journey, as a result of a fantastic web site that makes it tough to get in contact is in the end failing at its objective.
On the identical time, it was essential that the consequence nonetheless felt like us. By refined typography, intentional layouts, minimal interactions, and delicate movement, we preserved the sense of environment and artistic power that defines Lesse Studio. The visible identification remained intact. We merely stopped making folks work to expertise it. Creativity and performance don’t should be in battle, and this rebuild was our means of proving that to ourselves.
The Path to Optimization
One of many greatest turning factors got here final yr after we determined to maneuver away from cloud suppliers solely. We had been operating heavier providers on AWS and deploying less complicated web sites on Vercel, like most studios of our dimension. It labored, however we had been paying for comfort we didn’t totally want, and we had much less management than we wished. So we made the transfer to self-hosting all the things on our personal servers.
If you go down that highway, you shortly end up going through two paths: you both burn out managing the complexity, safety, and deployment pipelines, otherwise you change into utterly hooked on it. We fell firmly into the second camp. One after the other, each piece of our infrastructure moved in-house, and when the mud settled, our upkeep prices had dropped by orders of magnitude.
However one thing else occurred, too. If you’re answerable for all the things, you begin considering otherwise. You end up continuously asking whether or not you’ll be able to squeeze another occasion into 16GB of RAM, whether or not a service actually must be that heavy, and whether or not there’s a leaner method to obtain the identical consequence. That mindset is what bought our workforce obsessive about optimization.
It confirmed up first on the backend. We rewrote a few of our providers in Go and Rust, and the distinction in comparison with our earlier Node.js and Django setups was staggering, not marginal positive factors, however effectivity enhancements on a very totally different scale. We had been operating extra, spending much less, and sleeping higher (Rust actually doesn’t break).
However there was an elephant within the room that we had been ignoring for a very long time. All of our frontend functions had been nonetheless constructed with Subsequent.js, Vue, Angular, or related digital DOM-based frameworks. On our personal servers, the price of that selection grew to become not possible to disregard. A single Subsequent.js occasion might eat 500MB of RAM, particularly when paired with an Specific.js layer dealing with fundamental CMS performance. Ten high-traffic web sites consuming a minimal of 5GB between them—that’s not a efficiency concern; it’s a structural downside.

So we began asking the query we should always have requested a lot sooner: what ought to we be utilizing as a substitute?
I had heard of Svelte and SolidJS earlier than. Svelte, particularly, had a repute for being cherished by virtually everybody who used it. I knew it was light-weight, however I had by no means taken the time to totally perceive why. So I made a decision to present it a attempt. What I discovered felt virtually too good to be true: a framework that compiles down to express, environment friendly JavaScript with no digital DOM, no heavy runtime, and no bloated bundles. For a workforce that had spent the previous yr obsessing over RAM utilization and effectivity, it felt just like the lacking piece of the puzzle.
We determined to make use of it for the subsequent two tasks we had lined up, merely to see how it will maintain up in apply. It was an instantaneous success. The place our Subsequent.js cases had been sitting at round 500MB of RAM underneath load, Svelte got here in at roughly 30MB, and changing Node.js with Bun lowered that even additional, bringing it nearer to 20MB. The numbers had been clearly talking for themselves.

So when it got here time to rebuild our personal company web site, the choice was straightforward. We selected SvelteKit and handled the challenge as a real experiment, not only a migration, however a possibility to push the stack so far as we might. Every little thing runs inside a single occasion: a personal CMS constructed instantly into SvelteKit’s API layer for content material administration, Drizzle as a light-weight ORM for knowledge storage, and all animations written from scratch with out counting on a single animation library. Photos are routinely transformed to WebP through the add pipeline and served by way of Cloudflare R2. Load instances are quick, the footprint is small, and we’ve full management over each layer of the system.
The structure itself is intentionally minimal. SvelteKit handles each the frontend and the server-side logic inside a single course of, which suggests no separate API layer, no further community latency, and one much less service to observe. Routing, rendering, and knowledge fetching all reside collectively, and since SvelteKit’s server-side rendering compiles to plain JavaScript with out digital DOM overhead, the HTML that reaches the browser is already full. There are not any client-side hydration waterfalls and no structure shifts whereas JavaScript catches up with the markup.
For the CMS, we constructed our personal. It’s nothing notably complicated, only a simple admin interface backed by Drizzle ORM on high of SQLite. The selection of SQLite is value mentioning as a result of it usually surprises folks. However for a content-driven web site with predictable learn patterns and no want for large-scale concurrent writes, SQLite is genuinely the fitting instrument. It runs in-process, requires zero community overhead for queries, and shops the complete database in a single file on disk. Drizzle retains the question layer type-safe with out introducing the abstraction value of heavier ORMs like Prisma, which will be unnecessarily heavyweight for tasks of this scale.
Photos had been one of many first areas we optimized. Each asset uploaded by way of the CMS is routinely transformed to WebP earlier than it ever reaches storage—no guide export steps and no inconsistencies between editors. From there, information are despatched on to Cloudflare R2 and served from the sting with out ever passing by way of our software occasion once more. After add, the server by no means touches a picture a second time.
Animations had been one other deliberate choice. Most groups attain for GSAP or Framer Movement with out a lot dialogue. They’re glorious libraries, however they arrive with a value. Since Svelte ships with a built-in transition system and use: actions deal with scroll-based triggers cleanly, we selected to write down all the things ourselves. The result’s animation code that’s totally tree-shakable and contributes nothing to the bundle until it’s truly used on a selected web page.
Below actual visitors, the server occasion comfortably sits between 25MB and 40MB of RAM. None of that occurred accidentally. It got here from treating each dependency as a value slightly than a default, and solely paying that value when there was a transparent cause to take action.
That’s in the end what a yr of self-hosting taught us. When you’ll be able to see precisely what every course of prices, you cease considering of frontend code as one thing that merely runs within the browser and begin considering of it as infrastructure. And as soon as that shift occurs, the query is now not “Can we use this?” however slightly, “Will we really want it?”
Svelte match naturally into that mindset. Not as a result of it’s the trendiest selection or the framework backed by the most important firm, however as a result of it follows the identical precept we had already constructed all the things else round: ship solely what is important, and make what you ship rely.
The browser advantages from it. The server advantages from it. And, in the end, so does the planet.


