erin sparling

@everyplace
463 Followers
887 Following
1.6K Posts
TLDR for the past 20+ years:
- 17 in Brooklyn, ~6 in Pittsburgh
- 10 in design/tech leadership in news publishing, currently ~6 at Google as part of the Reader Revenue team, helping news publishers
- 14 teaching at Cooper Union, 2 at Yale
- 14 w/ 👨‍👩‍👧‍👦
Usually @everyplace everywhere else.
Arduous design toolhttps://letterset.app
Personalhttps://erinsparling.com
Workhttps://developers.google.com/news/reader-revenue
Wish you were here - absurdist social postcard apphttps://wishyouwerehere.app
Banned Book Library

OverviewA long while back I had an idea to hack a WiFi smart light bulb to do something more useful to me. Actually, I had a few different ideas of things to do with them. One of these ideas was to mo…

Banned Book Library

On iOS 27, known schemas prevent me from being able to directly integrate with Siri UI, but I can still have it trigger the shortcut and return the results.

In summary:
- my multi-agent orchestrator app has App Intents
- Shortcuts fetches current active agents and their recent messages, sends them to the cloud model
- Cloud model summarizes, and forms a narrative that knows that agents can collaborate
- Summary is surfaced by Siri UI.

#happitec #BuildInPublic #agentsApp #SiriUI

@mwichary regarding your call for documented internal tooling, my decade-old https://application.erinsparling.com/design-tools has some good stuff! In particular, the intro article embeds a recording of a presentation I gave on the tools at Hacks and Hackers, which both provides a lot more context AND gave me the reason to be able to publicly show the tools!
Erin Sparling - Design Tools

One can use this to post in many different ways, but its primary use-case in my mind is for domain-based brand accounts.

@logos and @commits are two canonical examples: write-only accounts that one still might want to interact with elsewhere. The docs site includes architecture overviews and a getting started guide, amongst other things.

https://docs.happitec.com/FederatedActivityPublisher/documentation/activitypubcore/

#FederatedActivityPublisher

FederatedActivityPublisher — Documentation

A serverless ActivityPub server for brand accounts. Swift 6.3 on AWS Lambda, federated with Mastodon.

Happitec

I flipped the switch and open-sourced my serverless mastodon instance! Details:
- giant AWS SAM template of serverless lambdas etc
- entirely swift for endpoints and even the web ui
- has been running for me for 3+ months without issue
- basically free to run once you have it set up

https://github.com/happitec-inc/FederatedActivityPublisher

#FederatedActivityPublisher

GitHub - happitec-inc/FederatedActivityPublisher: Serverless ActivityPub made easy

Serverless ActivityPub made easy. Contribute to happitec-inc/FederatedActivityPublisher development by creating an account on GitHub.

GitHub

I don’t think I’ll ever release the app, but a lot of the pieces are in flight to release:
- tailscale-webhook-proxy sits in the pubic and acts as the verifier and gateway for external messages
- tailnet-webhook-receiver acts as a gateway timeout webhook events to different internal servers
- TartRunnerKit is a receiver plugin that helps orchestrate Tart GitHub runners for specialized workflows

It’s nuts. https://docs.happitec.com/github-aws-tailnet-proxy/

#happitec #BuildInPublic #agentsApp

GitHub → AWS → Tailnet Proxy — Documentation

Route GitHub organization webhooks through AWS into a private Tailscale network, then into Claude Code sessions via MCP channels.

iPad and macOS layouts share a lot of code too, although the macOS version has an AppKit wrapper to get the native Liquid Glass toolbar looking correct.

https://mastodon.social/@everyplace/116466259108411861

#happitec #BuildInPublic #agentsApp

The main problem this solved for me was closing the agent->ci pipeline gap. GitHub is deeply embedded via an AWS lambda tailscale proxy:
- I can see issues and PRs in both the global and conversation context.
- Conversations are project and long-lived with stable session identifiers
- CI webhooks arrive immediately and can be acted upon.
- Issues are the canonical control surface
- Agent harness Tasks are used to surface internal planning and status

#happitec #BuildInPublic #agentsApp

I don’t even have a clever name for this, but the app I’ve built to manage my personal agent fleet has so much in it at this point. It’s such a strange project because it is inherently _just_ for me, so coupled to my own infra, but works really, really well. It’s built on top of the Claude harness and takes advantage of their channels feature extensively, but is model-agnostic as the harness can run local models too.

#happitec #BuildInPublic #agentsApp

@jazzychad thank you for talking about LERP in the context of design! I finally figured out how to apply it to my multitouch gesture recording playback system, to great effect.