Roadmap for July through September 2024

Posted 2024-07-20 06:00 ‐ 3 min read

There is a lot to do, so Smoke Signal planning will be one quarter at a time. The third quarter of 2024 runs from July through September and includes the following plans:

  • Safe record updates to repositories using commit hashes. The "com.atproto.repo.createRecord", "com.atproto.repo.putRecord", and "com.atproto.repo.deleteRecord" operations support the "swapCommit" and "swapRecord" arguments, which are meant to provide some guarantee of safety that the caller has an accurate view of the data that they are creating, updating, and deleting.

  • Error handling improvements. This is an internal series of changes, but still important ones. I have some ideas for how errors are represented and conveyed to users.

  • Locking down "events.smokesignal.Event#v2". Events will be brought closer to posts by renaming the "description" attribute to "text" and introducing the "createdAt" attribute. The "facets" attribute will also be introduced to create rich content that interlinks.

  • Introoducing the "events.smokesignal.AppProfile#v1" record and associated collection. Some profile information, like time zone, can be stored and referenced in the PDS. Selectively moving this data out of Smoke Signal and into the PDS supports the data portability vision of this application.

  • Calendar URLs. I'm implementing calendar URLs that can be used to download ".ics" files for individual events and URLs that you can subscribe to in your calendar of choice. The first version of this will be all events you've RSVP'd to in a 60 to 90-day time frame. I want to get to a place where you can create calendars with filters ("All events created by @ngerakines.me and @smokesignal.events that I've RSVP'd to" or "A calendar of events that I've RSVP'd to that have the label swing-dancing").

  • Basic search. The search page supports jumping to known events and handles using the AT-URI. I want to expand this into search and browse, starting with event titles and timestamps.

Stretch Goals and Research

  • Labeler integration. I want to incorporate labelers to allow users to see community labels on events and perform some amount of filtering.

  • Localization. This research spike will result in a lot of future work. This includes changes in records and the website to support multiple languages, incorporating localization data, and the ongoing process of localizing work.

Documentation and Articles

  • Building and testing atprotocol applications. Building an "AppView" comes with all sorts of quirks. I've worked out a pretty good process for running the necessary infrastructure for local end-to-end testing.

  • Technology stack overview. Smoke Signal is written in Rust, and although it isn't open source, I can share some of what it looks like under the hood.

  • Shout out to local communities. Small, local communities organizing public events would benefit from sites like this. This article will make the case for starting the migration away from Facebook and outline resources they can use and distribute to begin using a more open and free web.