Still decided to answer a little more.
The key parameter of a web application that is responsible for performance is RPS, Requests Per Second, the number of requests per second that the application processes (and, as you know, RPS forms both the application code itself and the database, server, and network bandwidth ). From a single measurement it can not be taken out in any way, the only thing that can be imagined is that the requests go sequentially one by one and take the above described time. In this case, we get RPS = 1s / 0.00146s = 685 requests per second. The real RPS will not be equal to this number, and will always depend on the equipment (the real RPS can be both smaller and more calculated depending on how well the multithreading is implemented in the whole query processing algorithm and how much some queries can slow down others due to shared resources), but the number itself is very good (although, I suspect, you do not have a special load inside). It should also be said that it is considered good form to give the user a page within 200ms or 0.2s - this condition is also satisfied even with the cost of plus or minus 100ms for the network.
It’s also not worth worrying about the database, as long as your records are in the thousands. Optimizing communication with her is always a plus, but the fear of the influence of the database on the rate of fire is usually higher than what is really expected. Joins, as a rule, are represented by joins on large tables and samples on non-indexed fields, but this zoo usually only makes itself felt on large applications. As long as you have less than a conditional thousand entries, the difference in speed will most likely be within the bounds of the error. Once again, it is always right to optimize the database and cache the answers, but often this is a completely non-priority branch of development, and it is very easy to shoot a leg with caching.
Last remark - about samopisny CMS and node. There is such a general rule - hardware is cheap, developers are not - even the most serious server per month is cheaper than the programmer. While you are being sprayed into different languages, you (most likely) spend more resources (and not necessarily right now - finding a replacement specialist becomes more difficult), rather than everything was done on one technology stack. Similarly, about frameworks - they should not be neglected, because even the rate of fire will be compensated by well-established interfaces, basic codebase support and confidence in its futility, ready-made expansion solutions and many ready-made solutions that are needed now (the same query caching, for example ).