No description
Find a file
Paulo Castellano 317788eb37 fix(social): apply chunked-upload memory fix to LinkedIn and YouTube
The same leak audited in the X publisher exists wherever a video is streamed
through a per-chunk request loop. Reproduced with the reported 49MB file:
LinkedIn's plain Http::withToken() chunk loop grew to ~146MB (and it allows
videos up to 5GB). Centralize the fix as freeChunkMemory() on the shared
trait and call it (after unset) in the X, LinkedIn and YouTube loops so memory
stays flat.

Audited and left alone: TikTok and Instagram pull from a video_url (no local
upload); Facebook and Bluesky stream the whole file in a single request.

Adds a LinkedIn multi-chunk video test.
2026-06-25 21:38:52 -03:00
.claude chore: remove unused Pennant package and dead user-timezone handling 2026-06-22 13:37:38 -03:00
.cursor/rules chore: update AI agent guidelines and refactor prompt handling 2026-05-21 18:53:37 -03:00
.github Enrich Copilot review instructions with examples and missing conventions 2026-06-10 14:26:54 -03:00
app fix(social): apply chunked-upload memory fix to LinkedIn and YouTube 2026-06-25 21:38:52 -03:00
bootstrap Add Telegram connection flow (controller + webhook) 2026-06-13 21:39:03 -03:00
config refactor(linkedin): infer post format from media + unify account connection 2026-06-24 21:05:09 -03:00
database feat(onboarding): add goal step after persona 2026-06-25 20:49:04 -03:00
docker Make webhook host configurable via WEBHOOK_URL (sendkit-style domain group) 2026-06-14 09:31:00 -03:00
lang test(onboarding): cover the full flow; drop goal exclusivity rule 2026-06-25 21:01:46 -03:00
maizzle fix(security): resolve npm audit in maizzle email toolchain 2026-05-21 20:29:32 -03:00
public chore(ai-templates): remove orphaned carousel.png thumbnail 2026-06-18 11:11:14 -03:00
releases chore(release): add v1.0.4 changelog + customer email artifacts 2026-06-22 18:34:14 -03:00
resources feat(onboarding): add goal step after persona 2026-06-25 20:49:04 -03:00
routes feat(onboarding): add goal step after persona 2026-06-25 20:49:04 -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
templates refactor: reorganize settings UI, migrate post templates to a file-based registry, and remove legacy video generation features 2026-05-03 13:44:13 -03:00
tests fix(social): apply chunked-upload memory fix to LinkedIn and YouTube 2026-06-25 21:38:52 -03:00
.dockerignore chore: add .dockerignore 2026-05-12 23:44:55 -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 refactor(social): address PR review follow-ups 2026-06-25 15:01:23 -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(i18n): drop orphan cannot_edit_published key + gitignore compiled JSONs 2026-05-19 13:12:13 -03:00
.mcp.json chore: update boost skills and config 2026-03-31 09:36:09 -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 chore: remove unused Pennant package and dead user-timezone handling 2026-06-22 13:37:38 -03:00
Caddyfile feat(docker): add Caddy reverse proxy and domain-portable Reverb config 2026-05-27 14:53:46 -03:00
CLAUDE.md docs: add media-types single-source-of-truth rule to CLAUDE.md 2026-06-25 18:29:10 -03:00
components.json chore: first commit 2026-01-14 22:13:44 -03:00
compose.override.yaml.example feat(docker): replace stale Sail compose with self-contained stack 2026-05-12 23:44:55 -03:00
compose.prod.yaml refactor(docker): align echo.ts with the shared sendkit config 2026-05-27 15:17:47 -03:00
compose.yaml feat(docker): replace stale Sail compose with self-contained stack 2026-05-12 23:44:55 -03:00
composer.json chore: remove unused Pennant package and dead user-timezone handling 2026-06-22 13:37:38 -03:00
composer.lock chore: remove unused Pennant package and dead user-timezone handling 2026-06-22 13:37:38 -03:00
eslint.config.js fix: address PR review findings — publish, REST store, SSRF, race 2026-05-04 12:16:39 -03:00
GEMINI.md chore: update config files and remove unused translation files 2026-01-26 12:02:24 -03:00
LICENSE.md chore: update project license from FSL to AGPL-3.0-only 2026-05-04 15:46:56 -03:00
package-lock.json Rename project from 'post.fotohof.at' to 'trypost' 2026-06-15 21:59:00 +02:00
package.json fix: upgrade concurrently to v10, security updates 2026-06-14 23:40:40 +02: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 Update star history section for dark and light themes 2026-05-29 16:11:24 -03:00
tsconfig.json chore: first commit 2026-01-14 22:13:44 -03:00
vite.config.ts chore: add resources/css/app.css to vite build input 2026-05-03 20:30:34 -03:00

TryPost

The open-source alternative to Buffer, Hootsuite, and Later.

Schedule, write, and publish to every social network from one place.
Self-hosted. Built for teams, agencies, and creators who own their data.

Stars License Release Discussions

Cloud • Documentation • Roadmap • Community


TryPost 1.0 is here

A massive release that turns TryPost into a complete open-source social media platform.

  • MCP Server — connect Claude, Cursor, ChatGPT, and any MCP client. Schedule, publish, and pull metrics with natural language.
  • REST API — Personal Access Tokens, every workflow you can do in the dashboard, available over HTTP.
  • Workspaces & Teams — manage multiple brands or clients in isolated environments. Invite team members with role-based permissions.
  • AI Carousel Generator — type a prompt, get a multi-slide LinkedIn / Instagram carousel back, with images and copy on-brand.
  • Brand Profile — set tone, voice, language, and colors once. Every AI generation respects them automatically.
  • Analytics — per-account engagement metrics from every platform that exposes them, in a single dashboard.

Read the release notes →


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

Features

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

Supported Platforms


X (Twitter)

LinkedIn

Facebook

Instagram

TikTok

YouTube

Pinterest

Threads

Bluesky

Mastodon

Get Started

Try it on Cloud The fastest way. Sign up at trypost.it
Self-host Free forever. Installation guide →
Run with AI assistants Connect Claude / Cursor / ChatGPT via MCP →

Contributing

We love contributions, no matter how small. Pick an issue, say hi in Discussions, or just open a PR with what you'd like to see.

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.

License

GNU Affero General Public License v3.0 — 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).


Built openly by the community. Star us on GitHub and tell a friend.


Star History

Star History Chart