Split the site out, and offer the source the licence requires

The hub page and the games.jcoffey.dev deployment move to their own
private repository; this one keeps only the game, its leaderboard and a
generic compose that runs both anywhere. No deployment details remain
here, and no site references.

A SOURCE link now sits on every screen. AGPL section 13 entitles anyone
playing this over a network to the source of what they are playing, and
a link in the footer is how that offer gets made.
This commit is contained in:
2026-09-08 17:34:51 -07:00
parent 6db47b338e
commit f2e084ef7a
11 changed files with 93 additions and 337 deletions
+7
View File
@@ -752,6 +752,13 @@ html[data-skin='modern'] .btn-ghost:active:not(:disabled) {
box-shadow: none;
}
/* The source link is an anchor, not a button, but wears the same clothes. */
a.btn {
text-decoration: none;
display: inline-flex;
align-items: center;
}
.controls {
display: flex;
flex-wrap: wrap;
+15
View File
@@ -22,6 +22,12 @@ import { SetupScreen } from './components/SetupScreen'
import { TitleScreen } from './components/TitleScreen'
import './App.css'
/**
* AGPL section 13: anyone playing this over a network is entitled to the
* source of the version they are playing, so the offer sits on every screen.
*/
const SOURCE_URL = 'https://github.com/Coffey-Labs/lemonade'
export default function App() {
const [seed] = useState(randomSeed)
const [state, dispatch] = useReducer(reducer, seed, initialState)
@@ -241,6 +247,15 @@ export default function App() {
<Btn kind="ghost" onClick={restart} title="Abandon this run">
NEW GAME
</Btn>
<a
className="btn btn-ghost"
href={SOURCE_URL}
target="_blank"
rel="noreferrer noopener"
title="Free software, AGPL-3.0-or-later"
>
SOURCE
</a>
<span className="seed">SEED {state.seed}</span>
</div>
}