Skip to content

Commit 1a6ba33

Browse files
committed
Add public project documentation and CI
1 parent c2837b7 commit 1a6ba33

5 files changed

Lines changed: 125 additions & 12 deletions

File tree

.github/workflows/ci.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches: [master]
7+
8+
jobs:
9+
quality:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
- uses: actions/setup-node@v4
14+
with:
15+
node-version: 22
16+
cache: npm
17+
- run: npm ci
18+
- run: npx tsc --noEmit

CASE_STUDY.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Doomscroll Case Study
2+
3+
## Problem
4+
5+
Developers learn codebases in fragments, but most tools assume long, deliberate study sessions. The goal was to explore a mobile-native way to turn small moments into useful familiarity.
6+
7+
## Approach
8+
9+
Doomscroll treats codebase learning as a sequence of lightweight cards. The interaction model borrows from feeds, but the product goal is retention rather than passive consumption: quick review, repeated exposure, and enough structure to make unfamiliar code feel navigable.
10+
11+
## Engineering decisions
12+
13+
- Use Expo and React Native to keep the prototype close to a real mobile release path.
14+
- Keep the app local-first where possible so imported material can be reviewed without a backend dependency.
15+
- Build around gestures and haptics because the core interaction is repeated, fast, and mobile-specific.
16+
- Maintain App Store metadata alongside the app to keep the prototype honest about distribution constraints.
17+
18+
## Tradeoffs
19+
20+
- A feed-like interface is familiar, but it can also imply low-intent consumption. The product needs strong review mechanics to avoid becoming novelty UI.
21+
- Local-first storage reduces infrastructure work, but sharing and team use would require a sync model.
22+
- Code understanding is contextual, so future versions should preserve source links, file hierarchy, and review history.
23+
24+
## Next steps
25+
26+
- Add import pipelines for GitHub repositories and local archives.
27+
- Add recall prompts and spaced repetition scheduling.
28+
- Track retention signals and review streaks without turning the app into a gamified distraction.

README.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Doomscroll
2+
3+
Swipe-to-learn spaced repetition for codebases.
4+
5+
Doomscroll is a React Native product experiment for turning codebase exploration into short, reviewable cards. The premise is simple: developers already skim, save, and revisit fragments of code. This app makes that behavior explicit and structured.
6+
7+
## Why it exists
8+
9+
Codebase onboarding is usually too heavy for the moments when people actually learn: between tasks, during review, or while trying to understand a new system. Doomscroll explores a lighter interaction model for building familiarity with files, concepts, and implementation patterns over time.
10+
11+
## What it demonstrates
12+
13+
- Expo and React Native app structure with `expo-router`.
14+
- Gesture-first mobile interaction patterns.
15+
- Local-first product thinking for imported learning material.
16+
- App Store oriented metadata and release preparation.
17+
- A clear product thesis rather than a generic demo shell.
18+
19+
## Tech stack
20+
21+
- Expo 54
22+
- React Native 0.81
23+
- React 19
24+
- TypeScript
25+
- Reanimated, Gesture Handler, SVG, AsyncStorage
26+
27+
## Run locally
28+
29+
```bash
30+
npm install
31+
npm run ios
32+
```
33+
34+
For web preview:
35+
36+
```bash
37+
npm run web
38+
```
39+
40+
## Case study
41+
42+
See [CASE_STUDY.md](./CASE_STUDY.md) for the product framing, tradeoffs, and next steps.

package-lock.json

Lines changed: 36 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
"expo-router": "~6.0.23",
3434
"expo-status-bar": "~3.0.9",
3535
"react": "19.1.0",
36+
"react-dom": "^19.1.0",
3637
"react-native": "0.81.5",
3738
"react-native-gesture-handler": "~2.28.0",
3839
"react-native-reanimated": "~4.1.1",

0 commit comments

Comments
 (0)