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.