Sometime last year, I decided to turn the French Together course (a self-study French course for English speakers) into a language learning app.

This was done in 3 steps:

  • Learning how to code
  • Building the French Together app
  • Launching

Here is how I went about each step and what I learned a long the way!

Step 1: The decline (or why I learned how to code)

After years of growth, my blog French Together started dropping in March 2021.

French Together traffic drop

It wasn’t obvious at first. Just a few thousands visitors less, slightly lower sales. I told myself it was just a temporary drop because of a lower demand of travel and language learning and mostly ignored it.

In July 2021 my traffic had dropped from 350,000 to 200,000 monthly visitors.

I tried to find the issue but kept coming to the same conclusion: there was nothing obviously wrong with the blog. It just seemed like the interest in learning French had declined.

Faced with much lower traffic, lower sales and a product I no longer loved, I decided to put SEO and marketing on hold and focus on product development instead. The goal: turn my aging French course (an interactive ebook) into a modern web app.

The problem was, of course, that I didn’t know how to code.

For the next few months, I made learning how to code my number one priority and did (roughly) the following:

  • Learned a bit of Elixir. In hindsight, not the best fit for my project but I had fun.
  • Learned JavaScript on Udemy
  • Learned Ruby on Rails with Michael Hartl’s course.
  • Consolidated my knowledge of Ruby on Rails with Hello Rails.

After a few months, I felt ready to start building the French Together app. Or rather, I felt that I should be ready and decided to try even though the idea terrified me.

Step 2: Building the app

For years, my main source of income has been the French Together course, a self-study course teaching English speakers high-frequency French vocabulary and grammar.

French Together course revenue graph showing 279, 463 USD revenue

The course is something I’m really proud of and has helped thousands of people finally speak French but it has always had a big flaw: its format.

Since I didn’t know how to code when I created it, I went with the EPUB 3 format and created an interactive ebook. I figured this would allow students to have audio directly inside the course and use it just like they would use an app.

An example of lesson from the French Together course

An example of lesson from the French Together course ebook

The problem with interactive ebooks is that they are so unreliable and poorly-supported that they would make anyone miss Internet Explorer.

Hence my desire to switch from ebook to SaaS. The goal of the app was to take the content of the ebook and turn it into a modern web app. Something that would be:

  • Much easier to use (no need to install anything)
  • Faster and more reliable
  • Cross-platform (the ebook required a different reader app for each platform)
  • Flexible so I can add cool features like flashcards and a spaced repetition system.

I wanted to build a MVP as quickly as possible, and follow best practices so I figured using a SaaS starter template would be a good idea. I went with Jumpstart Pro which helped me not only build faster but also learn a ton about the way Rails apps works.

After a few months, the app was ready. Or rather a good enough version of it was. The design wasn’t perfect, the features were basic and I’m sure experienced devs would scream looking at the code but it was still a vastly improved version of the ebook course.

List of lessons in French Together app

The app dashboard

French Together app lesson example

A French Together app lesson

Step 3: Launching the app

Since this was my first SaaS, I decided to go slow and do the launch in 3 main phases:

  1. Give free access to the app to people who bought the ebook course in 2022 in order to get feedback and make sure the app doesn’t crash.
  2. Switch half of my evergreen email launch to promoting the new app instead of the course
  3. Launch to my 90,000 email subscribers

My big goal for April was to execute the first 2 phases.

The free access launch

I launched before I thought I was ready because I knew I would never launch otherwise.

When I sent the email giving free access to people who bought the French Together ebook course in 2022, some grammar explanations were missing and there were still minor bugs but I figured I could improve everything while the launch was ongoing.

This first phase went great. People signed up, started using the app and except for a few minor bugs, everything went well.

None of the disaster scenarios I had in mind happened.

  • The app didn’t crash.
  • People didn’t tell me it sucked.
  • People didn’t struggle to log in and use it.

When people told me about small bugs, I managed to fix them. This may sound like no big deal if you’re an experienced dev but to me, it felt like a huge victory.

On to the next phase!

The evergreen launch

