from Hacker News

Graph-Based Ceramics

by nezaj on 7/5/24, 4:09 PM with 11 comments

  • by areichert on 7/9/24, 9:51 PM

    Author here!

    Surprised to see this on the front page again (hello fellow pottery enthusiasts?), but figured this could be a good chance to address some of the comments from the recent discussion [0] since I missed it last time :P

    The most common feedback seemed to be, "this is dumb, just use SQLite", which is definitely valid.

    This was actually how I initially started building the app (using SQLite), and it worked pretty well. There were a couple reasons I abandoned this approach though: one, whenever I had to uninstall and reinstall the app, the data would get wiped; two, I still had to deal with migrations and other annoying boilerplate; and three, I wanted to be able to share my results with my friends in a read-only web view.

    (That being said, I'm also curious to explore how tools like ElectricSQL [1], PowerSync [2], TinyBase [3], etc. play with SQlite to handle some of these issues. At a glance, it just seemed like these would require more time to setup compared to InstantDB [4].)

    Another similar comment that popped up a few times was the idea that if I'm trying to model _relational_ data, it would be ridiculous to use anything other than a _relational_ database.

    I think that's fair, but I also think it's fair to say a graph database is also "relational" in some sense, or at least "relationship-centric" [5] :)

    Either way, I had a lot of fun with this. And I was definitely optimizing more for speed/scrappiness than for doing it The Right Way, so if anyone has any thoughts on how to build stuff faster, I'd love to hear it!

    [0] https://news.ycombinator.com/item?id=40860116

    [1] https://electric-sql.com/

    [2] https://www.powersync.com/

    [3] https://tinybase.org/

    [4] https://www.instantdb.com/

    [5] https://aws.amazon.com/compare/the-difference-between-graph-...

  • by raymondgh on 7/9/24, 11:52 PM

    This is awesome. About five years ago I wanted to solve the same problem of tracking my pots and glazes. I also noticed the many:many relationship very quickly and deliberated on the schema. Neo4j looked really cool but I think I ended up going with join tables (ie pots, glazes, pot_glaze) in Postgres. I think I didn’t get nearly as far as you did in a weekend though!

    Lately I hack in firebase and have been interested in trying supabase. I’ll have to add instantdb to my list.

    You should productionize this! Get glaze recipes in there too!

  • by dang on 7/9/24, 9:13 PM

    Discussed recently, but maybe didn't get enough attention?

    Graph-Based Ceramics - https://news.ycombinator.com/item?id=40860116 - July 2024 (17 comments)

  • by potter2024 on 7/10/24, 1:12 AM

    there is actual science behind this, check a glaze calculator like insight https://insight-live.com/ and component info like https://digitalfire.com
  • by throwawayyyyhhh on 7/9/24, 11:39 PM

    If you're trying a lot of different options you may want to check out something called Design of Experiments. [0]

    0. https://en.wikipedia.org/wiki/Design_of_experiments