This project started the same way many useful tools do: with a small but recurring problem at home. I wanted a better way to manage internet access for children without constantly turning it on and off by hand. I also wanted the rules to be predictable, so that access did not depend on whether I happened to be near the router or available to approve “just 10 more minutes.”
The system I built is based on short access vouchers connected to a MikroTik router. A parent can issue a code for a limited amount of time, and a child can activate it in a simple panel during allowed hours. The application checks the schedule, applies the daily rules, and updates access automatically through MikroTik. If part of the granted time cannot be used because the allowed window is ending, the unused minutes can come back as a compensation token.
From the beginning, I wanted to keep the solution focused and practical. The goal was not to create a large parental control platform, but a small system tailored to one real environment: my home network, my router, and the way my family actually uses internet access. That is why the architecture stayed intentionally simple: Python and Flask on the backend, SQLite for storage, Vue on the frontend, and MikroTik Kid Control as the enforcement layer.

AI was especially useful as a development partner during iteration. It helped me think through edge cases, refine the domain logic, reshape parts of the interface, and move faster through design decisions that would otherwise have taken much longer. The benefit was not that it replaced the work, but that it reduced friction in the process of turning ideas into working software.
Interestingly, the most difficult part was not the technical integration with the router. The harder part was defining behavior that would feel fair and understandable in everyday use. What should happen if a code is activated near the end of an allowed window? How should unused time be handled? How should an active session be extended? Those details matter more than they may seem, because a tool like this is only useful if it reduces tension instead of creating new confusion.
Over time, the project evolved into something much more polished than the initial prototype. It now includes separate parent and child panels, schedules, daily limits, token management, compensation handling, device assignment, and better diagnostics for MikroTik synchronization. Each addition came from practical use and from trying to make the tool clearer, more reliable, and easier to live with over time.
What I find most valuable in projects like this is not technical complexity, but fit. AI made it much easier to build a tool around a real and repeated need instead of settling for a generic workaround. In my case, the result is a system that helps bring clearer rules and less manual effort into everyday home internet management.

If this kind of solution turns out to be interesting to a wider audience, I would genuinely consider developing it further into a commercial product. Right now it is a practical in-house tool built for a specific need, but I can also see the potential for a more polished version that could be useful for other families using MikroTik-based home networks.
Recent Comments