The Path To Mozilla Hubs

This story, which began in the summer of 2014, is something I’ve wanted to write down for a while now. In large part so I don’t forget all that happened (at least, all that I remember) but also because it can help explain the origins of, and hence the motivations behind, the Hubs project at Mozilla. It’s also just kind of a crazy story that I’m sure has some lessons to be learned, but I’ll leave it to others to decide what those might be.

6 years since it began, literally to the day, I’ll be moving on from my full time engineering position at Mozilla in order to start working on a new project named Jel. Hubs, Spoke and Hubs Cloud are in good and capable hands, and it feels like the right time to make this transition. (More on that later.) It also feels time to finally tell the long, winding story of how Mozilla Hubs came to be. I hope you enjoy it!

Chapter 1

Six years ago, in July of 2014, I walked out of an elevator and up to the door of an unremarkable office labelled “Qualia3D.” Today, that company is best remembered as AltspaceVR. As I grabbed the door handle I stopped myself. I realized I wanted to remember the moment that was about to happen. And so, I still recall the feeling of turning the handle, opening the door, and walking into the warm welcome by the then-nascent AltspaceVR team. I’m grateful to have the memory, as it was the moment I became “someone working on Virtual Reality” — the realization of a lifelong dream, despite the feelings of being an imposter whose employment may not even last the day if my new colleagues found out the truth.

At the time, the product that ultimately became AltspaceVR was a few humble lines of C# code demonstrating the loading of a floating web browser in a 3D VR environment. It worked, barely, on a choppy DK1. We had a single “Oculus HD Prototype” that was kept in a locked conference room which we treated as if it was the only one on Earth. And to us, it was: if we broke it, we’d lose a physical artifact from the future, an artifact that gave us a taste of what next-gen VR was going to be like, unbelievably, in less than 12 months.

There were several other software prototypes and demos (built by founder Eric Romo, co-founder Gavan Wilhite, and engineer Ian Thompson.) These prototypes helped close the company’s seed round and were now being squinted at by all of us to see what “product” could tie them together into a cohesive whole. There were no rules, and no real prior art. We had no idea how, exactly, these pieces would all fit together. We drew on the walls and told stories to each other about how it would feel when they did.

What ultimately became AltspaceVR was being cobbled together in a Unity project called “UnityClient”, since we hadn’t even picked a real name for the thing yet. At the time I joined, the “server” was running on someone’s laptop in the office, not even yet accessible over the Internet.

I do remember the day after “Altspace” was chosen as the name for the product (I somehow missed the “let’s pick a name” meeting.) I came into the office to find Mary had written on the whiteboard, in big letters: “Let’s Meet In ALTSPACE!” Seems normal to read now, but it sure looked weird (and presumptuous!) then. We later added the “VR” so we wouldn’t get sued by a tiny graphics studio we discovered with the same name. I always imagined one day, when Mark Zuckerberg was buying the company for billions of dollars, he’d buy out the studio too, saying: “let’s drop the ‘VR’, just ‘Altspace’, it’s cleaner.”

And so it began. Soon, we were able to talk to each other as tracked avatars. The simple robot you still see today goes all the way back to this early version. (Talk about a solid v1!) Then, we were able to surf the web together. Travis built stunning, sweeping 3D environments to spend time in. Gavan, Brian, and Amber brought our Javascript-based SDK online.

Cymatic Bruce unveiled our initial version at the local Silicon Valley Virtual Reality meetup (aka SVVR, an organization he co-founded along with Karl Krantz and Nana Usui.) The audience was made up of VR hackers and founders, many of whom went on to create some of the most popular VR apps and games of today. As one of the most well-funded VR startups, we wanted to make a splash for our peers. We needed to prove to everyone in the room that VR-based communication was coming, and was going to be big.

