Guild: Sharing Code Between iOS, Android, and Web with React Native

Karolina Gawron

react1

We started working with Guild around eighteen months ago, back when Ashley Friedlein and Matthew O’Riordan approached us with their idea for a messaging app for professional communication—a WhatsApp for business, as they often call it.

Guild seemed like a great project for us. They have an empowering mission of helping professionals feel pride and fulfillment by sharing expertise with, and learning from, like-minded peers. And since at Monterail we’re all about delivering meaningful software, it was a great fit.

Cta image

Ashley and Matt have a long track record as founders and entrepreneurs, and we knew they needed a smart solution that would bring them business value fast along with quality code.

The result? React Native app for Android, iOS, and the Web, with Node.js on the backend. Using this specific technology stack, we managed to build a product which shares 99% of the code between iOS and Android, and 80% between the mobile and Web versions.

Guild.co messaging app in React Native

The official site of Guild.co 

Project challenges

The tech stack we decided on with the Guild team was not exactly easy. At the time, Node.js was quickly becoming the best environment for real-time apps like Guild, but React Native was not that obvious a choice. There were some serious questions about the continuity of support for RN and some licensing challenges, which brought additional concerns.

In theory, RN allowed us to write one codebase and reuse it across different platforms, making it less expensive to create and maintain. But it was still a newish open-source project, and that alone could have led to some performance issues. And after all, user experience is critical if you’re competing with giants like WhatsApp.

Cta image

Another big challenge in this particular market is pulling users away from other messaging apps. Getting people to commit to a new one is difficult, and thus Guild needed to offer users an app that would be fast, intuitive, and deliver unique value. As Guild targets the high-profile business client, the company stressed its product’s GDPR compliance, extensive privacy features, and data security.

What key challenges did our development team have to tackle?

  • Delivering a product with exceptional user experience to find a foothold among early adopters and clients (and make them fall in love with Guild)
  • Handling real-time events—a critical part of any messaging app
  • Providing offline support to allow users to access their content without an Internet connection
  • Handling push notifications, camera access, access to images and other files

Node.js + React Native

Given that Guild is a messaging application, performance is crucial for its success. Node works well for this type of product and due to its async I/O, it’s capable of handling a great deal of concurrent requests. We also decided to use Apollo and GraphQL, and handle real-time events using the Ably platform. This setup helps us handle real-time parts and offline support.

It worked even better than we expected. Using static typing on both server and client sides, the app was significantly more stable than while working with plain JavaScript client-side and Ruby server-side, for example.

On the other hand, we wanted to achieve the same seamless experience across different devices. Going with React Native and React XP was a great balance between performance and cost. The idea behind RN: “Learn once, write anything” allows sharing the same code, but requires building some platform-specific modules for iOS and Android.

Guild.co messaging app in React Native A sneak peek into Guild's dashboard

React Native brings some huge advantages, but we were worried by the fact that it normally requires some skills in native languages like Java. But it turned out that it wasn’t the case here. Even for a complex product like Guild, JavaScript was sufficient to successfully implement push notifications, launch screens, and similar platform-specific patterns. We could easily add new things with just a few lines of native code added to the native parts—which is not a struggle by any means for an experienced developer.

Another element that contributed to the overall success of the Guild project was proper communication and project management. The team uses Slack, Jira, and works in weekly sprints. Every six months, they hold physical meetups to discuss features, prioritize the backlog, and simply hang out. It’s a great balance of structure and agility. Guild founders make sure that everyone involved in the product in any way cares about it and feels responsible for its growth—and we love that approach.

Months of hard work paid off

With the right tech stack in the right hands, we’ve managed to deliver Android and iOS versions of the app that share 99% of the code, an amazing result never really seemed achievable before. For the Web version, we managed to reuse around 80% of our JS, which still was way above Ashley and Matt’s expectations.

Using Node.js and React Native resulted in a significant difference in terms of time and costs.

Choosing cross-platform development and React Native, risky as it seemed at the beginning, turned out to be a great choice. Indeed, RN is a bit of a tradeoff in terms of performance, but this is something that our team will be working on over the next couple of months. But it didn’t influence the app’s speed noticeably. According to Ashley Friedlein:

React Native is relatively new technology and clients could be complaining about the product and its performance. But they don't. And that is the best testimony for the reliability of the technology as well as quality that Monterail holds themselves to.

The app was first released to beta testers in July 2018 and four months later we released the app to app stores with all the features we planned for the first release. The Guild team kicked off this year with a bang, raising $1.2M (£880,000) in seed funding for further development and growing sales.

Then, in February 2019, they were awarded in the prestigious rank "The Red Herring Top 100" which highlights the most exciting startups from Europe. 

Three months after official release, Guild is still in its early days. It has around 1,000 active users and 50 organizations on board, plus they’re in advanced talks with a number of major companies across a number of industries. Around October 2019, Guild will be releasing a self-service platform, which should be great encouragement for enterprises and a much more scalable model. They’re also planning to find private investors and launch a crowdfunding campaign—at its core, Guild is about networks and communities, so crowdsourcing financing seems to be in line with their values. And we’re nothing but proud to be a part of that.

Cta image