Best practices for web app development

11 min read
September 18, 2023

Despite the ubiquity of iOS and Android apps, web applications still have their place.

According to Statista, software-as-a-service (SaaS), arguably where web apps are mostly used, is still rising in popularity and attracting users. By 2024, it will be a $232.3 billion market.

The fact is that there are still advantages to using web apps, such as convenience (no installation needed), relatively low cost, and ease of troubleshooting.

Of course, the niche is still plagued by plenty of issues, such as slow performance and UI limitations.

To compensate for this and build the best web app possible, it pays to observe a few best practices.

Choose the right tech stack

As with any software project, the tech stack is critical in its success or failure. And arguably more so with web apps.

That’s because most web apps are created using a combination of tools that work harmoniously together. This is unlike mobile apps, where most of the software can be written in a single language, like Swift or Objective-C.

Tech Stack

Take the front end.

Any web app UI will require three components—HTML, CSS, and JavaScript. But within these, there are dozens of sub-libraries and frameworks you’ll need in specific circumstances.

For example, there are plenty of JavaScript-based tools like Vue, Angular, and React. Each has its own use cases and developer profile.

For instance, because of its ease of use, Vue is suitable for less experienced programmers. Angular, on the other hand, offers more advanced features that are ideal for larger web apps.

vue vs react vs angular scaled

The same choices are also present in the back end.

There are simply dozens of programming languages, database management platforms, server systems, and third-party tools to pick from. Should you use NodeJS or Python? Are they better paired with MySQL or MongoDB?

If you pick the wrong tools for the wrong application or team, your project can be at risk.

The best approach is to take stock of your project requirements.

What features do you plan to build? Is there a minimum performance benchmark you expect the app to run? How many concurrent users do you predict during peak usage?

Once you’ve answered these questions, finding the tech stack that could fulfill them all will be much easier.

You should also consider the skill level and knowledge of your developers. After all, it doesn’t matter that Angular is more powerful if no one in your team can use it.

If you need to use a specific tech stack, be prepared to make the necessary adjustments, by allotting time for training or outsourcing to a third party.

outstaffing infographic .png

Finally, don’t forget your tech stack’s development and maintenance costs. If licensing a tool is too expensive, consider an open-source alternative, as it could be cheaper in the long run.

The bottom line is that picking your tech stack should never be a guessing game. Instead, it should be based on the requirements of your project.

Design a great user experience

The one thing that unifies web apps with mobile apps is the need for a fantastic user experience.

There’s no shortage of statistics and studies that point to the effectiveness of having a good UX and UI. But it boils down to a lack of clarity—be it from an unclear copy or poor navigation.

image 5

illustration: DECODE / data: Zippia

So, how do you achieve a good user experience in your web app?

A good tip is to use the appropriate design pattern when creating your UI.

Design patterns are like shortcuts. They tell you how to structure the elements of your web page, such as using a grid layout or a list layout.

Different design patterns suit different web applications.

For instance, if your web app deals with large amounts of data content, an editable list or card pattern is ideal, like the one Asana or Trello uses. They allow users to directly edit and manipulate data without transitioning to a separate screen.

Trello card templates

On the other hand, a grid layout is ideal if you need to load a dynamic amount of picture-based content, as you would find in a typical e-commerce web app. Pinterest is a great example of this layout.

Another UX design best practice is to use feedback cues.

Feedback cues give a visible sign whenever a user performs an action, whether it’s clicking on a button or dragging a card around the screen. These cues show users that their input is registered and that the web app is doing something about it.

Without feedback, users wouldn’t know what’s going on, and that could confuse them.

Finally, opt for minimalism on your web app. Not only would this involve fewer assets to create, but it would also be easier for users to navigate. Plus, streamlined UIs load faster—which is another critical metric to consider.

Optimize the app’s loading speed

Loading speed is perhaps one of the most fundamental yet critical metrics of your web app.

People hate to wait. The more they do, the more likely they’re to drop out of your web page.

A 2023 Statista study backs this up. According to its findings, roughly 54% of your users will leave your page if it takes five seconds or more to load.

image 12

The flip side is that you can improve your retention rates significantly even with just a one or two-second reduction in load times.

To do this, you need to know the factors that contribute to load speed and optimize them as much as possible.

The easiest step is to reduce the file sizes of your graphic assets, such as images and animation files. You can do this by using a compressed format, such as JPEG, that minimizes size without sacrificing too much quality.

Another factor is latency, which is the time it takes for data packets to travel from the server to your user.

As latency depends on your network traffic, you can’t always control it. However, you can compensate for this by using Content Delivery Networks (CDNs).

image 15

CDNs distribute your data to servers worldwide. When a user tries to access your web app, the system automatically retrieves it to the nearest CDN server, thereby minimizing latency and load times.

Of course, you can’t always minimize your load times. There will be times when the Internet connection is just too slow, or the latency is too high.

