Writing

I built something for weeks... and then read the terms of service

i spent weeks building this. then i read the terms of service.

i'm sad. not dramatic sad, just quietly annoyed at the world sad. i spent a couple weeks on something i actually believed in and i can't put it out. no clever pivot coming in three paragraphs. i just have to sit in that for a sec before i explain it.

(yes im using lowercase for the first time ever in a blog post)

okay.

so here's what i built.

semester.fyi started because schoology forgets everything. it shows you what's true right now and nothing about what used to be true. a due date moves and the old date is just gone. a grade gets silently changed and you have no way to prove what it was before. if a teacher marks something missing that you actually turned in, you're arguing from memory against a system that has none.

i wanted the thing schoology can never build against itself. a record. every due date move, every score change, every edited instruction, timestamped from the day you connect your account. not a chatbot pasted on top of your gradebook. an actual ledger. memory schoology doesn't have and literally can't backfill even if they wanted to.

the grade engine was the part i was most proud of honestly. deterministic, no llm anywhere near it, because a grade is not something you let a language model guess at. it read the syllabus rules, weighted categories, dropped lowest, rounding, all the stuff that actually decides your grade, and computed the number itself, independent of schoology, and showed its work. not "82%." "82%, because three zeros in a 10% category are the only thing dragging you down." i got it matching schoology's own number to the decimal on every real gradebook i tested it against. man that felt good. i built something correct.

and the ai chatbot who understand each and every class of yours. it would read your syllabus, your assignments that are the easiest to do, be able to tell you your week in detail, prepare for a test, but NEVER give you an answer and always reject any weird requests a common rebel highschool kid would do (like me). i learned so much about prompt engineering i should try to get those certificates for my LinkedIn haha.

and omg, my extension would give you so much qol improvements for schoology and it would talk between the server and your schoology client correctly (woah.), and i made cute little developer, bug hunter, beta, etc. badges which were inspired by RoValra and Discord, and you could see other semester users natively in app. i lwk thought i was changing the game here.

and then the part that mattered most if i'm being real. the "marked missing but you submitted it" catch. the collector would notice a submission actually happened, timestamp it, and if the assignment later showed up as missing anyway, you'd have a receipt. not an accusation. just a record you could hand a teacher without it turning into an argument you can't win, because you have no proof and they have the only copy of the truth.

shoutout to claude code aswell, he fixed so much of my bugs and issues.

i was weeks in. it worked. it was fast, it was honest about what it knew and didn't know, it wasn't pretending to be smarter than it was. i genuinely thought i was going to ship this.

then i actually read the terms of service.

not skimmed. read. the general terms of use and the developer terms of use, because semester.fyi runs inside a student's own logged in session and reads their real gradebook, and i wanted to know exactly where the line was before i put it in front of anyone.

there's a clause about automated data extraction. no scraping, no automated access to their platform, without written permission. fine i thought. i'll go get written permission. that's a door. i can walk through a door.

except the door is a developer agreement, and reading it i realized it's not really built for someone like me. it wants a real entity behind it, not a 17 year old with a github repo. it forbids you from promoting the thing you build on their platform. and it wants you to disclose your roadmap to them. the actual company whose product mine exists to be honest about. before i'm even allowed to start building.

so the doors were real. i'm not saying anyone hid anything or tried to trick me. they just didn't fit. every path led back to asking permission from the company i was building this to be honest about, in a way that meant telling them exactly what i was going to do before i was allowed to do it.

i sat with that for a while. still kind of sitting with it.

the code still runs. i can open it right now and watch it pull a real gradebook, build the ledger, catch a discrepancy, show the arithmetic. none of it broke. it's just sitting there, correct, doing nothing.

i learned a lot building this. real grade math nobody thinks about until they have to get it exactly right. what it actually takes to write code you can trust instead of code that just looks plausible. how to read a terms of service closely enough to know what it's actually saying instead of scrolling past it like everyone does. i don't regret any of that.

but i'm not gonna pretend this is fine. i had something i was proud of and i can't show it to anyone, and that kinda sucks, and i think it's allowed to just suck without me turning it into a lesson by the end of this post.

Up next Most ACT prep is pay-to-win. I'm building the free-to-play one. Read it