templates for self-hosting game jams (or any other kind of jam tbh)
HTML 19.2%
SCSS 15.5%
JavaScript 4.7%
Astro 4.5%
PHP 4.1%
Blade 2.3%
Shell 1.1%
TypeScript 0.6%
Ruby 0.3%
CSS 0.2%
Makefile 0.1%
Other 47.6%
11 1 0

Clone this repository

https://tangled.org/veryroundbird.house/homemadejam
git@nest.veryroundbird.house:veryroundbird.house/homemadejam

For self-hosted knots, clone URLs may differ based on your setup.

README.md

homemade jam!#

a set of scaffolds for making your own self-hosted game (or otherwise creative) jam a la the ones on itch.io. like, for whatever reason.

right now, there are templates for plain HTML, plain PHP, jekyll, hugo, astro, zola, and wordpress. i may just manifest others but also feel free to open an issue for some site-building method you use! it may just take some time to get around to learning that engine lmao

there is also a folder called "colorthemes" that has, well, a bunch of color themes to replace the site variables with if you want something different and don't feel inspired.

if you are a developer, ./assets.sh will build/copy the scss and the images to all the projects from the _raw-assets folder. if you're not a developer you can safely ignore all that

some notes for each version follow below; please make sure and read the section for whichever framework you're working with!

plain html#

please note that some of the javascript WILL NOT WORK unless you are running it on some kind of local web server (as opposed to just opening the html file in your browser). the reason for this is that it needs to send header data for some requests and just opening an html page locally doesn't do that, i guess. alternately just dropping them on neocities or something will make it work

if you don't have a local server solution already set up, you could probably use something like simple web server. it doesn't have a linux build, but i supsect if you're a linux person you can figure out how to set up a temporary simple web server with python (http.server) or node (http-server).

replace things in the template files that are surrounded by double exclamation points (!!). there are some variables to set at the top of the js/script.mjs file, and some style variables to set at the top of css/style.css. if you want to add more css, there's a css/custom.css file you can tack new stuff onto.

also, you will have to fiddle with JSON for game data. unless you want to just code all them manually for some reason, in which case i salute you. i recommend using jsonswiss if you're not down with the brackets since it lets you edit in table view

plain php#

if you're running php i'm presuming you know how to set up your own local web server for dev or have a box you can drop it onto.

jekyll#

watch this space.

astro#

please note that there's a bun.lock file because i use bun but you do not have to. you can use npm/pnpm/yarn/deno etc it's daijoubu

uses astro collections, so data files go in src/data/games

hugo#

watch this space

zola#

you'll probably want to copy the contents of the "content" folder to your main content folder since they contain some useful examples for how data in the front matter "extra" section should be formatted. also, look at the theme.toml file for variables you'll want to override in your config.toml.

there's also a section for news posts if you want to use something like that to update people on jam status, post hype, etc. you can show it on the front page if you want.

wordpress#

WIP

run bun i and then bun vite build to compile assets (or run w/ npm/pnpm/yarn/deno if you prefer; if you don't know what any of these are you are most likely to have npm)

should not need any additional plugins to run. please understand this involved me ascending to another astral plane because trying to do this in a way that's nice and friendly without Advanced Custom Fields is bananas.

wordpress uses its own database for all of this, so you don't have to deal with any markdown or json files; just look to the left sidebar in the admin panel and you'll see a section for "games." you can also optionally use wordpress to manage your signups, but you don't have to and can still collect that data from google forms or airtable or a custom data feed yourself and pipe it in.

additional notes#

stuff this uses#