Management · Analytics · Ads · Content
One console for company marketing
Every channel lands in one place, and one person runs all of it. Mark finds the topic, writes the post, publishes it, pushes the best of it into paid, answers whoever replies, and hands your sales team a qualified lead. A human steps in where a human actually matters.
Some channels run today, others land in the coming weeks. Everything below carries its real status. We keep those two states apart.
What it replaces
Eight tabs, three contractors, no single picture
A typical company schedules social posts in one tool, sends email from another, buys ads in three dashboards, and reads inbound messages by hand in every messenger. Nobody can say which post produced revenue. Someone assembles the monthly report manually, and it goes stale before anyone reads it.
Post to revenue
Platform analytics stop at reach. What happened after the click stays invisible.
Leads go cold
Someone writes on Saturday, sales reads it Monday. That buyer already paid a competitor.
Nobody knows what to write
Topics come out of a weekly meeting. Demand lives somewhere else entirely.
How it is built
Four layers running at once
This is not a pipeline. Four layers exchange data continuously: the radar feeds content, content feeds paid, paid brings inbound conversations, and those conversations flow back into analytics and change how topics get scored.
Layer 1
Watch
Topic radar, search demand, analytics, inbound conversations. Answers what is going on.
Layer 2
Make
Content, video, the weekly plan, the calendar, drafts held for approval.
Layer 3
Promote
Ad accounts, a bidding advisor, tracking parameters, and a kill switch.
Layer 4
Answer
The dispatcher: message in, qualification, a lead handed to sales.
Publishing
Where the console publishes
One draft goes out to every connected channel in that channel's own shape: length, markup, images and links all adapt. Each row carries its real status.
| Channel | How we connect | Status |
|---|---|---|
| Telegram | Bot API, channels and groups | live |
| member profiles, then company pages | weeks away | |
| X | official API | weeks away |
| Facebook Pages | Graph API | weeks away |
| Content Publishing API | weeks away | |
| Threads | Threads API | weeks away |
| YouTube | video and community posts | weeks away |
| Bluesky | AT Protocol, open | weeks away |
| Mastodon | ActivityPub, open | weeks away |
| Pinterest, Reddit | official APIs | weeks away |
| VK, MAX, Odnoklassniki | official APIs | live |
| Your site and blog | articles built around search demand | weeks away |
| built from the same draft | weeks away |
Adding a channel means writing one adapter and running the shared test suite against it. We split publishing into isolated modules precisely so a broken platform never stops the others.
Where no API exists
A platform without an API is not a dead end
Some platforms never opened publishing to outsiders. We still deliver to them: through a feed, through a relay channel, or through an automation scenario. The client sees the same draft and the same approval. How it travels stays our problem.
Publish through RSS
The console serves a feed and the platform pulls from it. Yandex Zen works this way: support connects the feed once, and posts flow after that.
Through a relay channel
The console posts to Telegram, and the platform pulls from there. One channel becomes the source for several.
Through an automation scenario
The console calls a webhook and the scenario does whatever our code does not: writes to a sheet, pushes into someone else's CRM, talks to a platform on its own terms. Scenarios change without redeploying the console.
The rule: look for an official API, then a feed, then a relay, and only then walk away. We write the refusals down too, so nobody checks the same platform twice.
Content
From signal to published post
What is picking up speed
The console reads industry feeds, social sources and search demand, merges duplicates into stories, and scores each one on speed, fit, novelty and saturation. A crowded topic sinks on its own.
Your specific way in
For every story the console proposes angles: analysis, counterargument, how-to, customer story. On sensitive topics the playful angles get blocked and only the measured ones remain.
Text, image, formatting
The draft is built per channel from the start: length, markup, cover image, tagged links.
The only door out
Nothing reaches a channel until a person presses the button. This is not a setting or a mode. No other path to the platform exists in the code.
A human decidesPublish, retry, triage
The queue remembers what already went out and never double-posts. It retries a network glitch and sends a real refusal to a human instead of hammering the platform.
Video
Video as its own pipeline, not a bolt-on
Video plays by different rules: different platforms, different aspect ratios, different rights on music and faces. So it gets its own pipeline instead of being squeezed through the path built for text.
Script from the same story
A topic the radar surfaced for a post becomes a video script. One story pays twice.
Assembly
Voice, cuts, subtitles and thumbnail come together in an automation scenario instead of by hand.
Vertical and horizontal
One source cuts into a long video and into short vertical formats.
Publish and track
The video goes to YouTube and the other connected platforms with the same tracking as posts, and lands in the same analytics.
Video sits after channels and the dispatcher in the plan. It is the largest piece, and building it before the text channels work would stretch everything else.
Inbound
It answers wherever people reach you
The dispatcher reads inbound messages across every connected channel, holds the conversation, works out the task and the budget, and hands sales a qualified lead. Your manager can take the conversation over at any point with one button.
| Inbound channel | Status |
|---|---|
| VK | live |
| Avito | code ready, awaiting access |
| Telegram, MAX | weeks away |
| WhatsApp Business | weeks away |
| Instagram DM | weeks away |
| Website chat | weeks away |
| Comments under posts | weeks away |
The dispatcher starts in shadow mode: for a week it drafts replies and a human sends them. You watch it handle real conversations, then decide whether it answers on its own. That step does not reverse, so the call stays yours.
Paid
We promote what already worked for free
The console sees which post earned attention and proposes putting money behind that one. Paid stops being a separate job started from scratch and becomes a continuation of the content.
Accounts in one place
Campaigns, bids and spend sit next to the content instead of across four tabs.
Advisor
It proposes where to add, where to cut, and what to stop. A human confirms.
Kill switch
Spend past a threshold stops the campaign without waiting for anyone.
Legal disclosure
Required labels and disclosures go on automatically, following the rules of the country where the ad runs.
Analytics
Post, click, conversation, revenue
Every link carries its own tag, our redirect counts the clicks, the dispatcher reports the conversations, and your site posts back the orders. The result: each post shows the money it made, not the likes it collected.
Once that chain closes, the console starts learning on your audience: it remembers that a high-scoring topic produced a weak post and scores differently next time. Learning from likes teaches nothing, so it only switches on after revenue arrives.
Boundaries
What the console will not do without you
One door out
Every publication passes through a draft and an approval. No second path to the platform exists in the code.
Shadow by default
The dispatcher starts by drafting replies. You turn on auto-reply, and not before you have watched it work.
Data stays apart
Each client lives in a separate contour: own keys, own database, own channels.
Sensitive topics
Tragedy, health, politics: the console strips the playful angles itself and never offers them.
Engineering
Why this holds twenty channels
One adapter per channel
Every platform lives in its own file with the same set of duties and passes the shared test suite. A broken channel stays broken alone.
A durable queue
Jobs live in the database, not in memory. Restarting the service loses nothing and duplicates nothing.
767 automated tests
Checks run on every change, and again on the server before a new version goes live.
An open seam
Webhooks and n8n scenarios connect whatever the console lacks, without waiting for our next release.
One adapter per channel is not architectural decoration. While publishing lives in a single block, any change made for one platform touches all of them, and there is nowhere to hang a test.
Straight
What runs today, what opens next
Live now
Coming weeks
We show that split on purpose. Selling unbuilt work as finished costs more than naming a date, because a live demo exposes the difference in about a minute.
Next
Let us run it on your channels
We connect your platforms, run the radar on your topic, and build the first post with you watching, approval included. The dispatcher goes into shadow mode: for a week you read its drafts against real conversations and then decide whether it replies on its own.
Each client's data lives in its own contour and never mixes with another's.