nowfound

Life & fun · September 28, 2023

Topical – Elixir library for synchronising state to web clients

Hi HN. I've been working on an Elixir library for synchronising state, maintained by the server, to connected web clients. I found this was something I kept implementing for side-projects, so I've extracted it into a library. It solves a similar problem to Phoenix LiveView, but aimed at a different level of abstraction: rather than synchronising HTML and UI events, this just synchronises (JSON-serialisable) state. Topics can be shared between connected users, and each client can subscribe to multiple topics. The library takes care of starting topic instances (GenServer processes) as needed,…

Topical – Elixir library for synchronising state to web clients launched on September 28, 2023 with 8 votes, #1,540 of 4,228 launches that month and more than 75% of that year's launches. The site was still online in September 2026, 3 years on.

What it does

Simple server-maintained state synchronisation. Contribute to joefreeman/topical development by creating an account on GitHub.

In the maker’s words, at launch

Hi HN. I've been working on an Elixir library for synchronising state, maintained by the server, to connected web clients. I found this was something I kept implementing for side-projects, so I've extracted it into a library. It solves a similar problem to Phoenix LiveView, but aimed at a different level of…

Does a similar job

all alternatives →
  • BA
    Bloom – A shadcn like UI library for Elixir and Phoenix2024 · bloom-ui.fly.dev · ▲189

    I've been writing Elixir for 5 years and made plenty of sites with Phoenix and LiveView but my biggest gripe has always been with the lack of quality UI components available. The JS ecosystem has so many, and it's the one thing I miss from being primarily a React & Node developer. So this is my attempt at bringing some pretty and useful components most applications need to Phoenix projects to try and fill in the gaps between what makes LiveView such a productive joy to work with. The library is very very raw and requires some initial clean up so PRs are very welcome to tidy up the DX as well…

  • ElectricSQL, Postgres to SQLite active-active sync for local-first apps2023 · electric-sql.com · ▲617

    Hi HN, James, Valter, Sam and the team from ElectricSQL here. We're really excited to be sharing ElectricSQL with you today. It's an open source, local-first sync layer that can be used to build reactive, realtime, offline-capable apps directly on Postgres with two way active-active sync to SQLite (including with WASM in the browser). Electric comprises a sync layer (built with Elixir) placed in front of your Postgres database and a type safe client that allows you to bidirectionally sync data from your Postgres to local SQLite databases. This sync is CRDT-based, resilient to conflicting…

  • SR
    Sync – Realtime partials with Rails2013 · chrismccord.com · ▲143

    I’m Chris McCord, a programmer with a passion for science and building things. I spend my time crafting the Phoenix Framework, working with …

  • SC
    SyncedStore CRDT – build multiplayer collaborative apps for React / Vue2021 · syncedstore.org · ▲144

    SyncedStore is a library for building distributed, real-time collaborative web applications that sync automatically. This used to be quite complex, but with SyncedStore it's as easy as sharing a pie!

  • LiveViewJS – TypeScript back end for LiveView Apps (Phoenix LiveView)2022 · github.com · ▲146

    Author here. I really love the programming paradigm behind by Phoenix LiveView applications and wanted to expand the ecosystem to include programmers like myself that love Typescript. In summary, LiveViewJS reuses all the Phoenix client code and implemented a new backend in Typescript to handle client events and send back updates. Lots more detail and examples in the repo. Would love any questions and/or feedback. Thanks!

  • es6_maps, new Elixir syntax feature via runtime compiler hacking2024 · github.com · ▲71

    Hi HN! I thought you might enjoy this even if you don't know much about Elixir. `es6_maps` is a small library that introduces a "shorthand" map creation syntax, similar to shorthand object construction in JavaScript/TypeScript. For those unfamiliar with Elixir, the most interesting aspect might be how it achieves this. `es6_maps` takes advantage of BEAM (Erlang's VM) hot-reload capabilities to amend the Elixir compiler bytecode at runtime, adding functions that expand the shorthand syntax for further compilation. I think it's a nice showcase of the power you can wield (with care) when…

More life & fun this month

the category →

Source: Show HN post ↗ · launch text quoted in part

Launched alongside, September 2023

the whole month →
  • Loops▲1,556

    Measure whether a campaign drove the desired outcome

    Dev tools · 2023 · loops.so

  • Tally 2.0▲1,479

    The simplest way to create forms for free

    Dev tools · 2023 · tally.so

  • Klu AI▲1,462

    Your data, unified and interactive

    AI · 2023 · klu.so

  • FirstHR▲1,063

    All-in-one HR platform for founders with dreams and teams

    Work · 2023 · firsthr.app

  • DevHunt▲945

    Open source Product Hunt for dev tools

    Dev tools · 2023 · devhunt.org

  • GenAI app to create personalized content

    AI · 2023 · yarnit.app