Inspiration
I was inspired to build this when I saw all the AI slop that was being posted on X, both as posts and replies. It bothered me that so many people were polluting the feed with this type of content, while others who had valuable stuff to say were not able to compete or genuinely did not know what to say.
I also saw a lot of successful indie hackers, like Pieter Levels, who kept giving the same advice for how to write on social media, to write as if you are talking to a close friend. So I thought why not help people do just that, rather than generate AI slop.
What it does
So I built this tool which interviews you about what you want to write, and then uses your answers to generate content for X (or LinkedIn if that's your jam). The content is your exact words, no copywriting or AI "enhancing" to make it viral or whatever. Just your own authentic voice.
How to get access as judges
Use this code in Stripe checkout to get it for 100% off for 2 months: BOLTJUDGE
How we built it
I started off by getting ChatGPT to write me a detailed prompt for what I wanted to build, an AI social media assistant which helps you write content in your own voice, and that is styled to look like MSN Messenger (so that it feels like you are talking to friends).
I then used that prompt in Bolt.new to create the front end + Supabase database + the edge functions to handle chat and also to use Supabase magic link sign-in. I had to troubleshoot various issues with the chat and the system prompt in Cursor + ChatGPT o3 to make it behave exactly as I wanted.
Then I added Stripe integration via Bolt.new + the 1-click integration in the menu bar. For this to work, I had to create more edge functions to create Stripe checkout sessions, verify the checkout session was successful and use webhooks to add the new customer to my subscriptions database once Stripe confirmed they had paid. For this I also had to troubleshoot in Cursor + ChatGPT o3 to get it to work.
Then finally I did a bit of light UI work to make it look a bit better, but still a long ways to go there I think.
Challenges we ran into
I ran into 3-4 big challenges in this project. The biggest by far was getting the auth redirect to Post Muse to work after a successful Stripe checkout + webhook receipt. At first I had issues receiving the webhook and found out finally it was missing JWT headers, which I had to turn off as Stripe could not send those in the webhook. Then I must have done 30 different commits to get the auth callback from the magic link to work and let the user into the chat after they clicked on the magic link. For some reason the AI never thought to verify the magic link was properly formatted with all the right info (it was not), and even when I told it so it still kept trying to edit code on my /auth/callback route, rather than fixing the magic link itself. Eventually I just read the Supabase docs and did it myself.
Another big issue was for some reason when the chat pages were built, the functionality and state was duplicated between the parent chat page and the children chat/:id pages. So there was a risk this was not in sync, and I had to make chat/:id be full children of the parent /chat page, and remove any state they were duplicating from the parent, and vice versa. For some reason, the AI could not get the parent-child to work well with Nuxt, until I used Claude Opus and it 1-shotted a solution.
And a final big challenge was formatting the chat window nicely. Firstly, it did not quite make it look like MSN messenger. But also, there were bugs throughout such as the chat messages pushing the input text area off the screen that took some time to solve. And also the text being hidden underneath the send button (now fixed but still visible in the demo gif I made).
Accomplishments that we're proud of
The thing I'm most proud of is that I built a product that I think can help a lot of people on social media. It has been helping me and my wife with our own content while I've been building and testing it. And I'm excited to get it into the hands of more people to help them.
Also, this is the first app I've made that is more or less end to end automated, with a full set of backend functions in Supabase edge functions and Stripe integration for subscriptions.
What we learned
I learned that AI can help you move fast, but it's not fully ready to be left alone yet. So I still need to learn and understand how things work. And also I think I will set up my own Nuxt based boilerplate with Supabase db + edge functions + Stripe integration, so that in the future I can move faster and not focus on rebuilding things I've built in the past. This project took me most of the month (though I took some time off in the middle due to personal things). I'd like to get that timeline down to 1-2 weeks, so I can launch faster and have more time for marketing, which is both harder and more important than the technical aspect I think.
What's next for Post Muse
Next I want to share with small set of beta testers to get their feedback on if it is useful to them, understand how they use it and how to improve it, and find bugs to fix. I also want to improve the back end security, especially around rate limits so I don't blow through a lot of API credits as I start to share this more widely. Eventually I also want to add voice support and other features that will provide even more value to customers, but I will take the advice of many indie hackers and only build if I see traction/need.
Log in or sign up for Devpost to join the conversation.