Skip to content

Commit 93cf6f7

Browse files
Claude/rescript tea implementation 01 bo5h62z rjx zfknb qhk4o ad (#3)
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com>
1 parent b31909d commit 93cf6f7

1 file changed

Lines changed: 186 additions & 0 deletions

File tree

ROADMAP.adoc

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
// SPDX-License-Identifier: MIT AND Palimpsest-0.8
2+
// SPDX-FileCopyrightText: 2024 Jonathan D.A. Jewell
3+
= rescript-tea Roadmap
4+
:toc:
5+
6+
== Current Status: Alpha (v0.1.0)
7+
8+
Core TEA implementation complete with basic subscriptions.
9+
10+
== MVP 1.0 Release Checklist
11+
12+
=== Must Have (P0)
13+
14+
[cols="1,3,1"]
15+
|===
16+
|Status |Item |Effort
17+
18+
|[ ]
19+
|Unit tests for core modules (Tea_Cmd, Tea_Sub, Tea_Json)
20+
|Medium
21+
22+
|[ ]
23+
|Tea_Http module for HTTP requests
24+
|Medium
25+
26+
|[ ]
27+
|HTTP example (fetch data, loading states, error handling)
28+
|Small
29+
30+
|[ ]
31+
|Fix ReactDOM.Style.make deprecation warnings
32+
|Small
33+
34+
|[ ]
35+
|npm publish configuration (package.json fields, .npmignore)
36+
|Small
37+
38+
|[ ]
39+
|GitHub Actions CI (build, test, lint)
40+
|Small
41+
42+
|[ ]
43+
|API documentation (generated from .resi files)
44+
|Medium
45+
|===
46+
47+
=== Should Have (P1)
48+
49+
[cols="1,3,1"]
50+
|===
51+
|Status |Item |Effort
52+
53+
|[ ]
54+
|Tea_Storage module (localStorage/sessionStorage)
55+
|Small
56+
57+
|[ ]
58+
|Form example with validation
59+
|Medium
60+
61+
|[ ]
62+
|TodoMVC example (proves complete CRUD)
63+
|Medium
64+
65+
|[ ]
66+
|Performance benchmarks
67+
|Small
68+
|===
69+
70+
=== Nice to Have (P2)
71+
72+
[cols="1,3,1"]
73+
|===
74+
|Status |Item |Effort
75+
76+
|[ ]
77+
|Tea_Navigation (SPA routing)
78+
|Large
79+
80+
|[ ]
81+
|Tea_Debug (time-travel debugger)
82+
|Large
83+
84+
|[ ]
85+
|Tea_Ports (JS interop helpers)
86+
|Medium
87+
|===
88+
89+
== Phase 2: Ecosystem (v1.1 - v1.x)
90+
91+
After MVP, expand the ecosystem:
92+
93+
=== Modules
94+
95+
* **Tea_Navigation** - Client-side routing
96+
- URL parsing and building
97+
- History API integration
98+
- Route-based subscriptions
99+
- Nested routes
100+
101+
* **Tea_Http** enhancements
102+
- Request cancellation
103+
- Retry policies
104+
- Caching strategies
105+
- File uploads
106+
107+
* **Tea_Storage**
108+
- localStorage commands
109+
- sessionStorage commands
110+
- IndexedDB (maybe)
111+
112+
* **Tea_Ports**
113+
- Type-safe JS interop
114+
- Port-based subscriptions
115+
- Encoder/decoder helpers
116+
117+
=== Examples
118+
119+
* TodoMVC (complete CRUD)
120+
* SPA with routing
121+
* Real-time chat (WebSocket)
122+
* Form wizard with validation
123+
124+
== Phase 3: Advanced (v2.0+)
125+
126+
=== Tea_Debug
127+
128+
Time-travel debugging:
129+
130+
* Message history
131+
* State snapshots
132+
* Replay functionality
133+
* Export/import sessions
134+
* Browser DevTools integration
135+
136+
=== Tea_Animation
137+
138+
Declarative animations:
139+
140+
* Spring physics
141+
* Keyframe animations
142+
* Subscription-based animation loop
143+
* Interruptible animations
144+
145+
=== Tea_Test Enhancements
146+
147+
* Property-based testing helpers
148+
* Snapshot testing for views
149+
* Command/subscription mocking
150+
* Integration test utilities
151+
152+
=== Performance
153+
154+
* Virtual DOM diffing optimizations
155+
* Lazy subscriptions
156+
* Batched updates
157+
* Memory profiling tools
158+
159+
== Release Criteria
160+
161+
=== Alpha (current)
162+
- [x] Core modules compile
163+
- [x] Basic example works
164+
- [ ] Manual testing passes
165+
166+
=== Beta (v0.9.0)
167+
- [ ] All P0 items complete
168+
- [ ] Unit test coverage > 70%
169+
- [ ] CI passing
170+
- [ ] npm installable
171+
172+
=== Stable (v1.0.0)
173+
- [ ] All P1 items complete
174+
- [ ] Used in at least one real project
175+
- [ ] API stable (no breaking changes expected)
176+
- [ ] Documentation complete
177+
- [ ] Community feedback incorporated
178+
179+
== Contributing to the Roadmap
180+
181+
See link:CONTRIBUTING.adoc[CONTRIBUTING] for how to propose changes.
182+
183+
Priority is determined by:
184+
1. User demand (issues, discussions)
185+
2. Ecosystem gaps (what's blocking real-world use)
186+
3. Maintainer capacity

0 commit comments

Comments
 (0)