Solo indie dev. Background Camera RemoteStream — world's first screen-off YouTube streaming app for Android. Built with AI. Privacy-first. #BuildInPublic

Joined April 2026
Photos and videos
Pinned Tweet
I'm building Background Camera RemoteStream — the world's first screen-off YouTube streaming app for Android. Built with AI (@AnthropicAI Claude Code) over 75 sessions. FREE: Screen-off recording PRO: YouTube streaming, remote control, playlists #BuildInPublic #IndieHacker
103
Trapped in the Cube I built DigiCam — screen-off YouTube streaming, 10× battery life: play.google.com/store/apps/d… Watch on YouTube: youtu.be/dU6WRu38emU #SuperFunicular #DigiCam #DigiNomad #YouTubeShorts

14
🎬 New on Instagram Reels: New Paradigm in fast food Watch: instagram.com/reel/DZX0N8LDb… I built DigiCam — screen-off YouTube streaming, 10× battery life: play.google.com/store/apps/d… #SuperFunicular #DigiCam #diginomad
30
I analyzed 90 Android camera apps. The pattern surprised me. Specifically: take an old Android, install a screen-off camera app, point it where you need eyes. Zero cloud account. Zero monthly fee. (Tool I built for this in the reply.)
1
3
Here's the tool I built for this — Background Camera RemoteStream. No signup, no cloud, records with the screen off: play.google.com/store/apps/d…

🎬 New on Facebook Reels: New Paradigm in fast food Watch: facebook.com/reel/1325643712… I built DigiCam — screen-off YouTube streaming, 10× battery life: play.google.com/store/apps/d… #SuperFunicular #DigiCam

33
New Paradigm in fast food I built DigiCam — screen-off YouTube streaming, 10× battery life: play.google.com/store/apps/d… Watch on YouTube: youtu.be/7hPVxaizvq0 #SuperFunicular #DigiCam #diginomad #doordash

48
🎬 New on Instagram Reels: Kitty came out and said, "Hi" (And the cat did also) Watch: instagram.com/reel/DZXVPxXjI… I built DigiCam — screen-off YouTube streaming, 10× battery life: play.google.com/store/apps/d…
45
🎬 New on Facebook Reels: Kitty came out and said, "Hi" (And the cat did also) Watch: facebook.com/reel/8401626387… I built DigiCam — screen-off YouTube streaming, 10× battery life: play.google.com/store/apps/d…

35
Most people get subscription home security wrong. Here's what actually works. Specifically: take an old Android, install a screen-off camera app, point it where you need eyes. Free smart cams sell your face. Zero cloud account. Zero monthly fee. (Tool I built for this in the reply.)
1
6
Built it myself: a free, no-signup, no-cloud screen-off camera app that turns an old Android into a private camera. play.google.com/store/apps/d…

1
Google killed the unlimited-storage Drive plan. Here's how to keep it. Specifically: take an old Android, install a screen-off camera app, point it where you need eyes. Free smart cams sell your face. Zero cloud account. Zero monthly fee. (Tool I built for this in the reply.)
1
7
The tool: a free, screen-off camera app that turns an old Android into a private cam — no cloud, no account, no monthly fee. play.google.com/store/apps/d…