As I sat in the audience, I was terrified the servers I had duct-taped together would break. My heart sank when the app seemed to freeze on stage. The servers were, in fact, fine. It was the one thing we forgot: the AA battery in the wireless mouse we had been rehearsing with all day wasn’t swapped out before the demo, and died right in the middle of it. Murphy’s law, every engineer’s nemesis, had struck again. The small bump was quickly fixed, and, in no small part due to Bruce’s wizardry and infectious energy, the demo was a huge success.

Before I knew it, we were running events with celebrities and hundreds of people in VR headsets laughing their heads off, building crazy technology, and I found myself giving demos to John Carmack at Oculus Connect. (We also hired my younger brother as our sound designer — having him along on this adventure is something I’ll always cherish.)

It felt like we were really onto something big. We were doing stuff that seemed novel yet had broad reach. The enthusiasm from our early adopters made us feel like we were skating to where the puck was going to be. It was a huge rush, the kind of thing people like me dream of doing.

A big moment was always when new headsets arrived. First the DK2, then the Vive, and then the Rift. Each headset was so much better than the previous that, like all VR-heads, we were all perpetually convinced VR would go mainstream any minute — it was just too magical for people to ignore. The DK2 introduced positional head tracking, which was a true marvel. (Today’s Oculus Quest was at the time as possible to imagine as your own personal lightsaber.) I remember just moving my head back and forth while wearing my DK2 and being mesmerized that a computer (a computer!) was able to track my head so precisely that the rasterized triangles seemed not to be drawn by a display, but were real surfaces reflecting photons from another world, the display a remarkable but imperfect window looking onto it. It felt like everything in computer graphics had been leading up to this final, miraculous magic trick — a miracle that we were going to play a small part in delivering to the world.

It turned out to take quite a while longer than we expected for the dream headset to arrive. In the meantime, we were privileged to be able to see and live in the future before everyone else. Many of the things we experienced in AltspaceVR were among the genuine firsts happening across the young Social VR ecosystem, often happening quietly among ourselves or in our communities with no ability to recognize their significance except in retrospect. I’m forever grateful for being able to be a part of it all, and to have worked with so many amazing and good people throughout. I could describe some of the things we did but it wouldn’t do them justice.

The details aren’t important anyway. What is important is the permanent mark the best moments left on us: the stunning realization that social presence was inevitably going to become decoupled from physical co-presence. You would, soon, be able to spend time with those you care about without having to be physically near them. And not just for boring, professional reasons. You could fall in love with someone, you could dance at a party, you could get on the floor and paint with your kids. All through the Internet.

It wasn’t a prediction. It was the reality we saw happening in front of our eyes 6 years ago. Each of us had our own interpretation of what it all meant, but this much was clear: the future was here, it was just blurry and unevenly distributed. There were undeniable moments when everything clicked and this technology, indistinguishable from magic, remotely connected two human beings in a way that had never been done before. Because of the feeling we saw VR deliver, one we also felt ourselves, the feeling of being together, we all knew it was just a matter of time before big, positive changes in society could start happening from the spark lit by this technology. The headsets weren’t, and still aren’t, the thing. They are the thing that gets us to the thing.

My time with AltspaceVR came to an abrupt end, as so often happens in Silicon Valley, in July of 2017. Burn rate, liquidation preferences, venture debt, and other unpleasant realities that Eric Romo, our Founder & CEO, had managed to shield us from suddenly blazed onto the scene like an unexpected meteor, burning up the sky and everything around us. It was a dark period of hard lessons, and one I don’t look back upon fondly.

On the other side of it, tattered and somewhat broken, our pioneering team was splintered. Some went on to continue the work, re-birthed anew, in a new place, with new leadership. Another group was scattered to the wind, ultimately landing on a variety of nascent VR projects starting out just like we had: drawing on the walls, telling stories. Each of these amazing people went on to leave their mark. The AltspaceVR DNA can now be found in almost every Social VR project out there. I’ve been superbly happy to see AltspaceVR itself go on to not just survive but thrive at its new home.

And then there was the splintered group I became a part of, the one which somehow managed to cobble together a life raft and land on a new shore, stumbling onto what felt like an undiscovered continent.

Chapter 2

