Add real-time BTC price feed via Binance WebSocket

Connect to Binance trade stream, persist prices to binance_price table
(throttled to every 5s), and live-update the home page via HTMX polling.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-17 15:51:10 +01:00
co-authored by Claude Opus 4.6
parent bb604b302a
commit a50256a042
7 changed files with 125 additions and 6 deletions
@@ -0,0 +1 @@
DROP TABLE binance_price;
@@ -0,0 +1,5 @@
CREATE TABLE binance_price (
id BIGSERIAL PRIMARY KEY,
price NUMERIC(18,8) NOT NULL,
recorded_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
+8 -1
View File
@@ -1,2 +1,9 @@
-- queries for btcprice
-- Add HugSQL queries here as tables are created
-- :name insert-binance-price! :! :n
-- :doc Insert a Binance BTC price
INSERT INTO binance_price (price) VALUES (:price)
-- :name get-latest-binance-price :? :1
-- :doc Get the most recent Binance BTC price
SELECT price, recorded_at FROM binance_price ORDER BY id DESC LIMIT 1
+5 -1
View File
@@ -51,4 +51,8 @@
:reitit.routes/ui
{:base-path ""
:query-fn #ig/ref :db.sql/query-fn}}
:query-fn #ig/ref :db.sql/query-fn}
:ws/binance
{:query-fn #ig/ref :db.sql/query-fn
:uri "wss://stream.binance.com:9443/ws/btcusdt@trade"}}