GeneralMaximus
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.
AI Software Development – What Does the Data Say?
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.
iOS and Mac app development is constant churn
Wordgard Release 0.1
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.
Deno Desktop
A Technical Deep Dive into the New Raycast
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.
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?
I built a programming language using Claude Code
I used a local LLM to analyze my journal entries
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: [email protected]
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).
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.
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.
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.
Pushing the smallest possible change to production
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.
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.
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).
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.