๐ŸงŠ Web application architecture

In helping someone choose technology for a web application, we've had a lot of discussions about various frameworks, languages, etc. AI tools will always push you toward NodeJS/JavaScript technologies. Yet, when you ask them for details, they will often admit that Rails is probably a better technology for workflow-heavy business apps.

The UI is the part you see: the part that is exciting, and the part React does pretty well. The boring parts (authentication, migrations, modeling, security, etc.) are parts you don't see, but are also important and may determine whether you have a sustainable product or a mess down the road.

There are good reasons to use various frameworks (real-time requirements, etc.), but I think Rails is the standard for full-stack frameworks, especially for small teams. You should at least discuss all the aspects in the graphic below and have a plan for how you are going to solve them if using something else.

The Web App Iceberg

Below is an AI-generated comparison, so it may not be completely accurate, but it is a good starting point when evaluating web-application technology.

FeatureRailsMeteorPhoenixAdonisJSNext.jsNestJS
ORM/Data Modelingโœ… ActiveRecordโš ๏ธ Collectionsโœ… Ectoโœ… LucidโŒ Bring your ownโš ๏ธ External
Migrationsโœ…โš ๏ธโœ…โœ…โŒโš ๏ธ
Authenticationโœ…โœ…โš ๏ธ Generatorsโœ…โš ๏ธ Libraries/Auth.jsโš ๏ธ
Authorizationโœ…โš ๏ธโš ๏ธ Librariesโœ…โš ๏ธ Librariesโš ๏ธ
Transactionsโœ…โš ๏ธโœ…โœ…โŒDepends
Background Jobsโœ…โš ๏ธโœ… Obanโš ๏ธโŒโš ๏ธ
Real-time Updatesโš ๏ธโœ…โœ… LiveView/PubSubโš ๏ธโš ๏ธโš ๏ธ
WebSocketsโš ๏ธโœ…โœ…โš ๏ธโš ๏ธโš ๏ธ
Full Stack Frameworkโœ…โœ…โœ…โœ…โš ๏ธ Mostly UI/APIโŒ
Convention over Configurationโœ…โœ…โœ…โœ…โŒโš ๏ธ
Batteries Includedโœ…โœ…โœ…โœ…โŒโš ๏ธ