No description
Critical: - Fix EnsureUserSetupIsComplete middleware route name prefixes and redirect Subscription step to subscribe page (not onboarding) - Fix MCP session pollution: Auth::setUser() instead of Auth::login() - Remove dead BillingController::addWorkspace/removeWorkspace methods - Remove broken Workspace::pendingInvites() method Security (IDOR): - MediaController: add workspace ownership verification on all endpoints - UpdatePostRequest: scope label_ids validation to current workspace - UpdatePostRequest: scope platform IDs validation to current post Security (other): - Fix open redirect in login and registration (validate internal URLs) - Add validation to API PostController store/update (was $request->all()) - Prevent Owner role assignment via updateRole endpoint - Fix API post author attribution to use workspace owner Authorization: - PostController: use createPost policy instead of view for store/update/destroy Logic: - Post Status enum labels now use translation system instead of hardcoded Portuguese - Workspace deletion cleans up current_workspace_id for all affected members - StoreWorkspaceInviteRequest: replace Portuguese validation messages with __() Rename onboarding: - Step1.vue -> Role.vue, Step2.vue -> Connect.vue - Controller methods: step1->role, storeStep1->storeRole, step2->connect, storeStep2->storeConnect All 728 tests passing. |
||
|---|---|---|
| .claude/skills | ||
| .github | ||
| app | ||
| bootstrap | ||
| config | ||
| database | ||
| lang | ||
| maizzle | ||
| public | ||
| resources | ||
| routes | ||
| storage | ||
| stubs | ||
| tests | ||
| .editorconfig | ||
| .env.ci | ||
| .env.example | ||
| .env.testing | ||
| .gitattributes | ||
| .gitignore | ||
| .mcp.json | ||
| .prettierignore | ||
| .prettierrc | ||
| artisan | ||
| boost.json | ||
| CLAUDE.md | ||
| components.json | ||
| compose.yaml | ||
| composer.json | ||
| composer.lock | ||
| eslint.config.js | ||
| GEMINI.md | ||
| LICENSE.md | ||
| package-lock.json | ||
| package.json | ||
| phpunit.xml | ||
| pint.json | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
The open-source social media scheduling platform
Schedule, manage, and publish content to all your social media accounts from one place.
Self-hosted. Privacy-focused. No limits.
📚 Documentation • 🗺️ Roadmap • 💬 Community
🤔 Why TryPost?
Tired of paying expensive monthly fees for social media scheduling tools? Want full control over your data? TryPost is the solution.
| 🔓 100% Open Source | Inspect the code, contribute, make it yours |
| 🏠 Self-Hosted | Your data stays on your servers |
| ♾️ No Limits | Schedule unlimited posts, connect unlimited accounts |
| 🔒 Privacy First | No tracking, no analytics, no data selling |
✨ Features
| 📅 Visual Calendar | Drag and drop posts across your content calendar |
| ✍️ Post Composer | Create and preview posts for multiple platforms at once |
| 🖼️ Media Library | Upload images and videos with automatic optimization |
| 👥 Team Collaboration | Invite team members with role-based permissions |
| 🏢 Workspaces | Manage multiple brands or clients separately |
| 👀 Multi-Platform Preview | See exactly how your post will look on each platform |
🌐 Supported Platforms
X (Twitter) |
TikTok |
|||
YouTube |
Threads |
Bluesky |
Mastodon |
🚀 Getting Started
Get TryPost running in minutes:
| 📖 Installation Guide | Step-by-step setup |
| 🐳 Docker Setup | Run with Laravel Sail |
| ⚙️ Configuration | Environment setup |
| 🔗 Platform Setup | Connect your social accounts |
🤝 Contributing
We love contributions! See our Contributing Guide to get started.
- 💬 Discussions - Ask questions, share ideas
- 🐛 Issues - Report bugs, request features
📄 License
TryPost is licensed under the Functional Source License (FSL).
✅ You can: Use for personal or business use, self-host, modify and contribute.
❌ You cannot: Offer as a competing SaaS, white-label and resell.
If TryPost helps you, please give us a ⭐