Show HN: Txtl – Fast static website of text utilities

viveksjain.github.io

63 points by vivek-jain 3 days ago

I 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!

[1] https://github.com/DevToys-app/DevToys/issues/1296

I_complete_me 3 days ago

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.

  • vivek-jain 2 days ago

    Ah it currently only supports epoch time to readable date, not the other way around. Will consider this as a feature request!

be_erik 3 days ago

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.

  • vivek-jain 3 days ago

    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.

tzm 3 days ago

great project. Love the simplicity and autodetection. Base64 decode would be a nice mode to add.

  • vivek-jain 2 days ago

    Ah yes that would be useful. Just added base64 encode/decode along with autodetection for decoding!

pastage 3 days ago

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...