When AltspaceVR seemed least likely to continue in a way I could see myself being a part of, I did what I usually do after the universe gives me a kick: try to get excited about building something new. The rush of a new, exciting idea is a best antidote I know of for the poisonous negative emotions that come with feeling like a failure. But before I could start building something, I had to ensure I was legally free and clear to do so. So, I took the emotionally painful step of dropping off my company laptop, writing a brief resignation email, and deleting all of AltspaceVR’s code from my home computer. Just like that, 3 years of impossibly difficult work, and countless memories, gone. I wasn’t sure if I had done the right thing, and I hoped that those I had worked so closely with the prior 3 years wouldn’t look too harshly upon it.

So, what was next? I got up early the next morning, dusted off my long-dormant personal laptop, and sat down with a big cup of coffee at Coupa Cafe in downtown Palo Alto (as one does) and started to think.

At the time, the situation at AltspaceVR was dire. It seemed certain that the service was going to be permanently shut down and the assets sold off to the highest bidder. At best, I expected everything to be sealed away forever in some intellectual property vault, at worst be folded into an acquiring company desperate for users, who’d siphon off the AltspaceVR community into their own products and then mercifully shut everything down after it served their purpose. Thankfully we were spared from the emotional pain of seeing either of those scenarios unfold, neither of which happened, but living through the period where it seemed an inevitability had a profound impact on how I thought about Social VR going forward.

AltspaceVR’s community was a small but vibrant one. We had countless examples of people whose lives had been positively transformed by the service. One particular group that was continually on my mind were those who were unable to leave their home due to illness or social anxiety. Through the magic of Social VR, these people suddenly had an entirely new life, one filled with friends, socialization, and deep, meaningful relationships. By the end, there were many in our community whose lives became rooted in the relationships they had with people they spent time with in AltspaceVR.

If the service was shut down, all these life-changing relationships would be instantly vaporized, thrusting these people back into their old lives of social isolation. This seemed much worse than us losing our jobs. To make matters worse, these members of our community often were using the affordable, phone-based GearVR. We worked very hard to support this device, which was largely ignored by all other Social VR applications at the time due to the immense engineering and design challenges that came with supporting it. So, there was really nowhere else for these people to go — once the switch was flipped, they would no longer be able to experience being together in the same way they could with AltspaceVR. I was genuinely fearful that we’d hear stories of terrible consequences from the hole that’d be created in their lives if the service was shut down.

As I thought about the next project in the cafe, these people were on my mind. I felt any new project with similar goals of connecting people through VR had to be immune to this kind of destruction. To set things up otherwise was profoundly unethical, given the damage it could, and would, cause if it was forcibly taken away from people who had built their entire lives around it.

Ultimately, I saw what was happening to AltspaceVR and our community as a warning shot. Eventually, I felt, all our lives would have key relationships sustained entirely through remote social presence. We’d soon have personal networks which more closely resembled those of the AltspaceVR community, with some, or all, of our closest relationships being with people far away from us, yet fitting into our lives no differently than those nearby. Immersive technology would lead to this profound change, naturally over time, with many not even realizing it. As remote social presence technology became ubiquitous, forming deep bonds with people with no regard to their physical location would become the norm.

In conjunction with what was unfolding at AltspaceVR, this thought led to a sobering realization: it wasn’t hard to imagine a future where these remote relationships, ones which formed the core of one’s life, could at any time be suddenly revoked. A company “pivot”, a pedantic rule violation, or an underpaid staffer clicking the wrong button could cut you off, permanently, from feeling present with those you care about. On the other side of it, you would find yourself in a form of prison, isolated from the parts of humanity you most cared about, with a life sentence and no chance of parole. If this technology ended up under the centralized control of the surveillance capitalism-powered companies (who were already well on their way to securing it) this future was not just easy to imagine, but seemed certain given how poorly these companies already treated their users due to the perverse incentives of their toxic business models.

