No description
Find a file
Paulo Castellano aa7ca8ae21 refactor: notification preferences, header slots, calendar layout, UI polish
Notification preferences:
- Create notification_preferences table (post_published, post_failed,
  account_disconnected booleans per user)
- NotificationPreferenceController with firstOrCreate on first visit
- SendNotification job respects email preferences before sending
- Settings page with toggle switches, i18n in 3 languages
- 8 new tests for preferences (controller + wantsEmailFor + job integration)

Post published notification:
- PostPublished mail + maizzle template
- Notify owner on successful publish via SendNotification job
- PostPublished type added to notification enum

Header & Layout:
- Rename AppSidebarHeader to AppHeader with left/center/right slots
- showSidebarTrigger prop to hide sidebar toggle
- Calendar: controls in header (left: nav, center: date, right: tabs + new post)
- Fixed header with scrollable content (flex h-screen pattern)
- fullWidth pages use overflow-y-auto (fixes month view scroll)

UI improvements:
- Action buttons moved to header-right: posts, hashtags, labels
- Settings breadcrumbs: "Settings > Profile" pattern
- Calendar: remove duplicate New Post button from day view
- Remove size="sm" from Schedule/Publish buttons
- Remove bg-background from header (inherits from SidebarInset)
- Add Cancel button to labels and hashtags create/edit dialogs
- Add common.cancel i18n key
- Clean up orphaned Calendar breadcrumbs
- Fix SocialAccountsGrid buttons to use shadcn Button ghost

All 753 tests passing.
2026-03-30 18:18:17 -03:00
.claude/skills feat: implement MCP server with tools, Post API tests, auth middleware 2026-03-29 20:30:36 -03:00
.github feat: adding tests 2026-01-18 22:12:25 -03:00
app refactor: notification preferences, header slots, calendar layout, UI polish 2026-03-30 18:18:17 -03:00
bootstrap refactor: auth split layout, subscribe redesign, onboarding, i18n, cookie locale 2026-03-30 11:53:42 -03:00
config refactor: auth split layout, subscribe redesign, onboarding, i18n, cookie locale 2026-03-30 11:53:42 -03:00
database refactor: notification preferences, header slots, calendar layout, UI polish 2026-03-30 18:18:17 -03:00
lang refactor: notification preferences, header slots, calendar layout, UI polish 2026-03-30 18:18:17 -03:00
maizzle feat: post published notification, notification preferences prep 2026-03-30 17:23:36 -03:00
public feat: Introduce a self-hosted mode, refactor email notifications to use Mailable classes with new templates, and update the project README. 2026-01-18 17:48:12 -03:00
resources refactor: notification preferences, header slots, calendar layout, UI polish 2026-03-30 18:18:17 -03:00
routes refactor: notification preferences, header slots, calendar layout, UI polish 2026-03-30 18:18:17 -03:00
storage chore: first commit 2026-01-14 22:13:44 -03:00
stubs feat: implement MCP server with tools, Post API tests, auth middleware 2026-03-29 20:30:36 -03:00
tests refactor: notification preferences, header slots, calendar layout, UI polish 2026-03-30 18:18:17 -03:00
.editorconfig chore: first commit 2026-01-14 22:13:44 -03:00
.env.ci feat: adding tests.. 2026-01-18 22:01:55 -03:00
.env.example feat: improvements on ui 2026-01-21 20:50:57 -03:00
.env.testing feat: improvements on ui 2026-01-21 20:50:57 -03:00
.gitattributes chore: first commit 2026-01-14 22:13:44 -03:00
.gitignore chore: first commit 2026-01-14 22:13:44 -03:00
.mcp.json upgrade: Laravel 13, Inertia v3, remove pion/chunk-upload 2026-03-29 18:10:10 -03:00
.prettierignore chore: first commit 2026-01-14 22:13:44 -03:00
.prettierrc chore: first commit 2026-01-14 22:13:44 -03:00
artisan chore: first commit 2026-01-14 22:13:44 -03:00
boost.json feat: implement MCP server with tools, Post API tests, auth middleware 2026-03-29 20:30:36 -03:00
CLAUDE.md refactor: auth split layout, subscribe redesign, onboarding, i18n, cookie locale 2026-03-30 11:53:42 -03:00
components.json chore: first commit 2026-01-14 22:13:44 -03:00
compose.yaml feat: add documentation for connecting social media platforms and getting started guide 2026-01-18 18:57:15 -03:00
composer.json refactor: auth split layout, subscribe redesign, onboarding, i18n, cookie locale 2026-03-30 11:53:42 -03:00
composer.lock feat: implement MCP server with tools, Post API tests, auth middleware 2026-03-29 20:30:36 -03:00
eslint.config.js chore: first commit 2026-01-14 22:13:44 -03:00
GEMINI.md chore: update config files and remove unused translation files 2026-01-26 12:02:24 -03:00
LICENSE.md feat: Introduce a self-hosted mode, refactor email notifications to use Mailable classes with new templates, and update the project README. 2026-01-18 17:48:12 -03:00
package-lock.json upgrade: Laravel 13, Inertia v3, remove pion/chunk-upload 2026-03-29 18:10:10 -03:00
package.json upgrade: Laravel 13, Inertia v3, remove pion/chunk-upload 2026-03-29 18:10:10 -03:00
phpunit.xml feat: adding tests 2026-01-18 22:04:34 -03:00
pint.json chore: first commit 2026-01-14 22:13:44 -03:00
README.md refactor: auth split layout, subscribe redesign, onboarding, i18n, cookie locale 2026-03-30 11:53:42 -03:00
tsconfig.json chore: first commit 2026-01-14 22:13:44 -03:00
vite.config.ts feat: Implement soft deletes for workspace hashtags and labels, and integrate content_type into the initial post platforms table creation. 2026-01-17 14:44:37 -03:00

TryPost

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.

Stars License Release

📚 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)

LinkedIn

Facebook

Instagram

TikTok

YouTube

Pinterest

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 ⭐