I tried building this as a Ruby backend with a React frontend, a NodeJS backend with a React frontend, but I wasn't happy with the results of either. There was just too much boilerplate or workaround code to maintain for a part-time solo founder.
Eventually I settled on a Ruby on Rails app, with a Stimulus frontend, that is, no API, server generated HTML, old style... It's the smallest and tightest codebase of everything I tried.
I'm now running a private beta.