You write code. MarketMee writes the marketing.
Every `git push` you make can now become a polished video, a scroll-stopping image, and a ready-to-publish post — automatically. No filming, no editing, no late-night caption writing. MarketMee watches your repo, turns your commit messages into human-readable updates, scripts a Hook-Demo-CTA video, generates the content, and posts it straight to LinkedIn, YouTube, X, Pinterest, and Threads.
Flip on Autopilot once and every future push markets itself — daily or every single commit, your call. No budget for video? Free text-only posts have you covered too. Setup takes two connections (repo + socials) and you're done — nothing else to configure.
Building was always the fun part. Now marketing is too.
Push your code. Let MarketMee handle the rest — start for free today.
#MarketMee #BuildInPublic #DevTools #GitHubAutomation #IndieHackers #MarketingAutomation #StartupTools #SaaS #ContentAutomation #DeveloperLife
@ManicNovaSoft Yes, you can set it not to post until you review it, and you can edit the wording or use your own wording entirely. You can also create a video focused exactly on the changes that you want; just tell it what you want, and it will build the videos and pictures for you.
You write code. MarketMee writes the marketing.
Every `git push` you make can now become a polished video, a scroll-stopping image, and a ready-to-publish post — automatically. No filming, no editing, no late-night caption writing. MarketMee watches your repo, turns your commit messages into human-readable updates, scripts a Hook-Demo-CTA video, generates the content, and posts it straight to LinkedIn, YouTube, X, Pinterest, and Threads.
Flip on Autopilot once and every future push markets itself — daily or every single commit, your call. No budget for video? Free text-only posts have you covered too. Setup takes two connections (repo + socials) and you're done — nothing else to configure.
Building was always the fun part. Now marketing is too.
Push your code. Let MarketMee handle the rest — start for free today.
#MarketMee #BuildInPublic #DevTools #GitHubAutomation #IndieHackers #MarketingAutomation #StartupTools #SaaS #ContentAutomation #DeveloperLife
Shipped something big: a full MCP server. AI assistants like Claude and Cursor can now manage posts, scheduling, social accounts, images, videos, Autopilot, brand settings and billing directly, through 127 tools. Every tool runs through the app's own API, so plan limits and feature flags still apply. You connect with OAuth and a consent screen, or an API key from a new Integrations page.
Also shipped a stats summary endpoint and matching tool: one call that totals up how your recent posts and sends performed, flags what's still pending, and lists failures. Fixed it to batch reads per account instead of per post, and to report a true published count instead of capping at 100.
https://t.co/ePIbY8E6GG
Stuck on something in MarketMee? Help is now one click away — on every single page.
We just dropped a support widget sitewide, and it's served from its own dedicated hosting so it loads fast and stays reliable, no matter when you need it. No more hunting for a help page or losing your place mid-workflow.
Watch the video to see exactly where to find it and how it works in real time.
Tap play, then go try it on https://t.co/7Lpc3iwjYY.
#MarketMee #ProductUpdate #SaaS #CustomerSupport #UXDesign #SoftwareUpdate #WatchNow
A lesson from cleaning up my pricing page: if the same number shows up in two places in your UI, don't calculate it twice.
I had plan cards and a cost table that each computed per-video token cost independently. Three near-identical clamp/floor calculations, each with its own rounding quirks. The result: numbers that technically should've matched but sometimes didn't, which is a quiet way to lose user trust.
The fix was boring but important: one countAffordable helper, used everywhere. Cards now derive their cost from the same breakdown logic the table uses. If I ever have duplicate math producing a number a user might compare side by side, that's a sign to consolidate, not patch each copy separately.
While I was in there, I also tightened the copy so it's honest about what the figures mean (typical costs, not a hard ceiling) and typed video lengths properly instead of passing raw numbers around.
More at
Something I learned while building a free sample reward system: a hard daily cap feels fair until someone actually pays you and then hits it anyway. That's a bad moment to put a paying customer in.
My fix was to let purchases fund a separate bonus pool instead of touching the cap itself. Every $4 actually paid on a first plan purchase or top-up (checkout, one-click, or auto-replenish) adds one sample to that pool. Once the daily 100 run out, claims pull from there instead of just stopping.
Two decisions mattered more than the code itself. First, unused bonus samples roll over rather than expiring, so the reward doesn't feel like a use-it-or-lose-it gimmick. Second, renewals don't generate bonus samples at all. The reward is for new money coming in, not for staying on autopay.
Small design choice, but it changed how the whole feature felt from the user's side.
Building this in public at
I made a short explainer video of Rune, the IDE and terminal multiplexer from @unstablebuild.
Rune is a fast, GPU-accelerated native IDE that works for both hands-on coding and agent-driven programming. You lay out your work across nine workspace slots, with as many terminals, tabs and windows as you need. Language intelligence, an agent and plugins are built in, and a native OpenGL or Metal renderer draws all of it. No Electron.
Every Rune instance also joins an end-to-end encrypted peer network. That means you can open your workstation or a headless Docker node from your laptop and pick up where you left off.
I made the video with MarketMee, a tool I'm building that turns a repo's code into marketing videos. It's yours to use however you like, no strings attached.
⭐ https://t.co/zXdriYxquB
#DevTools #OpenSource
A lesson from building scheduled posting: don't bind to the final asset too early.
I used to send a post's media over to the publishing partner the moment it was scheduled. The problem is obvious in hindsight — if you re-render a video or tweak an image afterward, the post still goes out with whatever existed at scheduling time, not what you actually want live.
So I changed the model. Posts now hold in the database and link to the current video render or image, not a copied file. A background job checks every minute for what's due, resolves the media right then, and sends it. If you re-render or edit right before it fires, that's what gets posted.
The harder part was cleanup. You can't just delete old renders once a new one finishes — a sent post, a rating, or a send that's mid-flight might still need those files. I had to make deletion aware of every place a file could still be referenced before it's safe to remove.
The takeaway: when you let data change after scheduling but before execution, resolve as late as possible, and treat your cleanup logic as seriously as your main feature.
Your biggest customers deserve more than a one-size-fits-all plan — now they can have it, without the manual work.
MarketMee admins can create custom Enterprise offers in seconds: set your own monthly tokens, post limits (or go unlimited), and pricing, then send a ready-to-use checkout link. Every change is locked down with a 6-digit emailed verification code, so your billing stays secure.
Best part? When a customer upgrades to Enterprise, their old plan cancels itself automatically — no manual steps, no double charges, no leftover subscriptions. Unused time gets credited back, every single time.
Your Enterprise customers, finally handled the easy way. Explore it at https://t.co/7Lpc3iwjYY.
#MarketMee #SaaS #EnterprisePlans #ProductUpdate #Billing #Security #CustomerSuccess #Automation #TechNews
Made a short explainer video of PromptScript for @wojciechguziak, since more teams should know about it.
PromptScript is an open-source compiler for AI coding agent rules. Write instructions, skills, agents, MCP servers, hooks and policies once in .prs files that inherit like code, then run `prs compile`.
It outputs the files 50 AI tools already read, like CLAUDE.md, .github/copilot-instructions.md and .cursor/rules. One reviewable, CI-validated source instead of copies that drift apart.
v1.23.0 just added release build/promote/rollback with governance approval gates, prompt evals and prs fmt.
I made it with MarketMee, a tool I'm building that turns a repo's code into marketing videos. It's yours to use, no strings.
With an account on MarketMee, you can get videos and posts like this created on every git push.
⭐ https://t.co/j5UXcgc6qN
#buildinpublic #indiehackers
Shipped a feature I've wanted to build for a while: Fit to Schedule.
If you've got posts sitting in your queue, you can now hit one button and they'll automatically pack into your available posting slots, based on your account's configured posting times. No more manually dragging and rescheduling each one to fill the gaps.
Under the hood this meant writing a new slot-packing service, extending the post timing controller and posting schedule service to support it, and adding a dedicated API route with test coverage. I also cleaned up the account pause logic while wiring this in, since it needed to play nicely with the new scheduling flow.
Small feature on the surface, but it removes a genuinely annoying manual step for anyone queuing up content in advance.
A small lesson from recent work on MarketMee's GitHub integration: I had it doing per-push summaries and a connect scan on top of basic setup. It worked, but it was running background activity that nobody was really using.
So I scoped it back down to just setup. No more per-push summaries, no more connect scan.
The tip here: when you're building an integration, it's tempting to add "nice to have" automation early on. But every extra background process is something you have to maintain and reason about later. If it's not pulling its weight, cutting it is a win, not a loss.
https://t.co/ePIbY8E6GG
A tip from something I fixed a while back: if your system charges credits (or any resource) for a multi-step process, don't charge until the step actually succeeds.
I had a case where code-reading for tagged videos was being charged before I could guarantee it worked. Fixed it so the charge only happens after success. I also found that failed video/image generation requests could leave credits claimed but never released, since nothing was tracking which claim started the request. Fixed that too, so failures now release their claim automatically instead of leaving credits stuck.
The broader lesson: anywhere you reserve a resource before an operation completes, you need an explicit path for releasing it when things go wrong. It's easy to handle the success path and forget the failure path entirely.
Enterprise customers used to be a headache: manual quotes, manual cancellations, manual everything.
Watch how MarketMee now lets admins build a fully custom Enterprise plan — tokens, post caps, pricing, even $0 free plans — and ship a checkout link in seconds. No spreadsheets, no back-and-forth.
And when a customer upgrades? Their old plan cancels itself automatically, instantly, every time — with unused time credited back. No double billing, no manual cleanup, no support tickets.
Hit play to see the whole flow in under a minute, then go set up your first custom plan.
#MarketMee #SaaS #ProductUpdate #EnterpriseSoftware #Automation #CustomerExperience #BillingMadeEasy #TechUpdate
Something I keep relearning while building: the words you use in onboarding matter as much as the feature itself.
I had a step asking users to share a sample. The wording made it sound like an ongoing commitment, something people would have to keep doing. That hesitation adds up fast when someone's just trying to get started.
So I rewrote it to frame it as a quick, one-off action. Same feature, same ask, just clearer about what's actually being requested.
If you're building onboarding flows, it's worth reading your copy as if you've never used the product. Ambiguity about scope (is this a one-time thing or forever?) can quietly kill momentum before someone even gets going.
Shipped today: two changes to Autopilot.
Lesson-style posts can now look back through 100, 250, 500, or 1,000 of your newest commits, configurable per repo, instead of just the last 50. If you've been pushing commits that never got surfaced because they aged out of a short window, they're now fair game for becoming a lesson post. I also tightened the dedupe logic so only runs marked as "older commit" lessons count against the 30-day window. That means a commit already covered by a new-work post can still become a lesson later instead of getting silently skipped.
I also fixed a display bug where draft posts were falling through to the "Publishing" label on the Posts list and the post detail page. If you had drafts sitting around, they looked like they were stuck mid-send. They now correctly show as "Draft."
More at
Shipped today: fixed a problem where my auto-generated videos sounded broken.
The voiceover was reading things like "owner/repo" literally — "owner slash repo" — which meant videos ending with "Star hunvreus/devpush on GitHub" sounded off and I was fixing them by hand almost every time.
Now there's a standing rule: narration never speaks a repo path, @handle, file name, command, code, or link literally — it says the product name in plain words while the screen shows the exact text. A backstop handles the common cases too, so "https://t.co/iGrPUVv6la" becomes "repo on GitHub."
I also added a review check that catches any narration still doing this and sends it back with specific guidance on what to say instead, fixed on the first pass instead of burning every revision on the same issue. And I made sure it's not overzealous — things like "CI/CD" or "24/7" are left alone, since those aren't repo paths.
Small fix, but it means the videos now sound like a person talking instead of a text-to-speech engine stumbling over a GitHub link.
Ever had an app quietly log you out, reload the page, and erase 10 minutes of work you forgot to save? That's over.
MarketMee now renews your session fully in the background — no reloads, no wiped drafts, no surprise sign-outs mid-task. Your AI-drafted briefs save the instant they're created, so there's nothing left to lose.
We also locked video lengths in place once a video is generated, so a refresh or stray click can never mismatch or break your finished work.
Smoother sessions. Safer drafts. Zero surprises. Update now and feel the difference.
#MarketMee #ProductUpdate #WorkflowTools #AIcontent #MarketingTools #TechUpdate #SaaS #NoMoreLostWork
Shipped a bunch today on MarketMee (https://t.co/ePIbY8E6GG):
Every sent post's page now shows real engagement stats, views, likes, replies, reposts, quotes, bookmarks, for X and LinkedIn. If an account was connected before stats tracking existed, you'll see a clear Reconnect prompt instead of losing your post history. I also fixed a case where an empty or failed stats response could silently overwrite good saved data.
The posts API now supports saving a draft, same behavior as Autopilot's drafts: nothing sends until you give it a time or post it manually. Along the way I closed two edge cases: a malformed "draft" value could sneak a post through as published, and giving a draft a scheduled time wasn't actually queuing it to send.
Brand colour detection got smarter too. MarketMee now reads modern CSS colour formats (oklch, oklab, lch, lab, color()) and pulls colours from each repo's own website instead of defaulting to the account-wide palette. Greyscale-only themes, like a stock template's near-black primary, now correctly rank below real picks.
Last one's a fix, not a feature: disconnecting a repo that had its own branding could, due to how the database handled deletion, cause that branding to silently overwrite the account's default. That's fixed now with a proper cascade so there's no lingering row to get confused with.
Shipped today: X accounts were all hard-capped at 280 characters, even X Premium ones that can post up to 25,000.
Now each X account sets its own limit. Compose, captions, and Autopilot all respect it instead of trimming everything the same way.