Stock Academy: the course I wanted before I started
The moment that started this: I wanted to know whether to open an ISK or a kapitalförsäkring, or just a plain aktie- och fondkonto. Every explanation I found answered the question with three more terms I didn’t have yet. Tax treatment, schablonintäkt, statslåneräntan. The page assumed I already knew the thing it was there to teach me. I closed the tab knowing less than when I opened it, and a little embarrassed for asking.
Stock Academy is what I built so that moment has an exit. It assumes you know nothing about investing and starts there. It’s live at stock-academy.netlify.app.
How it’s shaped
Ten modules, in order, from what a stock is to the end: market basics, investment vehicles, getting started, order types, portfolio construction, risk management, evaluating companies, psychology and pitfalls, taxes and record-keeping, and an ongoing routine. Each module is short lessons and a quiz. Get a question wrong and the answer comes with the reason it’s wrong, not a red X and silence. The reason is the part I kept wanting and never getting.
The Sweden part is a block type, not a footnote
Under the hood, each module is a JavaScript data file in js/data/curriculum/. A
module has a goal and a list of lessons; a lesson is a list of content blocks
(heading, paragraph, list, callout, keyTerm) and a quiz. The renderer
walks that structure, so layout lives in the renderer, not the lesson.
That stays a boring detail until you reach the callout variants: tip,
warning, disclaimer, and sweden-eu. The last two are why I set it up this
way. Living in Sweden, the tax module has to cover ISK, kapitalförsäkring,
aktie- och fondkonto, Nasdaq Stockholm, and Skatteverket, and those rates and
rules change. A course that hard-codes a number ages into being wrong. So every
Sweden mention carries a sweden-eu callout that renders inline, right where
being in Sweden changes the answer, and tells you to check the current rule at
the source instead of trusting my screenshot. The disclaimer variant does the
same job for the line between education and advice. The caveat travels with the
lesson, and fixing one is editing data, not touching the renderer.
Making it stick
I read finance explainers and forget them by the next day. So it installs as an app on your phone and works offline on the train, and a daily review pulls three questions from lessons you’ve already passed. The three are seeded by the date, so they hold steady all day and you can finish them whenever. It’s spaced repetition without me having to call it that. One of the interactive bits, “The Fee Machine,” runs a small annual fee forward over years so you can watch it eat a return, which lands harder than me saying fees matter.
The honest part
None of it is financial advice. I’m not licensed and I’m not telling anyone what to buy. Nothing you type leaves your browser: it’s localStorage, no accounts, no backend. I built it with Claude, in plain HTML, CSS, and JavaScript, with no build step and no dependencies.
I made it because the wall was real for me, and I’d guess it’s real for other people who grew up assuming investing wasn’t written for them.