From pretty humble beginnings, (b)log-In has become quite a complex system. When I set out to build it, I wanted something simple and lightweight that wasn't bogged down by features and architecture that weren't needed.
I sometimes worry that, as I add more features, it is becoming what I didn't want it to be, that it is getting too heavy and cluttered. But then I step back and reassess everything. None of the features stop me from hitting the plus icon, typing something and tapping 'post' – no matter what else I've added, the core function is still as clean and simple as when I started, maybe even cleaner since making a number of changes.
(b)log-In is designed to get words on the web as quickly and easily as possible; it achieves that goal and far more. The bells and whistles may not be strictly required but add a host of quality of life improvements which enhance the experience.
I still have to pinch myself sometimes as I can't quite believe that this is something I have made. I may be using some third party libraries but I am still amazed that I got it all working, especially the webmention endpoint. On reflection, however, much of my trepidation was down to a fear of the unknown, of looking at something as a complex whole. When breaking things down into manageable chunks what seemed impenetrable actually became relatively simple.
I couldn't have done it all on my own but didn't have to; being able to build on the work of others and not have to reinvent multiple wheels was liberating and allowed me to tackle features that would have been completely out of reach. Still, that's what open source is all about and I am indebted to the IndieWeb and wider developer communities for that.
Things have come a long way since I started this journey at the beginning of the year and I've learned so much and am so proud of what I've been able to accomplish in that time. The code isn't as refined as it could be, downright ugly in places, but it works and that's all I really care about.