What is Frontend Platform Engineering
This article assumes you know what Platform Engineering in general means, what an Internal Development Platform is, and what the intentions behind Platform Thinking are. Let's project that on the complexities Frontend Developers deal with in their daily work.
Before we dive into this, let's first establish that Frontend Development is a discipline with fundamental differences to Backend Development. Those differences lead to different workflows, architecture and requirements that need to be part of an Internal Development Platform.
The whole nature of the Frontend is that it runs on the client's hardware and operating system, over which you have no control. You can't just scale your application by throwing more hardware at it, or to break down a monolith into micro services, because it always runs on one client's device. Depending on your target audience, your client-side application may run on hardware that is 20 times slower than where you develop it on. Not only that, you also have no control over the device characteristics, capabilities, or even the runtime environment (OS/Browser/Webview combination).
Then, there's the inherent security issues that come with running interpreted (not compiled) code on a client device where the user is able to tinker with the source. Client-side persistence means storing readable data that can be modified, so never to be taken authoritative. To make matters worse, everything1 happens on a single thread. So if you think you can easily add some code to gather performance telemetry, this will happen on that very same thread and therefore degrade the performance you were trying to measure.
The Frontend Development ecosystem at large has become a hugely fragmented landscape of sub-ecosystems around Frameworks (such as Angular, React and Vue), Concepts (State management, Reactive programming) and another group proclaiming 'The Web is The Platform', and trying to leverage full-blown applications with just Web Standards and no frameworks. Everybody tries to solve issues Frontend Developers deal with, but in the process it's making the number of choices you make to build your Frontend Application almost unlimited.
You want to make sure the Digital Experiences your organization offers to its clients, are built upon a sustainable foundation of compatible frameworks, tools and concepts that are well maintained and can be arranged as one integrated, compelling Internal Frontend Development Platform.
If you want to speed up your Frontend Development, it's crucial that you limit the available options within your organization. You want to make sure the Digital Experiences your organization offers to its clients, are built upon a sustainable foundation of compatible frameworks, tools and concepts that are well maintained and can be arranged as one integrated, compelling Internal Frontend Development Platform.
In practice, you see many organizations starting their Frontend Platform activities by facilitating Frontend build pipelines. Frontend Continuous Integration pipelines are different from a pipeline for a Java-based microservice. You need different tools, different build agents and you have an entirely different way of running End to End tests, requiring client-side infrastructure to execute.
Deployments for apps using Client Side Rendering are usually relatively straightforward - the target is a simple nginx webserver or something similar. But what if you use Server Side Rendering or any of the 'in-between' rendering options? How do you leverage your company's infrastructure for building, testing and deploying a Frontend Application? These questions quickly draw Frontend Developers into areas they're less familiar with, or where they can't oversee the consequences of their choices beyond their own team. And that's where friction starts.
In some organizations you see Platform teams stepping up to help here. Together with for example a Frontend Chapter Lead they will be setting up some basic infrastructure to get Frontend applications from development to production.
And usually, that's where it stops...
But there are many other Frontend-specific frictions to be solved and there is much cognitive load to be reduced. Depending on where your Frontend Developers lose the most time, you can integrate many elements of a Frontend Platform into your Internal Development Platform.