The impact this had on me was one of discovering a new moral imperative, an imperative to ensure there was some form of basic remote social presence technology always available to people, even as far as becoming a human right in the long run. I began research into what it might take to form a non-profit foundation similar to the Wikimedia Foundation, but instead of a mission around ensuring the availability of human knowledge, the institution would seek to ensure the availability of state-of-the-art social presence technology.

As a hacker, with no background in non-profits nor policy-making, it seemed a difficult path. Perhaps instead I could hack together a basic version from scratch and give it away, and hope that it’d be valuable enough to attract a global community of contributors. It was important to set things up to ensure it remained competitive with any centralized, proprietary alternatives that may emerge. The best outcome seemed to be rapid commoditization of the technology such that new companies in this arena that may ultimately harm users would instead have insufficient differential IP to create an economic moat, perhaps even disincentivising their formation in the first place.

Ideas like this, and others, swirled in my mind. Luck favors the prepared mind, and so when an unexpected door appeared, I like to think I was able to see it for what it was: a potential path towards realizing this goal. The door appeared in my inbox — it was an opportunity to start over, and come work on Social VR at, of all places, Mozilla.

I’ve always loved the web. My first real achievement as a hacker was a web-based online community, open source software included. If you had asked me in high school what was the coolest company out there I would have undoubtedly said Netscape. As it morphed into Mozilla, I was always installing Mozilla, then Phoenix, then Firefox on the malware-ridden computers of friends and relatives in order to do my part in undermining Microsoft’s nefarious attempts to take over the web. Out of the ashes, Mozilla took on the Goliath and saved the web. What a story.

One of my biggest regrets from my time at AltspaceVR was not pushing to open source the code. I doubt it was ever a real possibility, but I do now regret not trying to make it happen. At the height of my desperation, with the meteor closing in on us and threatening to destroy all we had created, I went so far as to DM Marc Andreessen, co-founder of Netscape, to see if he could help me find a way to acquire the source code to free it. It felt like it could be a once-in-a-lifetime opportunity to secure something I saw as critically important to the future, yet universally unrecognized as such by the venture market given that now no VC would touch it, so the code was potentially available at fire sale prices. If our advanced tech was made free to the world, I surmised it could be used to birth a global, free, open source metaverse based on the web-based technology powering our SDK. This would lock in the protections I felt were needed for access to Social VR, and could cut off all the dystopian versions before they were even a glimmer in the eye of their creators. It was an obvious echo to the story of the Netscape source being cleverly jettisoned before the company was shut down, the same fate I fully expected for AltspaceVR in that moment— it felt so poetic as to be inevitable.

In what felt tragic at the time, my DMs to Marc were never opened, and nobody else I reached out to with this proposal ever replied. The open sourcing of AltspaceVR wasn’t to be.¹

Yet strangely enough here I was, just days after these desperate moves, with a chance to come work on a new project at Mozilla itself with similar goals as the one I had just lost grasp of, but with a clean slate and open source from the beginning. Not open source against the wishes of company lawyers, but by the request of the organization itself, a place I had admired for decades, which saw open source as the best way to maximize impact. To me, this meant if this new project managed to become something as important to people as I felt AltspaceVR had become, it would not be possible for a similar meteor to wipe it out, and cause such harm. What this path would lead to I couldn’t yet know, but whatever it was, it would succeed or fail, live or die, entirely on its own merits and if enough people cared about its continued existence. This was a deeply motivating realization.

I was excited enough. I had hoped Mozilla would give me a desk, a computer, and a decent salary and let me just try to build some of the new ideas that were forming in my head in the cafe that morning. But it was bigger than that: they wanted to go all-in on this project, and make a big bet. And so, we would hire a team. It was an over-the-scoreboard home run. (No pressure!)

It was a scramble, but I somehow managed to convince a few of my amazing colleagues from AltspaceVR, now unemployed, to turn down much more lucrative job offers to join me on this wild new adventure at Mozilla. What felt like months was compressed into days, and some amazing people who I hoped could join us were unable to, including some who were as excited about all this as I was. Potential futures evaporated as quickly as they materialized. But finally the wavefunction collapsed, and the team which eventually became known as “The Hubs Team” was born.

