... I built another tool.
Sorry dear readers, no essay this time. Over the last couple of week I've been tinkering with a new tool that's going to save me hours of work every month. Let me tell you my story and how I came to it.
I'm a lazy person. Especially when it comes to repetitive tasks that I can automate. And since I've started writing regularly this annoying repetitive task for me was the SEO. Every time I add a new essay I need to figure out how to cross-link it from all of the other of my articles, and the more I write the harder it becomes to find suitable essays.
You thought writing was hard, everything around writing is much more annoying — On-Page SEO, Cross-Page SEO, OG Images, summaries for google, cross posting from Wordpress to Ghost, writing introductions for twitter/linkedin/whatever. As you can see there's so many little things that need to be done, that it gets overwhelming and eventually I just skip some of them.
But as you also might've noticed — ALL of the tasks can be automated in some way, it only depends on how badly you want to do it. Each of those tasks can be a product in itself and there are already quite a few solutions that you can pay money for.
But I didn't want to pay money, I'm a software developer! I want to build it myself.
So I chose the first problem from that list that costs me a few hours per month at least - internal SEO links. I know some of you don't like the concept of SEO, but I'm not a marketer, I just do what people tell me works.
And everywhere I read people were screaming loudly that the easiest way to get SEO is to cross link your own articles, so I started thinking how can I automate this?
I tried building a Wordpress plugin, but gave up after about 12 hours with custom tables and bad semantic search, not a fan of PHP and molding wordpress to fit my needs was beyond my capabilities (and time). Didn't work out the way I had hoped.
But I didn't stop thinking about it. Every time I had to sit down and add the links again, I thought — there's gotta be a better way.
And then I finally said enough is enough, and sat down with my old friend Django and some basic HTML.
Yes, built it purely with HTML / Django, all server side rendered and the whole logic is on the backend. There's some JS during onboarding, but that's it. You click on a button and it loads the whole page. Crazy right? Who needs NextJS or React, when you can just rebuild the whole HTML on click.
But I didn't really care about the technology — I was solving my own problem. and I did. After a few late night coding sessions — until 2-3 am in the morning I finally got the prototype working. I was super excited to play around with it.
I tested it with my own domain — vadimkravcenko.com and was satisfied of the resulted links.
Then came the annoying part — do I want to make a product out of it? Build the user management and authentication? Add some Billing? Setup a Trial period? Of course I do, I'm a software developer — reasonable decisions are not part of my vocabulary.
So I spent a few more nights coding and getting the product to perfection... khm, I mean MVP level, so I can release to the public.
And here we are. I really apologize that there's no article about engineering management, I got consumed by the idea and focused all my efforts outside of my job on building this tool, and it was very very fun.
So how does it work you ask? Great that you asked:
- You as a customer register and add your domain, Trial period starts.
- The tool automagically finds your sitemap.xml (hopefully it will be at domain.com/sitemap.xml otherwise the automagic wont work)
- Then the tool indexes the content, extracts keywords, does some more magic to understand which link goes where.
- The tool generates links in the database that you can delete/modify.
- You receive a small JS snippet that you need to add to the footer that will transform the relevant keywords into a link to some other page that is highly relevant.
- Set up and forget, and reap the benefits of improved SEO.
The whole tool is built with Python, I have automated CI/CD with Github, I host on DigitalOcean (because I still got some balance there), I use some algorithms that I found on the internet to extract keywords + I use some algorithms that I found on the internet to extract content, even if it's not an article-type page (this was quite an annoying challenge to solve, but very rewarding). Everything is combined with some LLM magic and vector database for search / comparison.
I've already gotten some beta users testing the software, which is quite surprising. Apparently there are AI directories that are scanning the Twitterverse for AI tools, and you can get onto this directory and they will send traffic to you for free. (Though someone gave me a one star rating, because the onboarding failed with an 500 error, thank god I saw that in sentry and fixed quickly. Rookie bug, but it works!)
So overall what do we have?
- I built a tool that solves my own problem. I can breathe out and enjoy the extra 4-5 hours per month. I mean what can I do with such freedom? Maybe I'll go traveling.
- I had so much fun building the tool. I felt the excitement like 10 years ago when I was experimenting / prototyping. Great feeling. I highly recommend you also do that.
- I learned new things. As always I solved bugs that I haven't encountered before, used integrations that I didn't before, so my knowledge expanded, if only by a bit.
- I also set up some goals for myself. I want to try and bring it to at least 100$ MRR. A small achievement to be proud of. I mean, why not? If it can be helpful to others, then I made the world a tiny bit better.
Thanks again for reading my newsletter. Next week we resume with regular essays (unless I get another super idea). Follow me on twitter to stay in the loop.
Oh, almost forgot.
Here's a coupon for 25% off: EARLYBIRD2024
Let me know your thoughts on this and if you do try it out and something breaks, please let me know at hi@vadimkravcenko.com and don't get discouraged, I will come back to you and we'll bring your site up and running.
Cheers,
Vadim
Subscribe to Just Another CTO
Subscribe to the newsletter and unlock access to member-only content.