7.3 KiB · text History 3aafbd2

+++ title = “A Summer” description = “of Accelerated Development” date = 2026-08-27

[extra] reveal_theme = “black” reveal_transition = “slide” +++

A Summer

What I’ve been upto this summer


Apollo’s Crib (Updates)

Apollo’s Palm

Movie Monster

Tower Forever

GitGud

LambentFlex

Camerite

Angler

FeedPug

Waxx

Devendra


Apollo’s Crib

Ambient Data

Here

Now

–

Every Data Source

  • GTFS
  • GBFS
  • Air Quality
  • Calendaring
  • Lunar
  • Tidal
  • Weather
  • Clocks
  • Gitlab Runners
  • Github Actions
  • Package Tracking

–

Now With

  • Drought
  • Pollen
  • Aircraft Tracking
  • Mailbox Tracking
  • Exchange Rates
  • Markets

–

Demo

ac.neiam.org/p/p/Hackspace


Apollo’s Palm

Apollo’s Crib

In Your Hand

Apollo’s Palm showing the weather

–

The Hardware

  • LilyGo T4-S3
  • ESP32-S3
  • 2.41” AMOLED
  • Rust + LVGL

–

No Polling

  • Subscribes over MQTT
  • The board publishes on change
  • The panel redraws when it does
  • Same client as the phone

–

One Card, Whole Screen

  • Auto-advancing deck, tap to skip
  • Type sized to the row count
  • Routes in their own GTFS colours
  • Stays on your card when the board changes

Movie Monster

Every Movie, Every Theater, One Place

–

diagram

diagram

diagram

–

Live at https://monster.neiam.org


Tower Forever

3D

Multiplayer

Simtower

–

DEMO at https://towerforever.com


GitGud

A Forge

Of My Own

Note: 366 commits since May 13.

–

Everything A Forge Does

  • Git over HTTPS + SSH
  • Issues & Pull Requests
  • Code Review
  • Wikis
  • LFS
  • CI (Forgejo Actions runners)
  • Packages: Containers, Python, Elixir, Rust, Debian
  • Federation (ForgeFed)

–

And Around It

  • Android app
  • gg CLI
  • Plasma panel widget

–

Hosting its own development at https://gg.neiam.co


LambentFlex

Lights

Over UDP

–

Same Firmware, New Chips

  • ESP32-C3 (the original)
  • ESP32-C6 port
  • WS2812 strands over RMT
  • Over-the-air updates

–

LambentFlex I2S

  • LilyGo T-QT (ESP32-S3)
  • MEMS microphone
  • Level meter & 7-band spectrum
  • Beat detection
  • Published over MQTT

Camerite

Every Camera

Live

–

In

  • RTSP
  • RTMP
  • WHIP
  • MJPEG

–

Out

  • Low-Latency HLS
  • Seekable DVR archive
  • LiveView dashboard
  • Android app
  • A LAN agent, as a .deb

–

Live at https://camerite.neiam.co


Angler

Pixelfed

In Elixir

–

Drop-In

  • Wire-compatible with the Pixelfed app
  • Mastodon-compatible core API
  • Stories
  • Groups
  • ActivityPub federation
  • Push notifications

–

Live at https://angler.neiam.org


FeedPug

RSS

Together

–

Features

  • One newsfeed
  • Feeds fetched once, however many follow them
  • Groups
  • Reactions
  • OPML in & out
  • JSON API for devices
  • Android app

Waxx

Kanban

With Rules

–

The Columns Are A Graph

  • Draw the workflow once, on a template
  • Spin up boards from it
  • Cards only move along the edges
  • Enforced in the UI and on the server

–

Also

  • Live multiplayer
  • Custom fields & labels
  • 2-D subboard grids
  • Auto-archive
  • Board history
  • Android app

–

Live at https://waxx.neiam.co


Devendra

Less Ansible

More Daemon

–

A Tiny Ansible, Embedded

  • Installs config files: quadlets, drop-ins, plain config
  • daemon-reload only when a unit changed
  • Starts, stops, enables, restarts services
  • Idempotent: a repeat apply changes nothing

–

Controller → Agents

  • Desired state authored in a small web UI
  • Synced to agents over iroh-docs
  • Agents pull, converge, and report status back
  • Shipped as a .deb, amd64 & arm64

–

Adopt

  • Point it at a hand-configured host
  • It proposes what it finds
  • Accept the files you want
  • From then on, it’s managed

fin

gmp@gmp.io