Crossposter is a free, open-source social publishing tool that runs entirely from your local machine. It belongs to the category of social media management applications but distinguishes itself by being self-hosted and privacy-first. Designed for developers, content creators, and anyone managing multiple social accounts, it provides a single composer to write a post once and distribute it to over a dozen platforms. The core value is eliminating the need to log into each site separately while keeping your credentials and data under your control. By running locally via Node.js, Crossposter ensures that no third-party cloud servers ever see your drafts or tokens. This approach appeals to users who are tired of recurring subscription fees for cloud schedulers and want a transparent, auditable workflow.
The primary pain point Crossposter addresses is the fragmentation of social media publishing. Typically, a user must log into each platform individually, adapt content to different character and media limits, and remember which accounts have been updated. This process is time-consuming and error-prone, leading to missed posts or inconsistent branding. Cloud-based schedulers centralize the process but introduce privacy concerns, as credentials are stored on external servers and content passes through third-party infrastructure. Crossposter solves this by operating on localhost: you configure providers once, then compose and select targets from one dashboard. It checks each platform's known limits before posting, preventing rejection and saving the frustration of fixing failed submissions. For users who value data sovereignty and want to avoid monthly fees, this local-first approach is a compelling alternative.
The One Composer feature unifies your writing workspace into a single view. When you open the dashboard at localhost:2004, you see fields for title, link, post body, and media uploads alongside a checklist of your connected social accounts. This design keeps all elements visible at once, so you can compose the core message and then decide which platforms to target. Because the limits differ per platform, the composer shows warnings only when a selected social would reject the draft—for example, a 280-character tweet warning appears only if X is checked. This contextual feedback reduces noise and helps you tailor content on the fly. The benefit is a streamlined workflow: you write once, but each platform receives a compliant version without manual reformatting.
Crossposter includes a preflight warning system that checks content against each target platform's known restrictions before you hit publish. These warnings are not generic; they are tied to the actual limits parsed from the provider's specifications. For instance, if you attach a 20 MB image and Instagram is selected, Crossposter flags the exceeding size limit because Instagram accepts up to 8 MB. Similarly, text character counts for X, LinkedIn, and Mastodon are validated. Alongside warnings, Provider Profiles allow you to save multiple accounts per platform—such as a LinkedIn personal profile and a company page—stored locally in a JSON config file. You can quickly switch between profiles on the dashboard, streamlining the process of posting from different identities without re-authenticating.
admin
Crossposter tracks every publish action in local history, storing successful links and provider failures together in the same local environment. This history is searchable and helps you confirm that posts landed correctly or debug why a delivery failed. The scheduling feature extends the utility: you can queue posts to be published at future times from your self-hosted server, as long as the Crossposter process remains running. For media, built-in compression and conversion tools prepare images and videos according to each platform's requirements. You can compress images to JPG with adjustable quality and target file size, and transcode videos to MP4. Additionally, a crop tool specifically for Dribbble ensures your shots meet the required 400x300 or 800x600 dimensions, covering a gap that general tools often miss.
Crossposter is launched from the command line using npx or a persistent npm installation. Running `npx @apoorvdarshan/crossposter@latest` starts a local web server on port 2004, which opens in your default browser. The setup wizard guides you through adding providers: for official API platforms like LinkedIn or Dribbble, OAuth flows are triggered; for others like Instagram or X, Crossposter uses your local browser sessions and cookies, which are stored securely in the environment. Configuration, uploads, and publish history are all kept in the same folder where you run the tool. Once profiles are set, you compose a post, select the desired channels from the dashboard, and click publish or schedule. The entire workflow is local—no data leaves your machine except the final content sent to each social platform via their respective interfaces.
A typical user might be a developer who writes a technical article and wants to share it on Dev.to, Hacker News, and Mastodon. With Crossposter, they paste the markdown, attach a header image, and select the three targets. The preflight warnings adjust to each platform: Dev.to accepts up to 800KB body, while Hacker News limits title to 80 characters. The user can tweak the title accordingly and publish all from one click. Another scenario is a social media manager scheduling a week of promotional posts for a brand across Instagram, LinkedIn, and Pinterest. They prepare the images, use the compression tool to meet Instagram's 8 MB limit, and schedule each post to go live at optimal times. The outcome is consistent cross-platform messaging without the overhead of logging into each account separately, saving hours per week.
Crossposter is primarily aimed at developers and tech-savvy content creators who are comfortable with Node.js and the command line. It runs on any system with Node installed—macOS, Linux, and Windows. The tool is free and open-source under the MIT license, with no paid tiers or hidden features. Users are expected to self-host, though the project provides clear instructions for persistent installation and even a macOS service installer. The target audience includes indie makers who need to announce updates across multiple channels, privacy advocates who avoid cloud services, and users of decentralized networks like Nostr and Mastodon. With support for 15 publishing targets and a growing community, Crossposter offers a compelling local-first alternative to subscription-based schedulers, putting control and simplicity back into the hands of the publisher.
Crossposter is designed for developers, indie makers, content creators, social media managers, and privacy-conscious individuals who want to publish to multiple social platforms without relying on cloud-based services. It's ideal for those comfortable with command-line tools and self-hosting, such as Node.js developers, technical bloggers, open-source enthusiasts, and anyone who needs to manage multiple social accounts from a single, private workflow. The tool also appeals to users active on niche platforms like Mastodon, Nostr, and Peerlist, where official scheduling tools are limited. Small teams and solo entrepreneurs who want to schedule posts locally without monthly subscriptions will find Crossposter valuable.