Spicy title, but it’s true.
Mind of a Stoic is one of my side projects I launched back in 2018 that showcases quotes from some of the greatest thinkers of our time.
The premise is simple—package up a quote into a beautiful design, then post it every day to Instagram.
The thing is, I didn’t want to have to touch the thing.
At all.
So after thinking around with various no-code tools, I devised a solution that automated the image creation, generated the caption including hashtags, automatically posted to Instagram, Facebook, and Twitter, and then collected the engagement data a few days later. The best part? It only took about two days.
Here’s how it works.
Collecting and generating the quotes
Going out and sourcing the quotes was the biggest pain in the ass about this whole project.
Thankfully I stumbled upon some free quote APIs with a huge variety, then scraped some popular quote sites related to stoicism and philosophy.
Creating the background image
Next up, I needed to find a suitable image for each one of the people I was quoting and give it a nice visual treatment that’ll make it stand out from the crowd.
Once I had all my images, I ran a photoshop batch action that automatically ran five different duotone color treatments and saved them all to dropbox.
Here’s a sample of what one version looks like.
Organizing it all in Airtable
Once I had my quote, the author, and the background image for each, I then added them all to a giant Airtable document, sorted into their own tabs.
After I had all the individual quotes added, I created a master list and added every single quote to that.
The goal was to shuffle around each post so I wouldn’t see the same post every day, so I added a sort column and generated a number in each.
Once that was completed, I could sort from highest to lowest, and boom, instant shuffle.
Generating the quote images
Next up, I needed to use a service that I could link to Airtable and would automatically add the text over the background image.
I discovered two services that could do this—Bannerbear, and Placid. They were pretty well identical feature-wise back then, but I went with placid since it was about half the price.
In their template editor, I created the size image I wanted, then placed the text template where I wanted it in the image.
In this case, the text takes up the majority of the space, then I added a citation and signature to the bottom.
Once your template is complete, all you need to do is hook it up to Airtable and point all three text fields in the Placid to their matching counterpart in Airtable.
Notice the bottom that includes the output fields? After the images are generated, I have them send the output image file and image link back to Airtable.
Once you start the automation, you’ll slowly start to see Airtable populate with all of our fancy new images.
Delightful.
Adding additional text content
Now that we have all of our images prepared, we need to add a few extra columns to Airtable to house some text fields that Instagram, Facebook, and Twitter need.
Captions
This is the laziest part of my setup by far.
I sure as shit wasn’t about to generate unique captions for the 1000+ posts I just created, so I opted for a generic catch-all comment that worked for every post in hopes of driving some engagement.
It’s nothing special, but it works.
- Thoughts? 💭
- Thoughts? 🤔
Update: I improved this part significantly with ChatGPT. Check out my automating captions article for more details.
Hashtags
While trying to extend my reach and please the algorithm gods, I used an app called Hashtag Stack to automatically generate multiple sets of hashtags related to philosophy and stoicism.
I took each one of those sets and randomly inserted them into each post, so there was a little bit of variation each day.
Signature
Last but not least, I added a small signature to each post:
Follow @mindofastoic for daily quotes
Shop Stoic prints, wallpaper, and clothing in bio link.
Why you ask? Well back when Instagram wasn’t such a dumpster fire, you would often have a post go viral after hitting the main explore page.
These little signatures are designed to give those people context since it’s their first time seeing a post from this account.
Automatically publishing daily to Instagram
Now for the fun part—creating all the automation.
Zapier is the most popular tool out there, but Make (Formally Integromat) is my favorite tool. It’s a little bit nerdier, but it’s way more flexible, and the pricing can’t be beaten.
At the end of the day, the setup is pretty dead simple.
- Get content from Airtable
- Post to Instagram
- Mark the item as “posted” in Airtable
Here’s what each module looks like.
The first one is automatically running at 8 am every day, and looking for a post with a corresponding date in my table that hasn’t been posted.
I’m mostly doing this to future-proof the setup if/when I want to post twice a day.
The Instagram module is built with two fields — a link to the image, as well as a combination of elements to form the caption.
In my case, I include the caption, the quote, the name, my branded footer, and a group of hashtags.
Once the item gets posted to Instagram, the other Airtable module grabs the same row, adds the ID that Instagram returns, and checks off the “posted” field.
If you’re just looking to post to Instagram, you can basically stop right there.
Since all the work is done, I figured I might as well push this stuff out to Facebook and Twitter by adding a few more modules.
Collecting the data
After setting all of this up, I noticed the Instagram module could go back to one of your posts and collect the engagement numbers for both comments and likes.
I went back to Airtable and added some new columns to collect this data, then told Make to check each post a week after it was posted and add those engagement numbers for each row.
Monetizing the data
At this point, I’ve got hundreds of these quotes floating around on Instagram, and I’ve got data for which ones people seem to resonate the most with.
I then set up an online store, and created printed versions of all of those posts, knowing that they were the most popular of them all.
In the spirit of getting this project off the ground without having to do any manual work, I automated all of the ordering, printing and shipping through my favorite print-on-demand tool—Printful.
I’ll do a full article on this soon.
Steal this formula for yourself
I’m pretty happy about how this turned out and wanted to share this system with anyone who wants to give it a shot.
The good thing is that it can be applied to any quote niche, whether it’s sports, finance, motivational speakers, or whatever else you’re willing to collect.
Things I’ve learned
- For the first six months, I didn’t use captions OR hashtags on these Instagram posts, and the account still grew at an insane rate. I’m assuming IG is reading the content in the photo to assume what a caption would be, so that worked out well.
- Twitter growth using this sort of photo strategy sucks. I’m currently sitting at a whopping 66 followers.
- Facebook isn’t much better at 2000 followers, but it’s better than nothing.
- Athletes love these quotes. I have a ton of verified people, from NFL players to UFC fighters reposting the content, which helped it grow faster than usual.
- Other accounts in this niche started after me, followed the same formula of my posts, but have somehow grown to a million followers. I don’t understand how or why IG values one account over the other for reach, and it’s part of the reason why I now despise the platform. If I were to suggest something, I would recommend engaging with every comment rather than ignoring them all as I did.
- The completed Airtable document absolutely murders my 2022 M2 Max Macbook, be warned.
Thanks!
I hope something in here has helped someone or inspired some new ideas.
I will continue posting content about automation, side projects, niche sites, affiliate earnings, and anything else I want to get my chest.
👋
If you’re interested in more content like this, subscribe to my RSS feed or email newsletter below.
I like getting emails, so feel free to contact me directly as well.