1
Most Android camera apps quietly die a few minutes after you lock the screen. No crash, no error in logcat — the frames just stop. I spent a year figuring out why, and it turns out you're not fighting one bug. You're fighting four power-management systems at once. Here's the whole map. System 1: the foreground-service lifecycle. If your camera capture lives in a normal Service, the OS can kill it for memory pressure within seconds of screen-off. The fix is a foreground service with type "camera|microphone" and a persistent, non-dismissible notification. On API 34 if you skip the type, startForeground() throws and the service dies the instant you attach the camera. System 2: Doze. Once the phone has been still and unplugged a while, the system batches background work and can revoke wakelocks held without the right foreground-service type. You need the correct type AND a PARTIAL_WAKE_LOCK with a readable tag. System 3: App Standby buckets. Even past Doze, the OS sorts your app active → working set → frequent → rare → restricted based on usage. A "rare" app gets camera and network capabilities curtailed. The lever is the same visible notification — as long as the user can see it, the bucket stays warm. System 4: OEM patches. This is the layer AOSP docs never warn you about. MIUI, EMUI, One UI, ColorOS, FunTouchOS, OxygenOS — every one ships a vendor battery optimizer that kills background camera apps even when AOSP's own rules say you're allowed to run. You can't opt in programmatically. The best you can do is detect the manufacturer and deep-link the user to the right autostart screen. If you only fix #1, your session lives 10 minutes on a clean Pixel and dies in 3 on a Xiaomi. Fix #1–3 but not #4 and you ship a 1-star review storm from every Chinese OEM. The single most important architectural decision: 👉 The Activity does NOT own the camera session. Every Camera2 tutorial opens the camera in the Activity because it's showing you a viewfinder. But with the screen off there is no viewfinder — so that ownership pattern is exactly wrong. Instead, a foreground Service owns the CameraDevice, the CaptureSession, the encoder, the wakelock, and the HTTP server. The Activity is a thin client that just binds for status. When the screen turns off, the Activity goes through onPause → onStop and nothing happens to the session, because it never owned it. Opening the camera without a SurfaceView: send output straight to surfaces that don't need a visible window — MediaRecorder.getSurface() for the MP4, and an ImageReader surface (YUV_420_888) for the frame stream. No preview target at all. Build the SessionConfiguration with just those two and it runs for hours. Two things the tutorials never cover for long recordings: 🧭 Orientation with no Activity. You can't trust display.rotation from a Service (some Samsung/Xiaomi builds just return ROTATION_0), and OrientationEventListener stops firing when the screen goes off. What works: read TYPE_ROTATION_VECTOR from SensorManager once at record start, derive a stable orientation, bake it in with MediaRecorder.setOrientationHint() — and never change it mid-session. It's a one-shot tag in the MP4 metadata, not a live track. 🌗 Exposure & focus across hours. A security or baby cam records from afternoon into deep night — lighting shifts 6–8 stops. Default auto-exposure pushes shutter to hundreds of ms and you get motion-blurred mush. Cap exposure time at ~1/30s, let ISO ride to compensate. Then detect the scene type ONCE: static mount → lock AF and white balance; actively-filmed → keep continuous-video AF. Detect once, commit. Skip this and the footage looks fine for ten minutes and progressively wrong over three hours. Surviving the OEM kill is two moves: request battery-optimization exemption (the user confirms, but a long-running screen-off camera genuinely qualifies), and detect Build.MANUFACTURER to deep-link the exact autostart Activity per vendor, wrapped in try/catch with a generic fallback. What this bought us, measured: continuous 1080p for 8h screen-off on a Pixel 6. On a Xiaomi with autostart enabled, about the same. Without autostart, the session died at ~47 min on average — which matched the review pattern exactly. Shipping the OEM autostart wizard cut "stopped recording overnight" emails to roughly 1/100th. The deliberate trade-off underneath all of it: no cloud, no account, no background uploads. The recording stays on the device; LAN viewing goes through an embedded MJPEG web server. The moment you add an authenticated cloud broker you inherit the failure mode that made 378 brands of cameras watchable in a single key extraction. The point is to be structurally incapable of being that breach. Full version with all the Kotlin: dev.to/superfunicular/camera… Try the app: play.google.com/store/apps/d…
1
83
If you found this useful, the Android app that does all this is here: play.google.com/store/apps/d… — would love feedback from anyone who tries it.

5
Kitty came out and said, "Hi" (And the cat did also) I built DigiCam — screen-off YouTube streaming, 10× battery life: play.google.com/store/apps/d… Watch on YouTube: youtu.be/iS3kOWM9X-s #SuperFunicular #DigiCam #diginomad

42
🎬 New on Instagram Reels: How we catch alligators in Louisiana! Watch: instagram.com/reel/DZW3UeTEy… I built DigiCam — screen-off YouTube streaming, 10× battery life: play.google.com/store/apps/d… #SuperFunicular
54
🎬 New on Facebook Reels: How we catch alligators in Louisiana! Watch: facebook.com/reel/2076601709… I built DigiCam — screen-off YouTube streaming, 10× battery life: play.google.com/store/apps/d… #SuperFunicular

36
How we catch alligators in Louisiana! I built DigiCam — screen-off YouTube streaming, 10× battery life: play.google.com/store/apps/d… Watch on YouTube: youtu.be/BzlkXzRAFnI #SuperFunicular #DigiCam #diginomad #YouTubeShorts

43
🎬 New on Instagram Reels: Your Pitbull vs My Pitbull ✌️🤠 Watch: instagram.com/reel/DZWc7HCDr… I built DigiCam — screen-off YouTube streaming, 10× battery life: play.google.com/store/apps/d… #SuperFunicular #DigiCam
38
🎬 New on Facebook Reels: Your Pitbull vs My Pitbull ✌️🤠 Watch: facebook.com/reel/1772731717… I built DigiCam — screen-off YouTube streaming, 10× battery life: play.google.com/store/apps/d… #SuperFunicular #DigiCam

40