···910### 2026-01-03
1112-- 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.
00001314### 2026-01-02
15
···910### 2026-01-03
1112+- 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.
1718### 2026-01-02
19
+16-51
docs/todo.md
···1# Product + Technical Roadmap
23-## 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## Roadmap Milestones
910-> [!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### Milestone M - Reliability, Observability, Launch (v0.1.0)
5455#### Deliverables
···84- System handles 10x expected load without degradation.
85- Mean time to recovery < 5 minutes for common failures.
8687-### Milestone N - Custom Feed Generator (v0.2.0)
00000000000008889#### Deliverables
90···154- Most feeds can garbage collect data older than 48 hours
155- Reference: [Feed Generator Starter Kit](https://github.com/bluesky-social/feed-generator)
156157-### Milestone O - Moderation + Abuse Resistance (v0.3.0)
158159#### Deliverables
160···185186**Reference:** [Ozone Moderation Service](https://github.com/bluesky-social/ozone)
187188-### Milestone P - Readability Updates
189190#### Deliverables
191
···1# Product + Technical Roadmap
2000003## Roadmap Milestones
400000000000000000000000000000000000000000005### Milestone M - Reliability, Observability, Launch (v0.1.0)
67#### Deliverables
···36- System handles 10x expected load without degradation.
37- Mean time to recovery < 5 minutes for common failures.
3839+### 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)
5354#### Deliverables
55···119- Most feeds can garbage collect data older than 48 hours
120- Reference: [Feed Generator Starter Kit](https://github.com/bluesky-social/feed-generator)
121122+### Milestone P - Moderation + Abuse Resistance (v0.4.0)
123124#### Deliverables
125···150151**Reference:** [Ozone Moderation Service](https://github.com/bluesky-social/ozone)
152153+### Milestone Q - Readability Updates (v0.5.0)
154155#### Deliverables
156