The day the last person on the new team walked in the door at Mozilla was October 9th, 2017. I remember, because it was also the day my first son was born. That morning, I introduced Brian Peiris to Mozilla on the company call, said my farewells, and drove to the hospital. As any parent would understand, the subsequent month or two is basically a black hole in my memory (as well as my GitHub history), but when I came to on the other side, the team had done something remarkable.

I don’t remember exactly when it was, but it was sometime around my return that we had the group of us fully tracked in VR, as avatars, reliably and efficiently talking to one another in Firefox. It was a big moment. I had known from my time at AltspaceVR that the baseline for delivering meaningful social presence was actually quite low. All you really needed was head and hand tracking, to convey natural body language, and voice spatialization, to convey who was speaking, and where they were. To prove this could be done in the browser was huge: it meant people could experience it without downloading any software. Along the way, we had found bugs in Firefox which blocked us from implementing voice properly, so when it finally all worked we knew we were the first to do it. Since we were at Mozilla, we had the pull to get these bugs fixed, and so perhaps we were the only team who could have been in the position to plug all the pieces together.

And that’s just what we were doing: plugging pieces together. We were standing on the shoulders of giants. Our prototype leveraged the full gamut of cutting edge browser tech, as well as a ton of open source software created by companies and volunteers alike. The technology stack which enabled our existence proof of remote social presence delivered through the browser was built up over the last several decades by countless numbers of talented people. It seems likely if we had tried just months earlier it would not have worked, as WebVR, the technology which enabled us to render graphics to VR headsets using the browser, was still being stabilized. But here it was: just click and go — instant social presence with anyone with a web browser. Once immersive computing took off, that meant everyone on the planet with an Internet connection. We felt privileged to be the group of people who were lucky enough to click everything into place at just the right moment, and to be the first to experience it all working.

Now that we had the most primitive of demos working, we decided to unveil it at SVVR, the same venue for the initial demo of AltspaceVR. As was the case with that demo, this one also barely worked. We did, at least, ensure we had fresh batteries in the controllers this time. SVVR was still a crowd of hackers and founders (and, by this point, a few crypto hucksters.) Those who had been there from the early days understood the potential for what we had done and walked away impressed.

After the demo’s success, we made the pivotal decision that instead of going down the path of creating a Mozilla-hosted suite of “social VR services” (a concept we were considering) we would first focus on making a cohesive, easy-to-use product based on our demo. I’ve always felt that making a successful product first, especially one you yourself would want to use, is the best way to ensure any platform you do ultimately build around it is well grounded, since the platform will naturally grow to satisfy the ancillary needs left unfulfilled by your core product.

So we scoped our MVP and got to work. The initial push to get to a v1 on a new, exciting project is one of my favorite things in the world, especially with a team that has jelled. Since we had already worked together for so long, we had the impossible experience of being a veteran team working on a second project with a clean slate, full creative freedom, and a healthy runway. It doesn’t get any better, and I’m forever grateful to Mozilla’s leadership for giving us that space.

In a blink, we launched “Hubs by Mozilla”, just 6 months after our team had formed. It barely registered on anyone’s radar, but like most milestones of this project, I felt we were quietly weaving a story whose ultimate reach could become bigger than we could imagine. After our launch, I gave an internal talk at Mozilla explaining why we created Hubs, and the dangers ahead if Mozilla did not step up to lead in the Social VR ecosystem.

And so began the grind to product-market fit. Unlike AltspaceVR, we were focused on small, private meetings. So there wasn’t really an opportunity (nor the budget) for star-studded events to help drive traffic. It was important to us that people felt safe and comfortable in Hubs, but this also meant throwing random strangers into a room together was not an option. So we kept our heads down, and used the product ourselves regularly. We slowly grew a community. We shipped big, critical pieces (like Spoke and the Architecture Kit) while also doing rapid iteration on key features, refining the design (thanks to Rian Long), and fixing lots and lots of bugs. We brought on amazing people like Liv Erickson and Elgin-Skye McLaren to the team as we slowly, methodically grew the product, mostly by dog-fooding it ourselves and building the features we felt the product was telling us to build next.

