2026-01-18 20:48:12 +00:00
< p align = "center" >
< img src = "public/images/trypost/logo-dark.png" alt = "TryPost" width = "200" >
< / p >
2026-01-17 02:46:30 +00:00
2026-01-18 20:48:12 +00:00
< p align = "center" >
2026-05-04 18:46:56 +00:00
< strong > The open-source alternative to Buffer, Hootsuite, and Later.< / strong >
2026-01-18 20:48:12 +00:00
< / p >
< p align = "center" >
2026-05-04 18:46:56 +00:00
Schedule, write, and publish to every social network from one place.< br / >
Self-hosted. Built for teams, agencies, and creators who own their data.
2026-01-18 20:48:12 +00:00
< / p >
< p align = "center" >
2026-06-26 13:30:12 +00:00
< a href = "https://github.com/trypostit/trypost/stargazers" > < img src = "https://img.shields.io/github/stars/trypostit/trypost?style=flat-square&color=4f46e5" alt = "Stars" > < / a >
< a href = "https://github.com/trypostit/trypost/blob/main/LICENSE.md" > < img src = "https://img.shields.io/badge/license-AGPL--3.0-4f46e5?style=flat-square" alt = "License" > < / a >
< a href = "https://github.com/trypostit/trypost/releases" > < img src = "https://img.shields.io/github/v/release/trypostit/trypost?style=flat-square&color=4f46e5" alt = "Release" > < / a >
< a href = "https://github.com/trypostit/trypost/discussions" > < img src = "https://img.shields.io/github/discussions/trypostit/trypost?style=flat-square&color=4f46e5" alt = "Discussions" > < / a >
2026-01-18 20:48:12 +00:00
< / p >
< p align = "center" >
2026-05-04 18:46:56 +00:00
< a href = "https://trypost.it" > Cloud< / a > •
2026-06-26 13:30:12 +00:00
< a href = "https://docs.trypost.it" > Documentation< / a > •
< a href = "https://github.com/trypostit/trypost/discussions" > Community< / a >
2026-01-18 20:48:12 +00:00
< / p >
---
2026-05-04 18:46:56 +00:00
## Why TryPost
Tired of paying $30– $200/month per user for a scheduler? Tired of your content sitting on someone else's database?
| | |
| ---------------------------- | ---------------------------------------------------------- |
| **Self-hosted, your data** | Your posts, drafts, and metrics never leave your server |
| **No artificial limits** | Unlimited posts, unlimited connected accounts, unlimited workspaces |
| **AI built in** | Captions, carousels, on-brand voice — using your own keys |
| **Multi-tenant ready** | Workspaces + roles for agencies managing many clients |
| **API + MCP first-class** | Automate everything; your AI assistant can post for you |
| **AGPL-licensed** | Inspect every line, fork it, ship it — forever free |
2026-01-18 20:48:12 +00:00
fix: Stripe webhook setup completion, notifications routing, billing UI
- Fix StripeEventListener: mark setup as Completed when subscription.created webhook fires
- Fix notifications routes: move outside subscribed middleware (non-critical feature)
- Fix NotificationBell: guard response.ok before parsing JSON
- Fix StripeEventListener: use data_get() for payload access
- Rewrite billing page to use SettingsLayout with download buttons on invoices
- Remove duplicate Unit/Listeners/StripeEventListenerTest (consolidated into Feature)
- Add comprehensive Stripe webhook tests (14 scenarios: happy path, setup transitions, edge cases, error handling)
- Update billing i18n: remove "no credit card" text, add status key
- Move auth layout logo to top-left corner
- Redesign onboarding Role page with compact list layout
- Add persona i18n translations (EN, PT-BR, ES)
- Update README with API, MCP, tech stack, quick start
2026-03-31 16:52:36 +00:00
## Features
2026-01-18 20:48:12 +00:00
2026-05-04 18:46:56 +00:00
| | |
| ------------------------------ | ---------------------------------------------------------------------- |
| **Visual Calendar** | See every scheduled post at a glance, switch between month/week/day |
| **Multi-Platform Composer** | One draft → preview & tweak for every network in parallel |
| **AI Generate / Review** | Draft from a prompt, get inline feedback before you publish |
| **AI Carousel Builder** | Prompt → multi-slide carousel with images, on-brand |
| **Brand Profile** | Tone, voice, language, colors — applied to every AI call |
| **Asset Library** | Reusable workspace media + Unsplash & Giphy search built in |
| **Signatures & Labels** | Reusable text blocks (hashtags, CTAs) and color-coded post tags |
| **Team Collaboration** | Owner / Admin / Member roles, comments with @mentions on drafts |
| **Workspaces** | Isolate brands, clients, or projects in their own spaces |
| **REST API + MCP** | Full programmatic control; AI assistants integrate natively |
| **Analytics** | Per-account engagement metrics across every supported platform |
| **Multi-language** | English, Spanish, Portuguese |
fix: Stripe webhook setup completion, notifications routing, billing UI
- Fix StripeEventListener: mark setup as Completed when subscription.created webhook fires
- Fix notifications routes: move outside subscribed middleware (non-critical feature)
- Fix NotificationBell: guard response.ok before parsing JSON
- Fix StripeEventListener: use data_get() for payload access
- Rewrite billing page to use SettingsLayout with download buttons on invoices
- Remove duplicate Unit/Listeners/StripeEventListenerTest (consolidated into Feature)
- Add comprehensive Stripe webhook tests (14 scenarios: happy path, setup transitions, edge cases, error handling)
- Update billing i18n: remove "no credit card" text, add status key
- Move auth layout logo to top-left corner
- Redesign onboarding Role page with compact list layout
- Add persona i18n translations (EN, PT-BR, ES)
- Update README with API, MCP, tech stack, quick start
2026-03-31 16:52:36 +00:00
## Supported Platforms
2026-01-18 20:48:12 +00:00
< table >
< tr >
< td align = "center" > < img src = "public/images/accounts/x.png" width = "40" > < br > < b > X (Twitter)< / b > < / td >
< td align = "center" > < img src = "public/images/accounts/linkedin.png" width = "40" > < br > < b > LinkedIn< / b > < / td >
< td align = "center" > < img src = "public/images/accounts/facebook.png" width = "40" > < br > < b > Facebook< / b > < / td >
< td align = "center" > < img src = "public/images/accounts/instagram.png" width = "40" > < br > < b > Instagram< / b > < / td >
< / tr >
< tr >
2026-06-26 13:30:12 +00:00
< td align = "center" > < img src = "public/images/accounts/tiktok.png" width = "40" > < br > < b > TikTok< / b > < / td >
2026-01-18 20:48:12 +00:00
< td align = "center" > < img src = "public/images/accounts/youtube.png" width = "40" > < br > < b > YouTube< / b > < / td >
< td align = "center" > < img src = "public/images/accounts/pinterest.png" width = "40" > < br > < b > Pinterest< / b > < / td >
< td align = "center" > < img src = "public/images/accounts/threads.png" width = "40" > < br > < b > Threads< / b > < / td >
2026-06-26 13:30:12 +00:00
< / tr >
< tr >
2026-01-18 20:48:12 +00:00
< td align = "center" > < img src = "public/images/accounts/bluesky.png" width = "40" > < br > < b > Bluesky< / b > < / td >
< td align = "center" > < img src = "public/images/accounts/mastodon.png" width = "40" > < br > < b > Mastodon< / b > < / td >
2026-06-26 13:30:12 +00:00
< td align = "center" > < img src = "public/images/accounts/telegram.png" width = "40" > < br > < b > Telegram< / b > < / td >
< td align = "center" > < img src = "public/images/accounts/discord.png" width = "40" > < br > < b > Discord< / b > < / td >
2026-01-18 20:48:12 +00:00
< / tr >
< / table >
2026-05-04 18:46:56 +00:00
## Get Started
2026-01-18 20:48:12 +00:00
fix: Stripe webhook setup completion, notifications routing, billing UI
- Fix StripeEventListener: mark setup as Completed when subscription.created webhook fires
- Fix notifications routes: move outside subscribed middleware (non-critical feature)
- Fix NotificationBell: guard response.ok before parsing JSON
- Fix StripeEventListener: use data_get() for payload access
- Rewrite billing page to use SettingsLayout with download buttons on invoices
- Remove duplicate Unit/Listeners/StripeEventListenerTest (consolidated into Feature)
- Add comprehensive Stripe webhook tests (14 scenarios: happy path, setup transitions, edge cases, error handling)
- Update billing i18n: remove "no credit card" text, add status key
- Move auth layout logo to top-left corner
- Redesign onboarding Role page with compact list layout
- Add persona i18n translations (EN, PT-BR, ES)
- Update README with API, MCP, tech stack, quick start
2026-03-31 16:52:36 +00:00
| | |
| --- | --- |
2026-05-04 18:46:56 +00:00
| **Try it on Cloud** | The fastest way. [Sign up at trypost.it ](https://trypost.it ) |
2026-06-26 13:30:12 +00:00
| **Self-host** | Free forever. [Installation guide → ](https://docs.trypost.it/getting-started/installation ) |
| **Run with AI assistants** | [Connect Claude / Cursor / ChatGPT via MCP → ](https://docs.trypost.it/mcp ) |
2026-01-18 20:48:12 +00:00
fix: Stripe webhook setup completion, notifications routing, billing UI
- Fix StripeEventListener: mark setup as Completed when subscription.created webhook fires
- Fix notifications routes: move outside subscribed middleware (non-critical feature)
- Fix NotificationBell: guard response.ok before parsing JSON
- Fix StripeEventListener: use data_get() for payload access
- Rewrite billing page to use SettingsLayout with download buttons on invoices
- Remove duplicate Unit/Listeners/StripeEventListenerTest (consolidated into Feature)
- Add comprehensive Stripe webhook tests (14 scenarios: happy path, setup transitions, edge cases, error handling)
- Update billing i18n: remove "no credit card" text, add status key
- Move auth layout logo to top-left corner
- Redesign onboarding Role page with compact list layout
- Add persona i18n translations (EN, PT-BR, ES)
- Update README with API, MCP, tech stack, quick start
2026-03-31 16:52:36 +00:00
## Contributing
2026-01-18 20:48:12 +00:00
2026-06-26 13:30:12 +00:00
We love contributions, no matter how small. Pick an [issue ](https://github.com/trypostit/trypost/issues ), say hi in [Discussions ](https://github.com/trypostit/trypost/discussions ), or just open a PR with what you'd like to see.
2026-01-18 20:48:12 +00:00
2026-05-04 18:46:56 +00:00
If TryPost is useful to you, **a star helps more people find it.** That's the most valuable contribution if you're short on time.
2026-01-18 20:48:12 +00:00
fix: Stripe webhook setup completion, notifications routing, billing UI
- Fix StripeEventListener: mark setup as Completed when subscription.created webhook fires
- Fix notifications routes: move outside subscribed middleware (non-critical feature)
- Fix NotificationBell: guard response.ok before parsing JSON
- Fix StripeEventListener: use data_get() for payload access
- Rewrite billing page to use SettingsLayout with download buttons on invoices
- Remove duplicate Unit/Listeners/StripeEventListenerTest (consolidated into Feature)
- Add comprehensive Stripe webhook tests (14 scenarios: happy path, setup transitions, edge cases, error handling)
- Update billing i18n: remove "no credit card" text, add status key
- Move auth layout logo to top-left corner
- Redesign onboarding Role page with compact list layout
- Add persona i18n translations (EN, PT-BR, ES)
- Update README with API, MCP, tech stack, quick start
2026-03-31 16:52:36 +00:00
## License
2026-01-18 20:48:12 +00:00
2026-05-04 18:46:56 +00:00
[GNU Affero General Public License v3.0 ](LICENSE.md ) — use, modify, fork, self-host, and redistribute, including commercially. If you run a modified version as a network service, you need to make your changes available to its users (AGPL §13).
2026-01-18 20:48:12 +00:00
---
< p align = "center" >
2026-06-26 13:30:12 +00:00
Built openly by the community. < a href = "https://github.com/trypostit/trypost/stargazers" > Star us on GitHub< / a > and tell a friend.
2026-01-18 20:48:12 +00:00
< / p >
2026-05-25 20:08:01 +00:00
---
## Star History
< p align = "center" >
2026-05-29 19:11:24 +00:00
< picture >
< source media = "(prefers-color-scheme: dark)" srcset = "https://api.star-history.com/chart?repos=trypostit/trypost&type=date&theme=dark&legend=top-left" / >
< source media = "(prefers-color-scheme: light)" srcset = "https://api.star-history.com/chart?repos=trypostit/trypost&type=date&legend=top-left" / >
< img alt = "Star History Chart" src = "https://api.star-history.com/chart?repos=trypostit/trypost&type=date&legend=top-left" / >
< / picture >
2026-05-25 20:08:01 +00:00
< / p >