In these cases, informing your user that the web app is loading is a good tactic.

Screen Shot 2022 08 07 at 06.35.33

Indicators like this tell your users that there’s nothing wrong with the app and that it’s just loading. It also lessens the chance that your user will refresh the page or close it entirely.

Ensure the app is responsive

In today’s world, where people browse the Internet on various devices, having a responsive web app is a minimum requirement.

A responsive web app means that it adapts to your user’s device by automatically resizing the layout to fit the target screen’s dimensions.

benefits

But it’s not just about resizing. Often, layouts or even the elements themselves need to be swapped out.

For instance, buttons on mobile screens need to be larger than their desktop counterparts to account for the size of the thumb. They should be at least 10 mm in height as a standard.

If you use the same button across all devices, there’s a high chance of misclicks, and that could annoy users.

image 14

The best approach to creating responsive web apps is to use a fluid grid.

Fluid grids are based on percentages instead of set pixel measurements. That way, when the screen resizes, the whole layout adjusts proportionally. It also detects the device the user is on and loads the appropriate desktop or mobile layout.

image 6

Another good practice is setting design breakpoints.

A breakpoint is the width threshold at which the layout switches. For example, say a desktop web app is best viewed with a minimum of 1,000 pixels on a desktop screen. If the screen goes below 1,000 pixels, the server will automatically load the mobile version instead.

Breakpoints can be set using CSS.

Build the app to be scalable

Web apps can potentially expect thousands of users at a given time. Thus, they must be scalable.

Scalability measures the capacity of a web app to handle a large volume of users connecting at the same time without a noticeable drop in performance.

This is especially crucial in mission-critical apps like in health, finance, or government. Can you imagine if your online banking suddenly goes down just because a hundred users are connected at the same time?

Scaling can be approached in two ways—horizontal or vertical.

image 7

Horizontal is essentially adding more machines or servers to handle the surge in traffic. Vertical scaling is beefing up individual machines by adding more processing power or processing speed.

Also, if you want to build a scalable web app, you should adopt a microservices architecture.

In a microservices app, parts of your app are built and treated as individual, independent programs that communicate via API calls. The benefit of this approach is that you can code, test, and modify each component without affecting the rest of the system.

fd0edfdd 0b92 453d 8d52 9ca982c4ed1e Screenshot+2021 11 28+at+22.25.53

The microservices approach makes it relatively easy to scale down the relevant parts of your web app.

For instance, if you expect more people to buy a certain product on your e-commerce site, then you only need to scale the performance of the product page. Other things, like the UI or database, don’t need to be modified.

But the bottom line of building scalable web apps is to ensure that every part of your app ecosystem is also scalable. That means choosing database systems, servers, infrastructures, and frameworks that are scalable, too.

Keep security a high priority

Security is a primary concern with web apps. However, the good news is that since you host the web app yourself, it’s relatively easy to monitor and fix any issues that abound.

Nevertheless, you still need to be vigilant of the many threats that affect them.

One of the more common is a Distributed Denial of Service attack, or DDoS.

In a DDoS attack, hackers direct multiple computers to send massive amounts of traffic to a web server. This crashes the server and makes it inaccessible to legitimate users.

The way to protect against DDoS attacks is by using DDoS protection software. These can detect signs of DDoS early and then redirect them harmlessly from your servers.

Another dangerous attack is cross-site scripting or XSS.

In this method, a hacker tries to intercept legitimate requests from your server and then modifies it with a script. This allows the attacker to steal files, modify your website, or redirect the user to a malicious site.

image 13

This is just the tip of the iceberg. There are dozens of attacks, each with the potential to wreak havoc on your web app.

Though it helps to have secure coding practices in place, it’s not enough. You need to protect your entire app ecosystem with a seven-layer approach.

infrastructure security

Think of this framework as protecting your castle (in this case, your sensitive files and app code) with multiple walls and moats, each providing a layer of security against attacks.

Do it this way, and attacks won’t get through and only cause minimal damage at best.

Need help building your next web app?

There you have it, the best practices for building successful, secure, and responsive web apps.

Though they might seem a lot to take in and difficult to apply at times, take the time to implement them. They can increase your chances of success.

Or, just hire DECODE to help you!

Our pool of over 70+ web developers has the skills and experience to make your next web app project a reality.

Interested? Schedule a call with us today, and let’s talk!

Categories
Written by

Tarek Saghir

Software Engineering Team Lead

Tarek is our go-to expert for all things JavaScript, especially React. A proud graduate of the University of Zagreb’s Faculty of Organization and Informatics, he’s honed his craft on some of our toughest projects while managing to lead our JS team at the same time. Pretty impressive, right? Outside the office, you’ll find him dominating in Dota 2 and Counter-Strike. He'll also often daydream about his ideal workspace in the picturesque hills of Zagorje near Trakoscan castle with a Starlink connection, so he's always ready for action.

Related articles