Application or WebApp? A Basic Design Choice

Application or WebApp? A Basic Design Choice
System design reflects basic decisions
  • Introduction: Building on Web Technologies

Our view of organizing as product-focused teams matches our software development approach: each Argh Studio team is aimed at developing one and only one very focused and specific AI-assisted service. Our initial application is still in stealth mode, but some of the design choices we have made for it will also fit several of the additional services we are thinking of developing next.

We know that the services we write will all be designed to communicate across the Internet. One core design question thus becomes: what capabilities should go on which end (client- vs server- side)? Our experience leads us to the conclusion that utilizing a client-side Web technologies based "WebApp" as a graphical user interface (GUI) offers significant advantages over compiling a free-standing client "Application". These advantages notably include ease of GUI design, development, and update, as well as ease in implementing an accessible design.

Our experience & our test data both lead us to the conclusion that building a client-side GUI based on highly portable Web technologies is a critical part of building server-side code that is highly scalable and easier to maintain. When client updates happen easily and server changes do not have much effect on user processes, everything gets easier to accomplish.

  • Argument 1: Accessibility and Convenience

Web apps are platform-independent

Unlike free-standing applications, which need separate versions for different operating systems (Windows, macOS, Linux), one client based on Web technologies runs on all devices within a browser.

No installation required

Users don’t have to download or install anything. They just navigate to the web address and start using the service, which lowers the barrier to entry.

Mobile-friendly

A client based on Web technologies can be designed to be responsive, meaning it will work on smartphones and tablets and big-screen devices, all without needing a separate app.

Accessibility-friendly

Unlike most GUI libraries for compiling free-standing applications, clients based on Web technologies come with "accessibility baked in". Features to enable accessibility within user interfaces are built into Web technologies by design, rather than requiring "bolting accessibility on" as an afterthought.

  • Argument 2: Easy Deployment and Updates

Centralized control over updates

With Web client-side technologies we update the code on the server, and all users instantly access the new version without needing to download anything. In contrast, client applications require users to install updates manually.

Continuous deployment

With Web client-side technologies we can push small, incremental updates more frequently, ensuring the latest features and bug fixes are always live.

Version control

With Web client-side technologies version management is simplified, avoiding the complications of users running different versions of the application.

  • Argument 3: Cost and Resource Efficiency

Lower development costs

Building and maintaining software with Web technologies typically requires fewer resources compared to developing multiple platform-specific client applications. For example: a separate desktop application for each OS does not need to be developed, separate development teams specializing in multiple languages and platforms are not needed, and so on.

Scalable hosting solutions

With Web technologies, clients can more easily be designed for and hosted on scalable platforms like cloud-based servers and behind load-balancing front ends which adjust automatically based on demand, allowing you to handle high traffic volumes.

  • Argument 4: Better Integration with Web Ecosystem

Easier integration with Web technologies

By developing our services as HTTPS-based, a client based on Web technologies natively fits within the web ecosystem. Features like analytics, SEO, social media integration, client sessions and keys, and content sharing can be made more seamless.

Standard Web security protocols

Modern browsers offer robust security features such as HTTPS enforcement, sandboxing, and same-origin policies, which help secure our services "out of the box".

Progressive Web Apps (PWAs)

We can offer a near-native experience through "Progressive Web Apps", built on standard Web technologies which allow our clients to access native-like features (such as push notifications and localStorage) while still retaining the benefits of Web-based apps.

  • Counterarguments: Performance and Offline Functionality Concerns

Some argue free-standing client applications might offer better performance, especially for resource-heavy tasks. However, modern Web technologies, including WebAssembly and browser optimizations, have closed the gap for most use cases, especially for services like ours.

While client apps are natively offline-friendly, Progressive Web Apps and service workers can offer similar offline capabilities for clients based on Web technologies. For some examples: localStorage capabilities can enable clients to save their settings and most data locally, and we can ensure that users can still access saved content without an Internet connection.

  • Conclusion: Web Technologies fit our uses

The primary benefits of using Web technologies to build our clients include coding for accessibility, ease of update, production and distribution cost efficiency, as well as better service integration.

Reaffirming our thesis: as developers of services which prioritize user experience and scalability, clients based on and served by Web technologies are arguably the best option.

audio-thumbnail
Podcast 2
0:00
/419.541333