The story

Why this exists

The first program I wrote didn't work. Neither did the second. Somewhere around the fifth I realised that the tutorials I was following had quietly skipped the part where things go wrong — which turns out to be most of programming.

That gap is what this site is for. Not "type these fifteen lines and admire the result", but: here's what this actually does, here's what will break, and here's how to work out why. The awkward middle bit that tutorials leave out is the bit that turns someone who has followed a tutorial into someone who can build things.

Everything here is free and always will be. There's no account, no paywall, no tracking, and no "unlock the rest of this lesson".

Mission

Get one person from "I could never do that" to a program that runs.

That's the whole goal. Not to produce professional engineers — just to move someone across the line where code stops being magic and starts being a tool they can pick up.

Everything on this site is judged against that: does it help somebody get their first working program, and then their second?

What we believe

Five things this site is built on

01

Broken code is the normal state

Professionals write code that doesn't work all day long. The difference isn't fewer bugs — it's a faster route out of them. Anything that implies otherwise is setting people up to quit.

02

Explain the why, not just the what

"Type this" gets you one working program. "Here's why this works" gets you the next thousand. It's slower up front and much faster after a fortnight.

03

Say what you don't know

Where something is simplified, approximate or genuinely uncertain, it says so. A confident wrong answer costs a beginner far more than an honest "it depends".

04

Small and finished beats big and abandoned

A tiny script that tidies your downloads and actually runs teaches more than an ambitious app you gave up on in week three.

05

Nobody should need to pay to start

The tools professionals use are free. The documentation is free. The barrier to entry is knowing where to look — and that shouldn't cost anything either.

06

The site should be readable too

Every file behind this page is commented and meant to be opened. If you want to know how the dark mode toggle works, the answer is forty lines away.

Timeline

How it got here

  • STEP 01

    A script that moved some files

    It started with twenty lines of Python that sorted a Downloads folder. Small, boring, and the first time code had saved time rather than cost it.

  • STEP 02

    An astronomy site with no images

    An offline guide to the planets where every world is drawn in CSS and the moon phases are calculated, not looked up. Proof that constraints make projects better, not worse.

  • STEP 03

    A roadmap for the version after

    Planning a full-stack rebuild — and learning that 214 estimated hours means something very different to a team than to one person after school.

  • STEP 04

    This site

    Writing down the explanations that would have helped at step one. Six pages, nine tracks, no frameworks, and every file commented.

  • NEXT

    Whatever's still confusing

    New tracks get written when something turns out to be harder to explain than it should be. That's a decent signal for what's worth writing about.

Under the hood

How this site is built

No frameworks, no build step, no dependencies. Open the folder and it runs.

No images at all

Every icon is inline SVG and every "photo" is a CSS gradient. The whole site loads in one go with nothing to download, which is why it works on bad wifi.

Content lives in one file

js/data.js holds every track, post and question. The pages are generated from it — so adding an article is one object, not a new HTML file.

One stylesheet, all tokens

Colours and sizes are CSS variables defined once at the top of style.css. Dark mode works by swapping those values, nothing else.

Being straight with you

What this site doesn't do

Every site should have this section. Most don't.

The forms work — via a third party

A web browser can't send email by itself; if it could, any page could send mail pretending to be you. So the contact and newsletter forms post your message to Formspree, which forwards it on. That means your message passes through their service, and it's only fair to say so rather than let you assume it goes straight from this page to an inbox.

Comments never leave your device

They're saved in your own browser's storage. Nobody else can see them, and they won't follow you to another computer. Real comments need a server and a database.

There are no testimonials

This site is new and has no users, so it has no reviews. The homepage carousel carries real, sourced quotes from people who built this field instead. Writing fake reviews and attaching names to them is one of the fastest ways for a site to deserve losing your trust, so there aren't any.

Nothing is tracked

No analytics, no cookies, no accounts, no third-party scripts of any kind. Nothing you do here is recorded anywhere. The only data stored is your theme choice and any comments you type, both in your own browser.

Terms, briefly

Use it however you like

This is a learning project. The content is free to read, the code is free to copy, and there's no warranty of any kind — if a script eats your homework, that's on both of us. Always read a script before running it, including this one's.