Skip to content
For builders with more than one brand

The content strategist for builders.

Harbor remembers how each of your brands sounds, plans the week from what actually worked, drafts it for every platform and waits for your OK.

Approvals3 waiting
XTue 9:00 AM
3 weeks, 2 rewrites, 1 feature. It does one thing, and it does it well.
Why Tue 9am is one of your best X slots. Last week: posts opening with a number did 1.7× your median.
✓ Voice · ✓ Length · ✓ MediaEditApproveScheduled
Voice: personal, data-led
Best slot: Tue 9am
↑ 2.4× your median
Publishes directly to · no middleman
XLinkedInInstagramThreads
5checkpoints per post · 1h 6h 24h 3d 7d
4platforms, published direct
0posts sent without your OK
100%open source · self-host free
How it works

Not a scheduler. A strategist that learns.

Most social tools stop once the post is out. Harbor starts there: every result feeds the next plan, for each brand you run.

Brand Memory

Each brand keeps its own memory

Voice, audiences, offers and knowledge per brand, refined from what actually performed and linked to the posts that prove it.

Explore Brand Memory →
Brand Memory · VoiceLearned from results
CompanyPersonal
CalmPunchy
Story-ledData-led
SeriousPlayful
PolishedCandid
DoFrom results
Lead with a number and back claims with real figures.
↳ Posts opening with a number did 1.7× the median (8 vs 18 posts).
AvoidFrom results
Links in the first part; put the link in a reply.
↳ Posts with a link up top did 0.6× the median.
DoFrom results
Write in the first person: one person sharing what they did.
↳ From the posts you picked.
Built for more than one brand

Every brand sounds like itself.

A product, a side project, your own name. Each brand has its own voice, best times and baseline, so a win on one never skews the other.

HarborOpen-source SaaS
Voice
Personal · data-led · candid
Best time
Tue 9am on X
Median at 24h
2.9K +22% vs last week
Tidewater CoffeeSmall-batch roaster
Voice
Warm · story-led · playful
Best time
Sun 7pm on Instagram
Median at 24h
3.2K +26% vs last week
FieldnotesNewsletter
Voice
Calm · considered · polished
Best time
Wed 8am on LinkedIn
Median at 24h
1.4K flat vs last week
For agents, too

Let Claude work in Harbor.

Harbor ships an MCP server. Any agent can read Brand Memory, check best times, draft and propose posts. Proposals land in Approvals like everything else.

terminal
$ claude mcp add --transport http harbor \
    https://your-harbor/mcp \
    --header "Authorization: Bearer hbr_…"

> Plan next week for Tidewater Coffee

  ✓ get_brand_memory   Tidewater Coffee
  ✓ best_times         Sun 7pm, Tue 9am, Thu 1pm
  ✓ suggest_ideas      3 ideas from last week's winners
  ✓ draft_idea         Instagram, Threads
  ✓ propose_post       3 posts → waiting in Approvals
Open source

Your content, your data, your server.

Harbor is AGPL-licensed. Run it on your laptop in sandbox mode with no keys and no spend, then connect your own platform apps when you’re ready.

  • Sandbox publishing and a built-in model: try everything for free
  • Postgres, or an embedded database for local use
  • Your own platform developer apps; tokens encrypted at rest
git clone github.com/tryharbor/harbor
~/harbor
$ git clone https://github.com/tryharbor/harbor
$ cd harbor && pnpm install
$ pnpm dev

  Harbor API on http://localhost:4800
  publishing: sandbox · model: simulated
  Harbor on   http://localhost:4801  ✓
Pricing

Priced per brand, not per seat.

Self-hosting is free forever. Harbor Cloud is opening soon at early pricing.

Self-host$0Unlimited brands on your own server. AGPL.
Starter$19/moUp to 2 brands, hosted.
Builder$49/moUp to 6 brands, hosted.
Agency$149/moUp to 25 brands, hosted.
Compare plans →
Get started

Plan next week in an afternoon.

Self-host Harbor free, or get early access to Harbor Cloud. Either way, nothing posts until you say so.