Using Strapi for production app

I am running a startup it’s a hyperlocal news and market place for a community. OUR users will be 100k to 150k .We will be posting daily 50+news articles .Our stack Flutter, dart , strapi.io database MONGOGODB .server Aws everything is dockerized .How good it is too use strapi.io to managing ?Or should we go with custom node j s

Can you please give me your dockerfile and database config file. I am trying to dockerize my custom project . I didn’t find any good solution for it.

+1 :sweat_smile:

We are using it in production for a much smaller app but still production, for like 7 months now. Is not that old but you can really tell that the app has grown, but strapi updates haven’t broken anything we have written so they really take their job seriously.

The only serious problem with had was not long ago (database connection) that caused downtime for more than 1 hour. But it had more to do with Heroku than Strapi. Outside of that it has been running very well.

Personally I would definitely use it again if I had a new project, I don’t think I will build a node js api from scrach ever again.

Basically if you are writing a web API in NodeJS you should just use Strapi. Strapi stands for Boostrap API, and is exactly that. If you write your own node api you will end up doing a lot of the things that strapi already does.

Strapi on it self is not much outside of a bunch of librairies bundled togheter. And most of them are already very well established librairies that no node app can run without.

I don’t think we have had the traffic to tell if it can really scale, but for like 10k request per day it has run without trouble.

So that is my two cents.

Excluding my bias since I work for Strapi, I have been using it long before I started working for them. I first started using Strapi in a production environment 3 years ago and have kept the application running since. A my peak I handle about 3 to 5 million requests per week however I average about 800k to 1.2 million a week.

Strapi is absolutely capable of being used in large scale production applications, however I would caution you that the cheapest server/hosting you can find will not hold up to that. Strapi itself is only a small piece of the puzzle (the easiest part :wink: ). But the bulk of stack that has to pull the weight is the database.

I have a 5 node MariaDB Galera cluster (2x write, 2x read, 1x Arbitrator) along with a dual (active/failover) ProxySQL configured to split read/write. That also combined with the community Redis LRU cache middleware.

My actual Strapi implementation is 3x 6 core, 8GB of RAM virtual machines each running pm2 in cluster mode with 4 Strapi instances (in total 12 Strapi instances for a single environment).

What is possible with Strapi is limited to how you are hosting it, using various other applications to increase performance. I’ll make the analogy of:

Do you want it fast, easy, or cheap? Pick two. In my case, this is a hobby project however I landed on the fast and easy and I spend roughly 150$ to 200$/month for my setup.

Here is a rough layout of the design (it’s very high level):

2 Likes

Hello DMehaffy, nice graph.

I just wanted to ask where you are hosting it?

At the time I was not working for Strapi and I was working at a Data center, so in this case it was entirely bare metal servers I was running and managing myself (Combination of XCP-NG for the virtualization, TrueNAS for the SAN/Storage/NFS Shares, and PFSense for the firewall) I have instead moved to a local data center via dedicated unmanaged servers where I live in Phoenix, AZ but am currently in the process of moving back into a colocation space on bare metal. Currently this project lives in a PhoenixNAP datacenter. (Various machines but my primary servers are large AMD Eypc based with a lot of RAM and Storage, since I know a few people who work there I got a massive discount).

As much as I love the cloud, it’s expensive and being a previous Linux systems engineer and Jr. network engineer, I love hardware too much. I do however host various other services scattered around on AWS, DigitalOcean, Vultr, and Linode for more VPS light deployments.

My Personal Blog (that I’m planning to deprovision in favor of another): https://derrickmehaffy.com is ran on DigitalOcean.
My “new” blog is ran on Vultr: https://strapi.guru (along with my personal documentation https://docs.strapi.guru)

AWS is mostly for some of my more complex personal projects that I don’t really want to broadcast to the world.

1 Like