AI platform for families: screen-time rules a child's phone really follows
A family platform where children do tasks and parents set screen-time rules, with an AI assistant in chat. As Senior Fullstack I own the screen-time system across the server and both apps: the server turns a child's schedules, grants and locks into one plan for the day, the child's device enforces exactly that plan, and parents and the AI agent can change it in real time.
The problem
The product is a platform for families: children complete tasks, parents set the rules, and an AI assistant helps parents in chat. Screen time is at the centre of it.
A screen-time rule is only worth something if the child's phone actually follows it — on time, in the child's timezone, when the app was force-quit, when a parent changes their mind mid-way, and on the one device that is allowed to block. Getting that wrong means a locked phone at the wrong moment or a rule nobody enforces.
What I did
- Own the screen-time workstream end to end: wrote the architecture and design docs, then built it across the Fastify server, the child app and the parent app.
- One plan for the day. The server resolves a child's schedules, parent grants and locks into a single plan; the child's device runs exactly that plan and acknowledges the version it enforces, so the parent always sees what is really happening.
- Reliable delivery to the device. A lock reaches even a force-quit app; a delivery backstop catches devices that missed a config; a device that nothing can reach stops pretending it is fine.
- The right device blocks. The first device a child pairs becomes the one that blocks, only after the system authorization is granted, and every screen says which device that is.
- Asking and buying time. Children ask for or buy extra time with in-app currency; parents approve it, pause it, skip a schedule for today, or take a command back.
- AI in the loop. The assistant can create and run screen-time schedules from chat, and the MCP tools give the same answers as the in-app chat.
- Safe rollout. Behind per-family flags, with schedules evaluated in the child's timezone, tests on the server and in both apps, and every new screen translated.
Tech stack
- Mobile
- Expo 54
- Expo Router
- React Native 0.81
- NativeWind
- Apple Screen Time and Android device control
- Rive
- i18n
- Web
- Next.js 15
- Storybook
- Backend
- Fastify 5
- PostgreSQL
- Drizzle ORM
- Supabase Auth
- Firebase Admin
- Google Cloud Run
- AI & real-time
- Vercel AI SDK (Anthropic, Google)
- Google Gemini
- MCP tools
- LiveKit (WebRTC, agents)
- Quality
- Sentry
- GitHub Actions
- EAS
Have a similar problem? Tell me about it.
A few sentences about the business problem are enough to start.