📍 Current Location: Bangkok, Thailand 🇹🇭👷🏼 Working on: Automated Social Media Content Tooling, Ad Account Management📅 Availability: 🟢 Contract based development work🎶 Listening to: Tuscany - John Carroll Kirby📚 Reading: The Beach - Alex Garland, The Fourth Turning - Neil Howe and William Strauss🧑‍🏫 Learning: How to use AI for learning languages, Spanish, Muay Thai😄 Enjoying: Swimming in the sea, Pad kra pao📍 Current Location: Bangkok, Thailand 🇹🇭👷🏼 Working on: Automated Social Media Content Tooling, Ad Account Management📅 Availability: 🟢 Contract based development work🎶 Listening to: Tuscany - John Carroll Kirby📚 Reading: The Beach - Alex Garland, The Fourth Turning - Neil Howe and William Strauss🧑‍🏫 Learning: How to use AI for learning languages, Spanish, Muay Thai😄 Enjoying: Swimming in the sea, Pad kra pao📍 Current Location: Bangkok, Thailand 🇹🇭👷🏼 Working on: Automated Social Media Content Tooling, Ad Account Management📅 Availability: 🟢 Contract based development work🎶 Listening to: Tuscany - John Carroll Kirby📚 Reading: The Beach - Alex Garland, The Fourth Turning - Neil Howe and William Strauss🧑‍🏫 Learning: How to use AI for learning languages, Spanish, Muay Thai😄 Enjoying: Swimming in the sea, Pad kra pao📍 Current Location: Bangkok, Thailand 🇹🇭👷🏼 Working on: Automated Social Media Content Tooling, Ad Account Management📅 Availability: 🟢 Contract based development work🎶 Listening to: Tuscany - John Carroll Kirby📚 Reading: The Beach - Alex Garland, The Fourth Turning - Neil Howe and William Strauss🧑‍🏫 Learning: How to use AI for learning languages, Spanish, Muay Thai😄 Enjoying: Swimming in the sea, Pad kra pao📍 Current Location: Bangkok, Thailand 🇹🇭👷🏼 Working on: Automated Social Media Content Tooling, Ad Account Management📅 Availability: 🟢 Contract based development work🎶 Listening to: Tuscany - John Carroll Kirby📚 Reading: The Beach - Alex Garland, The Fourth Turning - Neil Howe and William Strauss🧑‍🏫 Learning: How to use AI for learning languages, Spanish, Muay Thai😄 Enjoying: Swimming in the sea, Pad kra pao📍 Current Location: Bangkok, Thailand 🇹🇭👷🏼 Working on: Automated Social Media Content Tooling, Ad Account Management📅 Availability: 🟢 Contract based development work🎶 Listening to: Tuscany - John Carroll Kirby📚 Reading: The Beach - Alex Garland, The Fourth Turning - Neil Howe and William Strauss🧑‍🏫 Learning: How to use AI for learning languages, Spanish, Muay Thai😄 Enjoying: Swimming in the sea, Pad kra pao
<- Back to work

PostSpin

AI generated carousel posts for social media

TLDR

PostSpin is a web based Saas tool that helps users create highly engaging social media carousel posts using AI.


PostSpin is built to save independent app creators and small businesses time fulfilling the ever growing needs of fresh content for TikTok and Instagram.


I was the sole developer of this project. It's built using NextJS for the frontend and a series of AWS based lambda functions to handle the post processing and posting.



PostSpin

Context

Client / Project Type: Freelance / Startup


This project began when I began exploring ways to automate the content creation for my app Fliq. I knew that as Fliq was a consumer app, TikTok and Instagram would be great marketing channels for me.


Whilst these channels present a great opportunity, I did not want to spend hours every day creating content.


Luckily, I found a "faceless" post format that performed extremely well - creating carousels using AI of interesting and sometimes counter intuitive facts about a given niche.


Whilst I was working on this tactic for my own business, I was approached by Alex of MushroomRise to help with the social media for his business. I suggested implementing a similar tactic for him.


During my work with Alex to create internal tooling for him to create similar posts, he suggested that the work I was doing could do well as an independent tool. We agreed to partner, I would take care of the development, he the marketing, and PostSpin was born.



PostSpin

Implementation

The PostSpin app has two core components. A frontend built using NextJS, MongoDB for the database and a microservice backend built using AWS lambda functions.


Frontend


Database and Storage


AWS Lambda Functions

The core functionality of the app is built out using a series of lambda functions in a microservice architecture.This handles everything from calls to the OpenAI api for text and image generation to chron jobs for the posting of scheduled posts.


I opted for this architecture for few key reasons.




PostSpin

Challenges & Solutions

The most challenging roadblock we faced in development of this project was gaining API access for posting to both Meta and TikTok.


The Meta documentation is, at time of writing, quite confusing. There are multiple versions available online and it is not initially clear which one is correct. This was overcame with some strong coffee and much swearing.


The TikTok api access process is more challenging. It takes as much as a month for the app to be initially approved.


After this, a separate submission needs to be made to gain posting access. To pass this checkpoint, a video needs to be submitted with a demonstration that the app adheres to the TikTok UX guidelines. These guidelines are quite complex in their requirements.


The process of submitting for a review takes about a week to return, and, unhelpfully, TikTok to not specify which requirement you have fallen foul of when a submission is rejected. This lead to a lengthy process of submitting, waiting, double-checking and resubmitting to get the app approved.


Outcome / Results


Reflection

My main learning from this project was the time it can take to gain access to certain APIs. Moving forward, I'm going to aim to do a better job at understanding these requirements early on as passing these gates caused significant delay in getting the app ready for production.


Tools & Stack

Frontend: NextJS


Auth: Clerk


DB: MongoDB


Payments: Stripe


Post Creation: OpenAI API


Image Manipulation: Canvas


Post Scheduler: AWS EventBridge and Lambda Function


Links

PostSpin

© William Etheridge 2025