DEV Community

scorder
scorder

Posted on

I built a scheduling platform for Bluesky

With Bluesky opening up to the public in February 2024, and emerging as a stronger alternative to Twitter, a gold rush soon began to develop third-party tooling around the paltform.

Scrappy software and AI-generated slop soon began flooding this market, along with bigger social media analytics and planning softwares adding Bluesky to their list of supported platforms.

The Why

Going through some of these tools, I deduced that a clean, fully functional, built for Bluesky platform would have potential to take up a good chunk of market share.

Even if it didn't, my time spent built building the software would at least help me learn a few more things about SaaS development.

The What

I sat and wondered what I could build. What did Bluesky users really need? Or at least that is what I wish I had done. Instead, first thing I did was open VSCode and started coding away.

I had an idea in the back of my mind though, analytics. That was what I was focusing on. But as I built feature upon feature, a consistency tracker here, a growth graph there. I realised a sickening truth. 😰

Nobody is gonna pay for pointless analytics.

You don't really need fancy graphs and calendars to show you what's doing well. The notifications bar, likes and replies inside Bluesky are enough to give you an idea. In simpler words, I wasn't solving a real problem.

That's when I realised I needed something more. And the only thing I could build that would solve an actual problem was post scheduling.

The How

I knew I needed a severless function running day and night uploading the posts at their scheduled times. I had been avoiding Cloudfare Workers since months but it was finally time.
I explained what I wanted to ChatGPT in ExpressJS terms, and it spit out Workers code. Turns out it isn't really that difficult. In fact it's amazing.
I set up a cron job running every minute that checks if there's any posts that needs to be scheduled at that minute, and uploads the post using the Bluesky API.

And just like that, I had a scheduler up and running. 👌

But that wasn't enough. What app nowadays is complete without some AI feature? My tool can now write engaging posts for you. But wait, simple scheduling isn't enough. I needed smart scheduling. Abracadabra 🪄. My tool now tells you what the best times to post are.

Image description

The Feature Trap

This needs some fixing.. oh wait this can be better.. hmm, maybe I can add this.. and on, and on, and on.

I have no idea how many times I have iterated over the code, adding features and improvements instead of getting my website out there.
It's embarassing - since I have been through all the advice on the internet about resisting the temptation to include additional, often unnecessary bells and whistles to your product.
I believe the feature trap is a result of the fear of not putting out a good enough product. "Sure, I can share it on Reddit now but if I just add this feature it'll look much better" and the cycle continues. 🔁

What I learned

Define the problem and the solution, exactly what you're going to build, what features you're going to implement, what tech stack you're going to use, and how you're going to market the product, in a single document.
This would be not only be something your future self would thank you for, but would lead to a lot less confusion, a clearer roadmap, and faster shipping times. 🚀

If you are wondering what the tool is it's called Bluestride. Check it out here.

I hope this article and my experience helped you build your understanding on the journey of SaaS development.

Top comments (0)