In this tutorial, you will learn in simple English what people mean when they talk about an isomorphic web app. The first time I heard this term was in a meeting and I had no idea what the speaker was banging on about. I think my brain made some strange associations on what the terms made. Was the dude in the meeting referring to a film and say Xenomorph (from the alien's film), was it to do with security or privacy, was he referring to a special sports drinks made by Lucozade, all I knew is that I didn't know! The term isomorphic web application is another classic technology bit of jargon. Something that sounds fancy for a concept that is pretty simple to understand. In plain English, an isomorphic web application means a website where you use the same language to process server and client-side renderings. This means that you use the same thing to build your website in a web browser and you use the same language to build any backend APIs.
What Are The Benefits Of Isomorphic Web Applications
If you use C# to render all your backend APIs and you use React to render your frontend, as a business you have a dilemma. Do you try and hire someone who can do both well? In my experience, these are tough hires to find. I have been working in London within the tech sector for nearly 20 years and I've only ever met a handful of people I'd consider great at C# and who know Javascript inside out.
To build the application, as the business owner, does this now mean you need to hire two people, one for the backend, one for the frontend? This will cost the company more money to build the project, which will mean the pitch and price could be less competitive compared to a company with cheaper running costs. Also, as we have a technology split, is this maybe how we split the teams up. Now we're organizing how our business works based on technology. In terms of hosting and infrastructure, maybe the two teams have different opinions. Do you have the website head in one place and the backend API in another area?
These dilemmas get solved by building isomorphic web applications. If you can move towards an isomorphic architecture, you can hire one set of developers and in theory, they should all be able to juggle around the stack and work wherever. For a business, this has loads of advantages, developers who can work on more things, reduced staff costs, increase shared knowledge while eases frictions of two different teams having different opinions on how things should be built. Sounds ideal right?
What Is A Universal Application?
Micheal Jackson who builds React Router took this term one step further and coined the term 'universal'. A universal application can run on both server and client WITH the same code. You can combine React.js with node.js to render your React code. Server-side React combined with client-side React can give you better SEO and performance benefits.
Are Isomorphic Web Apps Basically Only Applicable To Javascript?
At the time of writing, JavaScript is the only language that has this client and server ability nailed. If you do not work with Javascript then I'm not sure you would come across the term isomorphic web application. You certainly won't have the ability to build them 😢
A lot of time and effort is being made to allow isomorphic web apps to be built with different languages, however, none of these advances is really there yet. If you want to look at some potential new technologies that could change the game in terms of how the web is structured, I recommend you check out web assembly as you may be surprised to what languages you can get working in the browser. If you like C# for example, then Blazer is also worth a look. Happy Coding 🤘