blog/js-fullstack #311
Replies: 2 comments 1 reply
-
I'd like to get into the nuance of Frontend vs. Backend vs. Full stack Having a backend platform that has opinionated answers to schema / db access, file storage, auth, scheduled jobs / async workflow, text/vector search, subscriptions/streaming, scalable hosting... is awesome. That is a huge pain point surfaced by this whole debate. However, this doesn't need to tightly couple with html rendering / all your frontends. Having a frontend framework that has amazing inter-op with your backend framework is amazing. E.g.: end-to-end type safety, reactive / realtime updates, authentication flows, etc. However, this doesn't need to be the same framework as your backend (and probably shouldn't if you care about mobile). Full-stack is exciting b/c the same developer can work on the frontend and backend at the same time, ideally in the same language, with the same models flowing through. Full-stack development is about enabling full-stack workflows. It doesn't require that the same company makes your backend and frontend abstractions. It's actually nice when you can have multiple frontends using different frameworks (RN, React, Swift, Kotlin, etc.) or change frontends over time, while still being owned by a single full-stack dev. For example, with Convex you can write your backend in TypeScript and your frontend with Next.js, Vite (Remix etc), Vue, Svelte etc. and they can all talk to the same backend API with end-to-end types and real-time reactivity. Convex has a built-in reactive database, serverless functions, subscriptions w/ automatic caching, file storage, auth, scheduled functions, text & vector search, automatic scaling, etc. It's the opinionated backend for TypeScript developers. AND you can hit the same API from golang / swift / etc. without getting html in response or duplicating all your business logic into opaque This enables you to ship frontend components that have associated backend logic, and makes it easy for people to drop that into their Convex projects, since the database models and logic is all speaking Convex, which isn't possible when the backend might be using any number of database connectors with varying degrees of transaction support (Convex has the highest (serializable) level of Isolation in its ACID guarantees). disclaimer: I work at Convex. |
Beta Was this translation helpful? Give feedback.
-
The issue is that Node.js was built at a time when service oriented architecture was being considered a better alternative than the monolith style of application development. Rather than have one application framework we got an environment that allowed us to easily script together all of the different units of our application into one larger thing any way we wanted. As time has progressed we have been getting more and more full featured opinionated frameworks but generally they still avoid databases but I think that is because we also have special runtimes like cloudflare workers or fastly wasm runtimes or firebase or aws or vercel and so on. Each of these has special rules around how and what they can run, suggested databases and how to optimize for them. If someone wants to make a modern version of rails they are going to need to make a few opinionated choices about how databases, routing and caching should work that are likely tied to specific types of environments which leads to odd relationships between the open source framework and these platforms that are all for profit companies pushing their own products. The world was simpler when Rails was pushing mysql and hosting whatever you made was often a server side version of whatever you ran locally for development just cloned a few times with a load balancer routing traffic between nodes. If someone wants to do this today I think the best path is to choose their favorite platform and highly tune it for that and assume you are going to get bought out by that company. Otherwise you get things like Svelte and Next.js that do everything but database/auth solutions but even these were bought by Vercel and it is pretty much the same story for all of the other successful ones. |
Beta Was this translation helpful? Give feedback.
-
blog/js-fullstack
Explain the histrocial reason why JavaScript ecosystem lacks a full-stack framework like Laravel or Rails and the contemporary endeavor for challenge the status quo.
https://zenstack.dev/blog/js-fullstack
Beta Was this translation helpful? Give feedback.
All reactions