Introducing Messagevisor

Continuing my journey of publishing declarative Git-based workflows as open source projects, I am introducing Messagevisor - a tool for your i18n and l10n needs for application development.
What does it do?#
Similar to Featurevisor for features (flags, experiment variations, variables), Messagevisor is a tool for your messages.
What is a message? A message is a string (text, copy) that is displayed to the user. It can be a button label, a confirmation message, a warning message, etc.
It is the core of your product's communication with the user.
How does it work?#
With Messagevisor, you define:
- Locales: languages, formats, and inheritance
- Messages: your copy along with their translations and overrides
- Segments: for overriding translations with precise conditions
- Targets: for generating targeted datafiles for your application to consume with SDKs
The workflow is Pull Requests based:
- Developers (including vibe coders) make changes to the definitions
- Send Pull Requests to review, approve, and merge
- CI builds and uploads datafiles (JSON files) to a CDN
- Applications fetch the datafiles at runtime and use the SDK to translate the messages
The vision#
There's nothing exrtaordinarily new about Messagevisor. Several SaaS tools already exist for translation management systems (TMS) out there, that you may already be using.
Primary reasons for building Messagevisor were to establish a workflow that is fully:
- Git-based, with strong review/approval workflow
- Capable of scaling to thousands of messages
- Declarative, where the intent is expressed as code
- Single source of truth for formatting rules
- Honouring industry standards like ICU syntax
- Automated, with CI/CD pipelines
- Predictable linear promotions across environments
- Decoupled from application deployments, so you can ship translations independently of application releases
- Transparent, with a catalog view for humans to browse
- Testable, with tests and examples
- Extensible, with a plugin system for the CLI
- Customizable, with a modules system for the SDKs
- Open source, with a permissive license
It appeals to the engineering crowd more, but if your product engineering organization is into vibe coding, it might just fly with them too.
Agentic workflows#
When you have all your copy expressed as definitions in a Git repository, it also opens up new agentic workflows that can help you with your translation needs.
Use AI coding agents like Claude Code, Cursor, Codex, or any custom agent for creating new messages and translating them on the spot.
Skills will arrive soon.
The visors have begun to connect#
While Featurevisor is focused on feature management (covering feature flags and a/b test experiments), Messagevisor focuses on copy.
It produced an interesting use case where you may want to a/b test your copy variants based on the your experiment variation assigned to the user.
That's why there's now a Featurevisor module for Messagevisor SDK that allows you to use Featurevisor evaluations to gate translation overrides.
It will soon connect to Eventvisor as well for tracking these activation events for analytics and observability.
The synergy is already starting to show.
Are you ever going to stop with the visors?#
My original intention was to create a tool that would help me build UIs from expressive definitions across multiple platforms (Web, iOS, Android, etc.). So I don't have to go and build those apps manually myself for each platform.
Building is the easy part. Establishing an organization-wide process of collaboration and communication around the definitions is the hard part. That's where the visors come in.
I cannot get there in one go. So I focused on building the pieces that would help me get there, one at a time:
- With Featurevisor, feature management is covered
- With Eventvisor, analytics event tracking is covered in a vendor agnostic way (yet to reach stable v1.0)
- With Messagevisor now, copy management has entered the picture
I believe with the three above, once they all reach a stable version and start supporting multiple platforms together, I can start exploring the synergy further and build UIs from expressive definitions as well in a cross-platform way.
UIs are hard. But the journey over the last few years has been fascinating, and I am unlikely to let this suffering go to waste.
So, how can I get started with Messagevisor?#
- Check out the quick start guide
- Head over to the homepage to get an overview of the project
- Star the repo on GitHub
Going forward#
This is an early release, and bugs are expected. Please report them in the issue tracker, and let me know if you have any feedback.
I will be tackling the formatting side of things (l10n) more in depth in coming weeks and months, and also work on supporting iOS and Android SDKs in the future. This will be painful, but Messagevisor will go as close as possible to reach that cross-platform alignment.
If your team is interested in being an early adopter, providing early feedback, or contributing to the project, please reach out to me on Twitter / X or GitHub.

