Solavi
A 3D lounge in the browser: pick a space code, walk in, and watch YouTube or listen to music with friends, synced to the second. Five scenes, up to 100 people a space, no account needed. I designed and built the product, the hoopoe mark, the 3D world and the real-time server from scratch.
Visit solavi.appA place, not a call
Watching something together over a video call means a grid of faces and someone counting “three, two, one, play”. Solavi gives your crew a place instead: walk around a little 3D lounge, sit on a beanbag in front of the big screen, wave at a friend, and everyone sees the same second of the same video. No sign-up and nothing to install — share a link and you are in.
The host who gathers everyone
Solavi is the third of a family: the dragonfly on this site, Montide the manta ray, and now a hoopoe — the bird that calls the others together. It faces you with its head turned, its wings folded down like a cloak and its crest standing up in four sharp blades. Every feather is a “knife”: a straight leading edge, a curved trailing edge and a razor tip.
It uses the same six colors and the same layout as Montide — cool teal and blue on the left, warm coral and yellow on the right — with translucent wings that blend where they overlap. The whole mark is generated from one small script, so the logo, favicon and app icons never drift apart.
Dress up, walk in
Any code of 3 to 32 letters is a space. Before you walk in, the wardrobe asks for a name, one of five low-poly characters — a hoodie, a beach hat, a football fan, a fox or an astronaut — and an outfit color from the brand palette.
Solavi remembers your choices on this device, shows who is already inside, and tells the creator of a space that they are its host before they even step in.
A lounge you can walk around
Inside, it is a small game: WASD or a touch joystick to move, Shift to run, Space to jump, E to sit. The big screen plays YouTube for the whole space; a panel takes a link and an “up next” queue, and the host can make anyone a DJ. Chat bubbles float over heads, an action bar waves, claps, cheers and dances, and the host can move everyone from the beach cinema to the rooftop bar, the cloud deck, the sky garden or the aurora lake.
Synced to the second
Video and sound stream straight from YouTube to each guest; the server only keeps time. It stamps the moment the host presses play, each browser estimates the server clock with a quick ping-pong, and the player works out where it should be and seeks only when it drifts more than a second and a half. Late joiners land on the same second as everyone else.
Positions travel ten times a second and remote players are drawn 150 ms behind, smoothed between snapshots outside React, so a crowded room still moves without a stutter. The real-time server is a small Go service I wrote alongside the app.
Built from the Montide kit
Creating a space is a single card: a name, a scene, a size from 2 to 100 people and an optional password. It shares Montide's theme tokens, typeface and components, so the two products feel like siblings, light or dark. Try both themes:
A hoopoe never tells
Like Montide, Solavi hides secrets: type the bird's name and it flies by, visit at golden hour or past midnight, jump again and again, or keep the confetti coming. There are 21 of them, and finding them unlocks new looks for the hoopoe in its own wardrobe.
Everything you find is remembered in this browser only, and the guide keeps a hint for each one.
A guide worth reading
The guide explains Solavi the way the product feels: why it exists, how the timing works, three steps to the sofa, the controls on a keyboard and a phone, and what happens to your data — very little, and most of it stays on your device.
It follows the layout of Montide's about page, with a sticky table of contents and the secrets collection at the end.
At home on any screen
On a phone the home page stacks into one column, the wardrobe fits a thumb, and inside a space a joystick walks you around while a drag looks around. You can even share a YouTube video straight to Solavi from the phone's share sheet.
Under the hood
Next.js 16 with the App Router, React 19 and MUI 9 on the web; React Three Fiber, drei, Rapier physics and ecctrl for the 3D world; zustand for the space state. A Go server handles spaces, hosts, chat and the clock over WebSockets. Characters and scenes are procedural low-poly, so a space opens in seconds.
Try Solavi