Adding AI to your existing SaaS product can give you a major edge: - **Indie hackers have a major opportunity to use AI to augment** existing products and solutions. Here's how! - **Struggling to make your sales emails hit the mark? The lessons below
Adding AI to your existing SaaS product can give you a major edge:
-
Indie hackers have a major opportunity to use AI to augment existing products and solutions. Here's how!
-
Struggling to make your sales emails hit the mark? The lessons below can help you write your strongest email yet. Hint: Use a curiosity-based subject line.
-
Founder Jeff Edmondson recently acquired his first customer for TattooSchedule, a tattoo appointment booking service. Below, he shares what it really took to land his first customer, and how he combats feelings of discouragement.
Want to share something with nearly 75,000 indie hackers? Submit a section for us to include in a future newsletter. —Channing
🤖 How to Add AI to Your Existing SaaS Product
by Kyle Gawley
Unless you've been living under a rock for the past twelve months, you have likely witnessed the explosion of AI products, and the wave of indie hackers chasing the gold rush.
While AI has been around for years, it's previously been restricted to the realms of machine learning experts. OpenAI and Stable Diffusion changed the game in 2022 by making text and image generation accessible for everyone. Read on for more!
The opportunity
The most famous example of an indie hacker crushing it with an AI product is Pieter Levels, who is building Photo AI to create synthetic digital photoshoots.
Products like this are fun and sexy, but achieving that kind of success with a similar product is rare. The opportunity for indie hackers is to use AI to augment existing products and solutions, rather than betting on cutting-edge ideas.
Simon Høiberg added AI generative text to his social media scheduling product, Feedhive, to help users generate content ideas for social media.
Randall Kanna, another indie hacker, is building CodeTutor, which uses AI to teach people how to code. Randall is one of my customers, and CodeTutor is built using my SaaS starter kit. Here's a visual of CodeTutor to show how integrating AI into a product can look:
AI might seem technically daunting, but actually, adding generative AI to your SaaS product is easy!
Why add generative AI to your product?
The main reason that you should add AI to your SaaS product is to give your customers superpowers. We've already covered two examples, and here are more:
- Increase efficiency by automating repetitive, mundane tasks.
- Provide personalized experiences and recommendations.
- Improve the accuracy of data analysis, and deliver more profound insights.
- Predict future trends, patterns, and behaviors.
- Increase speed of decision-making.
The possibilities are endless!
How to add generative text with ChatGPT
ChatGPT helps you generate text responses with AI. You give it a prompt, and it returns text.
The following tutorial is written in JavaScript, but the same principles apply to other languages. OpenAI has SDKs for various programming languages, and the API calls will be the same:
-
Create Your OpenAI account.
-
Grab your OpenAI key.
- Store your API key somewhere safe. I always put keys into an .env file.
- Install the OpenAI SDK.
- Make a request to the ChatGPT API with your prompt, using the following code:
const { Configuration, OpenAIApi } = require('openai');
const config = new Configuration({ apiKey: process.env.OPENAI_API_KEY });
const openai = new OpenAIApi(config);
async function askChatGPT({ prompt }){
const res = await openai.createChatCompletion({
model: 'gpt-3.5-turbo',
messages: [{ role: 'user', content: prompt }]
});
return res.data?.choices?.[0].message?.content;
}
askChatGPT({ prompt: 'Give me a list of the 10 best cafes in Bangkok, Thailand' });
This chunk of code asks OpenAI to generate a new chat request. We specify the ChatGPT model (GPT-3.5-Turbo), which is the most popular and widely used OpenAI model.
Next, we set the role to user, and pass in our prompt.
It'll take a few seconds to complete, then ChatGPT will respond. The output text will be available in res.data.choices[0].messages.content.
How to add generative image with Dall-E
Dall-E is another product from OpenAI for generating images based on a prompt. We can use it to create any image that we can possibly imagine.
We can use OpenAI and the same API key to do this. We only need to change the code slightly:
async function askDallE({ prompt, size, number }){
const res = await openai.createImage({
prompt: prompt,
size: size,
n: number
});
return res.data?.data;
}
askDallE({ prompt: 'A photo of a kitten drinking coffee', size: '512x512', number: 1 })
Similar to ChatGPT, we pass in a prompt. However, this time, we need a few more parameters: Size and n.
Size is the dimension of our image. In this example, I'm asking Dall-E for an image that is 512 x 512 px.
n is the number of images we want to generate. In this case, it's just one image:
That's it! Easy, right? You can use these two chunks of code to perform many AI tasks. Writing good prompts is the secret to getting the best results!
Further reading
Will you add AI to your existing SaaS product? Share your thoughts!
Discuss this story.
📰 In the News
from the Growth Trends newsletter by Darko
🔎 LinkedIn has shared new insights into the latest tech marketing trends.
💻 Microsoft has dropped Twitter from its social media management platform.
📈 Five actionable ways to improve the ROI for your SEO strategy.
✨ Ad creative can impact up to 61 different metrics.
🐾 Here's how PetSmart grew its loyalty program to 60M members.
Check out Growth Trends for more curated news items focused on user acquisition and new product ideas.
📧 Writing Your Best Sales Email Yet
from the Hustle Newsletter by Chris Orzechowski
The Signal: Trendster Chris Orzechowski has some lessons to share. He:
Chris trains thousands of email marketers, and has personally written 10K+ emails for clients in his career. He agreed to share an in-depth breakdown of a Perennial Pastures Ranch email with all of us Trendsters!
Chris breaks down why this email shreds, and how yours can too!
Use a curiosity-based subject line
"Voice of customer" subject lines work incredibly well in dozens of industries. The key is using a phrase that one of your customers actually said, and wrapping it in quotations.
In this example, Chris combined this style of subject line with a common meme framework, so it would grab attention and stand out in a sea of promotional emails.
Create a personal introduction
Your customers want to feel a connection to the person writing to them. That's why Chris starts off his emails with copy that sounds like you're having a personal conversation.
In this case, it's the founder telling the audience about a book he read, and what he learned.
It's so different from all the "Buy my stuff now!" emails that people are used to. It makes them sit up and pay attention.
Your lead must be story-based
Stories are sticky, especially when they include scandal, gossip, or esoteric industry secrets. This story had all three elements. It's very hard to stop reading once you sink the hook in. People are dying to know what happens next.
Sometimes, the only goal of your introduction is to get the reader to keep reading. Use intrigue to pull them deeper into the text. If you pull them all the way to the end, they'll be that much more likely to buy.
Throw rocks at a common enemy
Every market has a common enemy. People in the regenerative agriculture space do not like people messing with their food supply. They especially despise people who try to pull the wool over their eyes.
Uniting against a common enemy is part of being human. It's in our DNA. It's also a strong copy technique.
Every market has a bogeyman. Attack, attack, attack!
Build a "belief bridge"
Think of your prospect's brain as a lock. Your sales message is the key. They won't buy unless your "key" can turn all the tumblers inside of the lock.
If even one tumbler stays in place, the door doesn't open.
Your prospects carry certain beliefs. They might be false or limiting beliefs, but until you build a "belief bridge," they're not going to buy.
For example, let's say you sell a fitness course on intermittent fasting. If someone believes that breakfast is the most important meal of the day, they're probably not going to buy...unless your sales message successfully shifts their beliefs, and walks them across your belief bridge to a new reality.
In our email example, it's important that readers develop the new belief that buying grocery store meat is like playing Russian roulette with your health. That means that the only way to get a superior product is to buy directly from a ranch that practices regenerative agriculture, like Perennial Pastures.
Include dramatic demonstration
The most powerful form of proof is a dramatic demonstration. Showing, not telling, is the name of the game.
In this case, Chris invites people down to the ranch to see how they do things. Many "Big Beef" producers would have you arrested if you tried stepping foot on their facilities.
Perennial Pastures is proving its superiority by inviting you inside. Transparency rules in this day and age.
Have a unique selling proposition
Have a tagline that prospects are going to remember about your brand.
At Perennial Pastures, it's "better than grass-fed beef." The company owns that positioning.
It drops that line in all of its sales messages to burn it into peoples' brains. If you want to engineer behavioral change, like getting someone to skip the meat aisle on their weekly grocery run, this is what it takes.
Have a crystal clear call-to-action
Every email needs a call-to-action. You need to direct people to take a specific action. Never assume that they know what to do next.
You need to lead them to the next step. Hold their hand and walk them over to the solution that they've desperately been searching for. Then, watch the cash flow in!
Will you implement these lessons into your email strategy? Let's chat!
Subscribe to the Hustle Newsletter for more.
🧠 Harry's Growth Tip
from the Marketing Examples newsletter by Harry Dry
“People love lists. They're simple. They're scannable. They wake people up.”
— Russell Davies
Go here for more short, sweet, practical marketing tips.
Subscribe to Marketing Examples for more.
🎉 Jeff Edmondson Landed His First Customer
by Jeff Edmondson
Hi indie hackers! I'm Jeff Edmondson, a software engineer by day, and indie hacker by night, building TattooSchedule. I embarked on this journey over five months ago, and only recently acquired my first customer. I shared this achievement on Twitter, and the post gained some traction. However, I felt the need to write this candid, unfiltered account of my experience to counteract any potentially misleading perception of ease that might arise from that tweet!
I wanted to write this for people like myself, people who can get easily discouraged by seeing others post about all of their successes, then feel inadequate by not being able to have similar outcomes. I wanted to provide an honest background about how hard it was for me to get to this point, and why I think anyone can get similar results if they truly enjoy the process of building and learning!
Enjoying the process
I think that the main reason I got my first customer, and was able to endure five months of nothingness, was due to the simple fact that I enjoyed what I was doing. That isn't to say that I enjoyed everything (time zones are still my worst enemy), but for the most part, I really enjoyed the process of it all.
I learned to enjoy the small things, like fixing an annoying bug, learning about tools to use, trying to work on SEO, getting a response from a cold DM, seeing page views increase, and more.
Getting out of your comfort zone
Five months ago, I was scared to talk to a potential customer. I dreaded talking to them, so I did as many developers do: I just continued to code, while putting talking to potential customers on the back burner. That was a horrible mistake, but as time went on, I realized that I couldn't put it off any longer.
I was making assumptions about features that I couldn't have been more wrong about. So, I called tattoo shops, sent over 200 cold DMs, and sent 25 cold emails. This was the first time that I had to deal with rejection. I was out of my comfort zone and putting myself out there, but I was not getting any responses from artists and shop owners.
I failed at my first attempt because I underestimated the difficulty of cold outreach. So, I went back to the drawing board. After about the hundredth cold outreach, I started to not take the rejection so personally. I was starting to get some responses, and even managed to get some artists to fill out a survey about some questions that I had.
Marketing first
After I realized that I should have done marketing and outreach before even writing a single line of code, I put myself into a mandatory code freeze. The only code that I could write would be for marketing purposes, not for new features that I assumed artists wanted.
During this phase, I tried all sorts of things: Promotional videos on my Instagram page, setting up Facebook Ads, getting banned from Facebook Ads, and more cold outreach. This code freeze started on March 1, so it's been over 50 days of failing to get a single person to sign up for my app. I've just been learning new skills and trying to implement them.
Wrapping up
In conclusion, the journey to securing my first customer for TattooSchedule has been a rollercoaster of emotions, replete with challenges, lessons, and growth. The key takeaways from my experience include the importance of enjoying the process, stepping out of your comfort zone, continuous learning, and focusing on marketing first.
I hope to encourage fellow indie hackers to not be disheartened by the perceived ease of success, or by the fear of failure. Embrace the ups and downs, learn from each experience, and remember that success is often the result of persistence, passion, and an unwavering belief in your vision. So, keep pushing forward, keep learning, and keep striving for greatness. Your breakthrough moment might be just around the corner!
Discuss this story.
🐦 The Tweetmaster's Pick
by Tweetmaster Flex
I post the tweets indie hackers share the most. Here's today's pick:
🏁 Enjoy This Newsletter?
Forward it to a friend, and let them know they can subscribe here.
Also, you can submit a section for us to include in a future newsletter.
Special thanks to Jay Avery for editing this issue, to Gabriella Federico for the illustrations, and to Kyle Gawley, Darko, Chris Orzechowski, Harry Dry, and Jeff Edmondson for contributing posts. —Channing