Hand-built

Wozzii

Ed-tech startup I co-founded · 2019 to 2021

A collaborative classroom built on top of YouTube, where scattered tutorials become courses and the notes one learner writes stay there for the next. I co-founded it and was its lead programmer.

The problem
YouTube has the teaching material and none of the tools to study.
What I did
I co-founded it and led three people: the data model, payments, every review.
The result
A collaborative classroom where users learn as a community.
Built with
Next.jsTypeScriptFirebaseStripeAlgolia
RoleCo-founder · CEO · Lead programmer
Team3 people
Timeframe2019 to 2021
ResultA collaborative classroom where users learn together
+200active users on the platform
+20courses built out of scattered YouTube videos
+300notes written by the community
The problem

YouTube holds the teaching material, but none of the tools you need to study

YouTube holds the best free teaching material and almost none of the tools you need to learn from it. Videos live in no order, notes live in another tab, and what the last person figured out dies with them. We added the missing layer: structure, notes attached to the video, and one learner's work helping the next.

How I built it

A three-person team, where I owned the technical decisions

I was co-founder, CEO and lead programmer of a team of three. That meant deciding the data model, owning payments end to end, and reviewing everything that shipped. Firebase gave us speed and took away things a relational database hands you for free, so most of the interesting engineering was in earning those back.

One database read per screen, by design.

Wozzii runs on a document database, and the data model was my call: each screen should load from a single document. A note carries its author's name and photo, and a course carries its whole video list, so showing every public note on a video costs no extra fetch. The counters that must stay exact, like how many times a course was copied into a learner's own list, sit behind atomic increments and a transaction I wrote. Cloud Functions keep the search index in step.

I implemented pay-what-you-want subscriptions on Stripe.

I built the payment flow end to end on Stripe. The learner typed the price they wanted to pay, the app opened a checkout for exactly that amount and started the subscription from it, and they could later change the card or cancel without going through us. Pay what you want was the product's whole promise, so the number a learner typed had to reach the charge intact, and a failed renewal had to be recoverable without an email to support.

I developed a points system to bring learners back.

Nobody comes back to a study tool on willpower, so the product rewarded the habit. A learner earns points for the minutes they watch, for every note they write, and for finishing the onboarding. The number moves on screen the instant it is earned, credited into the profile copy the app keeps in memory, while the write reaches the database in the background as a single instruction that adds to the total instead of overwriting it, so two tabs cannot undo each other.

The impact

What a three-person team shipped

Three of us shipped a running product: scattered videos organized into courses, notes attached to the video they belong to, search across all of it, and subscriptions where the learner named the price. Over two hundred people used it, built more than twenty courses and left more than three hundred notes behind for whoever came next. The payments and the data model were mine, and I still stand behind the shape we gave it.

What it proves

I can build a complete product, payments included, and I learned to validate that people are willing to pay before building the billing.

Screens