A content operations platform. One strategy drives everything — SEO articles, social posts, finished video — generated, reviewed, published and tracked in one place, where every move the machine wants to make is a proposal you approve.
Strategy, studio, publishing, analytics. The platform works the content. You approve, reject, or edit — nothing ships without you.
A narrated walk through one quarter of Fjord & Pine, the demo brand this whole page runs on — the strategy drafted, a brief fanned out, cuts rendered, the SEO matrix expanded, the queue decided, and what came back. Every frame is the product's own chrome: the same screens, the same data and the same palette as the live scenes below.
Nimbusthe product film · narrated
One quarter of the demo brand, end to end: the strategist drafts the 90-day plan, a brief fans out into an article, five posts and a storyboard, the storyboard renders to three cuts, the SEO engine expands 36 grounded pages, and everything queues for your approval — then the comments and the numbers come back.
the strategythe studiothree cutsthe seo enginethe queuewhat came back
Rendered with narration and score, like the Stratus films — same Atlas palette, different product. The figures it shows are the same figures on the strategy and performance boards below.
// the idea
The tools multiplied. The content didn't get better.
A keyword tool, a writing tool, a scheduler, a video editor, an analytics tab per platform — and the strategy in a slide deck nobody opens. Nimbus holds all of it as one model: every piece of content knows which strategy slot it serves, where it will publish, and what came back.
A marketing stack asks
Which of our nine tools owns this post?
An agency asks, every Monday
Who is writing this week’s content?
Nimbus asks, once
What is this piece for, and what may happen to it next?
Both halves of that answer live in the platform. A piece is an object with a purpose and a lifecycle — and the lifecycle is made of actions you approve.
// the strategy
The plan is the product's first proposal
Give it the brand brief, the channels and last quarter's numbers, and the strategist drafts a 90-day plan — pillars, keyword clusters, a channel calendar. You approve the week in one pass or reject a slot with a reason. It never silently rewrites the plan; revisions arrive as diffs.
nimbus/strategy/q3/
the 90-day plan · drafted from the brief + last quarter3 pillars · 3 clusters · 56 slots proposed
Small-space living40%
the traffic pillar — search-led
Materials & care35%
the trust pillar — depth-led
Workshop stories25%
the brand pillar — social-led
small living room layout14 briefs · 2.4k/monow #3
oak table care9 briefs · 1.1k/monow #5
scandi furniture quality11 briefs · 880/monow #8
Monarticle · corner lightingpost · article teaser
Tuereel · 3 rulesreel · cross-post
Wedvideo · oak table care
Thucarousel · before/afterthread · from article
Frinewsletter · weekly issue
every slot is an actionstrategy.proposeslot.approveslot.rejectstrategy.revise
90-day plan
pillars → clusters → calendar, drafted from the brand brief and last quarter’s numbers
every slot is a proposal
approve the week in one pass, or reject a slot with a reason the strategist learns from
it re-plans
when a cluster stalls or a post outperforms, the revision arrives as a diff — never a silent rewrite
// the studio
One brief becomes everything the slot needs
A brief is one strategy slot made concrete. The studio takes it and drafts the whole set: the SEO article with its outline, meta and internal links; per-channel posts written for each channel, not pasted across them; and a video storyboard that renders to finished cuts.
the brief — one strategy slot
Corner lighting for small rooms
pillarSmall-space livingclustersmall living room layoutintenthow-to · bottom-of-funnel CTA to the lighting collection
SEO article1 900 words · outline, meta, internal links to 4 existing pieces
H1 proposed from the cluster head
FAQ block from real queries
schema.org markup
Posts, per channel5 variants — not one caption pasted five times
LinkedIn: 120-word insight
X: 6-tweet thread
Instagram: carousel copy + alt text
Video, storyboard to cutscripted, storyboarded and rendered in the platform’s own pipeline
16:9 for YouTube
9:16 for TikTok / Reels / Shorts
1:1 for feeds — same storyboard
The video column is not a mock. Approve the storyboard and the pipeline scripts, lays out and renders the cut in 16:9, 9:16 and 1:1, brand kit applied — the film above walks that exact flow.
// the seo engine
Programmatic SEO that cannot invent facts
One brief can also become a corpus. The planner turns an idea into axes and a section blueprint, expands the matrix, and generates every page against the brand's fact book. A quality gate bounces prose that is too long, off-doctrine or too similar to its siblings — with directive feedback, not 'try again'. A fact-checker then verifies grounding: every concrete claim must match a recorded fact, or the page flags and waits. This engine is not a roadmap item — it already runs a production site; Nimbus inherits it whole.
nimbus/studio/briefs/care-guides/
a programmatic brief · tier T2 · planning assisted · publish review-all36 candidate pages · 3 languages
Care guides, per wood and finish
A guide for every wood × finish combination we sell — what to oil, what to avoid, how often. Link each guide to its collection.
wood
oakashwalnutpine
finish
oiledsoapedlacquered
language
endesv
4 × 3 × 3 = 36 pages · slug {wood}-{finish} · one blueprint, one review
planidea → axes + section blueprint, as a proposal you edit
generateevery block written against the fact book
quality gatelength · doctrine · similarity vs siblings
fact-checkevery concrete claim must match a fact
reviewflagged content always waits for you
commitpages · sitemap · hreflang · 301s
the quality gate — all three must pass
word windowevery section inside its band — and the retry prompt is directive: “210 words, the target is 60–160”, never “try again”
banned phrasesthe doctrine list — the words your brand never says, enforced at generation time
similarity ≤ 0.555-gram overlap checked against sibling pages in the same language — 36 guides, no two allowed to blur together
fact-check — grounding, not the world
214claims grounded
96generic — nothing to verify
3flagged for review
“oiled oak needs re-oiling every six months”no supporting fact in scope wood:oak — accept it, cut it, or add the fact and it grounds on the next run
Regeneration is deterministic: voice, angle and layout derive from a hash of the page key, so a re-run reproduces identical pages and a resumed campaign skips everything whose inputs did not change. Renamed URLs write 301s with chain collapse; canonicals, hreflang alternates and the sitemap all come from the same pages table.
// the guarantee
One publish path, and review is a stage in it
Everything that would leave the platform — a post, an article, a video upload, a comment reply — goes through the same pipeline, whoever drafted it. Agents run in propose mode: their work stops at review and waits for you.
a piece you wrote yourselfmode: auto
strategist · studio · triagemode: propose
publish()
draftgenerated against the strategy slot
reviewapprove · edit-and-approve · reject with a reason
schedulequeued to the channel’s best window
publishthrough the channel’s own API
trackmetrics and comments flow back to the piece
publishedthrough the channel’s API, at its best window — the piece starts reporting back
pendingan approval card — the draft, its evidence, and what it will post where
rejectednothing posts — the reason is mined into a rule the next draft obeys
The approvals queue doubles as the audit trail: what was proposed, what you changed, what shipped, and what it earned — one record per piece, never pruned.
// the decision
A proposal is never take-it-or-leave-it
Edit-and-approve opens the draft in the real editor — the post, the article, the storyboard — and one click ships your amended version as your own action, rejecting the original with a reason the drafting agent learns from.
article.publishpending
Publish "Corner lighting for small rooms" to the Journal
WordPress draft ready · meta + schema set · 4 internal links
content studio · brief approved Tuesday
Edit & approveRejectApprove
applied
Every card carries the draft, the evidence behind it, and exactly what will happen where. Edit-and-approve files your version as your own action.
The dial goes channel by channel
Auto, propose, or manual — per channel and per verb. Let the newsletter schedule itself, keep TikTok replies on propose, keep anything touching the blog behind your approval. The default everywhere is propose.
Rejections are mined, not wasted
Reject three drafts for the same reason and the pattern is written down as a voice rule you confirm once. Every confirmed rule calibrates every draft after it — tone, claims, hooks, length.
// the channels
Publishing and measurement are APIs, not tabs
Connect a channel once with OAuth and it becomes two pipes: proposals flow out through the channel's own publishing API, and its numbers and comments flow back to the pieces that earned them.
publishCMS + social APIs · OAuth once, then governed publishing
A channel never sees an unapproved draft. Tokens live in an encrypted vault; revoke a channel and its queue freezes — it never leaks.
// the mailer
Email marketing is built in, not bolted on
The mailer we run in production at nuage.ee — identities, contacts, groups, templates, campaigns, follow-up sequences with response detection — rebuilt inside Nimbus with the AI layer on top. Campaigns are drafted from the strategy, sequences stop themselves the moment someone replies, and every send sits in the same approval queue as everything else.
Campaigns from the calendar
The Friday newsletter slot is a campaign. The issue is drafted from what shipped that week — in the brand voice, against the fact book — and waits in the queue like everything else.
Audiences that maintain themselves
Contacts imported and deduplicated, groups kept clean, and behaviour-based segments — clicked twice, went quiet, bought once — proposed by the platform, never applied silently.
Follow-ups that know when to stop
Sequences send until someone responds — response detection cancels the rest of the thread the moment a reply lands. The reply itself joins the same triage queue, with an answer drafted.
Deliverability is bookkeeping
Sending identities and SMTP tested before a single send, failures retried with backoff, and per-recipient opens, clicks and bounces joined back to the campaign — and to the strategy behind it.
The sending engine is proven on our own outreach: contact import with dedupe, per-recipient delivery stats, failed-send retry, scheduled follow-ups cancelled on reply. Nimbus adds drafting, segmentation proposals and reply triage on top.
// after publishing
The comments come back as proposals too
Every published piece keeps reporting in. Comments from every platform land in one queue, triaged: questions get drafted replies grounded in your own content, praise gets a human touch proposed, and complaints are routed to a person — a content bot never answers an angry customer.
nimbus/comments/queue/
this week · every platform, one queue
0comments this week
0replies proposed
0approved & posted
0escalated to a human
tiktokon “Three rules”41 min agopending
ok but rule 2 with kids in the house?? one big piece they will destroy
proposed reply
Honestly — rule 2 survives kids better than five small pieces do: fewer corners, nothing tips. We wrote up the durable-finish options here → fjordpine.co/journal/finishes
ok but rule 2 with kids in the house?? one big piece they will destroy
Honestly — rule 2 survives kids better than five small pieces do: fewer corners, nothing tips. We wrote up the durable-finish options here → fjordpine.co/journal/finishes