Meet The Pootsy Tech Stack
At Pootsy, we have been crafting our products for the past few months and now that we’re getting ready to actually launch the first betas, we feel like it is a good time to talk a bit about the tech behind it.
The first version of these apps is pretty basic: they allows users to fill a form in order for them to book a cleaning service.
Those were 4 simple screens but helped us understand a lot about our target market : were people ready to book a cleaning service just by using an app? The answer was hopefully yes and we got a lot of requests.
But more on that later, let’s get back to our stack. What technology makes Pootsy work? If you don’t want to read about all the details, you can jump right into our StackShare. Here’s the longer story:
Our MVP with Ruby on Rails
Pootsy is a platform where 3 different types of users meet through 3 different interfaces: one website and two mobile applications. It means there is a lot of work to do back-end side. We chose to start it as a Ruby on Rails application. This allowed us to iterate quickly and design the first prototypes that we needed in order to validate our very first MVP.
Separate the front-end from the back-end
Back then, the views were in the RoR application and consisted in a mix of different technologies, including ReactJS, but it wasn’t very satisfying : the backend developers weren’t really comfortable working with views and front-end developers were resilient working in a Ruby on Rails environment. Soon, we realized we would have to separate the back-end application from the front-end and let them “discuss” through an API.
A few weeks later, we found our ReactJS developer who spent a few days to refactor the whole app, then polished the design so that it would stick to the initial designs. Now, he’s busy fine tuning what we call the Pootsy Pro website that is going to be used by affiliated companies and allow to manage their cleaners agenda in real time.
React all the way
We really love ReactJS (+redux). That’s why, in the meantime, we chose React Native for our Pootsy Pro mobile application: it is going to be used by cleaners and it will allow them to manage their day-to-day activities. In a few weeks, we built an app that is working smoothly on both Android and iOS platforms while sharing some parts of the code with the Pootsy Pro website. This was perfect for our needs!
But still natives
On the other side, our Pootsy app, that will allow everyone to create a cleaning service and manage his/her agenda, will be developed in native mobile development : Java for Android and (mostly) Swift on iOS. Although we love React Native, we still think both the language and the community are not yet mature enough for apps with an ambitious design / set of features. Sure, we can still write React Native code and use bridges to have more control on the native parts but, in the case of this particular app, it seems most of the code won’t be shared anyway : animations, custom navigation, use of 3rd party libraries, … In this case, native mobile development appears to be a good fit.
This configuration feels a lot better : we have our RoR team being busy on the back-end and the front-end developers working on their platforms : 1 website and 2 different applications. Occasionally, front-end developers develop their own API endpoints in the Ruby on Rails code, allowing everyone to know how the platform works. Having this kind of knowledge shared across multiple teams helps discussing features as a one true team and moving forward.
We can’t wait for you to use the products we’re building to make the world a cleaner place.
This is our little secret
Now that you read this article that far, we’re going to give away some of the tools we use and love. We intensively use services like Codeship for our continuous deployment, Apiary for our documentation and Zeplin for our designs. Of course, our source code is on GitHub and we use Slack for practically everything. (more on Slack in a following article).
*Pootsy is a dynamic platform for real-time booking of cleaning services. It brings together Cleaners, Affiliated Companies who hire them, and Customers.