Isn't the AOT story for F# pretty meh? AOT + System.Text.Json requires source generation as best I can tell, which F# doesn't support yet (to my knowledge).
For anything that critically needs an audit log it's a pretty obvious choice (atleast compared to when people try to implement audit logs in a RDBMS).
I think it might also have a great deal of merit in prototyping applications quickly - Having the option to do just-in-time/memory projections while later switching to "real" storage seems really ideal to me if i'm just building something to validate it would like to defer those type of tech decisions.
Everything obviously has trade offs, no choice is perfect in everyway.
For me the pros of having data as an immutable stream of events (eventsourcing) is that you get migrations and data modeling for free - You don't have to deal with having to design the "perfect" data model in advance (or worry about schema/data migrations later on) and you can get caching as first level data rather as derived from another store.
Likely also better performance with just using Knex.
Any ORM likely adds overhead, Sequelize definitely does, although we keep working on reducing that overhead - But inevitably features === overhead.
"with tools like browserify i have to look at the folder structure"
I don't think Browserify cares about your directory structure as long as it can find the entry file it will figure out the rest based on your require calls (and also make sure they are in the right order dependency wise)
You need to consider how much of your app needs to be realtime.
Do likes, comments, whatever absolutely need to be updated in realtime? If they do, you should consider going with a full realtime service. If not, i would go with a backend that you feel comfortable with and build realtime where you need it.
I'm building a Ionic (AngularJS) based mobile-app aswell and went with Firebase for full realtime, but in hindsight i would probably have had a better go with using a RDBMS on the backend (which i'm way more comfortable with) and used Socket.io or similar for the parts that really needed realtime.
I've been thinking about something similar, an autoscaling job queue that could run off your own servers (via API) so you could decide the pricing/power you want.