Hacker Newsnew | past | comments | ask | show | jobs | submit | emschwartz's commentslogin

Extremely helpful. I've been eagerly awaiting v0.5 but have been holding off on deploying it until I had more confidence that it would work and be stable. Reading this, I'm definitely glad that I waited.


Does anyone have a detailed comparison of the functionality you get from Datastar versus HTMX + Alpine.js? My impression was that Datastar was trying to be a lighter weight combination of the other two.


I don't know about a detailed comparison, but datastar basically does everything those do combined, but in a smaller, simpler package.

It also sticks to web standards as closely as possible (whereas htmx is trying to propose it's api as web standards).

It also has SSE, idiomorph, and more baked in by default whereas those are optional extensions in htmx.

They're also releasing css and web component frameworks/tools soon that look VERY powerful and simple.

Datastar has the potential to completely change web development.


Scour lets you add feeds and topics that you’re interested in and then sorts posts by how similar they are to your interests.

It also works well for feeds that are too noisy to read through manually, like HN Newest.

https://scour.ing (I’m the developer)


Very excited for this release!

This is the blog post and HN discussion where they announced the intention to go this direction:

https://fly.io/blog/litestream-revamped/

https://news.ycombinator.com/item?id=44045292


Duolingo is great at gamification and terrible for actually teaching you the language. You memorize a ton of random words without really learning how to put everything together.

I found Babbel to feel much more like an app designed by language instructors.


The SQLite CLI has a `.expert` command that will give index recommendations when you run queries: https://sqlite.org/cli.html#index_recommendations_sqlite_exp...

It's not quite the same as capturing all of the queries used in development (or production), but it seems somewhat useful.

I'll also note that I had an LLM generate quite a useful script to identify unused indexes (it scanned the code base for SQL queries, ran `EXPLAIN QUERY PLAN` on each one to identify which indexes were being used, and cross-referenced that against the indexes in the database to find unused ones). It would probably be possible to do something similar (but definitely imperfect) where you find all of the queries, get the query plans, and use an LLM to make suggestions about what indexes would speed up those queries.


wow!

I used to bruteforce a bunch of indexes until EXPLAIN on queries gave satisfactory results!

I actually looked for a tool where I could provide a schema and all queries to get optimal indexes but never found one that actually worked.


Thanks for saying that! That’s exactly how it was intended and I’m glad to hear you enjoyed it


Fun read.

I've been tripped up by the where in partial indexes before. Same goes for expression indexes.


Thank you for saying that too!

Hope this explanation helped explain why, at least a little bit.


That is a helpful way of thinking about it. Thanks for sharing!


Just to clarify one thing: the order of WHERE conditions in a query does not matter. The order of columns in an index does.


It definitely does matter, especially in cases where the conditions are on non-indexed columns or there are CPU-intensive search operations like regex, string ops, etc.

I just ran this test locally with a table I created that has 50 million rows:

``` » time sqlite3 test.db "select count() from test WHERE a != 'a' AND a != 'b' AND a != 'c' AND a != 'd' AND b != 'c' AND d != 'd' AND e != 'f' AND f = 'g'" sqlite3 test.db 5.50s user 0.72s system 99% cpu 6.225 total » time sqlite3 test.db "select count() from test WHERE f = 'g' AND a != 'a' AND a != 'b' AND a != 'c' AND a != 'd' AND b != 'c' AND d != 'd' AND e != 'f'" sqlite3 test.db 1.51s user 0.72s system 99% cpu 2.231 total ```

The only difference is swapping the `f = 'g'` condition from last to first. That condition never matches in this query, so it's able to fail fast and skip all of the work of checking the other conditions.


I think this is a neat direction to explore. I've wondered in the past whether you could use https://pglite.dev/ as if it were SQLite.


Someone is working on a libpglite based around pglite. I think this is what will provide an actual sqlite alternative:

https://github.com/electric-sql/pglite-bindings

It would still be missing the standardized disk format aspect of sqlite, but otherwise will be neat.


This is very much the point of https://pglite.dev

It's an embeddable Postgres you can run in process as a local client DB, just like SQLite but it's actually Postgres.


For sure. I’m curious if anyone using it in production as an alternative to SQLite and, if so, what the performance and experience is like.


I wish this were available for Go lang, perhaps via Wazero.


Me too. There's only so much time in life. I'd take it for a spin if someone else did it. :)


Ah, I thought I recognized your username from a Github URL. :D Thank you for your contributions in the SQLite & Go space!


You got my hopes up, but it's WASM for now, not something I could add into a golang [1] or python app and have running like sqlite. OK, still hoping...!

[1]https://github.com/electric-sql/pglite/issues/89


Interesting! I'm going to look into that. :-) Thank you for sharing.


Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: