Mixpost

Self-host your own social media scheduler and publish to 11 platforms without subscriptions or data lock-in.

3.4Kstars
500forks
MIT License
Vue

Mixpost is an open source, self-hosted social media management platform built for agencies, enterprises, and creators who want complete control over their scheduling infrastructure. It runs on your own server, meaning all content drafts, audience analytics, and team activity remain fully under your ownership — no monthly fees, no per-user pricing, and no third-party data collection.

The platform ships as a Laravel package installable via Composer, or as a Docker container for teams that prefer containerized deployments. It connects to 11 social platforms including Facebook Pages, Instagram, X (Twitter), LinkedIn, YouTube, TikTok, Pinterest, Mastodon, Bluesky, Threads, and Google Business Profile — each managed through a standardized OAuth-based provider system.

Beyond scheduling, Mixpost provides per-platform analytics pulled from official APIs, a visual content calendar, team workspaces with role-based permissions, AI-assisted post composition, and a built-in media library with GIF and stock image integrations. Post versions let you tailor the same piece of content differently per platform, and hashtag groups with dynamic variables reduce repetitive text entry.

This repository contains Mixpost Lite, the free community edition under MIT license. A commercial Mixpost Pro tier adds advanced features for larger teams and agencies, with pricing available at mixpost.app.

What You Get

  • Multi-Platform Post Scheduling - Draft, schedule, and publish posts across 11 social platforms simultaneously from a single calendar-based interface, with per-platform content versions to tailor messaging for each audience.
  • Platform-Specific Analytics Dashboard - Access engagement metrics, follower growth trends, and post performance data pulled directly from each platform’s official API, surfaced in a unified reporting view.
  • Team Workspaces with Role Permissions - Create isolated workspaces for clients or teams, assign role-based access, and coordinate content approval before publishing — keeping agency client work organized and auditable.
  • Built-in Media Library - Upload and reuse images, GIFs, and videos across posts; integrated GIF search (Tenor) and stock photo access (Unsplash) let you enrich content without leaving the platform.
  • AI-Powered Post Composition - Use AI assistance directly in the post editor to generate, refine, or expand social media copy, reducing time spent on routine content production.
  • Reusable Post Templates and Dynamic Variables - Build templates with placeholder variables for dates, names, or product titles that resolve automatically at publish time, enabling consistent high-volume output.
  • Hashtag Groups and Scheduling Conditions - Organize hashtag sets into reusable groups and define conditional scheduling rules that adjust post timing based on platform behavior or campaign logic.
  • Post Versions per Social Network - Write a single post and create platform-specific versions with different text, media, or character limits, then schedule all versions in one action.
  • Laravel Package and Docker Deployment - Install Mixpost as a Composer package into any existing Laravel application, or deploy as a standalone Docker container — both paths give full control over hosting environment and storage.
  • Multi-Language UI (15+ Languages) - The interface is fully translated into Arabic, German, Spanish, French, Russian, Czech, and other languages, with each user able to set their own language preference independently.

Common Use Cases

  • Running a multi-client social media agency - An agency self-hosts Mixpost to manage dozens of client accounts across 11 platforms under separate workspaces, with client-specific analytics reports and content approval workflows that eliminate third-party tool subscriptions entirely.
  • High-volume e-commerce brand scheduling - An e-commerce team uses post templates with dynamic product name and URL variables to batch-schedule hundreds of promotional posts per month to Instagram, Facebook, and TikTok without repetitive manual entry.
  • Privacy-focused creator infrastructure - An independent creator or consultancy hosts Mixpost on their own VPS to ensure that audience analytics, follower data, and content history never leave infrastructure they control — critical for GDPR compliance or sensitive brand work.
  • Enterprise internal social media operations - A corporation deploys Mixpost on internal servers to standardize content publishing across regional marketing teams with language-specific interfaces, centralized approval gates, and full audit trails kept on-premise.
  • Developer-embedded scheduling for SaaS products - A developer installs Mixpost as a Laravel package inside an existing product, embedding social scheduling natively into their platform without licensing external APIs or building from scratch.

Under The Hood

Architecture Mixpost follows a layered, package-oriented architecture built around Laravel’s service provider and singleton patterns. The entry point is MixpostServiceProvider, which registers three singleton managers — SocialProviderManager, ServiceManager, and a settings manager — forming the core dependency injection backbone. Social platform integrations are encapsulated behind an abstract SocialProvider class that enforces a consistent interface for authentication, token management, and post publishing, while concrete implementations for Twitter, Meta, and Mastodon handle platform-specific OAuth and API behavior. Publishing is handled by a bus-dispatched batch job pattern: PublishPost creates per-account AccountPublishPostJob instances dispatched via Laravel Horizon, with failure tracking and status transitions managed entirely through the Post model. The frontend is decoupled from the PHP layer via Inertia.js, which allows Vue 3 components to consume server-rendered data without REST endpoints or client-side routing boilerplate, preserving a server-authoritative data flow while delivering SPA behavior.

