HNHacker News
TopNewBestAskShowJobs

GeneralMaximus

3,114 karma · joined January 18, 2009

Independent frontend developer. Enough of a designer to be dangerous.

If you live in Bangalore (or you're visiting), I want to grab coffee with you! Please reach out to me over email.

Website: https://ankursethi.com

Email: contact@ankursethi.com

submissionscomments
GeneralMaximus··on Claude Cowork and chat are now one Claude
Here in Bangalore, you can usually book directly from the Google Maps listing. Or sometimes click a link that will open in Swiggy/Zomato, and you just book from there.

At least in this city, reserving a table using the apps you already have on your phone is faster than using an LLM. Maybe these products are for people who know about the existence of Claude and ChatGPT but not Google Maps?

GeneralMaximus··on Shopify acquires Tailwind
I quite like Tailwind. I've had great experiences with it, especially on projects where the skill level of contributors was highly variable.

That said, Tailwind is not as powerful as plain old CSS. It's a bit like training wheels for CSS—you gain some guardrails and prevent newbies from messing things up too badly, but you also give up the power modern CSS affords you.

E.g. I invite you to look at some of Ahmed Shadeed's (https://ishadeed.com) layout tutorials, or whatever you find on the CSS-Tricks/Masters.dev homepage today. It's bonkers what you can do with modern CSS!

Tailwind gives you access some of what's possible with CSS today, and they keep adding support for new features, but it's impossible to express everything CSS is capable of using only utility classes. At some point, you need to write some actual real CSS code.

So personally, it's a tradeoff for me. If I really want the full power of CSS, I use plain old CSS. If I'm willing to trade power for the convenience of Tailwind's built-in design tokens and guardrails, then I pick Tailwind.

Both approaches are good and valid. The right choice is context dependent. With And with LLMs in the mix, it's not that hard to port a Tailwind codebase to plain CSS, or vice versa, so picking the wrong thing doesn't have as high a cost as it used to.

GeneralMaximus··on Saving 100 terabytes of memory by optimizing 1.1.1.1's DNS cache
In many cases, yes. A software pipeline can only achieve as much throughput as its slowest stage, and much of the software we write can be modeled as a sequence of processing stages.
GeneralMaximus··on Firefox is now the last major browser that still supports uBlock Origin
In an ideal world, I would do exactly what you do. I don't WANT to block ads everywhere. I would love to support my favorite websites, and if watching a couple of ads is what it takes for them to stay online, then I don't really mind.

Problem is, the ads I see when I disable my ad-blocker are uniformly terrible. Maybe this is because I'm in India, but I've never once seen an ad that wasn't outright disgusting, let alone useful.

I regularly see ads for: escort services, shady hair loss prevention pills, shady weight loss pills, astrology, TV shows and movies in languages I don't understand, gacha games, gambling apps, educational programs I can't sign up for, apps that are clearly malware. Once Instagram inexplicably showed me ads for expensive lab equipment only available in Germany for a whole week.

I would like to see ads for: local businesses around me, concerts and gigs in my city, new restaurants around me, indie fashion brands, TV shows and movies in languages I can understand. Basically, ads based on my interests and recent search terms.

The ad networks insist on delivering the worst kinds of ads to me, sometimes accompanied by imagery I would prefer not to see (e.g hair loss and dermatology ads). The websites I frequent and want to support don't get to choose what ads I'll see. All they can do is insert the ad-network's JavaScript into their pages and hope for the best.

Unless the networks can guarantee that I won't see something illegal, harmful, or plain disgusting when I enable their ads, I'll keep my ad-blocker on. I'm not going hurt myself for somebody else's business model.

GeneralMaximus··on Flutter 3.47
(Adding this as a comment because I'm over my edit window.)

I want to add a third category to the categories that make sense as native apps: apps that are built by the platform vendor (and potentially shipped with the platform).

GNOME apps are built with GTK+, KDE apps are built with Qt, and macOS apps are built with SwiftUI/AppKit. This is how it should be. Microsoft is the only outlier here, shipping apps built with everything from Win32 to React Native to Electron to their own WebView2.

GeneralMaximus··on Flutter 3.47
Why would you not?

I use Ableton, Figma, and Emacs regularly. I have a decade (or more) of muscle memory around these apps. If they suddenly decided to adopt the look, feel, and conventions of their underlying host platform, I’d be very upset.

If I’m using Emacs, I don’t want to use Cmd+S to save my files on macOS and Ctrl+S on Windows. I’ve already memorized C-x C-s. I don’t want Ableton to adopt whatever new design language Apple or Microsoft is chasing this week. I want to open the app and find the UI controls looking and behaving exactly the same as they’ve looked and behaved since I started using it in 2014. I want to write code, make music, do design. I don’t want to be frustrated because the button for enabling the metronome is 15px to the left on Windows vs. macOS.

Apps that look and feel native only make sense in two cases:

1. The app is tied to the platform. E.g. Logic Pro. It can integrate deeply into macOS and use the native widget set because it will never run on any other platform. Same for Bear, Things, Pixelmator, Omni Group apps, etc.

2. The app is a replaceable, throw-away utility. I call these “fungible apps”. For example, it doesn’t really matter which Mastodon or Bluesky client you use. There are hundreds of them, and they’re not complex enough that the loss of familiarity or muscle memory matters very much. You can use one client on Windows, a different one on macOS, and a third one on Linux, and it’ll be fine. They can all be native to their platforms, or not. The interaction model is simple enough that you can afford to have a different one on every platform.

For apps that really matter—the apps I use to put food on the table—I absolutely want them to look and feel exactly the same on every platform. The app is the OS, the actual OS is just a hardware abstraction layer.

Can Flutter be used to build apps like Figma or Ableton or Emacs? I actually don’t think so. It’s a poor toolkit for building anything that must last for more than 3-5 years. If you care about longevity, there are basically only three options in 2026: Qt, Electron, or roll your own like Zed/Sublime.

GeneralMaximus··on Writing by hand is good for your brain
Oh boy do I have a website for you!

I love browsing https://www.themarginalian.org whenever I have a few hours to kill. It's a bit like TVTropes, but much more "literary" for lack of a better word.

The author has spent decades building a digital commonplace book of everything she's ever read, and hyperlinked everything together in a way that you can get lost in her notes for hours on end and never surface. It's one of my favorite websites on the internet, and the best example of the power of marginalia and hypertext.

GeneralMaximus··on Turning music into a chore is how I became a musician (2022)
> I've heard this sentiment repeated and I believe it, but at least the purpose of my own blog is to communicate insights I've had. I almost make a point out of not blogging unless I feel that I have something truly interesting to share. It seems that flipping that around would come at a price.

That's where the editing and curation step comes in, at least for me. I write a lot more than I publish. If my writing:publishing ratio ever became 1:1, I'll stop publishing things that are interesting and insightful (well, interesting and insightful to me personally; other people might judge my writing differently).

Sometimes what works for me is to write something and let it sit in my drafts for a few days. Then if I read it back and still find it worth sharing, I polish it and hit the publish button. If not, it goes into a folder called "Retired" in my Obsidian.

GeneralMaximus··on Turning music into a chore is how I became a musician (2022)
This lines up with my own experience with writing and (more recently) blogging.

You get over the fear of writing by doing a LOT of it, until you get to a point where writing a story or blog post stops feeling "special" and becomes just another thing you do. Each individual piece of writing stops feeling like an important work of art that you must get right at any cost, and becomes more like doing the dishes or taking out the garbage.

You can then separate the act of creating from the act of curating and editing. I regularly cut thousands of words from my writing before I share in public. I regularly throw away (well, archive) fully written drafts because I don't like them. A few years ago, this would've been unimaginable. Today, it feels like part of the process.

At some point, you gain confidence that you'll always have another story, another blog post, another poem inside you. If the current thing sucks, you just write another thing, and another, and another, until something clicks. It's freeing.

IME when creative work starts feeling like "just a job" is EXACTLY when it also becomes most fulfilling and satisfying.

GeneralMaximus··on Deno Desktop
This is a feature many apps actually need.

E.g. Tauri uses WebKitGTK on Linux, which has historically been slow, unstable, and frequently lagging behind the main WebKit project. This is enough of an issue that even Tauri is working on the ability to use CEF instead of the system web view in Tauri apps.

Things are generally fine on recent versions of Windows and macOS. The system web views on these platforms will be evergreen versions of WebKit or Blink. But if you want to support very old versions of Windows or macOS, you might choose to use CEF instead of wrestling with Safari-from-five-years-ago.

GeneralMaximus··on I’ve banned query strings
Not always.

Some web pages don't send referrers by making all links rel="noreferrer". Mastodon used to do this by default, though now they've changed their stance.

Links opened from non-browser apps don't have any referrer information either. E.g. if somebody shares your link on iMessage, WhatsApp, or Telegram.

Email clients may also strip out referrers, but I'm not entirely sure about this one.

If people read your work via RSS readers, you'll almost certainly not get any referrers. Unless it's a web-based reader like Feedly.

My website gets a lot of traffic marked as "Direct / None" by Plausible. I suspect this is traffic from RSS readers or Mastodon, but I can't be sure. A few times I've considered adding a "?ref=RSS" to all URLs served to RSS readers and "?ref=Mastodon" to everything I post on Mastodon. But like the author of this post, I feel uncomfortable tracking my readers like this.

GeneralMaximus··on Windows quality update: Progress we've made since March
I don't even want a local account, I just want to be able to set a custom username for my account instead of some autogenerated jumble of letters.

My Microsoft Account email is "contact@<my-domain-name>". If I set up a new Windows 11 computer using this account, Windows picks the first 4 letters of my email address and sets that as the username. So my username becomes "conta", and the path to my user directory becomes "C:\Users\conta".

I know this is a really small thing, but I find it incredibly irritating. I can't be typing that into the terminal all day long! It's not the end of the world, but it speaks to a lack of polish and care across the whole product, not to mention a disrespect for their users' intelligence.

I'm not a Windows user—I only use it for gaming—so I don't really know how to get around this issue. Maybe there's a secret keycombo I can press during install? Or some unrelated checkbox that I can toggle that will do the magic? I just know that I login via my iCloud account on all my Macs, and Apple has always allowed me to choose my own username and home directory.

I don't think this is high on their list of issues to fix so I'm not very hopeful that this will ever get addressed. Maybe I should just change my legal name to Conta?

GeneralMaximus··on Ask HN: Who wants to be hired? (February 2026)
Location: Bangalore, India (UTC+5:30)

Remote: preferred

Willing to relocate: no

Technologies: web platform (HTML, CSS, JavaScript), the React ecosystem, TypeScript, Tailwind, Astro. Good enough at UI/UX design to be dangerous.

Résumé/CV: https://ankursethi.com/work/

Email: contact@ankursethi.com

I'm an independent consultant and frontend engineer helping startups (and a few large organizations) bring new products to market since 2012.

I can help you with:

- Building an MVP of your product to put in front of investors and early adopters.

- Overhauling existing products by adding major new features, fixing performance bottlenecks, or paying off tech debt.

- Helping your team get up to speed with emerging technologies (currently interested in helping with TypeScript, modern React, the Jujutsu VCS, and LLM-driven programming).

- Modernizing legacy products and migrating them off legacy tech stacks.

- Acting as a bridge between your design and engineering teams.

I'm primarily a frontend developer comfortable with vanilla HTML/JS/CSS as well as more complex frameworks (mainly React, but I've worked with others). I enjoy being a heads-down technical contributor to codebases. However, working with early-stage companies has allowed me to dabble in UX design, hiring, mentoring, technical writing, technical workshops, and product design. I enjoy wearing a ton of hats, and prefer to work at orgs that allow me to use the full set of my abilities.

I enjoy using LLMs, but I do so responsibly. I write regularly at https://ankursethi.com/.

I'm currently looking for short to medium term contracts (think 6-8 months).

GeneralMaximus··on In praise of –dry-run
Yes! I'm currently working on a script that modifies a bunch of sensitive files, and this the approach I'm taking to make sure I don't accidentally lose any important data.

I've split the process into three parts:

1. Walk the filesystem, capture the current state of the files, and write out a plan to disk.

2. Make sure the state of the files from step 1 has not changed, then execute the plan. Capture the new state of the files. Additionally, log all operations to disk in a journal.

3. Validate that no data was lost or unexpectedly changed using the captured file state from steps 1 and 2. Manually look at the operations log (or dump it into an LLM) to make sure nothing looks off.

These three steps can be three separate scripts, or three flags to the same script.

GeneralMaximus··on Microsoft forced me to switch to Linux
At least according to Statcounter, Linux is currently at 3.86% worldwide: https://gs.statcounter.com/os-market-share/desktop/worldwide.

It's slightly larger in the US at 5.28%: https://gs.statcounter.com/os-market-share/desktop/united-st...

In India, where I live, it's surprisingly at 6.51%: https://gs.statcounter.com/os-market-share/desktop/india

Take this with a grain of salt, because numbers from Statcounter are not fully accurate. However, none of those numbers are small. 3.86% of the entire PC market is not something to scoff at.

GeneralMaximus··on Make.ts
If you use `uv`, you can declare your dependencies at the top of a script: https://docs.astral.sh/uv/guides/scripts/#declaring-script-d...

I've started using Python for many more tasks after I discovered this feature. I'm primarily a JS/TS developer, but the ability to write a "standalone" script that can pull in third-party dependencies without affecting your current project is a massive productivity boost.

GeneralMaximus··on AI generated music barred from Bandcamp
> I think maybe we're talking past each other then. I'm saying I don't agree with the argument that music necessarily needs to have a story to be widely consumed in a positive way.

I can imagine that this is true for a lot of people. There are certainly folks out there who see music as an interesting sensory stimulus. This song makes you dance, this one makes you cry, this other one makes you feel nostalgic. To these people, the only thing that matters is what the music makes them feel. It's a strange, solipsistic way of engaging with art, but who am I to judge?

I personally don't connect to music—or any other art—that way. The process that goes into making a piece of music is as important to me as the music itself. The people who make that music are even more important. I don't believe in separating art from the artist. In fact, I find the whole idea of separating art and artist to be fundamentally rotten.

Here's an admittedly extreme example, but it's demonstrative of how I personally relate to music. In the wake of the #MeToo movement (see https://en.wikipedia.org/wiki/MeToo_movement), some of the musicians I used to love as a teenager were outed as sexual predators. When I found out, I scoured my music library and deleted all their work. The music was still the exact same music I fell in love with all those years ago, but I could no longer listen to it without being reminded of the horrible actions of the musicians. Listening to it was triggering.

And so to me, music is not just a series of sounds that make me feel good. There are humans behind those sounds, and I care deeply about those humans. They don't need to be perfect—everyone fucks up from time to time—but they need to demonstrate some level of human decency. And they certainly can't be machines, because machines aren't people.

I love machines. I've spent my life building them, programming them, and caring for them. But machines aren't people, and therefore I don't care about the art they make. Maybe one day machines will be able to make art in the same way humans do: by going out into the world, having experiences, making mistakes, learning, connecting with others, loving and being loved, or being rejected soundly, and understanding deeply what it means to be a living thing in this universe. A generative AI model doesn't do that (yet!) and so I'm utterly uninterested in whatever a generative AI model has to say about anything.

GeneralMaximus··on Date is out, Temporal is in
Could you put some kind of CORS proxy in front of those URLs? (I know it sucks that you have to do this at all, but c'est la vie.)

You could even write a Cloudflare Worker or a Val on val.town to do that, and add a bit of caching on top so you don't hit your providers too often.

GeneralMaximus··on How Markdown took over the world
I've started to "standardize" my own use of Markdown as "whatever works in the apps I use". For me these apps are iA Writer, Obsidian, and Astro's rendering pipeline (which uses the Remark/Rehype ecosystem under the hood).

This sucks for sharing documents with other people, but in practice it's not a problem. 99% of my writing never leaves my notes app or blog. And when it does, I often export it to PDF or Word to make it easy for non-techie people to read (I love Pandoc for this, it's easily one of the favorite tools in my daily toolkit).

GeneralMaximus··on How Markdown took over the world
> markdown is horrible, horrible format to parse...

I agree entirely. But it's a lovely format to use. Programming as a profession is entirely about making things easier for our users, even if it means making things harder for ourselves.

After all, that's the whole ethos around the web as a platform. Throw some broken HTML soup at a browser and it'll still try its best to render it.

GeneralMaximus··on Ask HN: Who wants to be hired? (January 2026)
Location: Bangalore, India (UTC+5:30)

Remote: preferred

Willing to relocate: no

Technologies: web platform (HTML, CSS, JavaScript), React, TypeScript, Tailwind, some Next.js

Résumé/CV: https://archive.ankursethi.com/work/

Email: contact@ankursethi.com

I'm an independent consultant and frontend engineer helping startups (and a few large organizations) bring new products to market since 2012.

I can help you with:

- Building the first MVP of your product to put in front of investors and early adopters

- Overhauling existing products by adding major new features or paying off tech debt

- Helping your team get up to speed with emerging technologies

- Modernizing legacy products and migrating them off legacy tech stacks

- Acting as a bridge between your design and engineering teams

I'm primarily a frontend developer who is comfortable working with vanilla HTML/JS/CSS as well as more complex frameworks (mainly React). I enjoy being a heads-down technical contributor to codebases. However, working with early-stage companies has allowed me to dabble in UX design, hiring, mentoring, technical writing, technical workshops, and product design. I enjoy wearing a ton of hats, and prefer to work at orgs that allow me to use the full set of my abilities.

I enjoy using LLMs, but I do so responsibly. I write regularly at https://ankursethi.com/. I prefer short to medium term contracts (think 4-8 months).

GeneralMaximus··on Gemini 3 Flash: Frontier intelligence built for speed
I live in India and a surprising number of people here are using AI.

A lot of public religious imagery is very clearly AI generated, and you can find a lot of it on social media too. "I asked ChatGPT" is a common refrain at family gatherings. A lot of regular non-techie folks (local shopkeepers, the clerk at the gas station, the guy at the vegetable stand) have been editing their WhatsApp profile pictures using generative AI tools.

Some of my lawyer and journalist friends are using ChatGPT heavily, which is concerning. College students too. Bangalore is plastered with ChatGPT ads.

There's even a low-cost ChatGPT plan called ChatGPT Go you can get if you're in India (not sure if this is available in the rest of the world). It costs ₹399/mo or $4.41/mo, but it's completely free for the first year of use.

So yes, I'd say many people outside of tech circles are using AI tools. Even outside of wealthy first-world countries.

GeneralMaximus··on AI's real superpower: consuming, not creating
I've been analyzing my Obsidian vault using local LLMs that I run via Apple's mlx_lm. I'm on an M4 MacBook Pro with 48GB RAM.

The results are ... okay. The biggest problem is that I can't run some of the largest models on my hardware. The ones I'm running (mostly Qwen 3 at different numbers of parameters and quantization levels) often produce hallucinations. Overall, I can't say this is a practical or useful setup, but I'm just playing around so I don't mind.

That said, I doubt SOTA models would be that much better at this task. IMO LLM generated summaries and insights are never very good or useful. They're fine for assessing whether a particular text is worth reading, but they often extract the wrong information, or miss some critical information, or over-focus on one specific part of the text.

GeneralMaximus··on Useful patterns for building HTML tools
I love this idea! I've also been using LLMs to build tiny utilities and automations for myself, but instead of using HTML, I'm building them as:

- Shell scripts, AppleScripts, etc. that I trigger from Alfred

- Obsidian plugins

- The occasional Emacs Lisp function

They serve a similar purpose for me as OP's HTML Tools, in the sense that they let me automate a small part of my workflow that I wouldn't otherwise have automated. If I have to choose between writing AppleScript and just doing something manually, I'll pick doing something manually 100% of the time. But if I can just ask an LLM to write the automation for me and then test it in a bunch of different scenarios, the choice becomes much easier.

After reading this post, I really want to try moving some of my automations to the web. Using HTML/JS/CSS for some of these tools will let me solve a whole different set of problems. E.g. I could more easily build automations for the non-techy folks in my family instead of just keeping them to myself.

GeneralMaximus··on The Cloudflare outage might be a good thing
Efficient in terms of what, exactly?

There are multiple dimensions to this problem. Putting everything behind Cloudflare might give you better uptime, reliability, performance, etc. but it also has the effect of centralizing power into the hands of a single entity. Instead of twisting the arms of ten different CXOs, your local politician now only needs to twist the arm of a single CXO to knock your entire business off the internet.

I live in India, where the government has always been hostile to the ideals of freedom of speech and expression. Complete internet blackouts are common in several states, and major ISPs block websites without due process or an appeals mechanism. Nobody is safe from this, not even Github[1]. In countries like India, decentralization is a preventative measure.

[1] https://en.wikipedia.org/wiki/Censorship_of_GitHub#India

And I'm not even going to talk about abuse of monopoly power and all that. What happens when Cloudflare has their Apple moment? When they jack up their prices 10x, or refuse to serve customers that might use their CDNs to serve "inappropriate" content? When the definition of "inappropriate" is left fuzzy, so that it applies to everything from CSAM to political commentary?

No thanks.

GeneralMaximus··on Ask HN: Abandoned/dead projects you think died before their time and why?
For a few short months circa 2016 or 2017, KaiOS was the number one mobile OS in India. This was probably because of all the ultra-cheap KaiOS-powered Reliance Jio phones flooding the Indian market at the time.

I noticed the trend when I was working on a major web property for the Aditya Birla conglomerate. My whole team was pleasantly surprised, and we made sure to test everything in Firefox for that project. But everyone switched to Android + Chrome over the next few years, which was a shame.

Today, India is 90% Chrome :(

GeneralMaximus··on Everything that's wrong with Google Search in one image
> Does Kagi have a better localized experience?

I'm in India and it works well. I can even search in Hindi and get good results.

The only thing that doesn't work are local points of interests (restaurants, hotels, local businesses, etc). I still have to use Google Maps to look these up. Then again, even Apple doesn't have good local results for PoIs in India, so I don't expect Kagi to get this right either.

That said, I often turn off localized results completely and just use the international results. Those tend to be more diverse and more useful, at least for the sort of searches I tend to do.

GeneralMaximus··on WASM 3.0 Completed
There is no difference between a "document" and an "app". There has never been a difference between the two, it's a purely artificial distinction.

Word and LibreOffice "documents" can run embedded macros. Emacs has `org-mode`, which can call out to any programming language on your $PATH. A PDF document is produced by running code in a stack-based virtual machine. Even fonts have bytecode instructions embedded inside them that are used for hinting.

If by "document" you mean "static text with no executable bits", then only plain text files can truly be called documents. Everything else is a computer program, and has been since the dawn of computing.

GeneralMaximus··on OpenAI Grove
When dealing with organizations that hold a disproportionate amount of power over your life, it's essential to view them in a somewhat cynical light.

This is true for governments, corporations, unions, and even non-profits. Large organizations, even well-intentioned ones, are "slow AI"[1]. They don't care about you as an individual, and if you don't treat everything they do and say with a healthy amount of skepticism and mistrust, they will trample all over you.

It's not that being openly hostile towards OpenAI on a message board will change their behavior. Only Slow AI can defeat other Slow AI. But it's our collective duty to at least voice our disapproval when a company behaves unethically or builds problematic technology.

I personally enjoy using LLMs. I'm a pretty heavy user of both ChatGPT and Claude, especially for augmenting web search and writing code. But I also believe building these tools was an act of enclosure of the commons at an unprecedented scale, for which LLM vendors must be punished. I believe LLMs are a risk to people who are not properly trained in how to make the best use of them.

It's possible to hold both these ideas in your head at the same time: LLMs are useful, but the organizations building them must be reined in before they cause irreparable damage to society.

[1]: https://www.antipope.org/charlie/blog-static/2018/01/dude-yo...

GeneralMaximus··on I tried every todo app and ended up with a .txt file
You're being unfairly combative. I was supplying a different perspective you may not have considered, and you assumed it was a personal attack. It wasn't.

I don't think this will be a productive conversation. Let's just agree we feel differently about how words affect people and move on.

Page 1 of 24Next →