On 22 October, I posted on LinkedIn that my AI team and I had fired Rebrandly. By AI team, I mean the AI assistants I work with: they do the implementation, with direction and help from me.
The subscription saving was $384 a year. The better part was having a tool that worked the way I wanted.
I still love paying for really good services, software and content. I also enjoy being able to fire something that’s stopped earning its place. Both can be true. My bank account has raised no objection.
Then Johannes Sundlo asked whether I’d make JJ Links open source.
That wasn’t the plan.
He installed the public edition, put it to work for his own links and liked it enough to make a short video about the experience. So now the thing I’d made for myself was helping someone else, he was pleased, I was delighted, and I wanted to release the next thing too.
The origin story starts with Karin changing one frustrating task. This is what that same instinct looks like when it has more tools, technical support and room to build.
The replacement, and what’s underneath it
My short links have a fairly straightforward job: keep taking people to the right places. I need to find them, see where they go, create new ones, change destinations and understand something about their use.
The underlying redirects had already moved from Rebrandly to Cloudflare in August. What I wanted next was a useful operating surface around them. Cloudflare’s infrastructure console wasn’t the way I wanted to spend time with my links.
JJ Links became that surface: a searchable inventory, editing, activity information, exports and backups. For a sense of scale, the private dashboard was scoped, built and shipped on 22 October. The earlier redirect migration and the later preparation of a public edition were separate pieces of work.
The public edition’s architecture makes the arrangement inspectable. Cloudflare Bulk Redirects serves the links. Cloudflare Workers runs the dashboard, Cloudflare D1 stores its data, and Cloudflare Access controls who gets in.
If the dashboard goes offline, the configured redirects keep working.
That separation is the design. I wanted to make the part close to my own needs while leaving the underlying delivery to an established service. Cloudflare earns its place by doing that work.
Here’s another distinction I want to keep visible: we used AI to build the tool, but the public edition doesn’t need an AI model to run. There’s no OpenAI service or AI API required for ordinary operation. A thing made with AI can simply be software that does its job.
The $384 is the Rebrandly subscription I can dispense with. Whether the whole arrangement is worth it also depends on the other costs, the fit and the effort of living with it. That turns out to be an interesting discussion with a SaaS CEO. We’ll get to him.
Fill a gap. Replace a product. Follow an intention.
I’ve been saying “software is dead” with increasing emphasis. It’s a provocative way into a question I think software suppliers should take seriously: what happens when the customer can have a suitable alternative made for them?
The broad debate about AI and the future of SaaS is already underway. What I can add is a working replacement, the experience of sharing it with another person and a human starting point for thinking about who gains the ability to change things.
I see three movements happening together.
We can fill gaps. Some needs are too personal, occasional or small to sustain a software business. They still matter to the people who have them. As the effort of trying a solution falls, more become worth addressing.
We can replace things we buy. That’s JJ Links. There was a product, I was a customer, and now I have another way to do the work. A supplier has acquired a competitor it might not have considered: the customer, working with AI.
We can follow an intention across services. In conversations on PPList, a private mailing list I take part in, I’ve described this as moving from app to intent. I want an outcome; my AI can work with the relevant tools and information from the interface I already use.
Those movements put pressure on the familiar bargain in which I adapt to a vendor’s choices and keep paying because a better fit is too difficult to obtain. They also create opportunities for suppliers whose capabilities remain useful when someone else supplies the interface.
JJ Travel Hub is another experiment in my own life, built around how I need to understand bookings, people and changes. It’s a private beta where I’m the only user, and I intend to release it as open source. Replacing a service is a process of earning confidence, as well as making the first working version.
I can see a future in which Rebrandly and TripIt have no reason to remain in my setup. The interesting question for their businesses is what they’ll provide that remains worth choosing as customers gain more alternatives.
Dependable foundations. Personal choices.
The easier it becomes to make small solutions, the more I want the foundations underneath them to be dependable.
Some work benefits enormously from pooled engineering, continuity and clear responsibility. Delivering redirects reliably is one example. Identity, storage and other shared capabilities can also be things we sensibly buy, rather than recreate for each new need.
Other choices sit close to the person doing the work: the view they want, the steps they repeat, the connection between two things that currently don’t talk to each other. Those choices benefit from being easier to change.
In JJ Links, you can see the boundary. Cloudflare delivers the redirect capability. I get to shape the way I administer and understand my links. The personal layer can change without rebuilding the delivery engine.
That doesn’t make the provider invisible to my choices. Its pricing, reliability, rules and continued access still matter. I want exportable information, comprehensible dependencies and a way to leave. Source code is useful control; the ability to move is useful too.
An abundance of open-source projects won’t abolish those questions. A repository can be a wonderful starting point without being a foundation somebody should depend on. We’ll need to distinguish the two more clearly as the collection grows.
For providers, I see an opportunity here: make dependable capabilities easy for people and their AI assistants to connect to, combine and build around. A service can remain valuable even when the customer spends less time in its screens.
One more person. Enough.
I hadn’t set out to launch a product. I had a problem, a solution I liked and a LinkedIn post. Johannes supplied the next question.
Preparing a public edition meant doing some real work. Could somebody install it in their own account? Which assumptions were mine alone? Could we remove my information, explain the dependencies and make the limits understandable?
My AI team did that work with me. The result is a public repository, an MIT licence, setup instructions and a prompt someone can give their own AI assistant to help with installation.
Then Johannes used it. Watching him take something from my life into his, enjoy it and show it to other people made the whole exercise more fun for me. His question had changed the project. His response changed what I wanted to do next.
That’s why I’ll share Travel Hub too. I already know one more person can be enough.
There’s no requirement to establish a market, acquire a thousand users or invent a subscription before sharing becomes worthwhile. If making something reusable helps one other person, that can justify the effort. Explain the scope and support you’re offering, then let them decide whether it belongs in their life.
I suspect the confidence travels as well. Someone adapts a shared solution, discovers that making a change is within reach, and approaches their next frustration differently. Useful code comes with an example of a person like them doing something about a problem.
That’s the compounding effect I’m interested in: relationships, learning, generosity and the pleasure of making something useful encouraging another round of the same.
I don’t want to turn every hobby into a startup. Sometimes the entirely satisfactory result is that two people now have a better tool and enjoyed getting there.
The person with the problem
My contribution to JJ Links includes the problem, the context, the taste and the judgment. I know what bothers me. I can recognise when a clever-looking solution makes my actual life more complicated. I choose what to accept.
The AI team does implementation work I couldn’t simply wish into existence before. My own setup is unusually well equipped, and operating a deployed service involves access, checking and upkeep that Karin’s first text hack didn’t require.
I expect the distance between intention and a useful change to keep shrinking. That doesn’t mean every person will follow one technical path towards building applications. A saved instruction can be the right answer. So can a small integration, a dashboard, an existing service or deciding to stop the task altogether.
The shared idea is practical agency: the person who understands the problem has more means to change the arrangement.
For software businesses, that makes customer value a sharper question. What do you provide that people will still choose when they can assemble more of the answer themselves? Unusual capabilities, deep knowledge, dependable operation and excellent relationships are all candidates. They have to keep doing something useful.
For people doing the work, it creates a little more room for Job 2: improving how the work happens. The value can reach far beyond the subscription line.
What happened. What I think follows.
Observed: JJ Links exists, including an MIT-licensed public edition with documented dependencies. The public edition separates the management tool from Cloudflare’s redirect serving and has no AI-model dependency at runtime. Johannes reports installing and using it in his public video.
My assessment: It fits my needs better and removes a $384 annual subscription. That figure is a subscription saving, with hosting, domains, AI tools and upkeep still relevant to a full comparison. It isn’t a feature-parity claim about every Rebrandly plan.
My inference: AI-assisted implementation and existing infrastructure made this personal replacement practical for me. A friend’s request helped turn it into something useful to another person.
My forecast: More people will make personal solutions, replace subscriptions and share the results. Some separate app interfaces will recede as AI works with underlying services. I expect the experience of adapting a solution to encourage further experiments.
Still open: How widely this spreads, what upkeep people accept, who gets access and which suppliers develop new reasons to be chosen. The documented dashboard brief and release fall on 22 October; I haven’t logged active human build hours. The redirects moved in August, the public edition was another step, and Travel Hub’s open-source release remains ahead.
A SaaS CEO pushes back
A SaaS CEO read the argument and asked the obvious difficult question: if a subscription pools expertise, development and maintenance, could doing it yourself be a net loss?
That exchange now has its own essay, including my answers about ownership, upkeep, learning and the cost of living with a supplier’s choices.
I’m glad he asked. The future I’m arguing for needs to survive that question.
Sources and scope
JJ’s account of replacing Rebrandly and sharing JJ Links, developed from his original LinkedIn post, project records, public repository and Johannes Sundlo’s public video. First published 23 October 2026; revised 24 October 2026. Writing: AI + JJ.