Tech Stack The backend runs on PHP 8.2 with Laravel 10/11/12 compatibility, using Eloquent ORM with custom attribute casts for structured access token and schedule status types. Laravel Horizon manages the Redis-backed queue infrastructure for async publishing and data import jobs. The frontend is Vue 3 with Inertia.js bridging server and client, Tiptap for rich-text post editing, Chart.js for analytics visualizations, date-fns for timezone-aware scheduling logic, and emoji-mart-vue-fast for emoji insertion. Assets are bundled via Vite with the official Laravel and Vue plugins. External integrations use Guzzle HTTP for social API calls, Intervention Image for media processing, php-ffmpeg for video handling, and custom service wrappers for Tenor GIF and Unsplash stock photo APIs. PHPStan provides static analysis and Laravel Pint enforces PSR-12 code formatting.

Code Quality The test suite uses Pest PHP organized into Actions and HTTP Controller test directories, covering both unit behavior (account creation, service storage) and HTTP-level flows (calendar, media, posts, reports, settings). PHPStan with deprecation rules and PHPUnit integration is configured as a dev dependency, indicating active static analysis in the development workflow. Laravel Pint enforces PSR-12 formatting across all PHP files. Test coverage is thorough for core domain actions with clear mocking of external dependencies, though coverage of the social provider OAuth flows and job dispatching is limited. Naming conventions are consistent and descriptive throughout controllers, actions, and models, following Laravel idioms that make the codebase accessible to developers already familiar with the framework.

What Makes It Unique Mixpost’s most distinctive technical choice is its unified social provider abstraction that normalizes OAuth flows, token lifecycle management, and post publishing across 11 fundamentally different platform APIs into a single coherent interface. Unlike tools that bolt on new platforms as isolated integrations, Mixpost’s abstract SocialProvider base class with onlyUserAccount, callbackResponseKeys, and useAccessToken contract points means new providers plug in with minimal coupling. The Inertia.js architecture is also a deliberate trade-off: rather than building a standalone API consumed by a Vue SPA, the Inertia bridge keeps data authorization server-side while avoiding the overhead of a separate API layer. The batch job dispatch pattern for multi-account publishing — using Laravel Bus batch with allowFailures and a single finally callback for post status transitions — is a clean solution to the problem of partial publish failures that most self-hosted alternatives handle inconsistently.

Self-Hosting

Mixpost Lite is released under the MIT License, which grants unrestricted rights to use, copy, modify, merge, publish, and distribute the software for any purpose, including commercial use. There are no copyleft obligations — you can embed it within a proprietary application, run it for paying clients, or redistribute a modified version without publishing your changes. The only requirement is preserving the copyright notice and license text. The repository explicitly positions itself as the community edition of a commercial product (Mixpost Pro), so new features are intentionally held back from Lite to keep the tiers distinct; bug fixes and optimizations remain open to community contributions.

Running Mixpost yourself means taking responsibility for the full hosting stack. The application requires PHP 8.2+, a MySQL or compatible database, a Redis instance for queue management via Laravel Horizon, and FFmpeg if you intend to process video uploads. For production, you’ll need a process manager for Horizon workers, a web server (Nginx or Apache), and scheduled task execution for the artisan commands that run post scheduling, metric imports, and data pruning. Storage for uploaded media needs to be configured — either local filesystem or a cloud provider via Laravel’s filesystem abstraction. None of this is exotic for a Laravel deployment, but it does mean your team owns patching, backup schedules, uptime monitoring, and database scaling as your content volume grows.

Compared to the commercial Mixpost Pro or hosted alternatives like Buffer, self-hosting the Lite version means forgoing some advanced features available in the Pro tier — though the exact Pro feature set isn’t documented in the open source repository itself. You give up managed upgrades, guaranteed uptime SLAs, and commercial support channels; when an API change on a social platform breaks a provider integration, you’re dependent on community or your own team to ship a fix rather than a vendor. The Discord community and GitHub issues are the primary support paths. For teams with existing Laravel infrastructure and the appetite to manage another service, the total cost of ownership at scale is substantially lower than per-seat SaaS pricing; for smaller teams without DevOps capacity, the managed alternatives may be worth their subscription cost.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack

No spam. Unsubscribe anytime.

Join 750+ subscribers
No spam. Unsubscribe anytime.

Search