I’m sorry

09 May 2024 ยท Updated 09 May 2024

... I built another tool.

Sorry dear readers, no essay this time. As a CTO you rarely have time to build something with your own hands, though you're always part of tech stack discussion, architecture decisions โ€” the real coding happens by the developers. And if you're a hardcore dev, where programming is your hobby as well as job, you might find it hard not to code for long periods of time. Just like me.

So I switched my focus to coding for a couple of weeks. No writing, just coding and building something that I thought is cool. And it's going to save me at least a few 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 - internal SEO linking. 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. I was struggling to make it feel right, it always felt a bit clunky, I had to modify the database values with the new links, and everytime I re-index the page I hade to find the links that were added by the plugin and replace only those. This was annoyingly complicated. I'm also 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 it clicked. Why do I need to modify the database, if I can just insert links with JS? Google loves JS links, every other browser renders react apps properly and treats those links properly. So 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 (and the JS snippet that replaces the links), but that's it. In the dashboard 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 the first prototype was not really beautiful โ€” it was two endpoints, one to add a website, one to return the generated keywords /links. But it worked. After a few late night coding sessions โ€” until 2-3 am in the morning I finally got the prototype working as I needed it to. I was super excited to play around with it.

First thing I did โ€” I tested it with my own domain โ€” and was satisfied with the links that got generated, I got 70 new cross links with RELEVANT keywords that fit the topic of the articles. They weren't perfect but they definitely boosted the SEO.

Then came the annoying part โ€” do I want to make a product out of it? Build the user management and authentication? Add some Billing? Build a site processing queue management? Setup a free 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 I launched it on twitter to the sound of crickets, as expected, but that's not really a big concern for me, as I'm happy to just scratch my own itch and have a product I can tinker with.

And here we are. I really apologize that there's no article about engineering management from your friendly neighbourhood CTO. 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:

  1. You as a customer register and add your domain, Trial period starts.
  2. The tool automagically finds your sitemap.xml (hopefully it will be at domain.com/sitemap.xml otherwise the automagic wont work)
  3. Then the tool indexes the content, extracts keywords, does some more magic to understand which link goes where.
  4. The tool generates links in the database that you can delete/modify.
  5. 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.
  6. Set up and forget, and reap the benefits of improved SEO.
This is where you can see all your pages and the links to/from pages.

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 Cloudflare for DNS and Nginx a proxy, I use Docker to containerize stuff, billing is done via Stripe, I use Tailwind to style everything, auth0 libraries to delegate the user authentication to someone who knows what they're doing. Redis is used as the messaging queue, Celery is used to process tasks asynchronously, PostgreSQL for database

I use some algorithms that I found on the internet to extract keywords. Apparently there are scientific ways to extract the relevant keywords from text, based on how often they occur. Plus 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). All of that is combined with some LLM magic and vector database for search / comparison / keywording.

New people joining!

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 worked after that!)

My current progress. Looks great right? $0 Revenue, Fresh start.

So overall what do we have after 2 weeks?

  1. 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.
  2. I had so much fun building the tool. I felt the excitement like 10 years ago when I was experimenting / prototyping with different ideas. Great feeling. I highly recommend you also do that. Keeps your skills sharp.
  3. 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.
  4. 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.

Oh, almost forgot. Here's the link, I didn't want this to be a promotional piece, more like โ€” hey everyone, I had fun building something, but if you're interested here it is:

SEOJuice.io - AI Automated SEO Links - Built for lazy people. Set up and forget.
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 [email protected] and don't get discouraged, I will come back to you and we'll bring your site up and running.