Enhancement: Camera API support for privacy-preserving computer-vision games
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 28/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- react, typescript
- Domain
- computer-vision, mobile-dev, security, web-dev
Research direction
Start with the devvit.json permission model and the current Devvit Web template's handling of unsupported web APIs. Compare that behavior with the React proof of concept using navigator.mediaDevices.getUserMedia() and MediaPipe Pose Landmarker. Done would require a reviewed permission design covering user gesture, expanded mode, iframe policy, mobile WebView forwarding, lifecycle cleanup, and camera error states.
Written by the indexing model from the issue text.
Description
Area: Devvit Web —
weblabel requested (repository labels are maintainer-managed).
Feature request
Please add opt-in camera access to Devvit Web so developers can build privacy-preserving, camera-controlled games inside Reddit.
I am developing a line of interactive computer-vision games, starting with Fly or Die: players flap their arms in front of their phone or computer camera, on-device pose estimation recognizes the movement, and a bird flies through an obstacle course. This could expand into gesture-controlled rhythm games, dance challenges, fitness games, charades, and community competitions.
Proof of concept
I created a React Devvit Web test app:
- App slug:
you-fly-or-die - Playtest community:
r/you_fly_or_die_dev - Devvit version: 0.14.1
- Camera API:
navigator.mediaDevices.getUserMedia() - Pose engine: MediaPipe Pose Landmarker, with its model and WASM assets bundled on the app's own webview origin
The exact client works locally: the camera becomes active, pose tracking starts, and hundreds of frames are processed successfully. The current Devvit template, however, identifies camera access as an unsupported web API with no alternative, which blocks this class of experience inside Reddit.
Requested capability
A secure implementation could include:
- An explicit camera permission in
devvit.json, subject to app review. - Camera access only from a trusted user gesture and only in expanded mode.
- The required iframe permission policy and native iOS/Android WebView permission forwarding.
- Consistent support for front- and rear-facing camera selection where available.
- Clear error states for denied, unavailable, and unsupported cameras.
- Automatic suspension and track cleanup when the post is hidden, minimized, backgrounded, or closed.
- A visible Reddit-level camera-active indicator.
Privacy and safety model
For these games, all video processing can remain on-device:
- Raw camera frames are never uploaded or stored.
- Only ephemeral pose landmarks are used by the game loop.
- The user sees a live preview and explicitly starts and stops the camera.
- Camera tracks are stopped immediately when gameplay ends or visibility changes.
- Apps requesting camera access could be required to provide a privacy disclosure and pass additional review.
Camera support would enable a distinctive category of active, social games that are difficult to create with touch controls alone, while keeping sensitive video data on the player's device.
Would the Devvit team consider camera access as a reviewed permission, or offer an experimental allowlist/pilot for developers building on-device computer-vision experiences? I would be happy to share the working proof of concept and help test desktop, iOS, and Android behavior.
- Dominant language
- TypeScript
- Stars
- 210
- Forks
- 88
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from reddit/devvit
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 5/5 Over a week Newbie friendliness 42/100
Similar issues
-
S: triage
Difficulty 1/5 Under an hour Newbie friendliness 85/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
fix(errors): EHOSTUNREACH from a happy-eyeballs connect is reported as a resolver error (STAMP-80) Open
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
snapshot-labs/stamp#666 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
GauravKarakoti/SecureFlow#1070 · 1 comment ·
-
feature:Languages/Translations good first issue ready Web
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
digitalfabrik/integreat-app#4394 ·