Inspiration

YouTube filters are all-or-nothing, but every family’s rules are different. As a parent of a 7-year-old, I wanted to write my rules the way I’d say them out loud, like “real football is fine, video game videos are not,” and have an AI apply them.

What it does

A parent writes a family rule and a rule for each child. They paste a YouTube link, and KidsCrown returns one of three decisions:

Allow: clearly fine under the rules Ask Parent: borderline or uncertain, so it goes to the parent’s queue Block: clearly against the rules

The parent’s answers are fed back into later decisions. Channel rules (“always block this channel”) are checked before the AI and are final.

How we built it

  • Model: NVIDIA Nemotron (Nano 30B) on Nebius Token Factory returns a structured, validated JSON decision.
  • Evidence: The YouTube Data API supplies the title, channel and description. Tavily extracts the transcript, with youtube-transcript-api as a fallback.
  • Backend: FastAPI and SQLAlchemy, with JWT login and per-family data isolation.
  • Frontend: React and Vite, laid out mobile-first.
  • Hosting: Render, with a persistent disk.
  • Testing: 106 backend tests and 57 frontend tests pass, plus an eval suite of 59 passing tests with 1 skipped.

Challenges we ran into

  • Ambiguous transcripts: Tavily returning "no transcript" can mean "unavailable right now," not "doesn't exist." Only the final fallback provider may confirm a real gap.
  • Missing evidence is never safer: With no transcript, Allow becomes Ask Parent with confidence capped at 69%, and Block stays Block.
  • Stale cache after a policy change: Changing a policy and changing it back could serve stale cached results. Cache keys now include a hash of the combined policy.

Accomplishments that we're proud of

A policy agent where the parent stays in the loop, with deterministic rules ahead of the model and a safety net for missing evidence. It is deployed and tested end to end.

What we learned

Plain-language rules are guidance for the model, not guarantees. Anything that must never be allowed, like a specific channel, needs a deterministic rule.

What's next for KidsCrown

  • Multiple children per family (this version covers one child per parent)
  • The Ask Parent queue across all children
  • A kid-mode that enforces decisions on the device. Today KidsCrown is a decision layer, not a filter.

Built With

Share this project:

Updates

Submission history