This phase is one of the most difficult ones of any project: the infamous trough of sorrow. We were not getting much traction, but our gut said we were doing something important. It’s in this time you start to question everything: are we ever going to get anywhere with this? Are we going to let Mozilla down? Is this going to be just another failed project? What, exactly, is our “use-case?” Did we make a mistake passing on the other promising ideas we had on the whiteboard 6 months ago?

Press releases around new features made the graphs go up, but then just as quickly they went back down. It was a common belief in the VR community that WebVR was an ugly hack: that the browser was too slow, and the graphics sucked. Maybe these naysayers were right after all. Maybe we couldn’t catch lightning in a bottle twice, and it was naive for us to think we could.

It’s hard to understate just how much failure seems inevitable while in the trough. Accounts like this one are often written after the danger has passed, so readers know a happy ending is coming. But when you are living through it, fear and even belief that the project is destined for failure is ever-present, and mutually felt. A happy ending is not on anyone’s mind, just mere survival. Internal voices of doubt and skepticism ring in everyone’s heads. Without traction, a project is default dead. It’s understood that some unknown act of creation must, impossibly, be conjured up to survive. But nobody knows what it is or even if the possibility exists to discover it, and everyone has distinct, often strongly held, beliefs of what it could be.

In the trough, everything hangs on by a fragile thread, one whose integrity depends on two things: optimism in the product thesis, and a healthy team dynamic. The longer a team goes without seeing product validation, confidence in the plan diminishes, allowing negativity and conflict to creep in. This dynamic is what eventually causes the thread to break. Sometimes it happens overnight, in a sudden collapse of morale. It’s this fragility that usually gives way before real traction arrives, causing so many projects to die in the trough.

However, when a team is starving for traction, there is a counter-intuitive principle that can lead to survival: instead of trying to drive graphs up directly through “growth hacking”, focus on making something that just one person will not just want, but love. Accomplish that, and then you just need to find more people like that one. Or they might do it for you, telling all their friends about the amazing new thing they’ve discovered. Regardless, as soon as this love trickles in, optimism grows, negativity evaporates, and just as quickly as failure seemed inevitable, hope springs anew. Soon thereafter, growth will come.

And so, in our planning for 2019, I made it clear to both the team and the leadership overseeing our project that the primary goal at this stage was not chasing growth, but to get at least one person out there to truly love what we were doing. We had been building for more than a year, and yet there wasn’t anyone out there I could point to who was a clear Hubs “superfan.”

While we waited for Superfan Zero, we did make a few important discoveries. These are detailed in the (tongue-in-cheek) Master Plan, but two of the major ones were the realization that easy creation of mixed media seemed to greatly enhance the medium of Social VR, and that there was the potential for easy-to-set-up, production-grade self hosting of the entire Hubs infrastructure using tools like AWS CloudFormation.

Then, sometime in January 2019, what we were all hoping for finally happened: a member of our Discord community started gushing about what we were doing. And then another. And another. Growth was still slow, but it was at this point that I knew we were onto something and that it was just a matter of time until the word got out. So we kept building, focusing, tightening screws, and our community grew as more people started noticing what we had created. Work on Hubs Cloud started in July of 2019, and we just kept shipping.

And then, a year after the encouraging signs that we had made something a few people could love, COVID-19 hit. It came with an explosion of existential fear and uncertainty around the virus and its impact, alongside explosive growth and a massive outpouring of love for Hubs. My wife and I also welcomed our second son right in the middle of it all. It’s been one of the most intense things I’ve ever experienced: a tsunami of “good” and “bad” stress all hitting at once. It also came with the surreal feeling that the changes to the world we had long envisioned happening with the slow, steady adoption of remote social presence technology like VR were all suddenly being fast-tracked for a totally different reason, one we could have never imagined: physical co-presence had become a liability, and a life-threatening risk.

