learn and share notes on atproto (wip) 🦉 malfestio.stormlightlabs.org/
readability solid axum atproto srs

chore: update changelog

Changed files
+21 -52
docs
+5 -1
CHANGELOG.md
··· 9 9 10 10 ### 2026-01-03 11 11 12 - - Implemented `malfestio-readability` crate: A custom, rule-based content extraction engine replacing `dom_smoothie`, featuring XPath support (ftr-site-config compatible) and a Mozilla Readability-based generic fallback. 12 + - OAuth login directly to user's PDS with DPoP token binding 13 + - Handle resolution via DNS TXT or `/.well-known/atproto-did` 14 + - Bi-directional sync infrastructure with conflict resolution 15 + - Implemented `malfestio-readability` crate 16 + - Custom, rule-based content extraction engine replacing `dom_smoothie`, featuring XPath support (ftr-site-config compatible) and a Mozilla Readability-based generic fallback. 13 17 14 18 ### 2026-01-02 15 19
+16 -51
docs/todo.md
··· 1 1 # Product + Technical Roadmap 2 2 3 - ## Auth direction 4 - 5 - - ATProto is moving toward OAuth for client↔PDS authorization. 6 - - Plan for OAuth support even if MVP starts centralized. 7 - 8 3 ## Roadmap Milestones 9 4 10 - > [!NOTE] 11 - > Completed milestones (A-K) have been moved to [CHANGELOG.md](/CHANGELOG.md). 12 - 13 - ### Milestone L - ATProto Integration Pass 14 - 15 - #### Deliverables 16 - 17 - **Identity & Auth:** 18 - 19 - - [x] OAuth login directly to user's PDS 20 - - [x] Handle resolution via DNS TXT or `/.well-known/atproto-did` 21 - - [x] DPoP token binding for secure API calls 22 - 23 - **Local Development:** 24 - 25 - - [x] Document local testing with real Bluesky accounts 26 - - [x] Add justfile commands for common dev tasks 27 - - [x] Environment variable configuration guide 28 - - [x] Update health check endpoint for service monitoring 29 - - [x] Add logging for OAuth flow steps 30 - 31 - **Sync & Conflict Resolution:** 32 - 33 - - [x] Bi-directional sync infrastructure 34 - - [x] Conflict resolution strategy 35 - - [x] API endpoints for sync operations 36 - - [x] Offline queue for pending publishes 37 - - [x] Frontend sync store with IndexedDB persistence (Dexie.js) 38 - - [x] Sync status UI indicators 39 - 40 - **Deep Linking:** 41 - 42 - - [ ] AT-URI deep linking from external clients 43 - - [ ] Handle `at://` URL scheme in app 44 - - [ ] Link preview generation for shared content 45 - 46 - #### Acceptance 47 - 48 - - User can log in with existing Bluesky/PDS identity 49 - - OAuth flow works with production bsky.social accounts 50 - - Developers can test locally using real accounts (see [Local Development Guide](./local-dev.md)) 51 - - Local drafts sync correctly after reconnecting 52 - 53 5 ### Milestone M - Reliability, Observability, Launch (v0.1.0) 54 6 55 7 #### Deliverables ··· 84 36 - System handles 10x expected load without degradation. 85 37 - Mean time to recovery < 5 minutes for common failures. 86 38 87 - ### Milestone N - Custom Feed Generator (v0.2.0) 39 + ### Milestone N - Deep Linking (v0.2.0) 40 + 41 + #### Deliverables 42 + 43 + - [ ] AT-URI deep linking from external clients 44 + - [ ] Handle `at://` URL scheme in app 45 + - [ ] Link preview generation for shared content (backend OG middleware) 46 + 47 + #### Acceptance 48 + 49 + - Users can share AT-URIs that open directly to content 50 + - Shared links show rich previews on Slack, Twitter, Discord, etc. 51 + 52 + ### Milestone O - Custom Feed Generator (v0.3.0) 88 53 89 54 #### Deliverables 90 55 ··· 154 119 - Most feeds can garbage collect data older than 48 hours 155 120 - Reference: [Feed Generator Starter Kit](https://github.com/bluesky-social/feed-generator) 156 121 157 - ### Milestone O - Moderation + Abuse Resistance (v0.3.0) 122 + ### Milestone P - Moderation + Abuse Resistance (v0.4.0) 158 123 159 124 #### Deliverables 160 125 ··· 185 150 186 151 **Reference:** [Ozone Moderation Service](https://github.com/bluesky-social/ozone) 187 152 188 - ### Milestone P - Readability Updates 153 + ### Milestone Q - Readability Updates (v0.5.0) 189 154 190 155 #### Deliverables 191 156