GeneralMaximus
Joined 18 years ago
Joined 18 years ago
When the November 2025 coding agent inflection point happened, the first thing I did was to solve all the niggling little problems I have with the software I use on the daily. Think shell scripts, Alfred workflows, Elisp functions, and Obsidian plugins.
Claude Code/Codex has made my entire macOS environment as malleable as Emacs. That’s huge! Everyday automation continues to be one of my top uses for coding agents.
Most of the automations I’ve built make sense only for my own personal workflows, so I haven’t released them for anyone else to use. But I did build an Obsidian plugin that seemed generally useful, so I put it on the Obsidian Directory. It has a whopping sixty five users at the moment. I suspect there are many others like me driving this growth in plugins and mods and other extensions.
Maybe one day I’ll build an “ambitious” piece of software with an LLM. But that day is not today. I’m currently working on some open source projects that discourage LLM use. I’m also trying to learn a new domain, so using LLMs would sort of defeat the point. It’ll be a while before I put generated code in production.
In the meantime, I’m very happy building my little scripts and extensions and such.
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?
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.
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.
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.
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.
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.
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.
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.
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.
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: [email protected]