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.
✅ Ended the month with 19 new subscriptions and $141 MRR
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.
✅ Other highlights of June
Tweets (Click to open it)
275+ users signed up, 100+ blogs created and 800+ emails processed.
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
Analytics for June since launch.
What happened in July
July was pretty brutal when compared with June.
❌ Got my first cancellation
They did not require and hence not using any of the premium features. So, I guess that cancellation is bound to happen.
❌ Another person asked me to pause their subscription.
Not sure if they are going to resume the subscription anytime soon.
✅ A user paid back the refund.
A user to whom I refunded the subscription earlier in June asked me to charge their card after the improvements I made.
✅ Got a new yearly subscription.
They have not started using the product yet. They just explored the product for a bit.
❌ Got a new monthly subscription.
But they were not satisfied with the product and are going to cancel by the end of the month.
🕝 Gave 30 days free trial to a user.
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.
❌ Number of visitors went down
The number of visitors in the whole month of July is less than the visitors I got in the last 10 days of June.
✅ Tried out Splitbee
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.
❌ Problems with the official Notion API
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.
🚢 Create Secret Pages (Not indexed by Search Engines)
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.
🚢 Updated the Notion template to make it more intuitive
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 – Blog, Settings, and Pages.
🚢 AssignCategories/Tags to Articles
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.
✅ Someone created the 150th blog
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.
✅ Migrated my own personal blog to MDX.one
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.
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.
🚢 Automatically Add Related Posts
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.
🚢 Added a Search functionality
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.
🚢 Added a Showcase section to the website
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.
🚢 Added Pagination
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.