DEV Community

Cover image for Liaison 1.0: Reuniting the Frontend and the Backend

Liaison 1.0: Reuniting the Frontend and the Backend

mvila profile image Manuel Vila ・2 min read

Let's talk about web app development.

It used to be simple. We implemented everything in the backend with some PHP code or Ruby on Rails and then, with a bit of JavaScript running in the frontend, we were done.

But times have changed. Modern web apps require rich user interfaces that can no longer be rendered in the backend.

So, from a bit of JavaScript running in the frontend, we switched to a lot of JavaScript using a single-page application model and a bunch of libraries.

There's nothing wrong with this. It's actually quite an elegant architecture:

  • The frontend is in charge of the user interface.
  • The backend takes care of the data model and the business logic.

The problem, however, lies in the middle. Now that we have two rich execution environments, we need to make sure that they communicate effectively. So, we implement a web API (REST, GraphQL, etc.), and everything gets complicated.

Conceptually, it's like we're building two applications instead of one.

The data model gets duplicated, and the overall complexity is such that the developers become duplicated as well.

If you're a frontend or backend developer, you can only do half the job, and you waste a lot of time communicating with the person in charge of the other half.

If you're a full-stack developer, you can implement a feature from start to finish in a much more efficient and satisfying way. But, given the sophistication of the stack, there's a lot you have to deal with, and it doesn't scale very well.

Ideally, we should all be full-stack developers just like we were in the beginning. But we need to dramatically simplify the stack to make this possible.

So, how to simplify the stack?

Sure, the frontend and the backend need to be physically separated. But it doesn't mean that they have to be logically separated.

With the right abstractions in place, an application can run in two different execution environments, even as it remains a single thing from the developer's point of view.

This is precisely what Liaison offers — a reuniting of the frontend and the backend.

The data model can be shared across the stack, and there is no need to build a web API anymore.

Some might argue that mastering both the frontend and the backend is not that easy.

The frontend is not only UI rendering, but it's also state management, routing, etc.

The backend is not only data modeling and business logic, but it's also data storage, authorization, etc.

Fair enough, it's not that easy. But here, Liaison also has a lot to offer.

So, hopefully, everyone can be a full-stack developer again.

Check out the Liaison website, start building something, and let me know what you think.

Happy coding! 🧑‍💻

Discussion (0)

Editor guide