One calendar, gaps included
Dated posts on the month grid, undated ones beside it, and a route that returns the days with nothing planned. A duplicate starts as a draft, always.
Works todayAvailable now
In build
The whole team
Nineteen specialists, each with a defined job and an honest status label.
See all nineteenA calendar that shows the posts with no date as loudly as the ones with one, a caption written per network in the brand voice you saved, and a review queue that an edit sends you back to. Socie does not post to the networks yet — that needs Meta's app review — and this page says so instead of letting you find out afterwards.
How it works
Three steps, and the third one stops short of the thing Socie cannot honestly claim.
Keep a backlog of post ideas and turn one into a draft when you are ready. The backlog works by hand with no AI configured at all. With a model key, a batch is written in your saved brand voice and skips titles already planned. Socie keeps no festival calendar — you name the occasion — because a stale one produces ideas that are confidently wrong about a date.
Write the post once, then tailor the caption per network. Ask for a draft and it comes back in the voice profile you saved — tone, audience, what to avoid, and the languages you actually post in, so Hinglish stays Hinglish instead of being formalised. The variant stays marked as AI-written until a human edits it.
Give the post a day and it lands on the calendar; leave it without one and it sits in the rail beside the month, where an idea nobody scheduled is impossible to miss. Approval comes before the date matters: scheduled here means approved, and dated. Socie does not post it for you yet.
Compose once
Write what the post is about in your own words, choose the networks, and tailor each caption from there. Every draft that came from the model says so on its face until somebody edits it, and an unconfigured model returns an error naming what is missing rather than plausible filler you might approve by accident.
Review
An approval is a person signing off on particular wording, so anything that changes what a customer would receive puts the post back in the queue — including a caption edit on one network, and including a fresh AI draft. Approving is restricted to the owner or an admin, and the queue tells your app whether the person looking at it may decide at all, rather than leaving a greyed-out button to do that job.
Link in bio
One page per workspace on a slug you choose, buttons that must be http or https, and a public read that stays a 404 until you publish it. Taps are counted with a single conditional update, so two people tapping at once cannot overwrite each other. Nothing about who tapped is stored — no IP address, no user agent, no per-click row — which is how the privacy duty is met: by not collecting.
Feed planner
Upcoming tiles sit in the order you dragged them, next to what Socie has recorded as published, so you can look at the shape of the feed rather than imagining it. Try to move a published tile and the request is refused with the reason, because no platform API can reorder a live feed and saving that arrangement would be a picture of a feed you can never actually have.
What it does
Each card carries its own limit, and the label on it is derived from the backend's capability module rather than written here — so nothing on this page can award itself a stronger status than the code supports.
Dated posts on the month grid, undated ones beside it, and a route that returns the days with nothing planned. A duplicate starts as a draft, always.
Works todayOne post, a caption and hashtags per network, and a date. On the day, a worker sends it to every account you have connected — eight platforms have an adapter today, and the three that do not are marked rather than accepting a post they cannot send.
Needs a keyTone, audience, what to avoid and the languages you post in go into the draft, and it stays marked AI-written until you edit it. Needs a model key; saved templates do not.
Needs a keyKeep ideas by hand with nothing configured, or generate a batch in your voice that will not repeat titles you have already planned. Converting one produces a draft.
Needs a keySave a set per network. Suggestions are drawn only from your caption and those sets, each tagged with where it came from. No trending list and no reach promised.
Works todayUpcoming tiles in your own dragged order, beside what is already recorded as published. Moving a published tile is refused with the reason.
Works todaySubmit, approve, or send back for changes. Approving needs owner or admin, editing an approved post re-opens review, and nothing reaches published without a decision.
Works todayRows are parsed in memory and capped, and a bad row is reported with its reason instead of dropped. Every row lands as a draft — the parser has no column that can set a status.
Works todayOnly a post you have already published can carry a rule, a repeat limit is mandatory, and a due recycle produces a draft for review rather than a repost.
Works todayFilename, type, size, checksum, dimensions, alt text and tags, deduplicated per workspace, and an asset a post still uses cannot be deleted. Files upload straight to object storage — nothing passes through our server. Needs storage credentials.
Needs a keyCounts from Socie's own records — posts by status and network, what published, what was recycled — over a date range you choose, no credential needed. Layered on top: live likes, comments and engagement rate from any connected channel that can actually supply them, with a clear note in place of the number the moment none can — never a fabricated figure.
Works todayTag posts into a campaign, read its report, and share it on a link that expires and can be revoked. The report is built from the same first-party counts above, so it says what was published rather than how it performed. PDF export needs a rendering service.
Needs a keyAn interactive online brand book built straight from your Business DNA — colours, type, voice, values, any custom section you add — at a slug you pick. Publishing and the public page need nothing extra; only the downloadable PDF needs a rendering credential, and asking for one without it fails honestly instead of returning a blank file.
Needs a keyBuilds a page from your brand identity, catalogue and a prompt. Building a new one never touches a live page in place — each build is its own version, every earlier one stays retrievable, and only the version you publish is what a visitor ever sees.
Needs a keyNot built yet
Every product in this category has this list. Most keep it off the website, which means you meet it after you have paid. Publishing is the credential that unlocks most of the rest, and it is not ours to grant ourselves.
The publish rail is not built. It needs Meta app review and an Instagram Professional account connected through a Facebook Page before a single line of it is worth writing, and LinkedIn, YouTube, Pinterest and X each need their own app after that. Until then a connected account holds no token and Socie posts nothing.
Not built. Tracking a rival's followers, cadence and engagement needs public-profile API access on each platform, which for Meta is the same review again.
Unified community comments and mentions stream, filtering, and reply dispatch are built, but live syncing needs connected channel credentials and platform webhooks before messages flow in.
The brand kit works today with no credential — logo, colours and fonts, where the logo is a reference into the media register rather than a pasted link. Generation does not: a request records the prompt, the kit and a blocked status, and says both what is missing and that no provider adapter exists yet to take a key.
Not built. Bringing a finished design in from a design tool or a drive needs an OAuth app per provider; today an asset is registered and uploaded from your own device. Background removal, stock photography and template libraries are not part of Socie.
Before you switch
Tell us which networks you post on and we will tell you what Socie can carry today — and what still needs a person with a phone.
Questions
Not yet, and the product says so wherever a status could be mistaken for a promise. Socie publishes on the day you scheduled, to any account you have connected. Connecting uses your own app registered with that platform, and Socie walks you through registering it. Platforms Socie cannot publish to yet are marked as such on the connections screen rather than failing on the day. The calendar, the accounts list and every approval response carry that sentence, because an owner believing a post went out and hearing otherwise from a customer is worse than any missing feature.
Approved, and dated. Nothing reaches published without a person: recording a post as published refuses a post that was never approved, a duplicate starts as a draft, a recycle run produces a draft, and every row of a bulk import is a draft because the parser has no column that could say otherwise. Four possible ways around a reviewer, all closed at the schema level.
No. The calendar, the idea backlog, saved caption templates, hashtag sets, the grid preview, approvals, bulk import and the brand kit all work with no model configured. Drafting captions and generating a batch of ideas need one, and when it is missing those routes return an error naming what is absent rather than filler — a plausible placeholder caption is worse than an empty box, because it gets approved.
Yes. Deciding on a post is gated on the workspace role — owner or admin — and the review queue reports whether the caller may decide instead of letting the interface guess. If someone edits a post after it was approved, including one network's caption, it goes back to the queue and the approval is cleared.
It tells you what it can prove, which is narrower than the category norm. It counts the slots this workspace has actually posted in, states plainly that it has no engagement data, stays unconfident below eight posts, and refuses rather than inventing a time when there is no history. Ranking hours by real reach needs platform analytics Socie does not have.
Nothing. No IP address, no user agent, no row per click — only a counter on the button itself, incremented by a single conditional update. The count is taps rather than unique visitors and the API says so, since a refresh can inflate it.
In object storage, not on our server. Registering a file returns a signed upload URL with the size and content type baked into the signature, and the browser uploads straight to the bucket, so the file never passes through us. A test walks the module syntax trees to stop a local-filesystem path from reappearing.