A115 Logo Dark A115 Logo Light

A115 is a London-based consultancy helping fast-growing businesses and scale-ups build sophisticated on-prem or cloud-based technology platforms when code quality matters.

We specialise in rapidly building, securing and scaling cloud-native greenfield platforms to add new capabilities or expand into new markets. With over 20 years' experience productionising experimental code and complex systems, A115 provides end-to-end services - from initial architecture and infrastructure design through development, deployment and maintenance. Leveraging expertise across industries and technologies like Python, SQL, AWS and Azure, A115 enables clients to launch innovative products faster while ensuring robustness, resilience and regulatory compliance.

A115

Training and Consulting

Bookmark this page and check again soon for our personalised individual or team training packages and offers!

London, United Kingdom (HQ)

contact@a115.co.uk
Industry Insights

The Case for Skipping the Front-End

Why back-to-basics may be the smartest path for most projects

The complexity and cost of modern front-end web development has left many business leaders with a dilemma - go all in on a sophisticated JavaScript-heavy interface or take the minimalist route of basic HTML generation. In this article, we argue that for most business applications, the latter approach is in fact the wiser strategic choice.

Based on over two decades of serving enterprise clients and observing industry trends, we have seen far too many projects derailed by over-engineering on the front-end. The opportunity cost in terms of development speed, maintainability, and cost-effectiveness is simply too high. Here we present a contrarian case for a back-to-basics approach to front-end development.

Debunking the Myth of Superior UX from JavaScript Frameworks

The justification most often used for incorporating complex JavaScript frameworks like React or Vue.js is that they provide a superior, app-like user experience. However, this thinking tends to overlook several flaws:

  • Much of the interactivity enabled by these frameworks is often non-essential "nice to have" rather than "must have" functionality in a business application context. For example, features like drag-and-drop interfaces may dazzle but provide minimal productivity value.
  • The performance costs are considerable - large JavaScript bundles lead to slower initial load times, even with code splitting. This negatively impacts user engagement metrics. Server-side rendered HTML mitigated this issue.
  • Accessibility suffers unless consciously built in. Complex component trees and dynamic DOM manipulation introduce more points of failure for many kinds of users. Semantic, progressively enhanced HTML provides a more robust starting point.
  • Multi-page server-rendered apps can provide excellent UX for business applications. Technologies like fast page loads and partial updates are a viable alternative to single page applications powered by JavaScript.
  • Well-designed HTML interfaces follow principles like clarity, focused attention, and intuitive flow. The most sophisticated UI libraries achieve little if these fundamentals are lacking in the underlying interface design.

In essence, while JavaScript certainly enables advanced experiences, simpler back-end generated code can frequently provide equal or greater UX value at lower complexity. Business users are often perfectly happy with clean, easy-to-comprehend interfaces rather than whiz-bang graphics.

Of course, there are certain specialized interface elements where JavaScript frameworks excel.

For business applications demanding robust spreadsheet-style data grids that allow inline editing, filtering, sorting, and so on, a library like Ag-Grid is indeed hard to match from basic HTML building blocks. The interactivity enabled by the rich API of such grids simply cannot be easily replicated by hand-coding JavaScript and markup. In these scenarios where data exploration and manipulation is central to the user workflow, the boosted productivity for users may justify the added complexity cost of a powerful grid component. Though even here, we typically advocate starting simple with basic tables, progressively enhancing later once bottlenecks in the user experience have been validated. Premature optimization, as always, can complicate architectures that otherwise function effectively out of the box.

The Hidden Costs of Front-End Complexity

While the potential benefits of incorporating a complex JavaScript framework may be tempting upfront, the long-term costs are often overlooked, leading to surprises down the road. A few of the most painful expenses we have observed from front-end over-engineering:

  1. Developer turnover and ramp-up times escalate. When key front-end developers leave, replacing them requires finding senior talent familiar with the intricacies of the particular framework stack. Contrast this to server-side rendered apps, where new back-end devs only need know the language itself rather than the myriad specialized view-layer libraries.
  2. Performance optimization and debugging drains resources. Issues like bloated browser bundles or laggy event handling can be challenging to isolate and remedy within opaque third-party libraries. Simply staying current with framework upgrades also consumes extensive effort.
  3. Integration debt makes adding new features time-consuming. Tight coupling between front-end components causes cascading issues whenever modifying a certain section of the UI. Changes requiring updates across multiple interconnected files increase effort and risk.
  4. Testing burden grows exponentially. Sophisticated front-end frameworks tend to come with their own unit and integration testing ecosystems - adding entire additional stacks to simply validate correctness. HTML apps lean on back-end testing, avoiding duplicated effort.

While flashy and powerful in demos, production-grade front-end frameworks inevitably accrue interest payments in both engineering time and hard dollars over their lifespan.

The Power of Server-Side HTML: A Pragmatic Path Forward

Given the pitfalls of front-end over-complexity, the pragmatic choice for most business software is to lean on your back-end technology stack for view rendering. Modern web frameworks like Django and FastAPI for Python make this simpler than ever:

  • Leverage template engines like Jinja2 to generate HTML views on the server. Avoid dumping JSON for front-end code to format. UI logic can be achieved on the back-end.
  • Use server-side form processing and validation. This reduces an entire class of bugs and provides critical UX consistency. Let back-end code handle form workflows.
  • Implement server-side rendering (SSR) for the initial page load. This allows JavaScript to handle subsequent interactions. Achieve bookmark-able views, accessibility, and performance wins (and even easier SEO, if that's a priority!)
  • Stick to vanilla JavaScript and CSS rather than complex compilers. Gains from React's JSX or SASS are negligible for most enterprise software compared to their costs.
  • Evaluate specialist front-end libraries critically before incorporating. Ask whether they solve high-priority issues confirmed by real users.
  • Implement responsive design using flexible CSS layouts rather than dozens of front-end components. This approach is lightweight and reduces bugs.
  • Default to browser-native inputs enhanced by CSS over custom JavaScript replacements. Native elements lead to fewer surprises and require less testing.
  • Focus engineering resources on core back-end logic and data modeling. This is the heart of most business apps - the front-end is almost secondary.

By letting back-end frameworks handle rendering along these principles, engineering teams can build faster with fewer resources while delivering excellent user experiences. Avoid premature front-end optimization and over-engineering. Simpler is smarter.

With more than 20 years experience consulting some of the fastest growing brands in the UK and globally, the founder of A115 has a no-nonsense educational approach to modern enterprise software engineering.

Categories
Python Training
5
Bespoke Software
0
Code quality
1
Case Studies
1
Tools
1
Industry Insights
2

Subscribe to the A115 weekly newsletter!

By subscribing you agree to our Privacy Policy