๐ฑ Lewis Thomson ยท hackathon night ยท 27 Aug 2026
Clone โ run โ edit โ commit โ push.
First onboarding card: prove the loop on a real machine, not a slide.
This page is the write-up of what actually happened โ the two repos,
the local stack, the obnoxious homepage banner, and the first push to
Tyneside-Software/hackathon-site.
The board's first cards are not product features. They are get the front end and back end running, then prove edit โ run โ push so the rest of the night can ship in slices.
Every card is a releasable increment. The site still has to look working when the card lands. Tonight started local-only โ no Cloud Run until Michael is back.
GitHub auth, clone from the org, Python venv, two processes, a visible HTML change, a real commit identity, a rebase over teammates' work, and a fast-forward push to main.
Same machine, same night. Each step is the thing we had to get right before the next one would work.
The Tyneside-Software GitHub org has two hackathon repos: hackathon-site (GitHub Pages front end โ board, desktop, map) and hackathon-api (Python FastAPI, aimed at Cloud Run later). They are meant to be cloned as sibling folders.
Not into C:\WINDOWS\system32 (the default shell cwd).
Both repos went into a proper folder:
C:\Users\Lewis\repos\hackathon-site
C:\Users\Lewis\repos\hackathon-api
That match is what start.ps1 expects โ it looks next door
for hackathon-api\app\main.py.
System python is a broken WindowsApps stub; the real interpreter is
Python 3.14 via the py launcher. We created a venv in the API repo,
installed FastAPI and uvicorn, then started two processes:
python -m http.server 5500 bound to 127.0.0.1uvicorn app.main:app --reload --port 8080
config.js already points the front end at
http://127.0.0.1:8080, and the API CORS allow-list already
includes the local site origin. No extra wiring was needed.
Every URL we care about returned HTTP 200:
The API is still a skeleton (root, health, docs). That is enough for tonight's first two hours: a live backend the site can talk to.
To prove edit โ run without opening DevTools, we put a huge blinking LEWIS WAS HERE banner under the nav on the homepage. Hot pink, acid yellow, 0.7s blink. Refresh the home page and you cannot miss it.
That is deliberately loud. The point of the card is that a change
on disk is immediately visible in the browser, because we are
serving files, not opening file://.
Git had no user.name / user.email on this machine.
We set them locally in the repo from the GitHub account
captainbikk โ Lewis Thomson <captainbikk@gmail.com>,
without touching global config.
First push was rejected: Reeve/others had already landed a person filter on the board. We pulled with rebase (no force-push), then pushed cleanly.
b65badd Add obvious Lewis was here banner on the homepage.
That commit is on origin/main. The GitHub loop card is done.
After the push we fetched both repos. Both working trees were
clean and already matched origin/main. Site tip:
the banner commit. API tip: README pointing at the org and
start.ps1.
A dedicated Lewis page, linked from the nav, so the night has a human-readable record of the first slice โ not just a git log. Attractive on purpose: the rule is the site should still look working when the card lands.
Nothing fancy. Two folders, two processes, one browser.
| Piece | What it is | Why it is there |
|---|---|---|
| hackathon-site | Static HTML / CSS / JS | GitHub Pages later; tonight a local HTTP server so the API is not blocked by file://. |
| hackathon-api | FastAPI app in app/main.py |
Health + CORS now; Cloud Run in London once Michael is back. |
| .venv | Python 3.14 virtualenv | Keeps FastAPI / uvicorn off the system interpreter. |
| config.js | window.HACKATHON_API |
Points at http://127.0.0.1:8080 until a Cloud Run URL is pasted in. |
| start.ps1 | Opens site + API windows | The intended one-command boot once both repos sit side by side. |
hackathon-site.
origin/main so the next person pulls a working site.