Suddenly our project, and the whole Social VR ecosystem, had a significant role to play. Hubs and AltspaceVR alike were immediately helping people cope with the sudden social isolation that came with this new world. The people I remembered from years ago who could not leave their homes and built new lives in AltspaceVR were now representative of all of us. Knowing how it helped back then prompted me to immediately do what I could to get the word out about the potential benefits Social VR could bring in helping reduce the loneliness to come. In time, Social VR tools were connecting friends and family in a distinct and often more enriching way than videoconferencing tools, with the vast majority using their laptop or phone with no VR headset. VR, it turned out, was way less important than we had thought.

Then, almost as if fate had stepped in, we finally shipped Hubs Cloud, the culmination of almost a year of effort and something which, right up through launch, we had doubts would even work. Hubs Cloud lets people quickly self-host their own production-grade, customized version of Hubs, set up nearly identically to how we run things ourselves at Mozilla. This launch was the final piece that seemed necessary to unlock the possibility of a decentralized, anti-fragile network of Social VR “hubs”, a network of addressable virtual spaces layered on top of the web and Internet. It’s too early to tell how this will all play out, but so far Hubs Cloud has reached well past our wildest dreams. In just a few short weeks, people have used it to create amazing experiences we could have never imagined. Each of these unique hubs is sitting on its own Internet domain, decentralized yet link-able to one another, in the same way the first web sites were.

The traction, and the love, we are now seeing tells me our fragile team and project have survived the trough and stand firmly on the other side.

So, that finally brings me to today. Everything in this crazy story has led to this point, where our little team at Mozilla may have slightly bent the arc of history by releasing open source software and easy-to-run infrastructure that has potentially unbounded reach. One of our goals was to ensure this new way of communicating would always be available to the world, free from gatekeepers and centralized control, to minimize any potential future harm if it became essential to our lives. It seems the world needs it now, and it feels like we have secured its future as a public resource like the web and Internet. It’s something that I think only this team, at this place, could have accomplished to the extent we have.

I can’t predict what comes next, but many of the goals I had in mind when I joined Mozilla are now seemingly at hand. The incentives, power structure, ownership, social systems, technology infrastructure, branding and design, business model, and the code itself, for the most part, are all how I had hoped they would turn out when we started. The details were unknown when we started, but the broad strokes were all there. You can only connect the dots looking backwards, and here they have all satisfyingly connected.

The die is cast — ubiquitous Internet-delivered social presence rivaling face-to-face is coming and will transform our world in unpredictable ways. We’ve tried our best to load that die in humanity’s favor.

Much more work lies ahead — the vast, vast majority of it. What we have today is merely an imperfect, point-in-time snapshot of a project which has the potential to continue on forever. But the feeling I have about my own role in this story has shifted. The hunger, drive, and sense of urgency to do all I could to materialize the right initial conditions has given way to uncertainty about what to do now that they seem manifest. The foundation seems laid, the fuse lit, and the dynamics about to unfold seem larger than anything I, or anyone, ought to have an out sized influence over.

Chapter 3

The universe has a way of giving you a nudge. And if you don’t listen, the nudge becomes a poke. And the poke a kick. Don’t wait for the kick.

I had gotten several nudges and a few pokes during my final weeks at AltspaceVR, before the big kick finally arrived. Up until that point, my wife and I were arguing more often. I was overworked, and exhausted. We had a baby coming, and I wasn’t sure how I’d adjust given the already impossible work schedule I was living with. The company was struggling to grow fast enough to justify our excessive burn rate and please our increasingly impatient investors, who, unbeknownst to most of us, held all the cards. (And who, by that point, were surely realizing that “copy Mark Zuckerberg” was a poor investment strategy unless you also understand, and are willing to wait for, the same thing.)

