Show HN: Txtl – Fast static website of text utilities
viveksjain.github.ioI often need simple text tools (e.g. diffing, epoch time conversion, number base conversion) and was frustrated that I couldn't find a simple option that was as fast as I wanted. Many (SEO-optimized) websites exist, but they unnecessarily send your input to their servers. I used tools like DevToys but their diff has been broken on Mac for a while [1] and it requires installing an app, and CyberChef is good but requires too many interactions (yes, I'm picky).
So, I decided to build my own. txtl tries to autodetect what mode you want based on the input, and in general is fast and gets out of your way as much as possible. For example, if you paste in a number then it will show base conversions, but if it looks like an epoch timestamp then it will display the corresponding date. And of course it's open source at https://github.com/viveksjain/txtl/
This was partly also a way for me to try using LLMs to build a frontend/new project. This could probably be a whole blog post, but I see why some people can say that LLMs can 10x their coding productivity (I certainly didn't find this true in my day job) - I was really impressed with what o1 can do, it probably got me 70% of the way there in one shot. And as someone not familiar with frontend development, iterating was way faster. But, it still requires plenty of feedback and requires handholding - I had to completely rewrite the diff rendering logic, no matter what I tried I couldn't get an LLM to get it right.
Would love feedback on the autodetection and overall usability!
Hey, trying to help here, ok.
I added today's date (in the format 2025-02-25) into the input box and expected it to at least give me the option to convert to epoch time or something. But it returned:
Local: Invalid Date UTC: Invalid Date
It's not as intuitive as I thought it would be. Best of luck.
I’m certainly guilty of using one of these hosted cli tools in a pinch (crontab I can’t quit you), but adding an LLM in the mix just adds more complexity. Getting a few of these tools under your fingers is probably way easier than building an app to try and figure it out for you.
I'm not sure if this is what you meant, but the website certainly doesn't call out to LLMs under the hood! Agreed, that would be a terrible idea. LLMs were just used to help write the code for the site, tweaked my post to clarify.
great project. Love the simplicity and autodetection. Base64 decode would be a nice mode to add.
Without meaning to high-jack this thread, you can do Base64 decoding here. Also no ads, 100% client-side, and no AI. But no string auto-detection either! https://www.takeymakey.com/convert/code/decode-base64/
I have Cyberchef locally, just unzip it and run. It has an auto function that I only manage to get working by mistake. So as is said in another comment just learn that instead. (Though I really support your need to scratch an itch, I think you need spacing on the edges of the screen for mobile.)
Here is a diff example: https://gchq.github.io/CyberChef/#recipe=Diff('%5C%5Cn%5C%5C...