Although I’m mostly known as a game developer, I make a lot of websites too. You may have run across some of them: my communal mixtape-making site mixtape garden did the rounds on cohost a while back, and my random YouTube aggregators YouHole and WeHole enjoy modest popularity with a certain crowd.
I don’t see much advice about making this stuff compared to games, so I wanted to share some things I've learned developing websites that helped me make fun ones that lasted a long time. It’s less of a coherent essay than a collection of tips and observations, but I hope you get something out of it.
-
My biggest piece of advice is to find ideas that will work with a small and infrequent userbase. Most sites don’t get a lot of traffic, especially after their initial influx of users, so find a premise that doesn’t rely on a steady stream of visitors to be interesting.
-
Relatedly, specific and stringent constraints make for interesting sites with distinct personalities. Almost all websites are just an interface to store and serve content from a database. Try to shape that interface to encourage a unique relationship between the user and the database by limiting their access to it in a novel fashion.
-
To the point above: randomness, scarcity, ephemerality, and finality all make for interesting constraints.
-
APIs are powerful. Think about alternative ways to explore big libraries of content - YouTube, archive.org, Discogs - that aren’t provided by their native interface.
-
Design for mobile first using your browser’s mobile simulator. If it works on a phone it’ll probably work on desktop, while the reverse isn’t as true. It also really forces you to think about readability, and it’s nice to be able to show it to people easily.
-
Less advice than an observation, but websites are pretty easy compared to games! They’re a lot less work and there’s more (and better) documentation and tutorials. You can get really far just cludging stuff together from snippits you copied elsewhere.
-
HTML, CSS, JavaScript, Node.js, Flask, and SQL are all you need for most ideas¹. Don't be intimidated if that seems like a lot - you don't need to learn all of them! They're ordered here so you could learn each sequentially and still be able to make interesting things at every step. A brief explanation of what all these are:
-
HTML defines the raw, static content of the site: the words and images that appear on the page.
-
CSS describes the layout of the HTML, or how the words and images should be arranged on the page.
-
JavaScript allows the page to be manipulated by user input, making your sites interactive.
-
Node.js lets different users on the same site interact with each other, letting your sites be multiplayer.
-
Flask and SQL let you create robust websites where users can log and and create posts that are stored in a database.
-
-
To host a website, you'll need a hosting provider. For a static site that runs entirely on the client (i.e., that only uses HTML, CSS, and JavaScript), I like to use Netlify. For a dynamic site that needs to run on a server, I've used Heroku in the past with decent results. If you want a custom domain, you'll need to buy one from a domain provider like Namecheap or porkbun.²
That's all I've got to say for now. I hope some of you are inspired to go out and make websites yourself!
¹ This is an opinionated list, but I don't think(?) it's an especially controversial one. I prioritized "ability to google a question and get an answer" first and foremost, since 90% of web development is doing that.
² These suggestions might be out of date; these days I just host everything on my friend's Linode instance, and I'm not up on what's best these days (read: feel free to provide alternatives but please don't put me on blast lol).

