July 2021: Retrospective & Income Report
Launched MDX.one and got to $162 MRR by the end of the month.
Table of Contents
- July Total Revenue: $171
- July Total Expenses: -$612
- July Net Profit: -$441
- What happened in June
- ✅ Launched MDX.one
- ✅ Ended the month with 19 new subscriptions and $141 MRR
- ✅ Other highlights of June
- What happened in July
- ❌ Got my first cancellation
- ❌ Another person asked me to pause their subscription.
- ✅ A user paid back the refund.
- ✅ Got a new yearly subscription.
- ❌ Got a new monthly subscription.
- 🕝 Gave 30 days free trial to a user.
- ❌ Number of visitors went down
- ✅ Tried out Splitbee
- ❌ Problems with the official Notion API
- 🚢 Create Secret Pages (Not indexed by Search Engines)
- 🚢 Updated the Notion template to make it more intuitive
- 🚢 Assign Categories/Tags to Articles
- ✅ Someone created the 150th blog
- ✅ Migrated my own personal blog to MDX.one
- ✅ MDX.one is featured in NoCodeDev's Newsletter
- 🚢 Multiple Blogs under the same account
- 🚢 Automatically Add Related Posts
- 🚢 Added a Search functionality
- 🚢 Added a Showcase section to the website
- 🚢 Added Pagination
- ✍️ Started Writing Help Docs
- 🤝 Sponsored NoCodeAsia 🔥
- Plans for August
The only revenue source for me is through the subscriptions for MDX.one. This month was brutal when compared with the last month. I only got 1 new subscription (yearly) for the whole month of July.
$90 (old subscriptions) + $81 (new subscriptions)
I need to cut down on expenses. $612 is relatively high for my usual standards.
- Community: Swipe Files (-$199)
- Recurring Expenses(-$104): Vercel (-$24), Splitbee (-$17), Devdojo(-$15), Postmarkapp(-$10), MugshotBot(-$9), Domain Renewal (-$29)
- Other software ($-29): CleanshotX(-$29)
- New Courses (-$97)
I finally launched MDX.one on June 21st on Twitter. The launch tweet did very well. When I checked it just now, it has around 75k impressions and 1k link clicks which is pretty good when compared with my usual tweets.
I started getting new subscriptions even before I officially launched the site. Some people have figured out that the website is already live and started creating their blogs with it. So, by the time I officially launched it, I already have 3 yearly subscribers + 2 monthly subscribers and the MRR was already at $35.
At the end of May, I hoped and set the goal to get at least one paying customer in June. I am more than happy with how it turned out. I got a total of 19 paying customers by the end of month June, and the MRR has reached $141.
Tweets (Click to open it)
- 275+ users signed up, 100+ blogs created and 800+ emails processed.
- MDX.one was mentioned in a Korean newsletter.
- Got my first Korean customer as a result of that.
- Added support for other language URLs.
- Got an acquisition offer for MDX.one for ~$10K. Although the amount was comparatively low, it felt really good and gave me the confidence that I am heading in the right direction.
- Got an email from a VC firm to schedule a call and discuss MDX.one.
- Shipped some new features after launch.
- Automatic RSS Feed
- Automatic Sitemap
- Analytics for June since launch.
July was pretty brutal when compared with June.
They did not require and hence not using any of the premium features. So, I guess that cancellation is bound to happen.
Not sure if they are going to resume the subscription anytime soon.
A user to whom I refunded the subscription earlier in June asked me to charge their card after the improvements I made.
They have not started using the product yet. They just explored the product for a bit.
But they were not satisfied with the product and are going to cancel by the end of the month.
Right now, I don't have the trial option, so I just asked them to subscribe to the monthly plan and refunded them afterward. Still waiting to see if they will end up using the product or not.
So, if we are speaking practically, the new MRR that I got this month is only $6 from the one yearly subscription I got, which is pretty less when we compared it to June.
I have heard from many of the SaaS founders that it is common for this to happen in the months of July and August. This is my first time running a SaaS, so I am not sure if that is true or not. I will have to wait and see for myself.
The number of visitors in the whole month of July is less than the visitors I got in the last 10 days of June.
This month, I discovered and started using Splitbee. I really like the product very much. I still haven't tried some of the features that it offers yet. Going to try it out this month.
The only feature that I have tried is creating funnels.
Users signing up after visiting the home page
I am not sure about the usual conversion rate, but this seems like it's very low, especially considering that I have a free plan.
The majority of users that are visiting the site are from Twitter because I am building in public. So, it might just be that the users who are visiting the site just came to see what the product is about, and are not looking to buy it.
Regardless of that, I am revamping the landing page and will see if that changes anything. I also have to explore other distribution channels and not rely completely on Twitter.
Users successfully creating a blog after starting the process of creating a blog.
Around 60% of the users end up not creating the blog after starting the process. Again, there might be some false negatives here, where people just exploring the site, and not actually intending to create a blog.
The next funnel gives a better idea of how many are facing problems while creating a blog.
Users who end up successfully creating a blog after submitting the form to create a blog.
26% of users are facing problems with the blog creation flow.
They tried to submit the blog creation form, but faced some problems and abandoned the flow after that. This is something that I need to fix. Maybe adding a link to a demo video might help. Will have to try and see.
This is the entire funnel.
- Users visited the dashboard
- 29% of those users who visited the dashboard, dropped off and did not try to create a blog.
- 45% of those users who started the blog creation flow, dropped off and did not submit the form.
- 28% of the users who submitted the form ended up facing some problems with it and abandoned the process.
So, overall only 28% of the users who signed up created the blog. There is still a lot of opportunities here for me to help those remaining users take their first meaningful action and experience the aha moment.
I will try to dig into this more and see if I can make any improvements.
At the start of the month, I faced some problems with the official Notion API. After going back and forth many times with the Notion API team, my issues were still not resolved. So, I decided to not rely on the official API.
I completely revamped the onboarding flow and made it even easier to onboard new users. Now, all you have to do to create a blog is:
- Duplicate our template and make it public.
- Enter the public URL of the Notion page that you just created.
- Choose a unique subdomain for your blog.
That's it. Your blog will be created after that.
The positive side of this flow is I get to remove so much of my internal code. The negative side is I started relying completely on the unofficial and unstable private API.
Added a feature to mark some pages to not be indexed by Google. The primary use-case of where I am using this feature myself is as a sandbox. If you just want to have some sandbox page where you can experiment with different Notion blocks and see how they appear on the blog. These pages will not be indexed by search engines. They will not be added to the sitemap. They will also not appear in the navbar or the footer.
This feature also gives me a base to add password protection to some of the pages in the future.
Previously, the Notion template that I was using just has 3 tables. I rearranged the template to make it more intuitive to use. Since I am using Notion only as a headless CMS, it doesn't matter how I structure different databases. The only thing that matters is that there are 3 databases –
A blogging platform is not complete without the tags/categories functionality. Some of the users have already asked me for this functionality. Now you can assign categories to your articles. For every new category, a category page will automatically be created.
MDX.one crossed the milestone of successfully hosting 150 blogs. (Jul 7, 2021)
Since then I purged more than 50 inactive blogs which are not even set up properly. Now, the total count of blogs is 148. I haven't done the calculations, but I am sure that more than 100 of these blogs have not been used even once. They were just created and abandoned.
Even though I have my own custom personal website at bhanuteja.dev and a blog on Hashnode at blog.bhanuteja.dev, I decided to move everything to a single site and also use MDX.one to power it.
✅ MDX.one is featured in NoCodeDev's Newsletter
Now each account can have multiple blogs under it. Even though we can add multiple blogs, only one blog can be active at a time. In the future, I will be adding higher pricing plans where the users can have multiple active blogs. This feature acts as a base for that.
When I was migrating my own personal blog to MDX.one, I came across a pattern.
At the end of every article, I was recommending to the users a bunch of other related articles that the users may like to read. So, I thought to make this process automatic. Now, users can directly select the related posts from their Notion page, and they will show up at the end of the article.
Created a search interface where you can do a basic search through the blog. It tries to match the articles, pages, and categories. It also highlights what part is matched.
This feature is really useful when you have a lot of blog posts like me. One of my users has around 79 articles in their blog, which is crazy high. This feature will be very useful if you want to search for an article in their blog. I will try to improve the search algorithm in the future. Right now, it's just a simple substring match.
I handpicked some of the active blogs and create a page showcasing all of these blogs. This way, people will have a better idea of all the things that are possible with MDX.one.
Made it super simple to add pagination to the blogs. All the users have to do is set the page size, the pagination will then be enabled automatically.
Submit your sitemap to Search Console
MDX.one automatically generates a sitemap and also updates it based on the content you have in your Notion. So, all you have to do is let Google know where to find the sitemap. A sitemap is just a file that contains all the URLs that can be visited on your site.
Publishing Blog Posts
Create a new page in your Blog database Write your content inside it. Check ✅ the Ready to Publish property Set the Publish on property with today's date. That's it. Your post is published 🎉 🎉 Do everything mentioned in the Publish Post Immediately section. Set the Publish on property to a future date.
You have to perform 3 steps to complete the onboarding To create your blog, MDX.one needs access to your Notion page(the notion page that you have just duplicated in the above step). For this, you have to Share to the web To share to the web, Click on the Share button on the top right.
Most of July has been spent on building new features. I did not spend any time on marketing. In fact, I don't even think 10% of the users know what new features are there.
I am planning to spend most of August on marketing. I don't even know how to do marketing. But I have a few ideas of what I am going to do.
- Will start doing automated email campaigns for users at various stages.
- Will write more articles/guides explaining different features of MDX.one
- Revamp the landing page and create a separate marketing website.
- Will move the dashboard and actual user-related pages to app.mdx.one
- Write posts in the format of (A vs B), x alternatives to y, etc., and build more SEO content.
- Will experiment with creating different landing pages for different types of users. Some programmatic SEO.
- Will create some automated emails based on triggers(pretty straight-forward to do with Splitbee) like:
- Welcome email when the user signs up
- When the user faces problems creating a blog
- When the user successfully creates a blog
- When the user's blog gets a first visitor
- Will add some higher-priced plans for heavy users and businesses.
- Will also allow a free trial for 14 days for all of the plans. Right now, there is no way for users to try out all the features, other than actually paying and subscribing to a plan.
- Will also be doing a presale for a course that I will be creating.
MRR goal for the month of August: $500
It's pretty high especially when you look at how July went. I would have to get around $90 MRR every week 😮 which might be impossible. But I want to give it a serious shot and see.
My 2020 Blogging Journey