Sharing my project for review and feedback. Be gentle, my self-taught engineering degree is on spreadsheets and a no-code platform (Bubble.io).
AI disclosure
Mix of AI-assisted and hand-written code. Core architecture and design decisions are mine; AI helped with boilerplate, docs, and some implementation details. Also, I incessantly bothered @mcass19 , but he can’t do miracles. The bugs are 100% artisanal, hand-crafted by me.
What
A Phoenix framework integration that gives Elixir developers a LiveView-like experience using Datastar’s SSE + Signals architecture instead of WebSockets. You write familiar Phoenix callbacks (mount, handle_event, handle_info, render) with HEEx templates, but the transport is Datastar’s SSE protocol under the hood.
What it does today
- Two view types: stateless (
:datastar) and live (:live_datastar— GenServer-backed with SSE push) - Signal management (
put_signal,update_signal) for client-side reactive state - Server-side assigns with patch_elements for granular DOM updates via SSE
igniter.installscriptusage_rulesskillshandle_infosupport for PubSub/timers — real-time multi-user updates workevent/2macro for handling Datastar actions with signal data: it creates a@postwith the csrf token.execute_script,redirect,console_log
Working examples included (counter, multiplayer counter via PubSub)
Goals / what’s not there yet
- Alpha stage — the API is still changing. Not production-ready.
- That said, I don’t listen to my own advice, so I built a little service with it: https://tiptap.rico.wtf. It has a thriving user base of one (me). No incidents reported so far.
- Needs alignment with the Tao of Datastar
- Error handling and edge cases need hardening
Would love feedback on whether the API surface feels right to Datastar users, even if you’re not familiar with Elixir.
Hex: phoenix_datastar | Hex
Repo:
Appreciate any feedback — especially from folks who’ve built SDKs for other backends.






















