dumbtv
dumbtv takes the ads, screen tracking and update nags out of your Fire TV over ADB. No root, none of your apps touched, every step can be undone. Free and open source.
Manage customer data with multi-tenant security and row-level isolation
AI summary · README
SecurityTypeScript · PLpgSQLGitHub @giliutaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Babun is multi-tenant. Row-Level Security is on for every
tenant-scoped table — each user only sees their own data, enforced at
the database layer (not just in app code). Even with the publishable
key in the app bundle, an attacker who opens DevTools and crafts
direct REST queries cannot read other tenants' rows.
What RLS does not cover (handled elsewhere):Read the full README ↗Babun is multi-tenant. Row-Level Security is on for every tenant-scoped table — each user only sees their own data, enforced at the database layer (not just in app code). Even with the publishable key in the app bundle, an attacker who opens DevTools and crafts direct REST queries cannot read other tenants' rows.
What RLS does not cover (handled elsewhere):
localStorage; on native it goes into the Keychain/Keystore through
LargeSecureStore (apps/mobile/src/lib/secure-store.ts).localStorage, any
injected script can steal it. There is no Content-Security-Policy
header today (vercel.json sets only Cache-Control) — open TODO.supabase/functions/), authorised by
the caller's Authorization: Bearer … access token.CRM platform for service businesses. First customer: AirFix (HVAC, Cyprus).
See docs/SETUP.md.
One codebase behind iOS, Android and Web — the Next.js app was removed on 2026-08-25 and the web target is now React Native Web.
apps/mobile/ — Expo SDK 54 / React Native app (expo-router). The only app.packages/shared/ — shared types, db repositories, offline cache/sync layersupabase/migrations/ — SQL migrations, the single source of truth for the schemasupabase/functions/ — edge functionsdocs/stories/ — feature plans (STORY-NNN.md)docs/adr/ — architecture decision recordsProject rules live in AGENTS.md (CLAUDE.md only points there).
/plan {feature} → docs/stories/STORY-NNN.md/implement {story-id} → code by groups (G0..G6), commit per groupbun run typecheck && bun run test, then verify the screen in the iOS simulatorgh pr create (direct pushes to master are closed, see AGENTS.md).
Vercel builds bun run build:web (Expo Web) from master.