Our work

PapaGuǎn

PapaGuǎn (爸爸管) lets buxibans and private tutors in Taiwan share recorded lessons with their own students only, and shows them which students are falling behind, and at which minute of which video.

Client
Smallpearl's own product
Year
2026
Our role
Product design, development and operations
Platforms
Web for tutors; web app for students and parents
  • Python
  • Django
  • PostgreSQL
  • Angular
  • Ionic
  • FFmpeg
  • WebAssembly
Visit website

The challenge

Taiwan's buxibans (補習班) and private tutors record more and more of their lessons. Most share the recordings as unlisted YouTube links in a LINE group. This is free and easy, but it causes three problems:

  • The videos leak. Anyone who has the link can pass it on. A tutor's recordings are their curriculum, and every copy that leaks is tuition they won't be paid.
  • Tutors can't tell who's keeping up. YouTube's view count doesn't show which students watched, how far they got, or where they got stuck.
  • Parents' details spread. Phone numbers and email addresses sit in group chats and spreadsheets that every staff member can see, even though Taiwan's Personal Data Protection Act (個資法) sets rules on how they're handled.

PapaGuǎn started as a way for a parent and child to talk about what the child found hard in a lesson video. That idea, measuring how students watch rather than just whether they watch, is now the core of a product for tutors.

What we built

PapaGuǎn for Tutors is a web app for the academy. Tutors organise their recordings into courses and lessons, assign them to classes, and add students. The dashboard lists the classes that need attention most. Cohort Insights shows each student as active, idle, not started or at risk, and for each video, how far students got and the moments where they rewound or got confused.

The student and parent app plays the lessons a student's classes are assigned, in order. While a student watches, the app records how far they got and where they rewound. They can also tap I'm Confused at any point and add a note. These friction markers show up for the tutor, placed at the exact moment in the video. Parents see their children's progress, across every academy their children attend.

How we built it

PapaGuǎn architecture: the tutor's browser encrypts videos, storage holds only encrypted segments, and the API checks access before every playback

Videos are converted and encrypted in the tutor's browser. Storage holds only encrypted segments, and the API checks the student's access every time a video is opened.

Videos are processed in the tutor's browser. Tutors mostly record on their phones. Instead of uploading large files to a server for processing, PapaGuǎn for Tutors runs ffmpeg, compiled to WebAssembly, in the browser. It cuts the recording into HLS segments for streaming and encrypts them, using a key that's unique to each video. iPhone recordings (HEVC, which many browsers can't play) and videos filmed with the phone turned are converted to H.264 the right way up. The browser uploads the encrypted segments straight to storage. So no server ever needs to see the video unencrypted, and the server does no video processing, however many tutors upload.

A copied link doesn't play. The student app has to fetch a video's key before it can play anything. Each time, the API checks that the student is still enrolled in a class that has the video. When a student leaves a class, the next time they open a video, they're refused. Downloaded segments are just encrypted data. The student's name also drifts across the picture while the video plays, so a screen recording shows who made it.

Analytics with fixed definitions. "At risk", "idle" and "finished" mean the same thing on every screen, because each is defined in one place on the server. The thresholds have sensible defaults, and each academy can change them (adult learners keep a different pace from high-school students). A cohort's numbers are computed with a fixed number of database queries, no matter how many students it has.

One account, many academies. Every academy's data is kept separate in a shared database, and every query is scoped to the academy. A parent has one account, and sees each child's classes at every academy that child attends. Tutors see only their own academy's data.

Parents' contact details are protected. Adding a student requires the parent's consent. Owners can hide parents' phone numbers and email addresses from tutors, and choose which tutors can see them. Every time someone reveals a parent's contact details, it's recorded in an audit log.

Sign-in and languages. Parents and tutors sign in with Google or LINE, so there are no passwords to forget. A student's password is set by their parent. Both apps are in English and Traditional Chinese.

Where it is now

PapaGuǎn is being prepared for its first pilots with buxibans and private tutors in Taiwan. A demo academy with made-up students and watch data lets prospective customers try every screen without seeing anyone's personal details.

Have a similar project?

Write to us and we'll get back to you.

info@smallpearl.com

More work

KensingtonWorks

Cross-platform software (Windows & macOS), custom built for Kensington, that allows users to configure their trackball input devices.