Most AI coding tools can generate a Todo app from a small prompt. This is because that problem is well understood.
When you try to use AI coding tools on your own projects you need to start writing a prompt that teaches the AI about your current architecture and decisions.
So the initial prompt is large.
Often the task needs knowledge of other files in your project. You can add them by hand or some AI tools will search the code base.
The prompt is now huge.
When you run that prompt you may or may not get what you expected.
So now the issue is how much time do you spend getting the prompt correct vs just writing the code yourself.
This area is brand new and there are very few resources on how to use AI coding tools effectively.
I have yet to see one demonstration of effective AI coding tool use on a project of reasonable complexity.
I'm probably in the same place as the author, using Chat-GPT to create functions etc, then cut and pasting that into VSCode.
I've started using cline which allows me to code using prompts inside VSCode.
i.e. Create a new page so that users can add tasks to a tasks table.
I'm getting mixed results, but it is very promising. I create a clinerules file which gets added to the system prompt so the AI is more aware of my architecture. I'm also looking at overiding the cline system prompt to both make it fit my architecture better and also to remove stuff I don't need.
I jokingly imagine in the future we won't get asked how long a new feature will take, rather, how many tokens will it take.
That said most developers don’t have any awareness of problems outside of those they experience… which tend to be developer tooling issues. So you get a ton of companies building dev tools startups despite an incredible amount of need elsewhere.
I feel like a lot of value could be unlocked if there were some way besides random chance and networking for skilled developers looking to start something to discover people with problems, domain expertise and entrepreneurial ambition.
> if there were some way besides random chance and networking for skilled developers looking to start something to discover people
The main problem here is that non-programmers are often so entrenched in their workflow(s) that they fail to see what can be automated and wind up proposing nice-to-haves instead of tasks critical to their mission.
Moreover, they're more likely to dismiss 80% solutions because the introduction of new unknowns/things-to-check adds enough uncertainty to make them uncomfortable. "The new thing always puts things here instead of there and it doesn't handle these cases. I miss the way we used to do things."
Selling tools to developers is just hard. You are competing with a lot of OSS tools that are constantly adapting and changing. Any good ideas quickly get picked up and replicated. So, most commercial tools have a limited shelf life in terms of utility. Which makes them mostly just nice to haves.
There's a secondary problem here that many developers are employed and don't typically have a personal tools budget. This narrows the market effectively to developers that are free lancing or the bosses of developers that are employees.
The team managers will scrutinize a lot of spending on this front and typically not have. a lot of budget for this. And there is no such thing as a personal tools budget for developers in most companies.
Freelancers mostly just use the same tools as the companies that pay them. Which is mostly free tools. Non free tools actually complicate getting freelancers because now you need to worry about getting licenses for your contractors as well. So, there's a bias towards keeping things simple here and just avoiding such tools.
What's more, developer tools are misleadingly difficult. Put simply, it's easy to think that creating developer tools is going to be a winning formula for a company/startup. After all, you're probably a developer, and you've probably identified a problem you personally had in the past.
And you know where developers hang out and what kinds of things do well there. So everything's good, right?
But as you said, many of them don't want to pay for things, and many will find open source solutions that'll do the job needed instead, even if it's a tad less convenient than your potential solution might be. Plus, you're literally selling people whose job/life involves creating software, so their answer could just as easily be "build something myself to do this" instead.
Not really true, but dealing with 50x 10 USD invoices is not something I want to waste time on.
Is there a business that can bundle different services with just one invoice? Or do I still have to use AWS, Azure, GCloud?
WebAssembly (wasm) already runs in the browser, but now also it is being used to create cross-architecture executables and modules that might (so they say) replace k8s.
To expand, as I understand it, the component model is meant to enable large scale deployment, and runtime module composition using well-defined interfaces in an IDL called WIT.
Do some people have examples of interactivity they were able to replace with Htmx?
For me, I've been able to get turbo style links with the boost to get nice page transitions. I can also see how I could use the class-tools extension to enable buttons to open dialogs etc.
I'm curious to see when people say they needed an SPA for interactivity, what interactive features Htmx can already do and when do we need to break out some JS.
An example that I think needs JS is a copy paste button.
One thing I use HTMX for is to quickly hack interactivity into a more traditional site.
One example is incremental filtering: I added an input field, and made it (a few ms after the last value change) load the same page the user is already on with a query parameter that filters the items in the response. Then I just replace the list of items with the contents from the response, ignoring the rest of the page.
It's a bit wasteful perhaps, but all this took just a few lines of HTML.
I tried HTMX but found it too restricting. It's great if you just want to load a portion of the page. Maybe if you have an up-vote, just send the request and replace the icon with a gold icon.
But I want things like an on-site calculator. I load in products and prices, users can adjust sliders to change the quantity and relevant number is calculated. I don't want to use HTMX for this to call the server each time, I want instant reactivity and state in the frontend maintained so when the user has tweaked as necessary they can just check out.
HTMX does not fit this use case so I use React to build widgets (or if even more complex SPA then Angular). If I'm using a JS framework anyway, then I don't need HTMX. It's just something else to clutter the project and remember to use.
HTMX has its place but with the user expectation for reactivity in the browser I personally find it too limiting.
Because HTMX is declarative and the declaration is in HTML, people have weirdly extended the "no need for js+json+rendering for ajax" to "don't use js".
This is making your life needlessly difficult.
HTMX is just a fancy ajax layer with a little event handling sprinkled on top. You can and should script to your heart content even if you use it, when you need so.
I use js in all most of my HTMX powered pages. Sometimes just a few lines. Sometimes a whole lot. Sometimes vanilla, sometimes alpine. I even have one where I load react for one single page because I want a community widget while the rest of the site is pure HTMX.
Of course you can combine the two but why use three tools (SSR + HTMX + JS) when I can just use two (SSR + JS)?
My point is that if you are going to use a JS framework then it will do the same as HTMX and I don't have to remember where to draw boundaries of responsibility.
that means you may be able to express more of your UI needs in HTML, using the traditional REST-ful architecture of the web (HATEOAS, in particular) and reserving JavaScript for the areas where that additional complexity adds the most value.
Depending on your application, this may lead to significant reduction in application complexity:
This kind of use case is where you’d use Alpine instead of HTMX (if you’re going for the no-build approach). It has everything you’d need for this, client-side store, etc. Alpine is basically light weight, no-build Vue.
HTMX is really only about swapping out the elements on the page and pushing updates to the server, which in this case might just be lazy loading the calculator component that contains Alpine attributes and Tailwind elements, and HTMX only if there are elements to swap or you need to save state to the server.
> when the user has tweaked as necessary they can just check out.
And what happens after the user spent all that time adjusting their order, submits it, and then is told at the very end that some items are out of stock? Do you think they're going to be happy about that?
What if their browser crashes and the order they had built up carefully is lost? Will they bother to try again?
Will you do price calculations properly with a proper decimal library or allow the user to see what IEEE754 floats think '0.1 + 0.2' should be?
Lot of questions come up with the client-only approach.
Good to know that it's not an issue in your case but just a reminder that your specific case is, by definition, not generalizable. These are problems that exist in general and have to be solved or prevented in some way. For example, you found some solutions that work for you but they won't for everyone.
Supabase works best with single page apps. However a lot of the frameworks are moving towards server side react, so the need for having a rest API is going away.
So I would actually say use nextjs and get an AI such as bolt to generate an MVP.
If you are running AI such as LLM's you need GPU's. LLM's are constrained by memory bandwidth not CPU and GPUS have a ton of memory bandwidth.
Postgres is always a sold choice and RLS is defence in depth anyway.
I'm no rustacean but to me it looks like start() in https://github.com/trailbaseio/trailbase/blob/main/trailbase... consumes a file and returns a database connection. If it were to step into the file and seek out an embedded file system I suspect that function would look different.
"single file" terminology in the context of applications does not typically include the DB. It is common for single file executables to use external config files and DB files.
But then how should redbean describe itself? There you have the executable plus any configuration files or other files you might possible need zipped inside one single file (and if you need a DB, also one more file for the sqlite database next to it, OK).
Most AI coding tools can generate a Todo app from a small prompt. This is because that problem is well understood.
When you try to use AI coding tools on your own projects you need to start writing a prompt that teaches the AI about your current architecture and decisions.
So the initial prompt is large.
Often the task needs knowledge of other files in your project. You can add them by hand or some AI tools will search the code base.
The prompt is now huge.
When you run that prompt you may or may not get what you expected.
So now the issue is how much time do you spend getting the prompt correct vs just writing the code yourself.
This area is brand new and there are very few resources on how to use AI coding tools effectively.
I have yet to see one demonstration of effective AI coding tool use on a project of reasonable complexity.