TLDR
Their new website is a GORGEOUS interactive 3D topographic map inspired by their fly fishing days in California, and built using yours truly 💁♀️
The rest of their stack includes Blender for 3D, React Three Fiber, custom GLSL shaders, and Next.js with RSC
Despite being WebGL-heavy, the site has strong SEO and snappy performance
DatoCMS handles all content, with webhooks keeping the cache in sync automatically
The Origins
San Rita started where most agencies don't. In the middle of the Californian desert. Fly fishing.
Alexis Malin and his co-founder Julien were out casting lines when they decided it was time to build something of their own. Both had serious agency pedigrees. They knew the playbook. They just didn't want to follow it.
When they started working on their brand, they wanted experimental. Not "yeah cool so we added a parallax effect" experimental. Actually different. The kind of website that doesn't feel like a website but lets their personality shine. That idea from day one was exploration. Old topographic maps. Trails. Camping spots. The way you read a map when you're trying to find a fishing spot. They looked at that and thought: there's something here.
It's really inspired by nature at first, but then it's more inspired by those old maps, old topographic maps with the different way to read the map. You know, if you want to just like find the fishing spot or find the trails, the camping spot. And we're like, I think there is something to do there with that.
Not just pretty pixels
San Rita's site doesn't look like an agency website, which was/is the point. No black. No white. Icy greens, yellows, earthy tones.
They built something that reflects the camping trails of California, something that's personal to their origins, yet delightful for web visitors to discover.
They crafted all the iconography themselves in Figma. When they stepped back and looked at it, they realized it looked like an exploration map. That's when they knew they had something.
The homepage isn't a homepage. It's a map. The menu isn't a menu. It's a legend. Pages aren't pages. They're trails. The contact page is a postcard. Every element ties back to this idea of exploration and discovery.
And it translates to how they work with clients too - they explore new territory together. They push clients to try new trails instead of taking the same path everyone else is on.
Mapping it all together
They started with a 2D map. Mountains here, a lake there, some forest over there. They named landmarks after collaborators. and then they thought: why not make this 3D?
At first we wanted to create our own world. So it's not a real map. It's inspired from the place we fly fished in California. We tried to do a 2D map first, we want a mountain here, a lake here, the forest here, and put the names of our different collaborators on the map, like the Morrell forest. And then we were like, okay, let's try to use this way of doing the 2D map in a 3D style.
Sebastien Lempens, their creative dev, took that 2D concept into Blender, and built out the terrain, added textures, and made it feel like an actual topographic map you could touch. Then he translated the whole thing to code using React Three Fiber built on Three.js for the 3D integration. For the interactive navigation on the map, Sebastien wrote custom GLSL shaders. That's what gives the whole thing its organic, fluid feel when you're moving around.
For the overall structure, Next.js was the natural choice. They leveraged React Server Components to move all the heavy logic and data fetching to the server. The result is an extremely lightweight application for the user despite all the 3D happening.
Retaining rock-solid foundations
Here's the thing about WebGL websites - they usually tank on SEO. All that fancy 3D comes at a cost, and the Big G usually doesn't care how cool your shader work is.
San Rita's site doesn't have that problem.
For the overall structure, we used Next.js, which was the natural choice. And leveraging React server components, he was able to move the heavy logic and the data fetching to the server. So the result is an extremely lightweight application for the user. And since it's on that, it helps the strong SEO, because usually when you create a WebGL website, the SEO is kind of low.
By moving the heavy lifting to the server with RSC, they kept the client light. Strong SEO. Fast load times. No scroll jacking. No janky scroll glitchy wonky feels. The site feels smooth even though there's a full 3D map running underneath it.
Making us shine
WebGL and content management don't usually play nice together. When everything is baked into the 3D experience, updating an image or swapping out some text becomes a whole thing.
We had our developer, Valentin, and he told us about DatoCMS and how we can manage content easily. And it's quick, it's fast, it's snappy. And we said, OK, let's try. Let's go. Let's do it. So we did.
Want to change a photo on a trail? Do it in Dato, it just works. Need to update an image on the fishing spot? Fast, quick, easy.
To keep the experience feeling instant, they implemented a granular caching strategy with Next.js paired with webhooks from Dato. The cache invalidates and regenerates automatically when content changes. Static performance with the flexibility of a dynamic CMS.
For a team putting content in themselves, that matters. Creating a new page, adding videos or photos to project details, it all just works without fighting the CMS.
Looking at this website come to life was really fun for us too, and for the San Rita crew, the moment that made the whole project click happened on a call. Alexis and Julien had been talking about this idea for months. Sketching maps. Planning the concept. Then Sebastien said he could build it, and they told him to just go for it.
At some point we ended up meeting with Sebastien. He told us, yeah, I can do it. We're like, okay, so we'll trust you. Just do it. And I remember being on the first call where he showed us the map and where we could interact with it. And I was with Julien on the other side and we're not talking. We were just listening to Sebastien doing his demo and we were looking at each other like, this is fucking insane. Like we made it, it's gonna happen. It's gonna be a real website.
The vision they had in their heads is now running live on the web.