Skip to content

Releases: apoorvdarshan/crossposter

v1.1.5

14 Jun 20:09
a9ebcd3

Choose a tag to compare

Fix LinkedIn posts being silently truncated mid-text (e.g. at the first parenthesis).

LinkedIn's /rest/posts commentary uses the "little" text format, where \ | { } @ [ ] ( ) < > # * _ ~ are reserved and must be backslash-escaped — unescaped, LinkedIn cuts the post body at the first one (so a post could publish "successfully" yet only show its first sentence, with no "…more"). Commentary is now escaped before sending: URLs are left intact so they still auto-link, and #hashtags stay clickable.

v1.1.4

12 Jun 13:24
6ec1c7e

Choose a tag to compare

1.1.4

  • Fix videos (and other media) being rejected by LinkedIn, Mastodon, X, etc. when uploaded without a MIME type. Uploads that arrive as application/octet-stream (common from curl/agent clients) are now typed from the file extension — .mp4/.movvideo, .jpg/.png/.webp/.gifimage — instead of a generic file that providers reject. Applied on read as well, so already-uploaded media is corrected without re-uploading.
  • AGENT_POSTING.md: document per-platform media formats, size limits, and text/title limits for every channel.

Install: npx @apoorvdarshan/crossposter@latest

v1.1.3

11 Jun 22:25
ec47626

Choose a tag to compare

1.1.3

  • Keep failed posts in the publish history. Previously a post where no channel published successfully was dropped and vanished from "Published" on refresh; now every attempt — manual or scheduled — is saved with its per-channel error results and persists across reloads.

Install: npx @apoorvdarshan/crossposter@latest

v1.1.2

11 Jun 20:33
6019d1f

Choose a tag to compare

1.1.2

  • Fix a React hydration error on the Scheduler and Dashboard caused by locale-dependent date/time formatting (server rendered 31/5/2026, client 5/31/2026); all date/time formatting is now pinned to a fixed locale so server and client match.
  • Show the project links (Star, Follow, Ko-fi, Vote) on every page masthead — Scheduler, Settings, Storage, and Socials — not just the Dashboard.
  • Drop the redundant eyebrow label ("Posting queue" / "Configuration") above the title on the Scheduler and settings pages so they match the Dashboard masthead.
  • Remove the filled circle behind the selected/today day number in the scheduler calendar; selection stays indicated by the day cell border and the per-day post-count badge is unchanged.

Full install: npx @apoorvdarshan/crossposter@latest

Crossposter v1.1.1

10 Jun 20:12
9e22a12

Choose a tag to compare

Highlights

  • Agent HTTP API guide — added AGENT_POSTING.md, a self-contained guide you can hand to any external agent so it can publish, schedule, or stage drafts (including media) through Crossposter's local API without reading the source. Now shipped in the npm package and linked from the README.
  • Draft media — the compose draft now persists an attached media reference, so a draft staged via the API (with an already-uploaded image/video) previews in Compose, ready to publish or schedule.

Install or update:

npx @apoorvdarshan/crossposter@latest

Crossposter v1.1.0

10 Jun 01:24
3a51267

Choose a tag to compare

Highlights

  • Instagram headless-browser publishing — a one-time per-account login in real Chrome (isolated profile, separate from your own Chrome), then invisible posting via the web app. Replaces the legacy instagrapi flow. Uses real Chrome so H.264 video uploads work, and matches the crop to the media orientation so vertical videos post as reels instead of being square-cropped.
  • Redesigned UI — distinctive type system, gradient accents, layered depth, and subtle motion across the app and landing page.
  • Socials settings — each provider profile in its own card, the redundant active-profile selector removed (pick accounts as publish targets on the dashboard), plus the Instagram login and headless toggle.
  • Dashboard — sticky compose action bar (shown once instead of duplicated) and de-duplicated platform/profile labels in the publish history.
  • Clearer X (bird) errors — daily limit (344), locked (326), duplicate (187), and rate limit (88) now map to actionable messages.

Install or update:

npx @apoorvdarshan/crossposter@latest

Crossposter v1.0.3

08 Jun 19:47
b8c258b

Choose a tag to compare

What's Changed

  • Add a calendar view to /scheduled that opens on the current month.
  • Mark dates with scheduled posts and filter the queue by the selected date.
  • Keep scheduler queue actions for rescheduling and discarding posts below the calendar.

Verification

  • npm run lint
  • npm run typecheck
  • npm run build
  • npm pack --dry-run

Crossposter v1.0.2

05 Jun 22:39
87a60b7

Choose a tag to compare

Crossposter v1.0.2

Patch release for Mastodon publishing limits.

What Changed

  • Added Mastodon's 500-character post text limit to Crossposter's shared preflight limit system.
  • The dashboard now warns before publishing when a selected Mastodon draft exceeds 500 characters.
  • The publish and scheduled-post paths now block over-limit Mastodon text before the provider call, instead of waiting for Mastodon to reject it with a 422 response.
  • Updated README and the website limits table to document Mastodon's 500-character post limit.

Install / Run

npx @apoorvdarshan/crossposter@latest

The app opens on:

http://localhost:2004

Links

Crossposter v1.0.1

05 Jun 21:33
318dc7c

Choose a tag to compare

Crossposter v1.0.1

Welcome to the first public GitHub release of Crossposter. This release packages the full local-first Crossposter app and the small follow-up updates made for the public launch.

What Crossposter Is

Crossposter is a free, open-source, local-first social publishing dashboard for accounts you control. It runs from localhost or a self-hosted Node server, so config, uploads, drafts, schedule data, publish history, and credentials stay on your machine instead of inside a hosted SaaS dashboard.

Use it to compose once, attach media, check platform limits, publish immediately, or schedule posts locally.

Supported Channels

  • X / Twitter
  • LinkedIn
  • Bluesky
  • Mastodon
  • Instagram
  • YouTube
  • Dev.to
  • Pinterest
  • Peerlist
  • Hacker News
  • Nostr
  • Dribbble

Some integrations use official APIs. Some are local or unofficial flows intended for personal accounts you own or are authorized to manage.

v1 Highlights

  • Local dashboard for composing and publishing posts
  • Local scheduling queue and publish history
  • Media uploads stored locally
  • Image and video compression helpers
  • Platform-specific title, post, and media limit warnings
  • Provider setup screens for connected accounts
  • Light, dark, and system themes
  • Tailscale helper for phone access to localhost
  • macOS auto-start support for keeping localhost alive
  • npm launcher support with npx @apoorvdarshan/crossposter@latest
  • Version and update controls inside Settings
  • Static documentation website at crossposter.apoorvdarshan.com

What Changed In 1.0.1

  • Added a Product Hunt Vote link in the Crossposter app header
  • Added Product Hunt links to the website nav, contact cards, footer, and metadata
  • Added Product Hunt to README contact/support details

Install / Run

npx @apoorvdarshan/crossposter@latest

The app opens on:

http://localhost:2004

For persistent local use, run it from the folder where you want Crossposter data to live.

Links

Note On Platform Integrations

Use Crossposter only with accounts, pages, boards, channels, and profiles you own or are authorized to manage. Unofficial integrations can break when platforms change and may trigger login challenges, rate limits, failed posts, or account restrictions.