Privacy and security
Reading the course needs no account. If you sign in, this is exactly what we keep and how it's protected. The code is open source, so you can check every line on GitHub.
What we store
- Your profile
- Name, email and avatar from GitHub or Google. We never see or store a password.
- Course progress
- Which weeks you completed and when.
- Quiz attempts
- Your answers, score and time for each attempt, so you can see your best score.
- Project work
- Your requirement checklist, repo link, live link, notes, and the grade and feedback from your reviewer.
We don't sell data, show ads or use tracking cookies. Your reviewer sees your name, email, links and notes for the projects you submit. Nobody else sees your progress.
How it's protected
Sign-in through GitHub or Google
OAuth means your password stays with them. Sessions are signed, HttpOnly, Secure cookies that JavaScript on the page can't read.
Every action is checked on the server
Quizzes, checklists, submissions and reviews run as server actions that confirm who you are first. Your user id comes from the signed session, never from the browser, so you can only change your own records.
Reviewers are an allowlist
Only email addresses the site owner lists can open the review dashboard. Everyone else gets a not-found page.
Quizzes are graded on the server
The page only receives questions and options. Correct answers and explanations come back after you submit.
Input is validated
Links must be a real GitHub repo and an https site, notes and feedback have length limits, and every value is checked against the course content.
Abuse limits
At most 10 quiz attempts per lesson per hour, and a short cool-down between project resubmissions.
Browser protections
A strict Content Security Policy, HSTS, no framing (clickjacking protection), no MIME sniffing, and a limited referrer.
Database
Postgres on Neon, encrypted in transit and at rest. Queries are parameterised by the ORM, so input can't change SQL. Schema changes ship as reviewed migrations.
Secrets
API keys and database credentials live only in server environment variables, never in the code or the browser.
Your choices
You can delete your account at any time. It removes your profile, progress, quiz attempts and submissions straight away. Found a security problem? Please report it privately through a GitHub security advisory, not a public issue.