Why I Built This
If you've ever worked in UX, you know the drill: we spend days researching and building beautiful journey maps, only for them to get trapped inside a proprietary tool or a static image.
I built Ptolemy because I believe our work shouldn't be held hostage by a subscription. We need a way to collaborate, version-control our insights, and share our data freely.
The OpenJourney Format (.ojf)
At the heart of this project is a simple idea: an open, human-readable JSON format for user journeys. By using .ojf, your data stays in your hands. You can track changes with Git, build custom reports, or even move your data to a completely different tool without losing a single node.
A look inside an .ojf file
{
"metadata": {
"title": "A Day in the Life",
"version": "1.0"
},
"stages": [
{ "id": "s1", "name": "Discovery" }
],
"nodes": [
{
"id": "n1",
"stage": "s1",
"title": "Found a better way",
"description": "User realizes they don't need proprietary software."
}
]
}
A Hobby Project with Heart
Just to be clear: this isn't a venture-backed enterprise platform. It's a hobby project built by a UX professional who wanted a tool that didn't exist yet. It's built with PocketBase and plain old JavaScript, which makes it fast, privacy-focused, and easy to host yourself.
Human-Led, AI-Built
There’s one more thing you should know about how Ptolemy was made. While I provided the vision, the UX requirements, and the final design calls, I actually wrote very little of the source code by hand.
Instead, Ptolemy was built using **Google Antigravity**, an agentic AI coding assistant. We worked together in a high-intensity pair-programming process where I acted as the navigator and the AI acted as the primary builder. It allowed me to focus on the problem I wanted to solve, while the AI handled the heavy lifting of implementation.
Help Make it Better
Ptolemy is currently in public beta. Since this is open-source, it belongs to the community as much as it does to me. If you have an idea for a new feature, find a bug, or just want to chat about the future of open journey standards, I'd love to hear from you.
Need an invite code? We are managing scale by issuing manual invite codes during the beta period. Please open a GitHub Issue to request yours!
Feel free to contribute code or report issues on GitHub. Let's make journey mapping better for everyone.