Developer tools

Your users read source code for fun. Hiding the check from them is not the plan.

A CLI, a library, a build plugin: the audience buying it can read exactly what your license check does, because that is what they do all day. Pretending otherwise wastes effort on people who were never going to be stopped by obscurity.

The part nobody warns you about

You built something developers actually want, and the first thing a chunk of them do is open the binary in a decompiler out of habit, not malice. Worrying about that stops you shipping at all, when the actual job is pricing it for the ones who will pay.

What Bloom does about it

A check at startup

The tool reads a key from an environment variable or a config file and validates it when it runs. A refusal comes back with a reason, so your error message can say something a developer trusts.

Locked to a machine, or not

Send a machine id and a seat is one install. Leave it out for a key meant to move between a laptop and a CI runner, and decide which fits your pricing.

Revoke a seat, not the whole tool

Block one license from the panel. Everybody else's key keeps working, because their key was never the one that was shared.

Old versions on your terms

Send the running version with the check and decide what an old release gets: still valid, a nudge to upgrade, or refused once you have patched what it was missing.

The model that fits

License key in config

Developers already expect an env var or a config file for a token. Asking for one more, named for your tool, costs them nothing they have not done before.

You deliver a license key to each customer (by purchase, email, or login). The app validates the key against Bloom Cloud and activates it on their machine. Simplest for products that already sell keys.

The integration is one HTTPS call, and the panel hands you the code for it in JavaScript, Python, Go, Java, C# or PHP. There is nothing to install.

What people ask

Can I license per seat instead of per machine?
Omit the hardware id and a key is not locked to anything, which behaves like a seat a person carries between machines. Send it and the key locks to the first machine that used it instead. Pick whichever matches how you price it.
What about CI? A pipeline is not a person.
A CI runner is just another caller with an HTTPS client. Issue it its own key, and decide in your own pricing whether a CI seat costs the same as a developer seat.
Somebody will just read the check and patch it out.
Some will, and no licensing product can honestly promise otherwise to this audience. What it does is give you a lever over the license that turns up resold on a forum, which is the case that actually costs you money.

Something else on your mind?

Ask before you sign up. It reaches a person, and you get an answer by email.

Ask us

What Bloom does not do here

Bloom does not obfuscate your binary or your source, and there is no build step that hides the check from somebody reading the code. It is a license you control, validated over HTTPS, nothing more.

Bloom does not care what it is

The same account, the same call, whatever you happen to have built.