templates for self-hosting game jams (or any other kind of jam tbh)
1# homemade jam! 2 3a set of scaffolds for making your own self-hosted game (or otherwise creative) jam a la the ones on [itch.io](https://itch.io). like, for whatever reason. 4 5right now, there are templates for plain HTML, plain PHP, [jekyll](https://jekyllrb.com), [hugo](https://gohugo.io), [astro](https://astro.build), [zola](https://getzola.org), and [wordpress](https://wordpress.org). 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 6 7there 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. 8 9if 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 10 11some notes for each version follow below; please make sure and read the section for whichever framework you're working with! 12 13## plain html 14 15please 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 16 17if you don't have a local server solution already set up, you could probably use something like [simple web server](https://simplewebserver.org). 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). 18 19replace 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. 20 21also, 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](https://jsonswiss.com/json-table-editor) if you're not down with the brackets since it lets you edit in table view 22 23## plain php 24 25if 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. 26 27## jekyll 28 29watch this space. 30 31## astro 32 33please note that there's a bun.lock file because i use [bun](https://bun.sh) but you do not have to. you can use npm/pnpm/yarn/deno etc it's daijoubu 34 35uses astro collections, so data files go in src/data/games 36 37## hugo 38 39watch this space 40 41## zola 42 43you'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`. 44 45there'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. 46 47## wordpress 48 49WIP 50 51run `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) 52 53should 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. 54 55wordpress 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. 56 57## additional notes 58 59### stuff this uses 60 61* default favicon by [supanut piyakanont](https://thenounproject.com/creator/supanutpiyakanont/) 62* filtering uses [advanced filtering system](https://misits.github.io/advanced-filter-system/) by misits 63* fonts provided by [google fonts](https://fonts.google.com/) but if you want to move those assets local i recommend fontsquirrel's [webfont generator](https://www.fontsquirrel.com/tools/webfont-generator) to generate and optimize the font formats 64* icons from [font awesome](https://fontawesome.com)