So, the meteor that abruptly ended the first chapter may have saved my sanity, my marriage, and my relationship with my newborn son. It also led to our team at Mozilla, and Hubs. It’s strange how it seems to be common that ultimately great things can come from what, at the time, feels like nothing other than a complete, catastrophic failure. I don’t have any major regrets, but certainly it would have been less emotionally painful, and my relationships left less damaged, had I recognized what the universe was telling me and headed out to grab a coffee and start fresh before I had no other choice.

Well today, I’m getting those kinds of nudges again. And this time, while I’m still feeling like I’m at peak performance and peak happiness with where Hubs is headed, I’m going to listen and not wait for the kick this time around.

The Hubs project at Mozilla is bigger than anyone working on it. Mozilla is the singular organization who can be trusted to guide it, but it’s bigger than Mozilla. I think it could be as big as the web. It needs to grow into its own. It’s time for me to get out of the critical path and hand over any remaining keys I have to my amazing team, and Mozilla. At best, I can help ensure things don’t get stuck. I’ve run down every bit that I know I was uniquely suited to be a central part of. Anything beyond this point is me reaching past these limits.

As was the case with AltspaceVR, what finally got me to let go was a new idea. I’ve always worked at small companies, mostly startups — Mozilla is by far the largest organization I’ve ever been a part of —so it was always likely I’d eventually be drawn back into that world. Of all the things I thought about at the cafe that morning, only one path led to Hubs. The other paths faded away for the time being. I’m now ready to revisit them with fresh eyes and the knowledge gained from these past few years.

What’s next? Well, at such an early stage, ideas are closer to feelings than concrete thoughts, since they change so rapidly. But I feel like there’s a new thread for me to pull, one I couldn’t see clearly enough until both previous chapters had closed and had their impact on me. The new concepts forming in my mind have managed to survive several sweeps of the mental Garbage Collector, so seem worth working on. They may all be dead ends, or too difficult to get off the ground. I’ll go into more details another time. Right now the most I can say is my new project is called going to be called Jel. Any description may lead it to being boxed into a “product category” — that’s not what I’d want for any idea at this stage. Ideas start out small and fragile. Their fluidity needs to be protected from hardening, so I am going to do just that for now.

So it’s time for me to move on from being a Mozillian. Starting in July (why is it always July?) I’ll be acting as just another avid community member, rooting from the sidelines and helping keep things moving forward as best I can. I think I get to steal the title of Superfan Zero, since I’ll become just another fan like anyone else, and I was probably the first one to really fall in love with what we were doing. I’m eternally grateful to my team (Kevin Lee, Dom D’Aniello, Brian Peiris, John Shaughnessy, Jim Conrad, Robert Long, Marshall Polaris, Liv Erickson, and Elgin-Skye McLaren), Mozilla’s leadership (Andre Vrignaud, Lars Bergstrom, Sean White, and Blair MacIntyre), and our Hubs community for the outpouring of love and support for our work. It’s a hell of a dent we’ve made so far, and it’s getting deeper every day.

Nothing I work on next will ever have the stars align so perfectly to allow such amazing things to happen so quickly. It’s been a gift to be able to put something like this into the world with the potential to enrich the lives of so many and to create it with such amazing colleagues. It’s something that I’ll forever be thankful for, and a project I’ll be proud to tell my kids about when they grow up. (Though I doubt they’ll be impressed!)

This is a story I’ve wanted to tell for a long time, and I hope you enjoyed reading it. The Hubs duck has finally left the nest. I can’t wait to see how far it can fly!

/duck

[1] Palmer Luckey, the founder of Oculus VR, did connect with us before I resigned. While open sourcing the project wasn’t the focus of our conversations, he generously offered to help us keep the service up until (fairly) he realized just how bad the full financial picture was. It didn’t work out but it’s something I’ll always respect him for, despite everything else.

Creator of @Jel_App. Formerly: Eng lead @MozillaHubs. Co-founder @AltspaceVR. @Etsy. Tweets are my own.

Creator of @Jel_App. Formerly: Eng lead @MozillaHubs. Co-founder @AltspaceVR. @Etsy. Tweets are my own.