When people sign up for the French Together newsletter, they receive a free email course called 4 Rules You Must Follow If You Want to Speak French Fluently. The first few emails are purely educational and explain French Together’s philosophy while the last few emails are more traditional launch emails with a deadline to buy the course and receive a free bonus.

French Together’s email launch sequence

This evergreen launch has been running automatically for years and is what brings in 90% of my income.

So I figured I would take this proven launch sequence, update it for the app, and then make half of new email subscribers go to through the app sequence instead of the ebook course sequence.

That’s when problems started. After one week, there was no denying that something was wrong. Very wrong.

  • Good email open rates and decent click rates.
  • Decent amount of visits to the sales page (although less than expected)
  • Not a single trial signup for the app.

My first thought was that maybe requiring a credit card to sign up for the free trial was a mistake so I deleted that requirement.

Unfortunately (and unsurprisingly in hindsight), this didn’t fix my issue. More people signed up but none of them converted to paid.

I then tried lots of things:

  • Changing the evergreen sequence to offer 3 months free instead of offering the bonus I offer in the course sequence.
  • Rewriting part of the sales page
  • Changing the wording of random buttons

As often with sudden changes made out of desperation, it didn’t help.

I decided to take my mind off things for a day or 2 and turn off my computer. Not working for a few days helped a ton and I started thinking and analyzing instead of acting out of desperation.

I also talked to my friend Anna from Garlic Delight during our weekly mastermind session and we came to the following realizations:

  • The course and the app are basically the same product. The only difference are the format (ebook vs web app) and the cost.
  • This means that the copy that convinces people to sign up for the ebook course should also work to convince people to sign up for the app

And the most important one for me: people don’t think of free trials as free but see them as the beginning of their subscription, a delayed payment of sort. This means convincing people to sign up for free trials takes almost as much effort as selling a course.

Based on these realizations, I made several major changes:

  • I took the course’s sales page and re-used 95% of the copy for the app sales page.
  • I decided to offer the same bonuses in both the course and the app sequence.
  • I changed the wording about free trials fo focus less on “free” and more on “risk-free.”

3 weeks after making these changes, the numbers are looking a lot better. Here are the stats for the last 7 days:

  • 303 email subscribers went through the app launch sequence
  • 103 visits to the app sales page
  • 8 trial signups (all for the monthly plan)
  • 75% trial to paid conversion

Now the question is: what will the churn rate be like? The answer will be in the next retrospective.

Lessons learned

  • No need to reinvent the wheel. It’s better to use existing proven copy and slightly tweak it than try something completely new. When the product are almost identical at least.
  • People don’t see free trials as free and signing up for a free trial requires as much convincing as buying a course.
  • Sometimes taking a break for a few days is the best way to clear up your mind and come back to the problem with fresh eyes.

What’s next for May?

Now that the app is off to a decent start, the goal is to build upon this foundation.

This means:

  • Continue improving the app evergreen launch til it converts at least as well as the course’s evergreen launch. The number of trial signups is good but the problem I have is that since people sign up for monthly plans, it will take a full year of subscription before an app subscriber brings in as much money as a course buyer. Depending on the churn rate, this could make the app way less profitable than the course.
  • Make paying annually more appealing. Doing this would go a long way in solving the previous problem. Right now I offer 2 months free when paying yearly but it’s not very emphasized. I could also try offering a bonus for yearly subscriptions only.
  • Work on phase 3 of the launch and launch to my entire email list (90,000 subscribers). Based on the app sequence’s email subscriber to paid conversion rate of 2.64%, this could potentially bring in 2,376 app subscribers. So a MRR of roughly 20k USD (minus churn). If this happens, I would be able to stop selling the French Together course and fully switch to promoting the app instead.
  • Buid a Spaced Repetition System for the app. This should make the app much more effective but also help retain subscribers because it will give them a reason to use it daily.
  • Take SEO seriously again. Focusing entirely on learning how to code and building the app means I neglected SEO. A strong focus on linkbuilding could help me go back to 300,00 monthly visitors (and beyond.)

See you a month for the next retrospective!