(Portfolio Update) Nutiliti - Utility bills sharing and more

After three financial projects in a row, I was sure something new is around the corner. Almost correct 🙂.

Nutiliti

Nutiliti (opens in a new tab) started as an application allowing flatmates to split utility bills (by percentage or a fixed amount) by simply connecting their credit cards and Nutiliti would handle the rest - basically charging everyone its bill portion. Over 6 years studying and working in the UK, I had 19 different flatmates (London to blame 🤦‍♂️, people just come and go), so I could see it working by removing the hassle to chase everyone to pay their part.

At the time (September 2021), Nutiliti had already launched their React Native application to the AppStore, but it was bit rushed to capture the upcoming new school year tenancy changes. Therefore, at STRV we were tasked to bring the application to a more stable state, launch the Android version, extend the payment options to include bank accounts and more.

Nutiliti app

Development

The client gave me full autonomy to work on the React Native application, so I jumped into the codebase, added STRV code quality tools (opens in a new tab) (ESLint, Prettier, Husky, lint-staged) and started the refactor. Luckily the code base was already mostly in typescript, so it went quite fast.

Because the backend was in GraphQL, as the next logical step I implemented automatic code generation for types and Apollo Client queries and mutations hooks. All this made the codebase much more maintainable and easier to work with.

The application consisted of a lengthy onboarding flow to gather all the necessary tenancy information, so this was a great candidate for E2E testing implementation. At the time, Detox (opens in a new tab) was the best choice for the task.

All above was possible only thanks to the client's CTO, who understood the importance of code quality and testing for long-term success, and was willing to invest into it. STRV (opens in a new tab) is one of the most expensive agencies out there (but worth every penny!), so you can imagine it is hard to persuade clients to invest into refactors and almost impossible to find clients who would actually propose it themselves.

It is also worth mentioning that the client started the application in Expo (opens in a new tab), a React Native framework that we avoided at STRV for a long time due to its limitations. However, I knew it was the turning period for Expo, which introduced a modern set of tools such as expo-dev-client and Expo Application Services, basically allowing to build React Native applications with any native customization you would like via Expo Config Plugins and making the build and submit processes super easy. Therefore, as a first to try at STRV, I went all in Expo and after this successful experience I have been evangelizing it to my colleagues and others ever since. Many of it is mentioned in my yearly React Native at STRV reviews (2022, 2023).

Finally, as mentioned, one of the most important features was to implement bank account payments, which was a great opportunity to learn about the Plaid (opens in a new tab) API, which we already used in Rich Uncles, but I was not involved in that part of the project. And because React Native Plaid SDK (opens in a new tab) required native changes, it was a great opportunity to implement an Expo Config Plugin and write an article about it.

Summary

Working solo at Nutiliti's React Native application was a huge learning experience and especially it uncovered for us at STRV the new possibilities Expo brings to the table. Now basically all projects are built with Expo and we are loving it. Also, my Expo Config Plugin articles have become the most popular among my blog readers, because at the time besides main documentation there was literally no other source of information than my 2 articles. I am feeling bit guilty they have become bit outdated, but hopefully the approach I taught is still helpful!

As far as Nutiliti goes, the app has 4.7⭐️ rating in the AppStore and 4.0⭐️ rating on Android. The app is focused on the USA and a younger target group (students, early professionals), so it is not surprising there are only 9 reviews on Android vs 98 on iOS. Also, Nutiliti has become so much more than when I left to a different project in May 2022. These days they partner with property managers and offer many new features such as energy provider switching. I wish them best of luck, because they are a great team and I am sure they will succeed!

© Aron BerezkinRSS