Why Remotion is a native macOS app (not Electron)
I’m Dan Wood, and I’ve been writing Mac software since the Mac’s early days.
Many years ago I created the award-winning app “Watson” because I wasn’t content with the status quo of having to go to websites for common tasks like looking up the weather, shopping, or checking on your stocks. I wanted these services at my fingertips, in a Mac interface!
Later, I created Sandvox because I wanted a native, Mac-like way to build websites.
Now I’m at it again, building Remotion so that remote teams can have a native, smooth, Mac-like experience when connecting with their teammates online.
Given all that, it probably won't surprise you to hear me say: I wish more people built native instead of going the Electron route. Here's why I think native software is worth it.
The case for native: performance and that just-right feel.
The strength of macOS is the consistency of all its apps working together seamlessly. By building natively, we can be part of that consistency. Native lets us build an app that feels right at home on macOS, rather than reflecting the average of every platform and feeling right on none of them.
There are a lot of cross-platform approaches out there that attempt to feel native, but they don't. Electron, the most popular one, is essentially a wrapper around a web page. Electron comes with all the baggage of a web browser, including bloated app bundles and RAM usage.
On macOS, you can lean on Apple's Cocoa framework to provide nearly everything you need, in an efficient way that's opinionated as to how apps, the operating system, and hardware work together to serve the user.
With Cocoa, you get to take advantage of the OS and its hardware. With Electron, it often takes months or years to get support for the latest OS and hardware capabilities.
A few of the benefits of native apps:
They feel right at home on the operating system
Native Mac apps build on components that fit seamlessly into the OS. In Remotion, this means everything from the "clickiness" of the buttons, to dark/light mode, to the transparency of our dock, to the contextual menus, to the weight of scrolling and the way the shadows look—behaves like you expect it would on macOS. This makes using our app much more intuitive.
Beyond the code itself, building natively is opting into conventions and guidelines from Apple and the community, who sweat the details about everything. Ultimately, the goal is for you to forget the app is there and just focus on your work.
Thinking outside the box
Not all desktop software should fit neatly into a web browser. Direct access to the OS unlocks our creativity to try and rethink things like how our status item works (shows teammates when you hide the dock), or how to get out of the way of user clicks with features like shift click.
With Electron apps, we talk about using "as little as 200 MB" of RAM, and 500 MB isn't out of the ordinary. Native apps can use just tens of MB. Don't be surprised if your browser-based video call reaches a gigabyte of RAM usage!
Our in-call experience uses much less of your CPU than web-based apps like Google Meet. Native apps can take advantage of first-class delegation to the GPU using Metal, Apple's low-level GPU API. As a result: an app doesn't drain your battery life.
A 30mb download vs. what would likely be ~100mb for Electron-based alternatives.
Better AV quality thanks to direct access to low-level hardware and device APIs
With Electron, you have a lot of great work done by Chromium contributors out of the box. However, it's difficult to push past the limits of Chromium because you have to learn, develop and build your own forks of major libraries. On the other hand, natively you can access hardware and device APIs unencumbered.
The case against native: it's hard.
I and my team at Remotion are big fans of native apps, but we acknowledge that there are serious tradeoffs to weigh if you're considering building native. Here are the main ones for us:
First and most obvious: you'll only have a macOS app.
You'll then have to build a separate Windows app (and Linux app). We feel this pain most days when we have to turn away interested beta testers who are on Windows.
There is a silver lining here: if you plan to eventually build a mobile app, building a macOS app gives you a head start on building for iOS. With Mac Catalyst, some apps can even share code with iPad apps, and this functionality will only continue getting better.
The macOS developer community is mighty, passionate, but small.
There are many ways being among the few building a native app has made things difficult for our team. One example—implementing our emoji picker. If you're building a web app and you need an emoji picker, you can start out by choosing from a few well-used libraries with many contributors. When we needed to add one to Remotion on macOS, we had to start from scratch. Then we wanted to add emoji search: What would have been one-liner with a mature JS library had to be a custom implementation in native Swift!
Similarly, commonly-used services like Google's Firebase have out of the box support for web and JS, but not macOS. You take a risk to use them for macOS, and you'll probably have to do some jerry-rigging of their iOS library to make everything work in the process. These kinds of problem come up all the time.
There is less developer tooling.
Given the smaller number of macOS developers out there, there is a lack of macOS-focused developer tooling beyond the great tools Apple provides. For example, many build pipeline tools exist for iOS, but don't add support for macOS.
Native desktop frameworks also aren't invested in by Apple with the same amount of urgency they give mobile. That means that macOS developers are generally stuck with pre-mobile or cloud era tooling.
It's difficult to hire macOS developers.
When it's time to grow the team, it's much harder to find great teammates. It's also a less diverse talent pool, with fewer college grads—typically an important source for talent as a company scales. This leads many companies that start on macOS to become more and more web-focused. It's something our cofounder Alexander saw happen when he was at Dropbox.
Why native is the right choice for Remotion (and any app that's open for >30 minutes a day)
All things considered, we believe native is the best choice for Remotion and our users on macOS. We thought long and hard about the tradeoffs we outlined above. Candidly, we still go back and forth about it sometimes, and we expect to reach a different conclusion for Windows & Linux. We knew that choosing native was signing up for a potentially painful journey and delayed gratification.
We chose to do it anyway.
Why? Because we think of Remotion not as a destination you open and close, but as a permanent operating system upgrade that puts your team right on your desktop. The success of our app—its ability to create a sense of presence of your team—relies on our users loving keeping it up all day.
That means the benefits that building a native app brings are critical for us. Our app feeling at home on the OS, a low memory and CPU footprint, and being able to use everything the device offers to make AV quality great, all make a huge difference when your app is meant to be always-on.
We regularly hear from our users that they stick around in Remotion because it's lightweight and "just feels better" than other virtual offices or video call apps. That sentiment is hard to quantify, but stems from all the ways our app feels consistent with macOS. We make it worth it to give Remotion valuable real estate on your desktop by making it look, feel, and perform like it belongs there.
If you're willing and able to put in the work, macOS apps can reach a quality of experience that's simply not possible with cross-platform frameworks. I think the extra effort is worth it.
If you love native apps, we want to build with you.
I get the warm fuzzies every time I download a native app. If you do too, my team would love to connect with you.
We want to build community with other macOS developers as we build Remotion, and we're excited to share more of what we've learned along the way. What's most helpful for us to blog about? Unit testing? UI components? Let us know @remotionco on Twitter.
We're only beginning to scratch the surface of what we can do on macOS, and the quality of other macOS apps out there is humbling. If you're a macOS fan, I'd love for you to check out Remotion and let us know what you think.
The case for virtual coworking: build a connected remote culture.
Regularly coworking with your hybrid or remote team can help you build the social cohesion that makes work feel less like work.
Here are the biggest reasons we think virtual coworking is an effective way to create a close-knit remote culture:
1. It fosters casual conversations.
Building a connected remote culture is all about fostering 1:1 or small group organic conversations. Virtual coworking makes space for those conversations. When you spend time together outside of agenda-driven meetings, spontaneous chats naturally occur, as they would in a traditional office.
2. It's more inclusive than scheduled social events.
It can be draining for introverts to have to participate in scheduled, purely social conversations. Virtual coworking allows the team to spend time together and occasionally chat without having to constantly be "on," making it more inclusive for introverts and extroverts alike.
3. It's easy to say yes to.
Purely social events are important, but if your remote team is busy or on a tight deadline, it's tough to find the time for social chats without it feeling like an obligation. Coworking is much easier to get your distributed team onboard with because it doesn't take time away from getting work done.
4. It improves remote collaboration.
Coworking can lead to unblocking and shorter feedback loops and stronger remote collaboration. Quick questions get answered easily and in the moment, without a having to schedule a meeting or go back-and-forth in messages. Coworking also builds peer accountability.
5. It's scalable.
Coworking works for teams of all sizes and is a great way to scale your remote culture as your team grows. It's helpful to create opportunities for teammates from different functions to get to know one another.
6. It creates shared momentum.
Virtual coworking helps remote workers for the same reason you might get a membership at a traditional coworking space: the feeling of togetherness is motivating!
Get started with virtual coworking: choose the type most aligned with your priorities.
It takes intentionality to make virtual coworking feel natural and energizing enough to stick—it's not as simple as leaving a Zoom call open all day.
Here are a few of the ways we've set coworking up for our team. We recommend choosing one to start with. If it works, make it routine and experiment with other types from there.
Try independent coworking.
Try project-based coworking.
Best practices for virtual coworking.
Keep group sizes small.
Limit your work sessions to 4-6 people to minimize distraction and help make introverted teammates comfortable chatting.
Signal boost coworking.
Set a norm of letting the entire team know when you're hopping into a coworking room or session.
Make it routine.
Once you've figured out what kind of coworking works for your team, make it a regular, opt-in event. Set up a recurring calendar event to do it at the same time each week to maximize the impact.
Set expectations ahead of time.
When you're first introducing coworking to your remote team, share what you're imagining in your calendar invite and at the top of work sessions to get everyone on the same page. For example:
Let's try virtual coworking! We'll work independently on our own projects with our cameras off, but we'll share virtual space and listen to music together — like we might work side-by-side at a physical office.
Listen to music together.
Play music while you work in a virtual room to create a shared environment and add a little bit of personality to your virtual coworking session.
Set up Coworking Rooms in Remotion.
Most of the above is doable with any video chat app or virtual office, but much easier with Remotion—which we designed with a lightweight, smooth coworking experience in mind. Remotion is the perfect virtual coworking platform—easily set up virtual rooms that your teammates can hop into for different styles of coworking.
While Remotion's virtual workspace is free to use with your remote team, if you're curious about joining a virtual coworking community built on our platform—check out Swift Remote Studio for iOS, Mac, and Swift developers.