We started a company a couple of years ago. We were delivering mobile apps, websites, and custom software products. Our first challenge was the fact that we didn't have a full-time backend developer in the team, and it was financially complicated to hire one.
We started to experiment with backend-as-a-service tools and other CMS like Firebase or Parse. However, they were not perfect - Firebase got too expensive for our clients, and Parse stopped the official support. That's why we decided to look for another solution, which would speed the development, let clients independently manage content, and fit our tech stack.
We tried the online demo, it was quick, we didn't need to install anything, just fill out the form and use a sample project. Once we saw that the editorial features would fulfill the clients' requirements, we tried to make a project with Strapi and it worked like a charm. Our frontend developers quickly learned how to use it because it's based on Node.js.
What's more, we needed a solution that would be compatible with most hosting providers. We are using Heroku for 99% of projects and sometimes AWS. Strapi has great documentation that explains how to connect the project with different hosting providers.
We are using Strapi for almost all of our projects. Most of the time, we use it with Flutter or React Native for mobile apps and React + Next.js for web apps.
One of our initial projects with Strapi is a loyalty mobile app for Livision, an optical store in Croatia. The app contains information about the customers, their loyalty cards, discounts, news, coupons.
The client wanted to be able to add most of the content to the app and trigger push notifications by himself. Back then the roles and permissions feature wasn't available in Strapi so we coded some parts by ourselves to make sure the client couldn't edit some of the collection types. It's great that Strapi is open-source and we can add custom features if we need to.
We used Flutter and REST API to create a mobile app. The development was pretty straightforward and everything was ready out of the box. The only part where we needed to add some custom code was the push notifications logic. We connected Strapi with Firebase to be able to send notifications. The developer experience was great from day one, as we knew that requests and responses used the same forms and everything was consistent.
Later on, we discovered GraphQL support and we started to use it on other projects. It's amazing because we can determine what kind of input and output we want to have.
We had some collection types, like users, posts, inventories (the items sold by the shop), discounts, stores (company shops).
We also leveraged single types, a feature that not all CMSs have. One single type is called Configuration and it lets us set all the parameters for a promotion campaign. For example, we can decide at what time of the day to send birthday coupons to users, with which discount, on which conditions, with which image. We also have a Loyalty Card single type which contains info about each client's loyalty card.
With Strapi, we can ship new projects 3 times faster than before. It's easy to customize and adapt to clients' needs, it perfectly fits the tech stack. Last year some features were not available (like RBAC or internationalization) but we could develop our solution since Strapi is open-source and very flexible.
Speaking of Livision app, 30% of the company's customers are using it daily, and the client can manage all the content in it independently.
We use Strapi for most of our projects, web, and mobile. It lets us deliver projects 3x faster, and customers use it with ease.