Text to ASCII Art Generator: Version 3.0

Last month I silently released a new version of my Text to ASCII Art Generator (TAAG) app, along with a new TypeScript version of its underlying library. For those of you who are unfamiliar, TAAG is an app that takes in text and turns it into ASCII art. For this latest update I decided to go with a silent release because I wasn’t sure when I’d be done re-writing the app. In fact, I still have several updates I want to do to it, but I feel like it’s in a complete enough state to blog about.

TAAG was originally written back in 2007, when I was re-learning JavaScript. For the most part, the original app did what it needed to do, and prior to this latest rewrite, it hadn’t undergone any major changes since 2012.

So… if the old app was fine, why rewrite it? Well, there were two underlying reasons:

  • I wanted to modernize the code base to make it more maintainable.
  • There were a handful of minor features I wanted to add that weren’t really possible with the app’s ancient code base (ex: better Test All page, searchable selects, dark theme). 

However, I didn’t want to make any drastic changes. I wanted to maintain the same feel as the old version. For the most part I think I was successful, though I did receive one email bemoaning the changes since they really liked the retro feel of the old version. However, I think the more polished version will be better for the site in the long term. 

Modernization: TypeScript?

I don’t think I’ve discussed my thoughts on JavaScript vs TypeScript publicly before, but I used to be hugely pro-JavaScript. I loved the freedom it gave you, I loved how I could quickly create prototypes, and I loved how versatile it was. However, over the past few years I’ve had a change of heart. Navigating gigantic JavaScript code bases (100k+ lines) can make you lose your mind. I have a pretty high pain tolerance when it comes to crazy JavaScript code, but in recent years even I have reached my limits. 

After giving TypeScript another try (I used it years ago and it caused me more problems than it solved), I’ve found it to be hugely beneficial. It helps catch mistakes that would have gone unnoticed and it makes code easier to understand. I’ve slowly introduced it at my work, and it’s now starting to make its way into some of my personal projects. 

In Conclusion

There’s something satisfying about taking an 18-year-old app and giving it new life. Hopefully it works the same and feels familiar while being more solid under the hood. I have plans for additional features and improvements, but I wanted to get something out there because I get distracted easily.  I hope you like the updated app. If you have any suggestions just let me know in the comments.

Leave a Reply

Your email address will not be published. Required fields are marked *