+5
-1
CHANGELOG.md
+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
+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