One of my favorite pieces of writing is The Web's Grain by Frank Chimero https://frankchimero.com/blog/2015/the-webs-grain/. Lately I've been trying to think about what the grain of LLM-related development could be.
There's the interface for using the LLM, where Cursor has done a lot of work. But I want to think about what kind of websites and software you can build with LLM assistance.
There's using LLMs as a piece of the pipeline - unstructured data into a JSON schema, for example. There are possibilities there, I think. The dilemma is probably giving the user a mental model of what they can do - LLMs can unlock a new level of fuzzy input, but will it be clear to the user where and how that input breaks down? Will they run to the edges and then be frustrated there?
Then there's codegen and vibe-coding. This is such a knotty feedback-loop. It's safe to say LLMs are good at boilerplate, particularly the most popular project boilerplate. So one approach to going with the grain could be picking a stable tech stack and coding according to convention.
A really interesting piece of this is how libraries fit in. I think a lot of people's favorite vibe-coded examples use libraries like three.js or matter.js, to simulate worlds or physics. I think in general there's an imprecise linking of a model's 'intelligence' and physics sims, where we imagine a model has an understanding of the world, but what it actually has is ability to hook into a carefully designed library intended to simulate the world.
But I do love physics sims, and I think there is some energy there where we've always wanted physics sims in our software, but the complexity and the clash between digital logic and physical world logic has been to much to contain. Maybe LLMs can be the glue that helps us meld those two together.
Another place LLMs have been useful for me is approaching FFMPEG syntax commands. Another powerful library case where it allows me to dip into the powerful capabilities there and dip out without having to puzzle over syntax.
There's definitely a flow where you mainly use LLMs for boilerplate and for tech adjacent to your main focus. I've done that on this blog with most of the database logic being codegen. I can see a near-term future where my focus is experimental UIs, stuff that can't be easily generated, and I lean on LLMs to generate the surrounding tech.
But I don't think that's exactly approaching LLMs as Chimero approaches websites in the article - it's not looking at what 'LLMs' want to make. For that I don't have an answer currently beyond popular web stacks and this interesting relationship to libraries. Going to keep thinking, though.