Category: Social Media

  • Canva’s Brand Kit tier limits: when color palettes hit the wall

    Canva’s Brand Kit tier limits: when color palettes hit the wall

    Canva's Brand Kit tier limits: when color palettes hit the wall
    Photo: Vijay Verma via Wikimedia Commons (CC0)

    Canva’s Brand Kit feature centralizes your visual identity—logos, fonts, color palettes—so every graphic you create stays on-brand. It’s one of the platform’s most useful features for solo operators who don’t want to manually copy hex codes or hunt for the right logo file every time they make a social post.

    But the Brand Kit isn’t one-size-fits-all. Canva gates the feature across three tiers—Free, Pro, and Teams—and each tier imposes hard limits on how many palettes, fonts, and logos you can store. Hit those limits mid-project, and you’re stuck either deleting old assets or upgrading.

    Here’s what each tier actually allows, when you’ll hit the ceiling, and how to work around it without paying more than you need to.

    What each tier lets you store

    Canva Free: One brand kit total. Inside that kit, you get one color palette (up to three colors), one font pairing, and one logo upload. That’s it. If you run multiple projects—say, a newsletter and a podcast with different visual identities—you can’t store both. You’ll need to manually swap assets every time you switch contexts.

    Canva Pro: Unlimited brand kits. Each kit supports up to 100 color palettes, 100 font pairings, and 100 logos. For most solo operators, this is more than enough. The real constraint here isn’t the cap—it’s organization. Once you’ve got 30+ palettes saved, finding the right one becomes a search problem.

    Canva for Teams: Same storage limits as Pro (100 per asset type per kit), but designed for shared access. Multiple users can edit and apply the same Brand Kit. Pricing starts at $100/year for up to five people, so it’s overkill unless you’re actually collaborating with a team or VA.

    When you’ll hit the limit

    If you’re on Free, you’ll hit the wall immediately if you manage more than one brand. The single-kit limit forces you to choose: either keep everything under one visual identity, or manually re-upload assets every time you switch projects.

    On Pro, the 100-palette cap sounds generous, but it sneaks up on you if you create seasonal campaigns, A/B test color schemes, or work with clients. Each palette can only hold three colors, so if you’re building out a full brand system with primary, secondary, and accent palettes, you’re using multiple slots per brand. Operators who run paid template libraries or design-heavy newsletters can burn through 30–40 palettes in a year.

    The font pairing limit (also 100) is rarely a problem. Most operators settle on two to three pairings and stick with them. Logos, same deal—unless you’re managing client work or sub-brands, you won’t approach the cap.

    Workarounds that don’t require an upgrade

    Archive unused palettes quarterly. Canva doesn’t let you export a Brand Kit as a backup file, but you can screenshot your palettes or copy hex codes into a note. Delete seasonal or one-off palettes after campaigns end, and restore them manually if you need them again later. It’s tedious, but free.

    Consolidate palettes using external color management. Instead of saving every variation in Canva, store your full color system in a tool like Coolors or a simple spreadsheet. Keep only your two to three most-used palettes in Canva’s Brand Kit, and copy-paste hex codes for edge cases. This keeps your Brand Kit lean and searchable.

    Use templates as palette storage. Create a blank Canva design, fill it with color swatches, and save it as a reusable template. You can duplicate the template anytime and eyedropper the colors into new designs. It’s a hack, but it bypasses the Brand Kit limit entirely.

    When upgrading actually makes sense

    If you’re solo and on Free, the $120/year Pro upgrade is worth it the moment you manage two distinct brands. The jump from one kit to unlimited eliminates the constant asset-swapping friction.

    If you’re already on Pro and hitting the 100-palette limit, pause before upgrading to Teams. The extra cost ($100/year vs. $120/year for Pro) doesn’t increase storage—it only adds collaboration features. Instead, audit your saved palettes. Most operators find that 60–70% of their stored palettes are outdated or redundant. Delete those, and you’ll buy yourself another year before the cap matters again.

    Teams makes sense only if you’re actually sharing brand access with collaborators—a VA formatting posts, a designer building templates, or a co-founder who needs the same visual assets. If it’s just you, Pro is the ceiling.

    One non-obvious tip: Canva’s Brand Kit color picker auto-suggests palettes based on uploaded logos. If you upload a logo with your full color system embedded, Canva will extract a palette for you. Use this to quickly populate a new Brand Kit without manually entering hex codes—but double-check the extracted colors against your source file, because Canva’s algorithm sometimes picks slightly off-brand shades.

    Managing multiple brands or seasonal campaigns? Reply and tell us how you organize your color systems—we’ll feature operator setups in a future issue.

  • LinkedIn carousels export at 1080×1080—here’s the workaround

    LinkedIn carousels export at 1080×1080—here’s the workaround

    LinkedIn carousels export at 1080×1080—here's the workaround
    Photo by Mariia Shalabaieva on Unsplash

    LinkedIn’s carousel post format—technically called document posts—lets you upload PDFs that readers swipe through like Instagram carousels. It’s a solid format for reaching professional audiences without leaving the platform.

    But there’s a design constraint nobody mentions until after you’ve built your first deck: LinkedIn exports every carousel slide as a 1080×1080 pixel square, regardless of what you uploaded. If you designed slides in 16:9 widescreen or portrait 9:16, the platform letterboxes them with white bars or crops them unpredictably.

    This matters because most design tools—Canva, Figma, Keynote—default to landscape aspect ratios for presentation decks. You can spend an hour building a carousel in 1920×1080, upload it to LinkedIn, and watch it get squashed into a square with your text pushed to the edges or cut off entirely.

    Why LinkedIn forces square slides

    LinkedIn’s document post feature converts uploaded PDFs into image carousels optimised for mobile feeds. The platform standardises everything to 1080×1080 because square posts take up more vertical real estate in the feed and perform better on mobile screens.

    The conversion happens server-side. You upload a PDF, LinkedIn rasterises each page, and crops or pads to square. There’s no setting to change this. The upload interface accepts PDFs up to 100 MB and 300 pages, but the output format is non-negotiable.

    Design in square from the start

    The simplest fix: build your carousel slides at 1080×1080 pixels before you write a single word.

    In Canva, create a custom design and set dimensions to 1080×1080 px (or use the Instagram Post preset, which defaults to square). In Figma, create a 1080×1080 frame. In Keynote or PowerPoint, set slide size to custom dimensions: 1080 width, 1080 height, with units in pixels.

    This forces you to think vertically. Text blocks need tighter line lengths. Charts and graphs need larger fonts. Horizontally-oriented infographics won’t fit—you’ll need to stack elements instead of spreading them left-to-right.

    Square slides also change how you use whitespace. In widescreen decks, you can balance a headline on the left with a visual on the right. In square format, that same layout feels cramped. Center-aligned, single-focus slides work better.

    If you’ve already built slides in widescreen

    You have three options, none of them fast.

    Option one: Rebuild from scratch. Copy your text into a new square template and reposition every element. Time-consuming, but you’ll avoid cropping issues.

    Option two: Export widescreen slides as images, then embed them in a square PDF. Create a 1080×1080 canvas in Canva or Figma, place your 1920×1080 slide image in the center, and export each page as a PDF. This preserves your original layout but adds letterboxing (black or white bars above and below). It works if your design can tolerate the padding, but it wastes vertical space.

    Option three: Crop strategically. If your widescreen slides have a clear focal point, you can manually crop each one to 1080×1080 in an image editor, keeping the most important content centered. This only works if your text and visuals are already concentrated in the middle third of the slide.

    Non-obvious tip: Use safe zones

    Even when you design in square, LinkedIn’s mobile app crops the top and bottom of carousel slides slightly when they appear in-feed. Users see the full square only after they tap to expand.

    To avoid cut-off text, keep critical content—headlines, CTAs, key data points—within a centered 1080×920 pixel safe zone. That’s roughly 80 pixels of padding on top and bottom.

    In Canva, add a rectangle guide at 1080×920, center it, and design inside that boundary. In Figma, create a nested frame. This ensures your most important content is visible even before someone taps through.

    One more detail: LinkedIn compresses uploaded PDFs. If you’re using gradients, subtle shadows, or fine typography, export your PDF at high quality (300 DPI if your tool supports it) to minimize artifacting. The platform will still compress it, but starting with a high-resolution source reduces quality loss.

    Hit reply and tell us: what’s one LinkedIn carousel design mistake you made that you won’t repeat? We read every response.

  • Canva’s Magic Resize: when aspect-ratio automation saves time vs. breaks it

    Canva’s Magic Resize: when aspect-ratio automation saves time vs. breaks it

    Canva's Magic Resize: when aspect-ratio automation saves time vs. breaks it
    Photo: Bystronic Corporate Communications via Wikimedia Commons (CC BY-SA 4.0)

    Canva’s Magic Resize feature promises to turn one social graphic into ten platform-ready versions with a single click. You design once at 1080×1080, hit resize, select Instagram Story + LinkedIn post + Pinterest pin, and the tool redistributes text boxes, images, and spacing to fit each canvas.

    It works exactly as advertised—when your design is simple. Two text blocks, a centered logo, and a background gradient? Magic Resize handles it cleanly. But stack five text layers with custom positioning, overlay transparent PNGs, or use grouped elements with manual kerning, and you’ll spend more time fixing the output than you would rebuilding from scratch.

    How Magic Resize decides what moves

    Magic Resize uses a hierarchy system. Canva prioritizes foreground elements (text boxes, stickers, uploaded images) over background layers. When you switch from a 1:1 square to a 9:16 Story canvas, the tool expands the vertical space and redistributes elements top-to-bottom based on their original layering order.

    Text boxes resize proportionally by default—font size stays fixed, but line breaks reflow to fit the new width. Images scale to maintain aspect ratio. Background fills stretch to cover the entire canvas without cropping.

    The problem: Canva doesn’t understand visual hierarchy the way you do. If your Instagram square placed a call-to-action at the bottom because that’s where the eye naturally lands in that format, Magic Resize will keep it at the bottom of a tall Story canvas—where it’s offscreen until someone swipes up.

    Grouped elements break the logic entirely. If you’ve grouped a text box with a shape to create a custom badge, Magic Resize treats the group as a single object and scales it proportionally. A badge that was 15% of your square design becomes 15% of your Story height—often way too large or positioned awkwardly.

    When to use it vs. when to duplicate manually

    Magic Resize works best for templated content where layout consistency matters more than pixel-perfect positioning. Weekly quote graphics, announcement cards, course promotional images—anything with one dominant message and minimal layering.

    Skip it when:

    • Your design uses more than four text layers with custom positioning
    • You’ve applied manual spacing or alignment that depends on the original canvas shape
    • Grouped elements make up more than 30% of the design
    • You’re resizing from a horizontal format (16:9 YouTube thumbnail) to vertical (Pinterest pin)—the text reflow often breaks readability

    For complex designs, duplicate the original file instead. Canva lets you copy an entire design and manually adjust the canvas dimensions. You’ll spend three minutes repositioning elements yourself, but you’ll have full control over what moves and what scales.

    The non-obvious tip: pre-size your text boxes

    Most operators let Canva auto-size text boxes—you type, the box expands to fit, and you drag it into place. That approach breaks Magic Resize because the tool doesn’t know which dimension (width or height) you prioritized.

    Instead, manually set text box dimensions before you type. Click the text box, drag it to a fixed width (say, 800 pixels on a 1080-wide canvas), then type your headline. Lock the width in place. When Magic Resize redistributes the layout, it preserves your width ratio and reflows text vertically—keeping line breaks predictable.

    Same goes for images. If you upload a logo or product shot, resize and position it first, then lock the layer. Magic Resize respects locked elements and works around them, giving you anchor points that stay consistent across formats.

    Pricing and access

    Magic Resize is available on Canva Pro ($15/month for solo users, $30/month for up to five team members) and Canva for Teams plans. The free tier doesn’t include it—you’ll need to manually duplicate and resize instead.

    If you’re publishing to three or more platforms weekly and your designs stay simple (under five layers, minimal grouping), the feature pays for itself in saved time. If your graphics are layout-heavy or require tight control over spacing and alignment, the Pro subscription still has value for the template library and Brand Kit features, but Magic Resize won’t be the reason you renew.

    Want more tool breakdowns like this? Subscribe to One Two Three Send and get operator-focused features, comparisons, and how-tos every week—no fluff, just the details that matter when you’re running a content business solo.

  • Instagram Broadcast Channels: how the one-way DM feature works

    Instagram Broadcast Channels: how the one-way DM feature works

    Instagram Broadcast Channels: how the one-way DM feature works
    Photo: ЗАО «Азия Ритейл» via Wikimedia Commons (CC BY 4.0)

    Instagram Broadcast Channels are a one-to-many messaging feature that lives inside Direct Messages. You send updates, photos, polls, or voice notes to subscribers who’ve opted in—but they can’t reply directly to the group. Only you can broadcast; they can react with emojis or reply privately to you.

    It’s not a feed post, not a Story, and not a newsletter. It’s a notification-driven channel where every message hits your subscribers’ DM inbox with a push alert, assuming they haven’t muted you.

    How it works

    You create a Broadcast Channel from your Instagram profile or DM screen. Give it a name, pick an audience (everyone or paid subscribers only, if you have subscriptions enabled), and start sending. Subscribers join by tapping a link you share in Stories, posts, or your bio.

    Messages you send appear in chronological order. Subscribers see them in their DM list, alongside regular conversations. There’s no algorithmic feed here—what you send is what they see, in order.

    You can send text, photos, videos up to 60 seconds, voice notes, and polls. Links work. You can also share posts from your feed or others’ accounts directly into the channel. Subscribers can react with emoji, and you’ll see a count, but they can’t post their own messages to the group.

    If a subscriber wants to reach you, they send a separate private DM. The channel itself stays one-directional.

    When to use it

    Broadcast Channels make sense when you want direct reach without depending on the feed algorithm, but you’re already building an audience on Instagram. Think of it as an owned notification channel inside a rented platform.

    Operators use them for:

    • Quick updates: Product drops, new post alerts, schedule changes. Faster than Stories, more direct than a feed post.
    • Exclusive previews: Behind-the-scenes content, early access to links, or subscriber-only commentary on news in your niche.
    • Community engagement without moderation overhead: Unlike a group chat, you’re not managing dozens of replies or off-topic threads. Subscribers react, you move on.
    • Driving traffic off-platform: Share a link to your latest article, course launch, or affiliate review. The push notification increases click-through compared to a bio link.

    It’s not a replacement for email. Instagram controls delivery, and subscribers can leave or mute without you knowing immediately. But if your audience lives in DMs and you’re already posting daily, it’s a low-friction way to add a direct line.

    The non-obvious tip: use polls to surface reply-worthy topics

    Broadcast Channels don’t allow group replies, but subscribers can DM you privately. Most won’t—unless you give them a reason.

    Here’s the trick: use polls not just for engagement metrics, but to identify high-interest topics, then explicitly invite private replies on the winner.

    Example: you run a course-creation business. Send a poll: “Next tutorial—email sequence breakdowns or sales page teardowns?” Once results come in, follow up with: “Sales page teardowns won. If you’ve got a page you want reviewed, DM me the link—I’ll pick one for Friday’s breakdown.”

    This does two things. First, it turns a passive poll into a conversation starter. Second, it fills your DM inbox with qualified leads or content ideas without you fishing for them in comments.

    The same tactic works for product feedback, topic requests, or case study volunteers. Polls lower the friction to signal interest; the follow-up prompt converts that interest into a direct message you can act on.

    Limits and gotchas

    Instagram doesn’t publish a hard subscriber cap for Broadcast Channels, but the feature is designed for creators with established audiences—you need a Creator or Business account to start one.

    Messages you send are permanent until you delete them. Subscribers can screenshot anything. Treat it like public content, even though it feels private.

    There’s no built-in analytics dashboard. You’ll see reaction counts and poll results, but Instagram doesn’t show you open rates, click-through on links, or subscriber growth over time. You’re flying partially blind compared to email platforms like Postmark or MailerLite, where delivery and engagement metrics are standard.

    If you’re juggling Instagram Broadcast Channels alongside other social platforms, tools like Publer can centralise your scheduling workflow—though Broadcast Channel messages themselves still need to be sent manually from the Instagram app.

    One more thing: subscribers don’t get a digest. Every message you send triggers a separate notification. Send too often, and they’ll mute or leave. There’s no research-backed frequency ceiling, but operators I’ve talked to stick to 2–4 messages per week unless they’re running a time-sensitive campaign.

    If you’re testing Broadcast Channels or have questions about balancing Instagram and email, reply to this issue—I read every message and often turn good questions into future breakdowns.

    Heads up — some links in this article are affiliate links. If you sign up through them, we may earn a small commission at no extra cost to you. We only recommend tools we use ourselves.

  • Social media automation token expiry: when connections break silently

    Social media automation token expiry: when connections break silently

    Social media automation token expiry: when connections break silently
    Photo by Deng Xiang on Unsplash

    Most social media automation tools connect to platforms using OAuth tokens. These tokens grant permission for one app to post, read analytics, or manage content on your behalf. They’re invisible until they stop working.

    The problem: tokens expire. Some platforms revoke them after 60 days of inactivity. Others refresh them automatically—until they don’t. When a token dies, your scheduled posts vanish into the void, your cross-posting stops, and you won’t know until you check manually or a follower asks why you went quiet.

    Here’s what actually happens, platform by platform, and how to catch failures before they cost you a week of missing content.

    How long tokens last, and what triggers expiry

    Twitter/X: Access tokens don’t expire on a fixed schedule, but the platform can revoke them if you change your password, revoke app permissions, or if Twitter detects suspicious API activity. In practice, tokens last months—until they don’t. No warning email.

    LinkedIn: Access tokens expire after 60 days. Refresh tokens last 12 months. If your automation tool doesn’t request a new access token within that 60-day window, the connection dies. LinkedIn sends no notification when this happens. Your posts just stop going out.

    Facebook/Instagram (Meta): Short-lived tokens expire in one hour. Long-lived tokens last 60 days. Most tools exchange short for long automatically, but if you don’t generate user activity within 60 days, the token goes stale. Meta’s Business Suite sometimes emails you, but the Developer dashboard doesn’t surface token health unless you check manually.

    YouTube: Refresh tokens don’t expire unless revoked manually or the account is inactive for six months. Google sends no proactive alert.

    The common thread: expiry is silent. Platforms assume the app developer—not you, the end user—will handle monitoring.

    What breaks when a token dies

    Most automation tools fail gracefully in the UI—they’ll show “connection lost” or “re-authenticate”—but they don’t always notify you by email or Slack. If you’re not logging into the tool daily, you won’t see it.

    Here’s what stops working:

    • Scheduled posts queue locally but never publish
    • Cross-posting from RSS feeds or your CMS halts
    • Analytics dashboards stop updating
    • Auto-replies, comment moderation, or DM automation freeze

    Some tools retry silently for 24–48 hours, then mark the post as failed. Others drop it entirely. Publer surfaces connection errors in its dashboard and sends email alerts if a publish attempt fails, but only if you’ve enabled notifications in settings—it’s off by default.

    Buffer queues failed posts and flags them, but won’t re-attempt after the connection is restored unless you manually reschedule. Hootsuite logs errors in the activity feed, but doesn’t push a notification unless you’ve configured a webhook.

    How to catch token expiry before it breaks your workflow

    Enable failure notifications in your scheduler. Every tool has this setting buried somewhere. Turn on email or Slack alerts for failed publishes, not just successful ones.

    Set a monthly calendar reminder to check connected accounts. Log in, review the integrations page, and confirm each platform shows “connected” with a recent timestamp. If a token is about to expire, some tools show a yellow warning icon—but only if you’re looking.

    Test with a throwaway post once a month. Schedule a post to all connected accounts for immediate publish, then verify it went live. Delete it 60 seconds later. This forces the tool to use the live token and surfaces any silent failures.

    Use a secondary monitoring tool if your workflow is critical. If you’re running a client account or a high-frequency publishing schedule, set up a simple uptime monitor that checks your social profiles for new posts. services like UptimeRobot or a custom Zapier workflow can ping you if no new content appears within an expected window.

    When to re-authenticate vs. when to rebuild the connection

    If your tool shows “re-authenticate,” clicking the button usually refreshes the token without losing your queue or settings. Do this immediately.

    If the re-auth flow fails—common with LinkedIn and Meta—you’ll need to fully disconnect and reconnect the account. This often clears your scheduled post queue for that platform. Before disconnecting, screenshot or export your queue. Most tools don’t preserve drafts when you sever a connection.

    Some operators keep a backup auth token in a separate tool (e.g., one account connected in Buffer, the same account also connected in Publer) so if one breaks, the other can cover while you troubleshoot. This adds overhead, but it’s cheaper than losing a week of posts.

    Want to avoid these silent breaks? Subscribe to One Two Three Send for operator-focused breakdowns of what actually fails—and how to fix it before it costs you traffic.

    Heads up — some links in this article are affiliate links. If you sign up through them, we may earn a small commission at no extra cost to you. We only recommend tools we use ourselves.

  • Buffer vs. Publer vs. Hootsuite: scheduling APIs, queue limits, pricing

    Buffer vs. Publer vs. Hootsuite: scheduling APIs, queue limits, pricing

    Buffer vs. Publer vs. Hootsuite: scheduling APIs, queue limits, pricing
    Photo by Rubaitul Azad on Unsplash

    If you’re running content across Twitter, LinkedIn, Instagram, and Facebook, you need a scheduler that won’t drop posts, hit arbitrary limits, or charge you triple when you add a second brand account.

    Here’s how Buffer, Publer, and Hootsuite stack up for solo operators and small teams publishing 50–300 posts a month across 3–6 accounts.

    Queue depth and post limits

    Buffer’s free tier lets you schedule 10 posts per connected account. The Essentials plan ($6/month per channel) removes the queue cap but limits you to one user. If you’re managing client accounts or a team, you’ll need Team at $12/month per channel—which gets expensive fast if you’re active on four networks.

    Publer‘s free plan allows 10 scheduled posts total, but its Professional tier ($12/month) gives you unlimited scheduling across unlimited accounts and workspaces. That’s the same price Buffer charges per channel. If you’re cross-posting to five platforms, Publer saves you $48/month.

    Hootsuite’s pricing starts at $99/month for one user and 10 social accounts. The platform is built for agencies and enterprises—overkill unless you’re managing 20+ accounts or need approval workflows.

    Platform support and media handling

    All three handle Twitter, Facebook, LinkedIn, and Instagram. Publer also supports Pinterest, TikTok, YouTube, Mastodon, and Google Business—useful if you’re diversifying or testing new channels without adding another tool.

    Buffer compresses images above 5MB and doesn’t warn you before upload. If you’re scheduling high-res carousels or infographics, check the preview carefully—some detail gets lost. Publer and Hootsuite both preserve originals up to 8MB and 10MB respectively, then compress with a warning.

    Video support varies. Buffer caps video uploads at 512MB and transcodes everything to MP4. Publer allows up to 1GB and supports more native formats. Hootsuite allows 512MB but charges extra for bulk video libraries on lower tiers.

    Scheduling reliability and API quirks

    Buffer and Publer both use direct platform APIs. Posts queue client-side, then fire via webhook at the scheduled time. If the API is down (rare but it happens—Twitter’s API went dark for 90 minutes in May), your post waits in retry for up to four hours before failing silently. Neither tool emails you when a post fails unless you explicitly enable notifications in settings.

    Hootsuite uses a hybrid model: some posts go direct, others route through Hootsuite’s proxy layer for compliance monitoring. This adds 15–30 seconds of delay but catches posts that violate platform TOS before they go live. Helpful if you’re managing clients; irrelevant if you’re solo.

    One non-obvious issue: Instagram carousel scheduling fails on all three platforms if your images have mismatched aspect ratios. The API rejects the batch and gives a generic error. Publer’s preview catches this before you schedule; Buffer and Hootsuite don’t flag it until the post fails.

    Pricing summary

    • Buffer: $6/month per channel (Essentials), $12/month per channel for teams. Free tier: 10 posts per account, 3 channels max.
    • Publer: $12/month for unlimited posts and accounts (Professional). Free tier: 10 total scheduled posts, 3 accounts.
    • Hootsuite: $99/month (Professional), includes 10 accounts and one user. Free tier: 2 accounts, 5 scheduled posts.

    Who each is best for

    Pick Buffer if you’re only active on two or three platforms, post fewer than 50 times a month, and want the simplest possible interface. It’s clean, fast, and doesn’t try to upsell analytics dashboards you don’t need.

    Pick Publer if you’re cross-posting to four or more networks, testing new platforms like Mastodon or TikTok, or running multiple brands from one account. The per-channel pricing model makes it the cheapest option once you pass three active accounts.

    Pick Hootsuite only if you’re managing 10+ accounts for clients, need approval workflows, or require compliance logging for regulated industries. Everyone else is overpaying.

    One last note: all three platforms let you connect Google Analytics UTM parameters automatically. Buffer and Publer apply them at the account level; Hootsuite requires manual tagging per post unless you set up a campaign template. If attribution matters to you, test this before committing.

    Want more tool breakdowns like this? Subscribe to One Two Three Send for weekly comparisons, tutorials, and operator Q&A—no fluff, just the details that matter when you’re running a one-person content business.

    Heads up — some links in this article are affiliate links. If you sign up through them, we may earn a small commission at no extra cost to you. We only recommend tools we use ourselves.

  • Scheduled post APIs fail silently—here’s what gets dropped

    Scheduled post APIs fail silently—here’s what gets dropped

    Scheduled post APIs fail silently—here's what gets dropped
    Photo by David Pupăză on Unsplash

    Scheduled posts disappear more often than you think. Not because you misconfigured the time zone or forgot to hit publish—because the API between your scheduling tool and the destination platform failed, and nothing told you.

    If you’re running a content business that depends on scheduled social posts, WordPress post queues, or automated newsletter sends, you’ve probably experienced this: a post that was queued for 9 AM simply never appeared. No error email. No dashboard alert. Just silence.

    Here’s what actually breaks, and how to catch it before your audience notices.

    Why scheduled post APIs fail

    Most scheduling tools—whether it’s Buffer, Publer, CoSchedule, or WordPress’s native post scheduler with a third-party plugin—rely on API calls to the destination platform. Those calls can fail for three common reasons:

    API rate limits. Twitter, LinkedIn, and Facebook all enforce per-hour or per-day post limits. If your account or app hits that ceiling, subsequent requests get rejected. Some tools queue the retry; most just drop it.

    Expired access tokens. OAuth tokens that connect your scheduler to Instagram, LinkedIn, or YouTube expire after 60–90 days depending on the platform. If the tool doesn’t refresh the token automatically—or if the refresh fails—your post never leaves the queue.

    Webhook timeouts. WordPress post schedulers that rely on WP-Cron or external services like EasyCron depend on HTTP requests firing at the right time. If your server is under load, or the webhook times out, the post stays in “scheduled” status indefinitely.

    None of these scenarios generate user-facing errors by default. The tool logs the failure internally, but you don’t see it unless you check the logs—and most solo operators don’t.

    What actually gets dropped

    The content most likely to disappear:

    Social posts scheduled in bulk. If you queue 20 posts at once and token #14 expires mid-batch, posts 15–20 never publish. The tool may show them as “sent” in the UI because the request was attempted, not because it succeeded.

    WordPress posts with complex taxonomies. If your scheduled post includes custom fields, featured images hosted on an external CDN, or category assignments that depend on another plugin, and any of those dependencies fail to load at publish time, WordPress either publishes a broken version or silently reschedules it.

    Newsletter sends via third-party integrations. If you schedule a newsletter send through Zapier or Make, and the ESP’s API returns a 429 (rate limit) or 401 (auth error), the automation may not retry. Your send just… doesn’t happen.

    How to catch failures before your audience does

    Set up three checks:

    Daily log review. Most scheduling tools bury error logs in settings or account dashboards. Set a recurring calendar event to check them. Look for HTTP 4xx or 5xx codes, token expiration warnings, or “retry failed” entries. If you’re using Publer, the activity log shows per-post status codes. For WordPress, the WP Crontrol plugin exposes missed or failed cron events.

    Automated monitor for published content. Use an RSS monitor like Feedly or an uptime tool like Better Uptime to ping your site’s feed or social profile every hour. If a scheduled post doesn’t appear in the feed within 15 minutes of its scheduled time, you get an alert. This won’t tell you why it failed, but it will tell you that it failed.

    Redundant token refresh. For tools that use OAuth, manually refresh tokens once a month even if the tool says they’re valid. Most platforms let you revoke and re-authorise without losing post history. This preempts 90% of silent token expiration failures.

    When to stop scheduling and publish manually

    If you’re publishing fewer than five posts a week across all channels, the operational overhead of monitoring scheduled post APIs often exceeds the time saved. Manual publishing takes 60 seconds per post. Debugging a silent API failure, reconstructing what didn’t publish, and re-queuing it takes 20 minutes.

    The break-even point: if you’re scheduling more than 25 posts a month, automation saves time. Below that, the risk of silent failure isn’t worth it unless you’ve built the monitoring workflow described above.

    One exception: if your content is time-sensitive—launch announcements, event coverage, earnings commentary—always publish manually or use a tool with guaranteed delivery SLAs and real-time alerting. Most don’t offer that.

    Read more like this

    If you found this useful, subscribe to One Two Three Send—we publish operator-focused breakdowns like this one every day. No fluff, no beginner listicles, just the technical details that matter when you’re running a content business solo.

    Heads up — some links in this article are affiliate links. If you sign up through them, we may earn a small commission at no extra cost to you. We only recommend tools we use ourselves.

  • Canva’s Brand Kit feature: when centralised assets save more time than templates

    Canva’s Brand Kit feature: when centralised assets save more time than templates

    Canva's Brand Kit feature: when centralised assets save more time than templates
    Photo by Swello on Unsplash

    Most solo operators treat Canva like a template library. You find a design you like, swap in your text and images, export, and move on. But once you’re creating social graphics, lead magnets, and course slides every week, the template-first workflow breaks down—you’re re-entering hex codes, re-uploading logos, and hunting for that one font name you used last month.

    Canva’s Brand Kit feature solves this by centralising your visual identity in one place. Every colour, font, and logo you define in the Brand Kit syncs across all your designs. Change your primary colour once, and it updates everywhere. Upload a new logo version, and it’s available in every project without re-uploading.

    It sounds simple, but the time savings compound faster than most operators expect—and there are a few non-obvious quirks worth knowing before you commit your entire visual system to it.

    What Brand Kit actually stores

    Brand Kit isn’t just a folder. It’s a structured data layer that Canva injects into every design canvas you open. Specifically, it holds:

    • Colour palette — up to 12 colours on the free plan, unlimited on Pro. These appear as swatches in every colour picker.
    • Fonts — up to 3 font pairings (headline + body) on free, unlimited on Pro. Canva auto-suggests these when you add text boxes.
    • Logos — up to 3 logo files on free, 50+ on Pro. They appear in a dedicated “Your logos” panel, separate from your generic uploads.

    The key difference: Brand Kit assets are persistent across sessions and devices. Your uploaded images sit in your “Uploads” folder and can get buried. Brand Kit assets are always one click away, in the same spot, every time.

    When Brand Kit beats templates

    Templates are great for one-off designs or exploring new layouts. But if you’re running a content operation—weekly newsletters, daily social posts, monthly lead magnets—Brand Kit becomes the faster option once you cross a threshold:

    You’re creating 5+ designs per week. At that cadence, manually applying your brand colours and fonts wastes 2–3 minutes per design. Over a month, that’s an hour. Over a year, it’s 12+ hours of copy-pasting hex codes.

    You’re repurposing content across formats. If you turn a blog post into a carousel, an email header, and a Pinterest pin, Brand Kit ensures all three use the exact same blue (#2E5BFF, not #2E5CFF). Templates don’t enforce consistency—Brand Kit does.

    You rebrand or iterate your visual identity. Change your primary colour in Brand Kit, and every design you open from that point forward uses the new value. Templates don’t update retroactively—you’d need to manually edit every saved template file.

    The sync quirks nobody mentions

    Brand Kit syncs forward, not backward. If you update a colour in your Brand Kit, it won’t auto-update designs you’ve already published. You’ll need to re-open each old design, click the colour swatch, and re-apply the updated palette. This isn’t automatic.

    Font syncing is even less intuitive. If you remove a font from your Brand Kit, designs that used it will still render—but the font picker will stop suggesting it. If you then open that old design on a device where the font isn’t cached, Canva will substitute a fallback (usually Inter or Roboto). The result: your archived Instagram posts suddenly have the wrong typeface.

    Logo uploads have a resolution ceiling. Canva compresses uploads over 25 MB, and even on Pro, logo files over 100 MB will fail silently. If you’re working with print-quality vector files, export a web-optimised PNG or SVG at 2x your largest canvas size (usually 2000–3000px wide) before uploading.

    One non-obvious tip: use Brand Kit as a design system, not a brand bible

    Most operators set up Brand Kit once and never touch it. Better approach: treat it as a working palette that evolves with your content. If you’re testing a new accent colour for CTA buttons, add it to your Brand Kit temporarily. If it works, keep it. If not, remove it. The kit should reflect what you’re actually using in production, not what you decided in a brand workshop two years ago.

    One useful workflow: create a “seasonal” or “campaign” colour slot in your palette. Rotate it every quarter. This keeps your designs feeling fresh without requiring a full rebrand, and it gives you permission to experiment within a constrained system.

    If you’re creating more than a handful of designs per week, spend 10 minutes setting up your Brand Kit properly. Define your core colours, lock in your fonts, and upload logo variants (horizontal, stacked, icon-only). The upfront setup pays back in saved clicks within a month—and in visual consistency for as long as you keep publishing.

    Want more tool breakdowns like this? Subscribe to One Two Three Send for weekly deep-dives on the software solo operators actually use—no fluff, just the features that matter.

  • Most operators track too many social platforms—here’s the cutoff

    Most operators track too many social platforms—here’s the cutoff

    Most operators track too many social platforms—here's the cutoff
    Photo by Joel Rivera-Camacho on Unsplash

    The default advice for growing an online business is to be everywhere: Twitter, LinkedIn, Instagram, Threads, Bluesky, TikTok. Post daily. Engage relentlessly. Cross-promote.

    In practice, most solo operators and small teams spread themselves so thin across platforms that they can’t tell which channels actually deliver. They post sporadically, track inconsistently, and burn hours context-switching between apps with no clear return.

    The contrarian take: you should be active on two social platforms, maybe three. Any more than that and you’re optimizing for presence instead of results.

    The cost of multi-platform distribution

    Every platform you maintain has a real time cost. You need to:

    • Adapt content format and tone for each audience
    • Monitor replies, DMs, and mentions
    • Track referral traffic and conversions separately
    • Stay current on algorithm changes and feature rollouts
    • Manage posting schedules that don’t overlap poorly

    A single post on LinkedIn might take 10 minutes to write and format. The same core idea reshaped for Twitter threads, Instagram carousels, and TikTok scripts can easily consume two hours. If you’re posting three times a week across four platforms, that’s 24 hours a month just on content creation—before engagement, before analytics.

    And unlike email, where you own the relationship, social platforms can change reach overnight. You’re renting attention, and the lease terms shift without notice.

    How to pick your two platforms

    Start with where your revenue actually comes from. Open your analytics tool—Google Analytics, Fathom, Plausible, whatever you use—and filter traffic sources for the last 90 days. Look at:

    • Sessions from each social platform
    • Conversion rate (email signups, purchases, course enrollments)
    • Time on site—are visitors sticking around or bouncing?

    Most operators discover that 80% of their social-driven conversions come from one or two platforms. Often it’s LinkedIn for B2B, Twitter for tech audiences, or Instagram for visual products. The other four platforms deliver sporadic traffic that rarely converts.

    If you don’t have 90 days of data, run a 30-day test. Post consistently on your current platforms and track everything with UTM parameters (?utm_source=twitter&utm_medium=social&utm_campaign=july). The platform that delivers qualified traffic wins. The rest are candidates for shutdown.

    What about discovery and reach?

    The common objection: “But I need to be everywhere for discovery. What if my audience is on Platform X?”

    Discovery is overrated for most online businesses. If you’re running a newsletter, a course, or a productized service, your growth comes from being consistently valuable in one place, not sporadically present in six. A weekly LinkedIn post that gets 40 comments and five email signups beats a daily TikTok habit that generates 2,000 views and zero conversions.

    The operators who grow fastest pick one primary platform and one backup. Primary gets 70% of effort: original content, deep engagement, network building. Backup gets 30%: reposts, highlights, low-effort syndication. Everything else gets abandoned or automated into oblivion.

    Tools like Publer can help with cross-posting if you want a minimal presence elsewhere, but even then, you’re better off focusing energy than fragmenting it.

    When to add a third platform

    Add a third platform only when:

    • Your two primary channels consistently deliver 20+ conversions per month each
    • You have a specific, proven audience segment that only exists on the new platform
    • You can hire or delegate content creation so your personal time doesn’t increase

    Until then, double down on what works. A single platform with deep engagement and clear attribution beats shallow presence across the entire social web.

    If this resonated, subscribe to One Two Three Send—we cover the infrastructure and tooling decisions that actually move the needle for solo operators and small teams.

    Heads up — some links in this article are affiliate links. If you sign up through them, we may earn a small commission at no extra cost to you. We only recommend tools we use ourselves.

  • LinkedIn carousel PDFs get auto-compressed—here’s the resolution floor

    LinkedIn carousel PDFs get auto-compressed—here’s the resolution floor

    LinkedIn carousel PDFs get auto-compressed—here's the resolution floor
    Photo by Souvik Banerjee on Unsplash

    If you’ve uploaded a carousel PDF to LinkedIn and watched the text turn blurry or the charts pixelate, you’ve hit the platform’s automatic compression pipeline. LinkedIn doesn’t publish the exact spec, but testing across dozens of uploads reveals a consistent pattern: PDFs get resampled to a maximum width of 1080 pixels per slide, regardless of your original export resolution.

    That means exporting at 4K or even 2K is a waste of file size—and often makes compression worse, because LinkedIn’s algorithm has to work harder to downsample a massive file into its fixed output window.

    What LinkedIn’s compression pipeline actually does

    When you upload a multi-page PDF as a carousel post, LinkedIn converts each page into a raster image. The platform applies lossy JPEG compression at around 80–85% quality, then serves the result at a fixed width of 1080 pixels. Height scales proportionally, but the horizontal cap is hard.

    If your original PDF contains vector text or high-res images exported at 300 DPI and 3000 pixels wide, LinkedIn downsamples it. If you export at exactly 1080 pixels wide, LinkedIn still compresses it—but the quality loss is minimal, because there’s no resampling step.

    Text suffers most. Small sans-serif fonts at 10–12pt become fuzzy after downsample and compression. Charts with thin grid lines lose definition. Gradients band visibly.

    The export settings that survive compression

    After testing Canva, Figma, Adobe Illustrator, and Keynote exports, here’s what works:

    • Canvas size: 1080 × 1080 pixels for square carousels, or 1080 × 1350 pixels for portrait (4:5 ratio). LinkedIn supports both, but square is more common.
    • Export resolution: 72–150 DPI. Anything higher gets downsampled anyway. Save the file size.
    • Font size floor: 18pt minimum for body text, 24pt for headlines. Smaller than that and compression blur makes it hard to read on mobile.
    • Line weight: 2px minimum for borders, dividers, and chart axes. 1px lines disappear after compression.
    • Color mode: RGB, not CMYK. LinkedIn’s pipeline expects screen color space.

    If you’re exporting from Canva, choose “PDF Standard” rather than “PDF Print”—the print preset defaults to CMYK and 300 DPI, both of which get mangled. Figma users should export as PDF at 1× scale, not 2× or 3×.

    When compression visibly degrades your slides

    Three scenarios cause the worst quality loss:

    Screenshots of text. If you embed a screenshot of a tweet, email, or dashboard inside your carousel slide, and that screenshot contains small text, compression will blur it twice—once when you captured it, once when LinkedIn resamples the PDF. Better to recreate the layout with live text in your design tool.

    Gradients and soft shadows. Subtle gradients band into visible stripes after JPEG compression. Use solid fills or high-contrast gradients (light to dark, not light to slightly-less-light).

    Busy backgrounds. Textured or photographic backgrounds behind text create compression artifacts that make the text harder to read. Stick to solid colors or very simple geometric patterns.

    File size and upload speed

    LinkedIn’s upload interface accepts PDFs up to 100 MB, but anything over 5 MB takes noticeably longer to process—sometimes 30–60 seconds before the post preview renders. A ten-slide carousel exported at 1080px width and 72 DPI typically lands between 800 KB and 2 MB, which uploads and processes in under ten seconds.

    If your file is larger than 3 MB, check your export settings. You’re probably rendering at a higher resolution than LinkedIn can use, or embedding uncompressed images inside the PDF.

    Most design tools let you compress images before export. In Canva, this happens automatically when you choose “PDF Standard.” In Figma, use the “Flatten” option before exporting. In Illustrator, go to File → Save As → PDF, then set “Compression” to JPEG, Medium quality.

    One more thing: LinkedIn’s mobile crop

    Even if you export at 1080 × 1080, LinkedIn’s mobile app often crops the top and bottom edges of each slide in the feed preview. Users have to tap through to see the full slide. That means critical text—headlines, CTAs, key data points—should sit in the center 80% of the canvas, not near the edges.

    Test your carousel by uploading it as a draft post, then viewing it on your phone before publishing. If your headline gets cut off in the preview, move it down.

    Want more tool-specific breakdowns like this? Subscribe to One Two Three Send—one operator-to-operator article every day, no fluff.