# 1MarketingTool — full published content > 7 articles. Source: https://1marketingtool.com --- ## Keep Multiple Drafts Going in Every Project Source: https://1marketingtool.com/blog/keep-multiple-drafts-per-project Published: 2026-07-21 Tags: drafts, campaign-management, content-calendar, local-first Every project now keeps its own list of drafts, and every draft survives a restart — so you can start a second campaign, switch projects, or close the app without losing your place. You are three sentences into a LinkedIn campaign for your side project when a client Slack lights up. You switch projects to deal with it, come back an hour later, and the half-written campaign is gone — the composer reset the moment you navigated away. So you start over from memory, and it is never quite as good the second time. If you run marketing for more than one thing, that loss compounds. A launch campaign for one product, a weekly thread for another, a scheduled post you were halfway through tweaking — they all live in the same fragile "current draft" slot, and switching between them means whichever one you touch last wins. The rest quietly disappear. You end up rushing to finish whatever you have open before you dare click anything else, which is a strange way to have to work when the whole point of the app is to make marketing less stressful. ## What changed Every project now keeps its own list of drafts, and every draft survives. You can leave a campaign half-finished, jump to another project, close the app entirely, and come back tomorrow to find each draft exactly where you left it — ready to reopen, finish, or throw away. ![Content Calendar Drafts rail listing three auto-saved post drafts, each showing its channel count and save time, with a prompt to open any draft and continue where you left off.](https://1marketingtool.com/app-screenshots/1marketingtool-0-10-0-draft-save-in-scheduler.jpg) ## How it works in practice ### Start a second campaign without losing the first In **New Campaign**, you no longer overwrite yourself. Begin a campaign, step away, start another — the first one doesn't vanish, it becomes a saved draft. A single project can hold Draft Campaign 1 and Draft Campaign 2 side by side, so a product launch and a routine weekly post can be in flight at the same time without one clobbering the other. Saved drafts show up in the **Content Library** with a clear **Draft** status badge, sitting right alongside your finished campaigns. You can see at a glance what's done, what's partially delivered, and what's still waiting for you to come back to it. ![Content Library list where a saved campaign carries a Draft status badge next to published and mixed-status campaigns, each row showing its channels, website, and date.](https://1marketingtool.com/app-screenshots/1marketingtool-0-10-0-draft-save-in-library.jpg) ### Pick up a scheduled post mid-thought The **Content Calendar** now has a **Drafts** rail at the top. When you start composing a post and don't finish, it's auto-saved there — the rail shows how many drafts are waiting, which channels each one targets, and when it was last saved. Open any one to continue where you left off, or delete the ones you've moved past. Each draft card carries just enough context to decide what to do with it: the post's channel count and the exact time it was last saved, so a draft from ten minutes ago and one from last week are easy to tell apart. Closing the composer no longer costs you the post either. Clicking outside it keeps your work instead of discarding it, and an explicit close waits until your latest edit is stored before it lets go. ### Every project stays separate Drafts are scoped per project. The campaigns you're drafting for one product don't bleed into the draft list of another — each project shows only its own unfinished work. Switching projects switches the draft list with it, so you're never scrolling past ten other products' half-written posts to find the one you want. And because all of this is stored locally on your machine — the Content Library sits on a **local SQLite store**, not a remote server — "survives a restart" means exactly that: quit the app, reboot, open it a week later, and the drafts are still there. Nothing was riding on a cloud sync that might not have fired, and nothing left your machine to make it durable. ### Your old drafts come along for free If you were already using 1MarketingTool before this update, you don't have to do anything to migrate. Any single campaign draft you had saved is carried forward automatically into the new per-project draft list, so the work you had in progress simply shows up in the right place. There's no import step and no chance of the upgrade quietly dropping what you were in the middle of. ## Before vs after | Task | Before | Now | |---|---|---| | Start a second campaign in a project | Overwrote the first | Both kept as separate drafts | | Switch projects mid-draft | Lost the in-progress work | Draft saved, waiting when you return | | Close the schedule composer by accident | Post discarded | Post auto-saved to the Drafts rail | | Restart the app | Draft gone | Draft still there, locally stored | | Find a specific unfinished post | No list to find it in | Drafts rail + Library Draft badge | ## Who benefits most **People marketing more than one product.** If you run campaigns for two or three projects, per-project draft lists are the difference between parallel work and constant do-overs. Each product carries its own stack of unfinished drafts, none of them stepping on the others. **Anyone who works in short bursts.** If your marketing happens in the gaps between other work — fifteen minutes here, twenty there — you rarely finish a campaign in one sitting. Recoverable drafts mean stopping mid-sentence costs you nothing; you resume from the exact spot next time. ## Try it Update to the latest 1MarketingTool, open any project, and start a campaign or a scheduled post — then walk away from it. When you come back, it's still there, in the Library with a Draft badge or in the Content Calendar's Drafts rail. Your unfinished work stops being something you have to protect and becomes something you can simply return to. --- ## See Which Posts Actually Worked, in Real Numbers Source: https://1marketingtool.com/blog/see-which-posts-actually-worked Published: 2026-07-19 Tags: distribution performance, social analytics, multi-language marketing, cross-posting, local AI 1MarketingTool 0.9.0 adds a Distribution Performance dashboard that reports how your posts really did — from each platform's own analytics, not estimates — plus per-channel campaign languages. You publish to nine platforms from a single campaign. Then the campaign ends, and the honest answer to "did it work?" lives in nine different places — X Analytics in one tab, Meta Business Suite in another, YouTube Studio, TikTok's dashboard, a Pinterest tab you forgot was open. Most weeks you don't check all of them. You glance at a like count, decide a post "did okay," and move on. The posts that genuinely reached people and the posts that quietly flopped look identical from where you're standing. Estimates make it worse. Plenty of tools hand you a number that looks like reach but is really a guess — followers times a fudge factor. You end up optimizing against a metric no platform ever actually reported. ## Real numbers, straight from each platform 1MarketingTool 0.9.0 adds a **Distribution Performance** dashboard. It sits in the sidebar right after Channels, and it reports how your published posts actually performed — using each platform's own official analytics API, not an estimate. Exposure, reach, engagement, and replies come back as the real figures that X, Facebook, Instagram, Threads, YouTube, TikTok, Pinterest, Bluesky, and Mastodon recorded, each one dated and sourced. ## How it works in practice ### Turn on read-only analytics, per channel Publishing access and analytics access are separate permissions, so 0.9.0 asks for the read scopes explicitly — and only when you want them. Open a channel's settings and you'll find a **Distribution Performance access** panel that spells out exactly which scopes it needs and why. For a Facebook Page that's `read_insights` for post metrics and `pages_manage_engagement` for conversation coverage; the panel walks you through adding them in your Meta app and reconnecting. ![Facebook channel settings showing the optional Distribution Performance read permissions read_insights and pages_manage_engagement, with a Reconnect for performance metrics button.](https://1marketingtool.com/app-screenshots/1marketingtool-0-9-0-distribution-performance-permissions-facebook.jpg) Every network is the same shape with its own scopes. Threads, for instance, needs `threads_manage_insights` for views and engagement, and `threads_read_replies` only if you want conversation-response coverage. None of it is required — skip the analytics scopes and you keep publishing exactly as before; the dashboard simply labels those numbers as unavailable instead of inventing them. ![Threads channel settings granting the analytics read scopes threads_manage_insights and threads_read_replies before pulling performance metrics.](https://1marketingtool.com/app-screenshots/1marketingtool-0-9-0-distribution-performance-permissions-threads.jpg) ### Five numbers that tell the truth The top of the dashboard is five tiles: Posts, Exposure (shown as Impressions or Views where that's the platform's own word), Reach, Engagements, and Conversations. Each tile carries a small badge — available, partial, or unsupported — plus a "covered / eligible" count, so you always know whether a number is the whole story or a slice of it. A metric a platform doesn't expose is labeled unsupported. It is never shown as a zero, because a zero you can't trust is worse than an honest gap. ### Find your best time and your strongest posts Below the tiles, a trend chart plots any of eight metrics over time — engagement rate, clicks, video views, watch time and more — while a best-time-to-post heatmap shows when your audience actually shows up. A channel-comparison table ranks networks side by side, a top-posts leaderboard sorts by engagements per thousand exposure so a small account isn't buried under a big one, and a conversation panel counts how many audience threads earned a reply. Everything refreshes in the background while the app is open, and older posts are backfilled where their identity is unambiguous. ## Reach the right audience in its own language first Numbers only matter if the posts were aimed well to begin with, and 0.9.0 also makes distribution multilingual. You can pick one or more languages for a campaign and then assign different languages to different channels — English on LinkedIn, Tiếng Việt on Facebook — right down to per-account overrides when a channel has more than one connected account. Type a custom language that isn't in the list and both the written copy and the generated design images follow it. ![New campaign composer assigning per-channel languages, with Facebook set to both English and Tiếng Việt and per-account language overrides.](https://1marketingtool.com/app-screenshots/1marketingtool-0-9-0-per-channel-campaign-languages.jpg) A companion fix in the same release keeps non-Latin scripts intact, so a Vietnamese post stays Vietnamese instead of being flattened to ASCII. ## Before vs after | Measuring a week of posts | Before 0.9.0 | With 0.9.0 | |---|---|---| | Where the numbers live | Nine native dashboards, a tab each | One Distribution view | | What "reach" means | An estimate, or a like count you eyeball | The figure the platform's API reported | | Missing metrics | Shown as 0, silently misleading | Labeled unsupported, with coverage counts | | Best time to post | A guess, or a generic infographic | A heatmap from your own audience | | Publishing in two languages | Draft in English, translate by hand, reformat | Assign a language per channel, generated in each | ## Who gets the most out of it - **Solo founders** who publish everywhere but never had time to open nine dashboards — now it's one screen, and the honest gaps are marked as gaps. - **Multi-market makers** shipping to, say, an English and a Vietnamese audience — per-channel languages means one campaign covers both, and Distribution Performance shows which market actually engaged. - **Anyone tired of vanity metrics** — every number is sourced, dated, and marked for coverage, so you can finally optimize against what the platforms really reported. ## Try it Update to 1MarketingTool 0.9.0, open any channel to grant the read-only analytics scopes you're comfortable with, then check the new **Distribution Performance** view after your next campaign. You'll spend less time guessing which posts worked and more time doing more of what did. Learn more at [1marketingtool.com](https://1marketingtool.com). --- ## Rewrite Without Losing Your Best Draft Source: https://1marketingtool.com/blog/stop-losing-your-best-draft Published: 2026-07-15 Tags: campaign versions, content rewriting, cross-posting, local AI, marketing automation 1MarketingTool 0.6.0 makes regeneration non-destructive: every rewrite is saved as its own version, an adjustment prompt tells the AI exactly what to change, and the version you pick can cross-post to every channel you're connected to. You regenerate a post because the first draft isn't quite right. The hook is soft, or the CTA rambles, or it runs forty characters over the limit for X. So you hit regenerate — and the draft you had is gone. The new one fixes the CTA and loses the one line you actually liked. That's the trade every marketing tool has quietly asked you to make: you can have another take, or you can keep this one, but not both. The usual workaround is a scratch file full of pasted drafts named `final-2-actually-final`. 1MarketingTool 0.6.0 — *Campaign Versions and Delivery* — removes the trade. Rewrites stack up as versions instead of replacing each other, and the version you settle on can go out to more than the single channel it was written for. ## What changed Regeneration is now non-destructive. Every rewrite is saved beside the original, and a dropdown on the piece switches between the latest take, earlier versions, and the content you started with. Nothing overwrites anything. ![Generate another X piece modal with Adjust with prompt selected, Claude Code chosen as the CLI AI for this rewrite, and generation progress running](https://1marketingtool.com/app-screenshots/1marketingtool-0-6-0-versioned-ai-rewrite-prompt-cli-progress.jpg) ## How it works in practice ### Ask for another take — or say exactly what to change Choose Re-Generate with AI on any piece and the rewrite modal opens with two methods. **Fresh variation** lets the AI write another take from the same campaign context — useful when the draft is fine but you want options. **Adjust with prompt** is the one you'll reach for more: you tell it what to change, in your own words. "Write less than 280 chars." "Make the opening more direct." "Drop the emoji." The prompt box takes up to 2,000 characters, so you can be specific about the angle, tone, details, or CTA. The difference matters more than it sounds. A blind regenerate rerolls the dice and hopes. A prompt-guided rewrite changes the one thing you asked about and leaves the rest of the piece alone. ### Pick the AI for one rewrite, not for the whole app "CLI AI for this rewrite" lets you choose any detected local agent for this run only — your global AI route stays exactly as it was. If your default is Codex but you want Claude Code for one stubborn caption, that's a dropdown, not a trip through settings and back again. While it runs, the panel shows generation progress, timestamped logs, and a live draft as the text arrives, so a long rewrite looks like work happening rather than a spinner. ### Switch between versions without losing anything Each finished rewrite becomes a version on the piece, and the dropdown moves between them and the original. Pick the one you want and the preview updates — attached images and video included, which now render with the selected version across the X, LinkedIn, Facebook, Reddit, blog, document, YouTube, TikTok, and Instagram previews. ![Campaign results showing an X piece switched to version v3 in the version dropdown, with its attached media rendered in the post preview](https://1marketingtool.com/app-screenshots/1marketingtool-0-6-0-content-version-picker-media-preview.jpg) That's the part that changes how you work. Trying a shorter version costs nothing, because the longer one is still sitting there. ### Send that version anywhere it fits A post written for X is usually fine on Bluesky or Mastodon unchanged. Post Now on a single piece opens **Preview before posting**, and under Cross-post channels you can tick any connected channel assigned to the project — Bluesky, Mastodon, LinkedIn, Discord, Ghost, WordPress, Dev.to, and the rest. The text and its attachments are reused as-is on every destination you select. ![Preview before posting modal with Bluesky and Mastodon ticked in the cross-post channel grid, ready to post one X image piece to 2 channels](https://1marketingtool.com/app-screenshots/1marketingtool-0-6-0-cross-post-channel-selection.jpg) Bluesky and Mastodon enforce their own character limits, and a post over the limit used to simply fail. Now it's shortened at a word-safe, emoji-safe boundary, and the result tells you the published text was shortened. ### Know what actually published Campaign Results reports what happened to each version: publishing, success, partial, skipped, or failed — with the channel's own message, the timestamp, and a link to the public post when the network returns one. Partial delivery reads as partial instead of quietly resembling success, failed results stay open for review or retry, and View detail opens the full distribution history for that piece. ## Before vs after | What you're doing | Before 0.6.0 | With 0.6.0 | |---|---|---| | Improving a draft | Regenerate and lose the previous copy | Every take saved as its own version | | Steering the AI | Reroll and hope | An adjustment prompt says what to change | | Choosing a model | Switch the global AI route, then switch it back | Pick a CLI agent for this rewrite only | | Comparing drafts | Paste them into a scratch file | Switch with the version dropdown | | Reaching another network | Copy text, re-upload media, post again | Tick the channels, post once | | Confirming it landed | Open each network and look | Per-channel state, message, timestamp, link | ## Who benefits most **Solo founders posting across five networks.** Writing once and cross-posting the same version is most of the job. The channels you've connected are one grid, and one confirmation covers all of them. **Anyone who edits by rewriting.** If your process is generate, read it, regenerate, then versions turn that loop from lossy into cheap. You can always go back to the take you had three rewrites ago. **People running local CLI agents.** Per-rewrite agent choice means you can spend a fast model on bulk drafting and your best one on the caption that actually matters, without touching settings between the two. ## Try it Open a campaign in Campaign results, choose Re-Generate with AI on a piece, and pick Adjust with prompt. Tell it what to fix. When the new version lands, use the dropdown to compare it against the original — then send whichever one won to every channel you're on. 1MarketingTool 0.6.0 is available now. Everything above runs on your machine, with your own API key or a local CLI agent. --- ## Turn a Campaign Into a Governed Launch Video Source: https://1marketingtool.com/blog/campaign-to-launch-video Published: 2026-07-14 Tags: ai video maker, video marketing, local-first, campaign automation, content generation 1MarketingTool 0.5.0 turns a brief or an existing campaign into a real multi-scene video you approve stage by stage — scripted, rendered, and quality-checked locally, then handed off to more channels without redoing a thing. You've shipped the campaign. The copy is written, the channels are picked, the images are attached — and then someone wants a launch video to go with it. So you export the copy, open a separate video editor, and start rebuilding the same story from a blank timeline. A fifteen-second clip eats an afternoon, and the version that comes back doesn't quite match the campaign it was supposed to promote. The gap has always been the same: your marketing app knows the message, but the tool that makes the video doesn't. 1MarketingTool 0.5.0 — *Video and Media Studio* — closes it. The video comes from the campaign, gets built scene by scene, and never leaves your machine. ## What changed The headline is the **AI Video Maker**: a director that turns a brief, a campaign, a website, or a GitHub release into a real multi-scene video — and pauses for your approval at every stage instead of handing back a black box. You write the brief, it proposes the storyboard, and you approve or reroll the script, the scene plan, the rendered clips, and the final MP4. The video is composed locally, quality-checked, and saved to Assets. Around it, two smaller changes make the pipeline continuous: you can start a video (or a graphic) straight from an existing campaign, and you can add another cut for a channel without throwing away the one you already have. ## How it works in practice ### Start from a campaign you already built Open **Design Studio → Creative Builder** for a graphic, or **AI Video Maker → Storyboard Builder** for a video, and open the **Source** dropdown. Every campaign you've run shows up as a pickable source, complete with its image, video, and content-piece counts and the channels it targets. Choose one, and its brief, finished pieces, target channels, and linked images seed the new creative automatically — no copy-paste, no re-attaching files. Prefer a clean slate? Pick **No campaign — use brief only**. ![Design Studio Creative Builder with the Source dropdown open, choosing an existing campaign — 20 images, 1 video, 9 content pieces — as the basis for a new visual instead of writing a brief from scratch.](https://1marketingtool.com/app-screenshots/1marketingtool-0-5-0-campaign-to-creative-handoff.jpg) ### Direct the video, one approval at a time In the AI Video Maker, pick a **pipeline** — **Launch**, **Feature**, **Changelog**, or **Teaser** — and set the format, duration, and style. (Paste a GitHub release and it selects the Changelog pipeline for you.) Press **Create storyboard**, and the run stops at each gate: **Script approval**, then **Scene-plan approval**, then **Asset approval**, then **Publish approval**. At every gate you can **Approve** or **Reroll**, and every decision is saved — reload the app mid-project and the run is exactly where you left it. ### Edit the storyboard like a timeline Nothing is locked. Drag scenes to reorder them, drag a scene's right edge to trim its duration, and click a boundary to cycle the transition between **cut**, **fade**, and **slide**. The **Edit scene** inspector lets you rewrite the headline, subhead, CTA, and burned-in caption; **Undo** and **Redo storyboard revision** walk you back and forth through saved states. When the run composes, a technical review checks the final **duration, resolution, frame rate, and slideshow risk** before the MP4 lands in Assets — so a low-motion clip or a wrong-length export gets flagged, not shipped. ### One channel, more than one cut A channel rarely needs just one asset. On a finished campaign you can generate another piece for a channel **without replacing the existing one** — pick an **image post** or a **video / short**, and for image posts choose whether to **reuse your campaign images** or **generate a branded 1080×1080 graphic** from the caption. Instagram pieces can even choose between an image post and a Reel script. The draft you liked stays put; the variant lands beside it. ![New campaign channel picker with the Instagram post-type chooser open, offering an Image post or a Video / Reel and letting each piece reuse attached files or generate a branded 1080×1080 image.](https://1marketingtool.com/app-screenshots/1marketingtool-0-5-0-additive-campaign-variants.jpg) ### Hand the storyboard to your agent If you drive 1MarketingTool from a local CLI agent, 0.5.0 adds a fourth bundled MCP server for video. Your agent can read and write revisioned storyboards, add and edit scenes, reorder and trim the timeline, and manage captions and transitions — but it can only compose the final video *after* you've approved through the Asset gate. The agent builds; you still sign off. ## Before vs after | Turning a campaign into a launch video | Before 0.5.0 | With Video and Media Studio | |---|---|---| | Getting the message into the video | Re-type the brief into a separate editor | Pick the campaign as the Source | | Building the story | Rebuild scene by scene from scratch | Approve or reroll an AI storyboard | | Staying in control | Trust a one-shot export | Four approval gates, saved across reloads | | Quality check | Eyeball the result | Automatic duration / resolution / fps / slideshow review | | A second cut | Regenerate and lose the first | Append a variant beside the original | | Where it runs | Upload to a cloud tool | Rendered locally with ffmpeg | ## Who benefits most **Solo founders launching often.** Every release, feature, and changelog becomes a video without hiring an editor or learning one — and the Changelog pipeline turns a GitHub release note into a customer-facing clip in a couple of approvals. **Marketers who reuse everything.** If you already run structured campaigns, the handoff means each one can become a graphic *and* a video without re-briefing, and each channel can carry more than one cut. **Privacy-minded teams.** The brief, the footage, and the final MP4 are composed on your machine. Nothing about the launch you haven't announced yet sits on someone else's server. ## Try it Update to 1MarketingTool 0.5.0, open **AI Video Maker**, and point it at your last campaign. You'll go from a finished brief to a rendered, quality-checked launch video without leaving the app — and without handing the story to a black box. Dedicated Image and Video Generation pages are on the way; the video studio is here now. --- ## Teach Your AI to Write in Your Own Voice Source: https://1marketingtool.com/blog/teach-your-ai-to-write-like-you Published: 2026-07-14 Tags: writing style, brand voice, local AI, content generation, marketing automation 1MarketingTool 0.4.0 lets you distill a reusable writing style from your own samples — locally, on your machine — and reuse that voice across every campaign, then expand any campaign to more channels without re-briefing. You've felt this one. You hand an AI a solid brief, it returns something clean, correct, and completely generic. It reads like every other tool's output — not like you. So you paste in a few examples of your own writing, get one good draft, and then the next time you sit down to write, you do the whole thing over again. The voice never sticks, because the moment the context resets, it's gone. 1MarketingTool 0.4.0 — *Custom Voice and Reach* — is built around that exact friction. It lets you save your voice once and reuse it everywhere, then push any campaign to more channels without starting over. ## Your voice, saved once — and kept on your machine The headline feature is **Writing Style Mimic**. Instead of re-teaching the AI your voice on every prompt, you distill your writing into a reusable style skill. Feed it real examples, and a local CLI agent reads them and produces a style guide the AI applies to every campaign. Because that analysis runs on your machine, the writing you feed it never leaves your device. ![“Teach the AI your voice” modal with fields for a style name, blog URLs to scan, pasted writing samples, and attached Markdown files.](https://1marketingtool.com/app-screenshots/1marketingtool-0-4-0-writing-style-mimic-add-samples.jpg) ## How it works in practice ### Start from anything you've already written Open **Settings → MCP → Skills** and pick the Writing Style Mimic card under Agent Skills. In *Teach the AI your voice*, you can paste writing, list blog URLs to scan, attach `.md` or `.txt` files — or mix all three. One blog post per line works best, and you can point it at your own site, a competitor you admire, or a hand-written sample. ![Agent Skills panel in Settings showing the Writing Style Mimic card and the Install to all detected option for local CLI agents.](https://1marketingtool.com/app-screenshots/1marketingtool-0-4-0-writing-style-mimic-agent-skills.jpg) ### Let your local AI distill the style Click *Analyze with local AI*. Your detected CLI agent reads the samples and produces a style guide — Voice and Tone, Point of View, Sentence Structure and Rhythm, Vocabulary. You watch the analysis stream line by line, and nothing is uploaded to a cloud model. ![“Review your new style skill” screen showing the distilled style guide with Voice and Tone rules before saving.](https://1marketingtool.com/app-screenshots/1marketingtool-0-4-0-writing-style-mimic-review.jpg) ### Review, edit, and save The distilled guide is yours to adjust. Preview it, switch to Edit to tweak a rule, rename the skill, then *Save style skill*. Keep as many as you like — one for your personal blog, one for a client, one for a product whose tone you want to borrow. ![Saved writing style guide covering Voice and Tone, Point of View, Sentence Structure, and Vocabulary.](https://1marketingtool.com/app-screenshots/1marketingtool-0-4-0-writing-style-mimic-style-guide.jpg) ### Reuse it everywhere From then on, the style shows up in New Campaign's Skills row. Select it, and every generated piece — a LinkedIn post, an X thread, a blog article — inherits that voice. You can also install saved styles into detected local CLI agents, so the same voice travels with the tools you already use. ![New Campaign composer with a saved writing style selected in the Skills row so generated pieces reuse that voice.](https://1marketingtool.com/app-screenshots/1marketingtool-0-4-0-writing-style-mimic-reuse-in-campaign.jpg) ## Reach more channels without starting over The other half of *Custom Voice and Reach* is exactly that: reach. You rarely know every channel you want at the moment you launch a campaign. Before 0.4.0, reaching a channel you skipped meant starting a fresh campaign and re-entering the entire brief. Now, from any campaign's results, click **Generate more channels**, pick the ones you missed, and 1MarketingTool writes each new piece from the original brief, languages, and media. The new posts land inside the same campaign instead of scattering across new ones, and channels already in the campaign are hidden so you can't duplicate work. ![Generate more channels picker showing selectable LinkedIn, Facebook, X, Threads, Bluesky, Mastodon, Pinterest, Telegram, Slack, and Discord channels.](https://1marketingtool.com/app-screenshots/1marketingtool-0-4-0-campaign-channel-expansion-picker.jpg) ## Before vs after | | Before 0.4.0 | With 0.4.0 | |---|---|---| | Matching your voice | Re-paste samples into every prompt | Save one style skill, reuse it everywhere | | Where your samples go | Uploaded to a cloud model | Analyzed locally, never leaves your machine | | Adding a skipped channel | Start a new campaign, re-enter the brief | *Generate more channels* into the same campaign | | Filling a product profile | Type every field by hand | *Re-fetch from URL* fills only the blanks | ## One more quiet win: profiles that fill themselves Version 0.4.0 also adds **Re-fetch from URL** in Company → Product Information. Re-scan your site and AI completes only the fields you left blank — tagline, descriptions, target users, pain solved — without touching a word of the copy you already wrote. Since that profile feeds your directory submissions, campaigns, and SEO prompts, a fuller profile quietly sharpens everything downstream. ## Try it Update to 1MarketingTool 0.4.0, open **Settings → MCP → Skills**, and teach the AI your voice from a piece you're proud of. The next campaign you generate will sound like you wrote it — because, in every way that matters, you did. --- ## Deliver One Campaign Across Every Channel Source: https://1marketingtool.com/blog/channel-specific-campaign-delivery Published: 2026-07-07 Tags: campaign delivery, marketing automation, social publishing, DataForSEO 1MarketingTool 0.3.0 turns one campaign into channel-specific pieces, checks project-aware publishing setup, and adds safer DataForSEO confirmations before paid requests run. When one launch has to become a LinkedIn update, an X post, a Discord announcement, a Facebook post, and a blog draft, the hard part is rarely the first paragraph. The hard part is keeping every destination honest. Each channel has a different shape, a different account, and a different tolerance for length, media, and tone. Before this release, a campaign could still become a set of marketing assets, but the delivery step asked you to do too much memory work. You had to know which project owned which connector, which pieces were ready, which destination had already been posted, and which channels still needed setup. That is exactly where small teams lose time: not in writing the update, but in checking whether it is safe to send. ## What changed 1MarketingTool 0.3.0 adds channel-specific campaign delivery, so you can generate the right piece for each selected destination and then post now or schedule the full campaign without mixing projects, connectors, or credentials. ![Preview before posting modal showing campaign pieces for LinkedIn, X, Discord, Bluesky, and Mastodon with ready, skipped, and posted status counts.](/app-screenshots/1marketingtool-0-3-0-campaign-delivery-post-now-preview.jpg) ## How it works in practice ### Start with the channels this campaign actually needs The New Campaign flow now treats destinations as first-class choices. Instead of writing one generic social post and asking you to reshape it later, the campaign run can prepare separate pieces for LinkedIn profiles and pages, Facebook, X, Threads, Bluesky, Mastodon, Pinterest, Telegram, Slack, Discord, blog channels, and video channels. That matters because a short X post and a Discord announcement do not need the same structure. A LinkedIn page update may need a more direct product story, while a Slack or Discord update can be tighter and more operational. You can attach local media before generation, choose the writing skill for the run, and keep the draft, selected channels, language, AI route, context, skills, and media together while you prepare the campaign. ![1MarketingTool campaign workspace showing multi-site analytics cards, content scheduling, SEO tools, and active AI CLI integration.](/app-screenshots/1marketingtool-0-3-0-campaign-delivery-quicklook.jpg) ### Keep publishing setup tied to the right project Channels are now project-aware. The Channels area separates "This project" from "All channels", so you can see what the active project can publish through without losing the bigger account-level picture. A project-channel matrix shows which projects each connector can publish from, which makes multi-product workflows much easier to audit. You can still share a channel setup across every project when that is the right move. You can also limit a connector to selected projects when credentials, audience, or brand voice should stay separate. Before applying one setup everywhere, 1MarketingTool asks for confirmation, and recent overwrite history gives you a way to restore a previous project setup. ### Post now when the pieces are ready Campaign results now include delivery controls. The Post now flow shows which pieces can publish, which channels are missing, and which pieces have already been published. That gives you a final safety check before anything leaves the local app. This is not just a status screen. Publishing follows the saved target channel and the active project's channel mapping, so a campaign piece goes to the connector it was prepared for instead of relying on broad content-type guesses. Already published pieces are skipped, missing connectors are listed clearly, and the modal avoids posting when no connected channel is available. ### Schedule the whole run without losing media If you are not ready to publish immediately, Schedule all carries the campaign pieces and attached media into the scheduled posts. That closes a common gap in launch workflows: the assets you prepared at generation time are still attached when the content moves into the calendar. For solo founders and small teams, this keeps a launch from becoming a checklist spread across five apps. You can generate, review, schedule, and publish from the same local workspace while credentials stay in the OS keychain. ### Check paid SEO requests before they run This release also adds a clearer gate around DataForSEO-backed work. Keyword Explorer, content briefs, SERP analysis, AI Visibility, and Performance Links now ask before paid DataForSEO requests. The confirmation shows estimates, recent usage, and a free-trial path before the request starts. ![DataForSEO backlink confirmation modal showing domain, recent request cost, estimated request price, trial link, and Fetch Links Data action.](/app-screenshots/1marketingtool-0-3-0-dataforseo-backlink-confirmation.jpg) Performance Links can now fetch DataForSEO referring domains and anchor text, save the results locally, and add them to link history. Bing Account setup can also check a saved API key, and the Performance Links setup copy explains what DataForSEO unlocks while reinforcing that credentials stay in your local keychain. ## Before vs After | Workflow | Before | Now | | --- | --- | --- | | Campaign generation | One campaign often needed manual reshaping for each destination | Each selected channel gets a destination-aware piece | | Project channel setup | You had to remember which project could publish through which connector | "This project", "All channels", and the matrix show coverage directly | | Immediate publishing | You checked readiness and missing connectors by hand | Post now lists ready, skipped, already published, and missing pieces | | Scheduling | Media could fall out of the handoff | Schedule all carries attached images and videos through | | Paid SEO data | It was easier to trigger a provider request without enough context | DataForSEO confirmations show estimates and recent usage before running | ## Who benefits most If you run more than one product, project-aware channels remove a lot of quiet risk. A launch for one site no longer has to share the same connector assumptions as another site. If you publish across several social networks, channel-specific campaign output saves the final rewrite pass. The campaign can speak in the shape of the destination from the start. If you use DataForSEO for keyword, SERP, AI visibility, or backlink work, confirmation modals make the cost boundary visible before the request leaves your machine. ## Try it Download 1MarketingTool 0.3.0, open New Campaign, choose the channels you actually want to publish to, attach your launch media, and review the Post now or Schedule all flow from the campaign results page. The payoff is simple: one campaign can move from idea to channel-specific delivery without turning into a spreadsheet of accounts, drafts, and manual checks. --- ## Marketing Starts Before the First Commit: The SEO Foundation Indie Hackers Skip Source: https://1marketingtool.com/blog/early-marketing-seo-foundation-before-building Published: 2026-06-23 Tags: seo, indie-hackers, early-marketing, technical-seo, content-strategy Most indie hackers treat marketing as a launch-day task. But SEO — your cheapest long-term channel — compounds on a clock that starts the day your domain goes live, not the day you ship. Here's the foundation to set up before you build. Most indie hackers run marketing in the wrong order. You build for three or six months, ship a launch post, get a spike of traffic from Hacker News or Product Hunt, and *then* start thinking about "doing marketing." The spike fades in 48 hours, and you discover the uncomfortable truth about the cheapest long-term channel you have: SEO compounds on a clock that started the day your domain went live — not the day you decided to care about it. By launching first and marketing second, you didn't save time. You burned a year of ranking runway. This isn't an argument for marketing instead of building. It's an argument for setting up the *foundation* of your marketing — especially the technical SEO of your website — **before and during** the build, when it's nearly free, instead of after, when it's a retrofit. ## Marketing-last is the default, and it quietly costs you a year The instinct is reasonable: there's nothing to market until there's a product, so build the product first. But that logic only holds for channels with instant feedback — ads, launches, outreach. It's exactly backwards for the channel most indie products eventually depend on. Organic search is a slow-compounding asset. Google has to discover your pages, decide your domain is trustworthy, and watch users interact with your results before it ranks you for anything competitive. That process takes months, and the clock doesn't start until your site exists and is crawlable. So "I'll do SEO after launch" really means "I'll start the months-long clock after launch" — which means your first year of organic traffic is mostly zero, not because your content is bad, but because you started the timer late. ## SEO is the one channel you can't cram You can cram a launch. You can cram a week of cold outreach. You cannot cram domain age, indexation history, or the slow accumulation of search trust. Those only respond to *elapsed time with a real site in place*. That's what makes the SEO foundation different from every other marketing task: doing it early is not a nice-to-have, it's the only way to have it at all when you launch. The good news is that the foundation is cheap to lay before you have code, and expensive to lay after you have 200 pages and existing URLs to migrate. ## What retrofitting SEO actually costs Bolt SEO on after launch and you pay for it in concrete ways: - **URL and structure migrations.** You picked URLs without thinking, now you have to redirect them — and every redirect leaks a little authority and risks broken links. - **No domain history.** A six-month-old domain with real pages and a few backlinks ranks differently than one registered last week. You can't buy back the months. - **No measurement baseline.** You never connected Search Console, so you have no idea which queries you were almost ranking for — the exact data that tells you what to write next. - **Content that has to age from zero.** The article you publish on launch day won't rank for months. The article you published while building is already aging by the time anyone arrives. None of this is hard to avoid. It's only hard to *fix*. ## Set up the correct SEO website before you build Here's the foundation to lay while the product is still a work in progress. None of it requires the product to be finished. ### 1. Register the domain now and put a real page on it Buy the domain the day you commit to the idea. Don't leave it parked — put up a single real page that says what you're building and who it's for, with a way to follow along. A parked page does nothing for domain age that matters; an indexed, meaningful page starts accumulating trust immediately. ### 2. Decide your URL and information architecture early Choose your URL structure before you have pages to migrate. Flat, readable, lowercase, keyword-bearing slugs. Decide where the blog lives, how categories work, and how product pages are organized. This is a five-minute decision now and a multi-day migration later. ### 3. Ship a technically sound site from commit one Search engines reward sites they can crawl and users can load fast. The baseline: - **Server-rendered or statically generated** content so crawlers see real HTML, not an empty shell hydrated by JavaScript. - A valid **sitemap.xml** and a sane **robots.txt** from the start. - **Semantic HTML** and per-page `title` + meta description — unique, descriptive, not auto-generated filler. - **Fast Core Web Vitals.** Speed is both a ranking input and a conversion input. - **HTTPS** and clean canonical URLs so you're not splitting authority across duplicates. A modern framework gives you most of this for free *if you set it up at the start*. Retrofitting server rendering onto a client-only app is a rewrite. ### 4. Connect Google Search Console on day one This is the highest-leverage five minutes in the whole list. Verify the domain in Search Console as soon as it's live. You won't have data for weeks — that's the point. You're starting the baseline so that, by the time you launch, you already know which queries you're appearing for, which pages get impressions, and where you're stuck on page two. You can't optimize what you never measured, and the measurement has to start early to be worth anything. ### 5. Publish problem-space content while you build You don't need the product to write about the problem it solves. While you're building, publish genuinely useful content in your product's problem space — the questions your future users are already searching. Done early, those articles age and start ranking *before* launch, so your launch lands on a site that already has organic visibility instead of a blank domain. This is also the most honest form of "build in public": teach the problem, not just the product. ### 6. Start capturing an audience before launch The foundation isn't only technical. A simple email capture on that first real page means launch day isn't a broadcast to zero. Every person who follows along while you build is someone who shows up — and converts — when you ship. ## Reframe: marketing is a system that runs alongside the build The deeper shift is to stop thinking of marketing as a launch *event* and start thinking of it as a *system* that runs in parallel with development. Every feature you ship is a piece of content. Every week of building is a week your foundational articles are aging into rankings. Every search impression is a signal about what to write next. Treated as a system, marketing compounds. Treated as an event, it spikes and dies. For a solo founder, the problem has never been knowing this — it's that executing it means juggling Search Console, a keyword tool, a publishing workflow, a rank tracker, and a directory list, none of which talk to each other. So the "start early" advice quietly dies under the weight of the tooling. ## Where this gets practical This is exactly the gap [1MarketingTool](https://1marketingtool.com) is built to close. It's a desktop app that runs the whole marketing foundation as connected pipelines from day one: turning shipped features into blog and social content, scoring keyword opportunities straight from your Search Console data, monitoring your rankings, and submitting your product to directories for backlinks — all locally, on your own machine, with your own API keys, and nothing leaving your device. The point isn't another SaaS subscription; it's making "do the marketing foundation early" something a solo developer can actually run alongside the build instead of postponing until it's too late to matter. ## The takeaway You can defer almost every marketing task until after you launch. The one you can't defer is the SEO foundation, because it runs on elapsed time you can't buy back. Register the domain now, put a real page on it, decide your structure, ship a crawlable and fast site, connect Search Console, and start publishing problem-space content while you build. Start the clock early — by the time you launch, you'll have a year of compounding instead of a year of zero.