Ionic, Stencil, Capacitor, TypeScript.
A CouchDB per user for auto sync across multiple devices.
Backend with Node, CouchDB, TypeScript, pm2 on a VPS.
Sendinblue for transactional emails (EU).
Why? Because Ionic lets me target iOS, Android and web with a single code base and almost no custom view code per platform. For non-technical users it is "good enough". Nobody ever complained about the non-nativeness.
CouchDB enables auto-sync with 0 lines of syncing code. It’s good, although there aren’t super many tutorials on the web.
CouchDB makes my app offline-first. I’d say this aspect alone is extremely great. A competitor has a similar app, but native. However, saving data requires an internet connection. This makes their native app feel slower than my non-native offline-first app.
For account management, I wouldn’t use it again, because I like SQL and that it makes it more easy to calculate some business statistics you might need only once.