[HN Gopher] Jazz - Apps with Distributed State
       ___________________________________________________________________
        
       Jazz - Apps with Distributed State
        
       Author : gjvc
       Score  : 183 points
       Date   : 2024-10-05 10:34 UTC (2 days ago)
        
 (HTM) web link (jazz.tools)
 (TXT) w3m dump (jazz.tools)
        
       | whalesalad wrote:
       | https://chat.jazz.tools/#/chat/co_z7jXmhppcrqVpgcx4PxFs5Ljsw...
        
         | yawnxyz wrote:
         | very cool! I was there for maybe 2 minutes before HN took the
         | system down :D
        
           | theanzelm wrote:
           | Investigating why it's breaking, was there a lot of people in
           | that room?
        
             | whalesalad wrote:
             | when it broke there were 3-4 people in it
        
           | gocken wrote:
           | Not very cool if it breaks under hardly any load.
           | 
           | You'd think they'd test their tech demos on more than a
           | handful of people before launching. This doesn't give much
           | confidence at all in their product.
        
       | jessmartin wrote:
       | Over the past few years, I've worked on and used a bunch of
       | different frameworks to try to solve for distributed state. Jazz
       | feels like it has the right "shape" - the right primitives to
       | quickly build an app with magical powers like offline, real-time
       | collab, etc.
       | 
       | If you can push the distributed state problem below the framework
       | level, it becomes dead simple to build apps, which feels great.
        
         | theanzelm wrote:
         | Thanks for the kind words, Jess!
        
       | frenchie4111 wrote:
       | Mild nit: your website hijacked the back button, I had to spam
       | click back like 30 times to get back to this hacker news comment
       | thread
        
         | theanzelm wrote:
         | Founder here - do you mean the chat example? Or just the
         | homepage itself?
        
           | rozap wrote:
           | homepage itself, firefox on ubuntu
        
             | theanzelm wrote:
             | Are the history entries all just the same URL? Thanks for
             | reporting
        
               | _false wrote:
               | Yes (encountered same issue on ff macos after clicking on
               | example tabs)
        
           | rbattula wrote:
           | same for me safari on macos15
        
           | slipgate55 wrote:
           | I couldn't replicate this in Firefox 131 under W11.
        
           | exac wrote:
           | On Firefox 131.0 I clicked through the tabs with the demo
           | code, then pressed my mouse's "back" button and it didn't
           | work. So I manually clicked the back button and it directed
           | me back to this page.
           | 
           | Then I opened it again and clicked the back button and it
           | didn't work again.
        
           | janderland wrote:
           | I'm also experiencing issues with the website. I when to the
           | docs page and accidentally pressed back in my browser, after
           | which the forward button wouldn't work to undo the back
           | operation.
           | 
           | Seems like the website breaks basic browser navigation.
        
         | kspacewalk2 wrote:
         | >I had to spam click back like 30 times to get back to this
         | hacker news comment thread
         | 
         | Click-and-holding or right-clicking the back button will give
         | you a list of last N URLs in your tab history. This page only
         | generates one auto-redirect, so the HN URL will show up.
        
           | ddoolin wrote:
           | Thank you for this. Many years of browser usage and I never
           | knew this.
        
           | NetOpWibby wrote:
           | Just tried this in Arc and Firefox...I never knew.
        
         | todd3834 wrote:
         | Tip for next time this happens: hold down the back button for a
         | menu of your history. It can help get where you want faster.
         | Although not sure it helps too much if you literally had to
         | click 30 times
        
           | brazzledazzle wrote:
           | That or right click.
        
         | gocken wrote:
         | I wonder if they tested this at all. What a poor showing.
        
       | aliasxneo wrote:
       | After a cursory review of the docs, it conceptually reminds me of
       | iroh: https://github.com/n0-computer/iroh.
        
       | authorfly wrote:
       | Neat work! Can the author provide any ideas around:
       | 
       | 1) Differences from fire-svelte for core functionality?
       | 
       | 2) For the beyond core aspects, like Group-WebRTC (great
       | innovation btw), how will things like TURN/PEER servers work to
       | manage the WebRTC connections?
        
         | theanzelm wrote:
         | What exactly does fire-svelte do? For me it looked like a
         | frontend framework but without synced or persisted state?
        
       | yohannparis wrote:
       | Where are the information about the company? I cannot find an
       | About Us, where they are based, etc?
        
         | theanzelm wrote:
         | Founder here - we're working on that page, so far there's just
         | info on me on https://gcmp.io/team
         | 
         | But I was able to hire a couple really good first people
         | recently! We're based all over Europe.
         | 
         | Let me know what else you'd like to know!
        
       | candiddevmike wrote:
       | This is JavaScript only from what I can tell.
        
         | nielsbot wrote:
         | It's TypeScript... but maybe TypeScript only?
        
       | softfalcon wrote:
       | I'm more than a little worried about the following all being
       | `Coming Soon`:
       | 
       | - Cursors & carets
       | 
       | - Two way sync to your DB
       | 
       | - Video presence & calls                   - both the Group and
       | BinaryCoStreams
       | 
       | All of these are the key reasons I would be evaluating this
       | framework to handle my data. All of these are not fully
       | implemented yet.
       | 
       | It is these key topics of live reloading/updating data that make
       | or break an app. In my opinion, if you haven't concretely solved
       | these problems, you haven't really built a viable state framework
       | for 2024.
       | 
       | I really like the patterns they've implemented though, looks a
       | lot like the same framework I just built on top of MobX,
       | websockets, and React for a recent project. They're headed in the
       | right direction, but I'm not sure they realize how much more work
       | they have to go before this is fully fleshed out.
        
         | theanzelm wrote:
         | It is already persisting and syncing data (fully encrypted)
         | between the cloud and other users. You can think of Jazz as a
         | distributed database itself.
         | 
         | The coming-soon badges are about interop with traditional
         | systems and higher level features we will add later.
         | 
         | The fundamentals are solved and you can build full multiplayer,
         | local-first apps with it.
         | 
         | Does that make sense?
        
           | aboodman wrote:
           | Does it store data persistently anywhere (on servers?). If so
           | where?
        
         | jimmywetnips wrote:
         | Seems like you have lots of real world mobx experience.
         | 
         | Have you ever read this article, basically saying that every
         | front end state (including mobx) basically ends up being a
         | worse version of a standard database?
         | 
         | https://sqlsync.dev/posts/stop-building-databases/
         | 
         | I ended up finding that article after running into lots of the
         | challenges with mobx State tree. I ended up trying to use
         | watermelondb, a sqlite wrapped for react native, but gave up
         | entirely on offline due to bugs and project abandonment
        
       | pshc wrote:
       | _> Jazz Mesh is currently free -- and it 's set up as the default
       | sync & storage peer in Jazz_
       | 
       | How difficult is it to run my own backend?
       | 
       | Edit:
       | 
       | > Completely DIY Mesh.
       | 
       | > Build your own network of sync and storage nodes. Handle
       | networking, security and backups yourself.
       | 
       | > Costs:
       | 
       | > N x instance cost for your sync nodes.
       | 
       | > Very high self-hosted egress costs.
       | 
       | > High self-hosted storage costs.
       | 
       | Compared to Mesh Pro at $79 for 30,000 sync-minutes ("Sync-
       | minutes are counted on a per-connected-device, per-minute
       | basis.") per month... I bet the cost of self-hosted storage and
       | egress is very low, actually, of course assuming you have the
       | competence and time to DIY it.
        
         | theanzelm wrote:
         | npx jazz-run sync
         | 
         | Either locally or on your server.
         | 
         | And then point the app to that!
         | 
         | Edit: re pricing
         | 
         | Super preliminary, curious to hear everyone's thoughts
        
       | theanzelm wrote:
       | Founder here - thanks for posting this! It's getting late where I
       | am so everyone who has questions please don't be shy to ask, will
       | elaborate in detail tomorrow!
        
       | graypegg wrote:
       | Edit: This IS being used to build a product, see reply below
       | 
       | One thing I always find weird about these sorts of projects is I
       | get the feeling this is a framework built up from scratch. I've
       | always had really bad luck doing that. Extracting and refining
       | something from a running application always feels like you catch
       | the cases that actually matter.
       | 
       | It's neat that it's quick to start, but I think that's mostly
       | because the framework has only been evaluated by making tiny toy
       | examples. Staying reaaaaally close to the framework code is sort
       | of like painting with your nose against the canvas. At the scale
       | of features you want to fit in:                   - live sync
       | - authorization         - video chat         - an open connection
       | to your DB, presumably meaning this is your main data fetching
       | API
       | 
       | you're basically building 20% of someones else's app that
       | currently doesn't exist. Once it does exist, it'll only be a
       | simple toy example for a short while.
       | 
       | It's sensibly licensed though (MIT), and honestly, skimming the
       | source, seems clean to work with! I hope people using this
       | contribute back to it, to get over that starter-project hurdle.
        
         | theanzelm wrote:
         | Jazz is built specifically for a work-in-progress, but full app
         | (essentially a Notion clone, TBA) and all the design choices
         | are driven by that.
         | 
         | Completely agree that this is the only way to create
         | frameworks.
         | 
         | Edit: also other people are building full apps with it too
         | which I'll showcase soon. https://learn-anything.xyz/ is one
         | example, https://invoiceradar.com/ is another.
        
           | graypegg wrote:
           | Oh neat! I stand corrected then! That's really cool!
           | 
           | Definitely get that showcase up, I think it just helps to
           | confirm this isn't one of those stealth-mode "solves
           | everything" dev tools that disappears along with it's VC
           | funding.
        
       | squidsoup wrote:
       | You missed an opportunity to call the free tier of your mesh
       | service "free jazz".
        
         | theanzelm wrote:
         | Great idea!
        
       | bcye wrote:
       | Awesome project!
       | 
       | fyi on latest Chrome the navigation items blog, releases, roadmap
       | are aligned top/start instead of center for me
        
       | cyanydeez wrote:
       | Nice, but react.
        
       | timolins wrote:
       | I love building with Jazz. It's so refreshing to build apps
       | without thinking about backends.
       | 
       | The number one thing I'm looking forward to is React Native
       | support. Having local data that syncs is essential for many
       | mobile apps, but there are no easy solutions yet. (Besides
       | iCloud, which is limited to iOS/macOS)
       | 
       | With Jazz, I can see a future where building syncing, cross-
       | platform apps becomes effortless.
        
       | aboodman wrote:
       | Very excited to see this. I think this is currently the most
       | promising of the fully-decentralized local-first systems I've
       | seen.
        
       | bbojan wrote:
       | How does this compare to Instant (https://www.instantdb.com/)?
        
       | Ey7NFZ3P0nzAe wrote:
       | Nice. Is there a way to add an rss feed? Can't seem to make the
       | newsletter subscription work (could totally be my fault)
       | 
       | Also, do you think there will be a way to use python with it?
        
       ___________________________________________________________________
       (page generated 2024-10-07 23:00 UTC)