ecallen @ethancallen.bsky.social · 07/10/2026Mask secret auth fields with an eye show/hide toggle Token, password, secret key and client secret fields in the auth editor (and the AI API key in Settings) render as password inputs with an eye / ey... View Card → | cards.statmeet.com | atproto feed 100
ecallen @ethancallen.bsky.social · 06/10/2026🔴 LIVE stream.place/ethancallen.bsky.social statmeet testingstream.place@ethancallen.bsky.social is 🔴LIVE on stream.place!statmeet testing 010
ecallen @ethancallen.bsky.social · 05/10/2026Review Claude code instructions Initial review of the CLAUDE.md project brief before starting Stage 0 work. #meta View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 05/10/2026test phase 0 Stage 0 MVP: FastAPI + HTMX + YAML file storage in data/requests/. Save/run/view a request. No auth, no plugins, no build step. #stage-0 #done View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 05/10/2026Implement auth flows Stage 1: plugin loader (app/plugins.py, pre_request/post_response hooks, non-fatal failures) + six built-in auth presets as plugins in plugins/auth... #stage-1 #done #auth View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 05/10/2026Stage 2: centralized/server mode (MODE flag, Postgres backend, admin login, Docker) MODE=local|server env flag. server mode swaps storage to Postgres via the same storage.py function interface, and gates the app behind a single sha... #stage-2 View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 05/10/2026Stage 4: OAuth 2.0 Authorization Code + PKCE preset (GitHub + Twitter/X, private_key_jwt) — done PKCE (S256), client_secret_post/basic/none + private_key_jwt (RFC 7523) client auth, refresh-token rotation with write-only-on-change persistence, ... View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 05/10/2026Stage 5: BYOK AI chat (provider-neutral, propose/apply request generation) Provider-neutral BYOK (OpenAI-compatible Chat Completions via AsyncOpenAI, configurable base_url). app/ai_tools.py is the safety boundary -- fixed ... #stage-5 #done #ai View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 05/10/2026Stage 4 follow-on: PAR (RFC 9126) + DPoP (RFC 9449) for full Bluesky/atproto OAuth compliance PAR (RFC 9126): additive change to GET /oauth2/authorize, POST params to a pushed_authorization_request_endpoint first. DPoP (RFC 9449): bigger -- ... View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 05/10/2026Postman collection import (future, lower priority) Import Postman's own (non-OpenAPI) collection JSON format into saved requests. Explicitly lower priority -- don't implement unless asked. Needs its... #import #open #low-priority View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 05/10/2026Stage 4 follow-on: OAuth 2.0 Device Authorization Grant preset (RFC 8628) oauth2_device_code preset (RFC 8628) for CLI-style testing. No redirect URI or browser callback needed -- POST to a device-authorization endpoint, ... #stage-4 #auth #oauth View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 05/10/2026Add social share of API flows Idea: let users share a saved request/flow socially (e.g. as a Bluesky post). Not part of the original CLAUDE.md roadmap -- captured separately, ne... #idea #not-in-roadmap View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 05/10/2026User testing: OAuth 2.0 Authorization Code preset against real GitHub + Twitter/X Manual runbook to verify #91 against a real GitHub OAuth App and a real Twitter/X OAuth 2.0 app -- register the app, match its redirect URI, click ... #stage-4 #auth View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 05/10/2026Stage 3: monitoring export (Prometheus blackbox target + standalone cron script endpoints) POST /requests/{id}/export/prometheus (Prometheus blackbox-exporter target YAML) and POST /requests/{id}/export/cron (standalone Python script reus... #open View Card → | cards.statmeet.com | atproto feed 000
Reposted by ecallencivic.statmeet.com @statmeet.com · 29/09/2026From Don’t Talk About Politics by Sarah Stein Lubrano “We need to build better forms of 'social infrastructure. A good deal of the infrastructure that supports us in considering new ideas doesn't appear as directly related to discourse but nevertheless allows us to belong with new kinds of people… 102
ecallen @ethancallen.bsky.social · 30/09/2026htmx frontend 8/8: parity check, switch-over, delete frontend/ Part of #109. Run both frontends side by side on Tailscale against copies of the same DB and walk every page and action; record differences on this... State: Active #htmx-frontend View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 30/09/2026htmx frontend 7/8: admin pages (scenario queue, news queue, news admin) Part of #109. Port /scenarios/queue (approve/delete), /news/queue (publish/delete) and /news/admin (delete, Find Related Scenarios via the LLM, rel... State: Done View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 30/09/2026htmx frontend 6/8: settings (username, API tokens, delete account) Part of #109. Port app/settings/page.tsx: change username (with suggest), list/create/revoke personal access tokens (show the plaintext token once ... State: Done #htmx-frontend View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 30/09/2026htmx frontend 5/8: forms (new scenario, submit news) Part of #109. Port /scenarios/new (title, hypothesis, timeframe radios, add/remove outcome and second-order effect rows, blank rows dropped, order ... State: Done #htmx-frontend View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 30/09/2026htmx frontend 4/8: interactions (voting, comments, delete) Part of #109. Wire up VoteButton (cast, switch, un-vote by clicking the same button again, highlight my vote, redirect to login when logged out), C... State: Done #htmx-frontend View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 30/09/2026htmx frontend 3/8: cookie login (magic link, username, sign out) Part of #109. Port /auth/login, /auth/verify and /auth/username. Verify sets ae_session (HttpOnly, SameSite=Lax, Secure unless DEV_MODE, max-age = ... State: Done #htmx-frontend View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 30/09/2026htmx frontend 2/8: read-only pages (home, scenario list, scenario detail) Part of #109. Port app/page.tsx (carousel of top 3, latest news, recent scenarios), app/scenarios/page.tsx and app/scenarios/[id]/page.tsx (meta ro... State: Done View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 30/09/2026htmx frontend 1/8: foundation (templates, bundled assets, CSS, second listener) Part of #109. Create branch htmx-frontend from rust-experiment. In backend-rs: add askama; vendor htmx and the Playfair Display + DM Mono woff2 fil... State: Done View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 30/09/2026htmx frontend: replace Next.js with Rust-rendered pages (no Node) State: Active #htmx-frontend View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 29/09/2026Fix Bluesky post-length bug in Python bluesky.py Part of #104; found during the port. backend/app/services/bluesky.py sizes the title as `300 - len(cta) - len(prefix) - 4`, which forgets the `#geo... State: Queued #rust-port View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 29/09/2026Rust port: point follow_likers.sh at the bluesky-follow binary Part of #104. scripts/follow_likers.sh runs `python -m app.services.bluesky_follow`. Switch it to the Rust `bluesky-follow` binary (backend-rs/src/... State: Queued #rust-port View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 29/09/2026Rust port: live smoke test of Resend, Bluesky and Anthropic Part of #104. The Rust backend's three external integrations have only been tested against fakes. Exercise each once with real credentials: a magic... State: Queued #rust-port View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 29/09/2026Rust port: side-by-side check against a copy of the production DB Part of #104. Run the Python and Rust backends each on their own copy of the production SQLite DB, drive both with the same API calls, and compare ... State: Queued #rust-port View Card → | cards.statmeet.com | atproto feed 000
ecallen @ethancallen.bsky.social · 29/09/2026Rust backend port State: Active #rust-port View Card → | cards.statmeet.com | atproto feed 001
Reposted by ecallenEthan Mollick @emollick.bsky.social · 23/09/2026I had Fable/Opus build a hard science fiction starship combat game, with orbital mechanics, delta-v, heat, and realistic tactics, but simplified for 2D space with the hard math done by the game. Its quite fun to play (if you like this kind of thing): orbital-declaration.netlify.app 41157
ecallen @ethancallen.bsky.social · 15/09/2026Import: generate saved requests from an MCP server URL State: Active View Card → | cards.statmeet.com 000
Reposted by ecallencivic.statmeet.com @statmeet.com · 14/09/2026MCP server: Statmeet is a system for cards, decks, and votes, built on AT Protocol. It has a server for AI agents, called an MCP server. This server gives an agent 19 tools. The tools let the agent read and write data in Statmeet. 001
ecallen @ethancallen.bsky.social · 14/09/2026Postgres backend smoke test State: Testing View Card → | cards.statmeet.com 000
ecallen @ethancallen.bsky.social · 12/09/2026An organized minority will always beat a dis-organized majority. 000
Reposted by ecallenOccasionally Spooky Transpo @occtranspo.bsky.social · 08/09/2026We don't speak of the dark arts to the normies 😂 121
Reposted by ecallenGrace @gracekind.net · 08/09/2026Ifyouarentpromptingyourmodelslikethisyourewastingtokens 141325
ecallen @ethancallen.bsky.social · 06/09/2026An example of parallel evolution, statmeet also has a lexicon markup language civic.statmeet.com/docscivic.statmeet.comDocs 020
Reposted by ecallenjared @awarm.space · 06/09/2026Okay I'm making a signal group to organize the Brooklyn sci fi reading group! Next book is seven surrenders by Ada Palmer, the sequel to too like the lightning. Meeting sep 30, 7pm @ forever brewing in gowanus. DM me to join the group! 0151
ecallen @ethancallen.bsky.social · 03/09/2026Ha literally no traction. Thought this idea was fire. 010
Reposted by ecallenNeil deGrasse Tyson @neildegrassetyson.com · 30/08/2026When Space Exploration touches poets and artists, we must be doing something right. 1733556
Reposted by ecallenfravery.bsky.social @fravery.bsky.social · 31/08/2026“Books are a uniquely portable magic.” ― Stephen King 503789587
Reposted by ecallennate @zzstoatzz.io · 31/08/2026i'm now lead maintainer on fastmcp, so i atprotated our blog ✨ ask me about writing or using MCP servers! 4614
Reposted by ecallenBrad Fitzpatrick @bradfitz.com · 26/08/2026I can finally talk about this, 3 years later... github.com/tailscale/ta... It's a library + CLI tool that's like netcat, but over Tailscale's data plane without any control plane (no accounts, no dependence on Tailscale the company, all open source) WireGuard + NAT traversal without IP addresses.github.comGitHub - tailscale/tailcat: like netcat, but over Tailscale's data plane, without Tailscale's control planelike netcat, but over Tailscale's data plane, without Tailscale's control plane - tailscale/tailcat 823835
ecallen @ethancallen.bsky.social · 27/08/2026Open source sort of screwed us as a profession and now ai is the nail in the coffin. I believe the future are tech co-ops and getting as close to the hardware as possible. 000
Reposted by ecallenGil Durán @gilduran.com · 27/08/2026We did it! “The Nerd Reich” is a New York Times Instant Bestseller! My book debuts at #3 on the non-fiction list. Thanks to all who pre-ordered /bought the book—or requested it at the public library or promoted it on social. Without you, I’m just an unemployed guy with a laptop. But with you… 1564232820
Reposted by ecallenP(aul) Frazee @pfrazee.com · 27/08/2026Cut from an essay but worth sharing, this is the list of projects I can recall from memory that has tried to make the internet more open. A lot of people have committed their careers to this. People care! 3739440
ecallen @ethancallen.bsky.social · 25/08/2026Would a music service tech co-op work? A anti-spotify. The employees working on the platform would be members of the co-op. State: Active View Card → | cards.statmeet.com | atproto feed 100
ecallen @ethancallen.bsky.social · 25/08/2026There are already tech co-op's but most seem like small teams that do consulting. Looking for teams that actually has a product or SaaS. 000