Most tutorials you find online for building apps & websites take the (mostly correct) greenfield approach in order to not introduce a bunch of extra complexity and distraction.
But what if your app does take off? What if you look in your analytics and start seeing visitors from parts of the world you’re unfamiliar with? Well, what follows are a few things that you’ll want to keep in mind for when the time comes that your app needs to address a worldwide audience.
- This might seem obvious, but, languages!
At first this might seem like an easy thing to fix by creating a list of your strings where the values represent the translated version of the string.
However, as you travel further down this path, you’ll realize that your assumptions are flawed. For example, some languages treat plurals differently than others (and in some languages there can be 5 plural forms!). If you’re using string interpolation to inject dynamic values into text, the order of those replacements might need to change based on the language that you’re translating to.
On top of all this, numbers can be quite different as well, especially currencies. Obviously, converting pricing and other financial values to the local currency of the user makes sense, but it involves more than just swapping the value of a number. Some languages use spaces as a thousands separator, or a comma instead of the decimal place. If you just drop in the converted value, but not the localized format for the number itself, you could be misleading your users.
- The speed of light
If all of your content, APIs, and media are hosted out of a server in West Virginia, users in Malaysia are going to notice. Unfortunately, it will only get worse if your site requires multiple requests and round-trips to the datacenter before being useful.
The faster your site behaves, the more engaged your users will be over time. You should consider server-rendering your application so that the initial request a visitor makes to your site/app will at least have something usable on it while the remaining assets download.
Most modern browser dev tools allow you to throttle your connection during development to simulate what it might be like for users with different network conditions. You should experiment with these while you’re testing, you just might be surprised by how much empathy it helps you build for your users.
- What the heck is ‘UCBrowser’?
There are many more browsers on the modern web beyond Chrome, Safari, Firefox and Edge. As an example, Google Analytics for wattpad.com currently shows ~128 different browsers being used for accessing our web app. We aren’t able to meaningfully test our web application across that entire matrix of browsers. As such, we’re relatively conservative about which bleeding-edge HTML, CSS and JS features we ship. When there is something new that we want to implement, we’re careful to explore what the various fallback scenarios might look like for browsers that don’t support it. At a minimum, we aim to never show a user a blank page because of their browser.
- I Hope you’re mobile friendly!
In 2020 this is likely not a surprise, but it’s important to mention anyway. There are more mobile devices on the Internet now than there are ‘desktop’ class devices. Of course, your audience may be an exception to this, but, if your app has broad market appeal the large majority of your users will likely be on mobile devices. The way that you build and ship apps will likely have to change in order to work well on mobile. Don’t assume that all of your users are on the same class of hardware / network as you are while building it.
- Not everybody reads the same way you do.
Even if you’re translating text, there are some languages where the direction of that translated text matters just as much as the text itself. For example; users of Right To Left (RTL) languages (eg; Arabic, Urdu, Hebrew) will struggle to use your app unless you adjust the direction. How engaged would you be with a website that forced you to read backwards?
- SEO Considerations
This one may seem obvious, but is easily overlooked. Sure, your page headings are proper
tags, but are all those hashtags using tags as well? (they should be!). Using HTML properly will not only make things easier to keep working across all the browsers out there, it also helps to show crawlers and indexers how to navigate your application.
You might also want to consider using noindex tags on pages from users you don’t trust yet (ie: unverified accounts) so that the aren’t able to poison search engines’ index of your site.
- SPAM will happen
If your app or site accepts input from users in any way, eventually somebody will take advantage of that and start posting SPAM. It won’t matter if you disable links, they’ll post them anyway in hopes that it will be picked up by a crawler indexing your site.
As you start to scale you’ll need to invest in tools to help you both detect and eliminate this content. Otherwise it could affect your reputation either with your users, search engines, or the rest of the web.
- Your site will break in unexpected ways
The Web is an extremely diverse place. The plethora of browsers discussed earlier in this article are just one aspect. Unavoidably, this diversity is going to lead to errors in your application that you’ve never experienced during development. Sometimes it will be based on a user doing something you didn’t expect, others an API will create or return invalid data, a user’s ad blocker may decide to block one of your critical assets.
If you’re not tracking these errors you’ll never know about them. In this scenario ignorance != bliss. At a global scale you’re potentially leaving many of thousands (or more!) users unable to use your application.
- Different cultures throughout the world will react differently to your content.
Content that is acceptable to you might be seen as risqué in another country. This isn’t something that you necessarily need to solve for, but, it’s good to be aware of, particularly if you’re creating search or recommendation algorithms. You probably don’t want to be shocking your users unnecessarily if they innocently stumble into something they find offensive.
- The law isn’t global
You might come as a surprise to some of you, but, there is no “Global Law of the Internet”.
Similar to the previous point, there are parts of the world where the legal obligations for things like data protection, privacy etc. are different from where your business is based. As your online audience grows this can lead to trouble with various regulators if you’re not being proactive.
The internet is a big place! Filled with people with different backgrounds and values to yours. This is part of what makes it so interesting and wonderful, though not without challenges.
By keeping some of these ideas in mind as your audience grows, you’ll be able to continue to serve your users, no matter where they are in the world or what type of device they’re using. It’s a win-win scenario!