For our customer for which we build multiple whitelabeled
smartphone apps from one codebase, one of the challenges
is constantly keeping the in-app text labels and strings
easily customizable and localizable.
With our approach, we are keeping the labels outside the
binaries and we can update or change them whenever we
like. How we achieve this flow: The labels are stored in
bitbucket git repository as json files. In the Git repo we
have so called “base” JSON files per every language we
support with additional JSON files per whitelabel customer
that has only the different labels per language for that
particular customer. This enables us to easily change a
label either for all or only one whitelabel customer per
language. In order to streamline and process the JSON
files on every git commit we added a bitbucket pipeline
and a shell script that runs in the pipeline that
processes the JSON files, merges the label data, generates
final JSON files per customer and uploads them in
Backblaze B2 bucket from where we serve those JSON files
through Fastly CDN to our millions of active
applications.
At the end, the label JSON files are accessible through a
public http URL path served by Fastly CDN and refreshed
and cached by the apps on a regular basis. So no need of a
backend server, no need of a http server, no need for a
plan for scaling. All is done in one beautifully designed
Gitops fashion scalable to millions of requests from the
apps.