Log inGet Started
Blog›Founder notes

Why we built Marlo AGPL and self-hostable

A note from building this in the open.

Every AI marketing tool asks you to hand over your product's positioning, your competitor research, your content calendar, and your integration credentials to someone else's server. If they change their pricing, get acquired, or shut down, that context goes with them. We didn't want to build another one of those.

So Marlo's core — the agents, the strategy-document generation, the SEO/GEO checks, the crawler — is AGPL-3.0 licensed and fully self-hostable. Clone it, run npm install && npm run dev, connect your own LLM key, and it runs — no account with us required, no data leaving your machine. Everything lives in a local SQLite file. If you want to see exactly what an agent does before you trust it with your Google Search Console or Gmail access, the code is right there.

What "self-hostable" actually means here

Not a crippled free tier with the real features locked behind a paywall. The self-hosted version runs the same 10 agents as the hosted one — Articles, SEO, GEO, Site Crawl, Reddit, X, LinkedIn, GitHub, Hacker News, and Leads. You bring your own LLM key (Anthropic, OpenAI, Gemini, or a local endpoint via LM Studio or Ollama) and your own integration keys for whatever you want connected. No forced subscription to use the open-source core.

Why offer a hosted version at all, then

Not everyone wants to run a Node process and manage their own uptime. The hosted plans exist for people who'd rather pay a flat fee and not think about infrastructure — $29/mo with built-in AI models, or $9/mo if you'd rather bring your own LLM key and just pay for hosting. Same agents either way. The self-hosted path isn't a downgrade; it's the same product with the deployment decision handed back to you.

The other reason: it forces honesty

When your code is public, you can't quietly fudge a feature. Every claim on this site has to survive someone reading the actual source. That's why our SEO Agent runs a real HTTP crawl instead of an LLM guessing what your site probably looks like, why the GEO Agent's citation check is a deterministic search via Tavily instead of a model's opinion, and why the GitHub Agent drafts a reviewable pull request instead of claiming to open one automatically. If a feature isn't wired up yet — like live Reddit thread discovery — the UI says so, in the UI, not in fine print.

We'd rather ship fewer claims that are all true than a longer feature list that isn't.

Read the code yourself

Kumar2421/okara-alternative on GitHub — AGPL-3.0, issues and PRs welcome.