website making guide

Last updated: December 28th, 2024

As an official software developerâ„¢ and an on and off webmaster of 10+ years, I like to think I know a thing or two about making a cool website. I probably don't, but hey, you're already here, might as well read on, right?

Where do I start?

Creating a website from scratch when you've never done so before can be super daunting. Here are my top three tips for someone looking to make their own personal website:

  • Start with a vision

    It's basically impossible to make a website without have some idea of what you want the end result to be. Presumably, if you're want to make a website, you at least have some idea of the content you'd like to put on it, but you may not have given much thought to what you actually want it to look like. You of course don't need to have all the details nailed down (in fact, it's probably better if you don't), but having a broad general idea of how you want your website to look will give you something concrete to work toward as you begin you development journey.

    I recommend at least deciding on the basic layout of your site, such as where the navigation buttons and main content will go, before you even begin to code. If you're a visual person like me, you can even doodle a quick picture to help keep yourself on track. This is a great time to go look at other websites and see what you like and don't like about their layouts, as well as getting some ideas for possible aesthetics. Also, make sure you keep your content in mind! If you're planning to have a lot of long text-filled pages, you'll probably want a big main content section to make your content easy to read. If you're going to have a lot of different pages, you'll need to either put you navigation on the side, or have some sort of drop down menu.

  • Learn as you go

    The best way to learn anything, website making included, is to just start doing it. Don't feel like you have to learn everything all at once. Website making is super rewarding because you can get instant feedback for whatever changes you make just by reloading the page. If you'e not quite sure how to do something just Google it, and there's probably some example code already out there for you to take and mess around with. Just focus on learning things as you need them, rather than become overwhelmed with the wealth of information out there. If you stick with it, you'll eventually start to understand how things connect, and be able to come up with your ideas from scratch.

  • Take your time

    The important thing to know about websites is that they're never going to be done. Making a website is a ongoing process, so don't feel like you have to have everything ready all at once. You can continually add content, tweak the layout, move stuff around, hell you can even start over if you want. If you're having trouble making your website look exactly how you want, just do the best you can for now. If find a better way to do something later on, then you can always go back and fix it.

    Also, don't compare your brand new website to websites that have been around for years! It takes a lot of time to create cool and interesting content for you site, whether you're writing your own articles and stories or just finding cool old gifs to share. I guarantee those sites didn't launch with all the content they have today, and I also guarantee that if you stick with it and add stuff to your site, you'll be able to have a website just as cool and fun to visit as they do. Just try your best, do what you can, and enjoy the journey!

Ok that's great but where do I actually start?

Places to Learn:

One of the first thing you're likely to hear when learning how to program is the phrase "don't reinvent the wheel". I have a few problems with that phrase (sometimes it's nice to know how to make a wheel, especially when the only way to get a single wheel is by importing a whole fleet of semi trucks), however in this case I think it's pretty apt. Rather than wasting hours writing my own HTML / CSS / JavaScript guides, I'm just going to direct you towards a few resources on the web I've found useful in my web development journey:

W3Schools https://www.w3schools.com/

These guys wrote the book on HTML... literally. The World Wide Web Consortium, also known as W3C, is the organization that sets the internet standards You can be confident that anything you read on this site is accurate and up to date. This is my go to reference when trying to remember what a specific tag is called or which css property does what.

CSS-Tricks https://css-tricks.com/

My absolute favorite sites for learning about all the cool and fun modern CSS can do. Also, they have the best guides on flexbox and grid, I use them literally all the time. If you're looking to push your CSS skills to the absolute limit, check them out!

SadGrl.Online https://sadgrl.online/

A more indie web focused site, SadGrl.Online is such a great resource. Not only does she have a bunch of well written tutorials she also has a great collection of links, graphics and other things for the burgeoning web developers. Personal favorites include her collection of tiling backgrounds and her website layout generator

Code Editors:

Once you've decided to take the plunge start working on your own website, you're probably going to want to download some sort of code editor. While it is technically possible to create an entire website just in Notepad, it's not exactly going to be a fun time. Code editors have features like syntax highlighting, which will display different parts of your html code in different colors to make it easier to see, as well as highlighting errors such as mismatched opening and closing tags. Even for basic websites, these features will make creating your webpages much faster and easier, making it so you can spend more time coming up with cool content and less time trying to find the missing end tag.

Notepad++ https://notepad-plus-plus.org/

If you want something nearly as fast and simple as Notepad, but with just a few quality of life improvements, then give Notepad++ a try. Classified as more of an advanced text editor than a true development environment, Notepad++ still has all the basic quality of life features you'd expect like syntax highlighting, auto-formatting, and multiple tabs, and is a perfectly acceptable alternative for someone who might be overwhelmed by a more full featured code editor.

Visual Studio Code https://code.visualstudio.com/

My editor of choice, mostly due to familiarity. VS Code is a fully featured code editor right out of the box but it gets even better when you install plugins. Here are a few of my favorites:

  • Live Server - quickly and easily launches a local web server, allowing you to view changes to your website without having to refresh
  • Prettier - automatically formats your code
  • es6-string-html - enables syntax highlighting for multi-line html in JavaScript files
  • Code Spell Checker - spell check
  • ESLint - catches some JavaScript errors

The downside, of corse, it that it's a Microsoft product, and not fully open source. Still, if you can get past that, it's a great editor and my personal recommendation.

Finding a Host:

Once you've gotten your website together, the next step is to put it online for the world to see. Thankfully, there are a lot of places on the web where you can host a small static personal website for free. For someone just getting started, I have three main recommendation:

Nekoweb https://nekoweb.org/

A relative newcomer to the web hosting scene, Nekoweb is currently my top pick for anyone looking for a personal website host. With less limitations and more limitaions than Neocities, along with the same great social media like discoverability and indie web culture, I highly recommend giving Nekoweb a try.

Neocities https://neocities.org/

While no longer my top recommendation, Neocities is still a great option anyone just starting out. Not only does Neocities offer a generous amount of space for free, it also offer some social networks-like features that can help you connect with a community of fellow website creators as well as drive some traffic to your site.

GitHub Pages https://pages.github.com/

If Neocities isn't the right fit for you, then why not give GitHub Pages a try? There's a bit of a higher learning curve, especially if you haven't used git before, but GitHub is a safe and reliable service that isn't going to try and up charge you or hold you data hostage. GitHub pages is especially great if you plan on collaborating with someone on you website, as GitHub makes working together on the same project super simple (that is it's primary purpose, after all)

Dynamic Hosting Options:

When looking at web hosts you're likely to come across the term "static website", and may be wondering what that means. A static website is a website made up of fixed files, hosted on a web sever. Unless the webmaster edits the content of those files, the content of the website cannot change. This is in contrast to a dynamic website, which can take in content from a user and add it to the webpage without the website owner having to change any files. The vast majority of websites you use today, such as social media sites, shopping sites, and more, are probably all dynamic.

Now, static doesn't mean boring. You can do a lot with a static site (this, in fact, is a static site). You can add animations, interactive elements and simple games. You can send a limited amount of information across pages by using query parameters. If you're so inclined, you can even have your website code structured like it's a dynamic site, by loading information saved in javascript files and using it to dynamically add and remove stuff from a web page (that's how this website works!).

However, the main limitation of a static site is that you can't save information your users submit. This means no comments, no email forms, nothing that allows the content of your site to be permanently changed without you uploading a new version to your page. For most users this won't be a problem, as there are a lot of free external services that can add basic dynamic functions such as a guestbook or a contact form. However if you find yourself running up against these limitations, it might be time to take your site to the next level and look into getting a dynamic host

These are some free options for dynamic hosting of various levels of sketchiness. I haven't personally used most of these so I can't speak to their features or ease of use, I'm just sharing them here because finding any hosting sites meant for individuals and not companies is a challenge these days.

Leprd Space https://leprd.space/

My current host! An awesome little host focused on providing free hosting to small independent sites. The one drawback is that space is limited so slots aren't always available. If applications happen to be open though, Leprd is definately my first choice

InfinityFree https://www.infinityfree.net/

Looks ok, though they note in their FAQ that they will automatically suspends any site that gets no traffic for 30 days, so requires some amount of effort to keep your site up.

FreeHosting https://freehosting.com/free-hosting.html

This one requires having your own domain, but otherwise seems pretty good.

Free Host https://profreehost.com/

Like InfinityFree, will suspend any site that gets no traffic for 30 days. Might be the same company tbh, they look pretty similar

000webhost https://www.000webhost.com/

Offers limited bandwidth and only 300 MB of space, but looks like an ok beginner option

NearlyFreeSpeech https://www.nearlyfreespeech.net/

My recommendation for a paid option. Works on a pay-for-what-you-use system, so a small personal website will be very affordable

I have a website, what do I put on it?

Fonts

One of the quickest ways to spiff up your website is by adding new fonts. Using the CSS @font-face property, you can embed basically any font into a webpage. Here are a few resources I've found where you can get free fonts.

DaFont https://www.dafont.com/

Probably the best font resource around! There are so many free fonts here, I guarantee you'll be able to find something you like. Do mind the licenses though, as not all fonts are free to use for all purposes.

itch.io https://itch.io/game-assets/free/tag-fonts

If you're looking for pixel fonts, itch.io is actually a great place to look! Though designed for games, many of these fonts also work great on websites. Itch also offers paid fonts, sold directly by their creators for very reasonable prices, so if you're having trouble finding the perfect font, check those out as well!

Graphics

A cool site had gotta have cool graphics! Even for a super basic site, you're probably going to want to have at least a few bits and bobs to really pull your website together. Unfortunately these days finding free graphics that you can use on your website is no easy task. Honestly I believe that's part of the reason so many indie websites end up going for a vintage style: these old graphics are literally the only things out there without a watermark and a price tag attached, though even the older graphics can be hard to find sometimes. However, there are still free graphics collections out there if you know where to look, and I've graciously decided to share my stash with you. Since my site tends towards the 90s aesthetics, most of the sources will probably be for older graphics, but I'll share whatever I can find.

CatStuff https://user.xmission.com/~emailbox/catstuff.htm

A huge collection of cat themed clip art and gifs

Please Mail Me http://www.textfiles.com/underconstruction/mail/

A collection of "Email Me" gifs archived from Geocities

Under Construction http://textfiles.com/underconstruction/

A collection of "Under Construction" gifs archived from Geocities

Do you yahoo? http://www.textfiles.com/underconstruction/dingbats/

A collection of random gifs archived from Geocities. Ads, dividers, text, and more

DiscMaster http://discmaster.textfiles.com/

A web interface for browsing old media collection CDs. The interface is a bit clunky, but there's lots of treasures here if you're willing to dig.

Gifcities https://gifcities.org/

A search engine for old school gifs provided by the Internet Archive

Tumblr https://www.tumblr.com/

Tumblr is a surprisingly good place to find retro graphics, as there are a ton of blogs dedicated to archiving retro graphics and the tag and reblog systems makes it easy-ish to find more blogs. However, finding something specific when you need it can be a challenge, so I recommend just following a bunch of blogs and reblogging or otherwise saving images whenever you find something you like, to curate your own retro collection. Here's a collection of blogs I've found to get you started:

Graphic Editors

Having trouble finding the perfect graphic online? Why not try making it yourself. If you have a website for long enough, it's inevitable you'll eventually want some custom made graphics. Digital art is obviously a rabbit hole all its own, but here are a few tools I use beginner friendly tools that I use to help create custom graphics for my site

Paint.net https://www.getpaint.net/

Paint.net is my go to graphics editor and has been for years. Unlike programs like Photoshop or GIMP, which can be intimidating to learn, Paint.net is more like an upgraded version of MS Paint. It has features the MS Paint sorely lacks, like layers and transparency, without having so many function as to be overwhelming. Plus, it's light systems requirements means it will loads super quick even on older computers. If you're new to graphics editing, I highly recommend giving it a try

Aseprite https://www.aseprite.org/

Aseprite is a paid program, though you can technically get it for free if you build it from source. Still, it's one of the only modern graphics editor's I've found that does a good job handling pixel art gifs. If anyone know of any better software for editing or merging olf gifs, please let me know.

ScreenToGif https://www.screentogif.com/

A program that allows you to record your screen and and edit and save the results as a gif. Useful for capturing gifs from the Petz programs, and may be useful for capturing gifs from other old software as well.

Fun stuff

What's the point of having a website if you don't have a little fun with it? Here are some fun little interactive widgets you can to your webpage to spice it up a little.

GifyPet https://gifypet.neocities.org/

A fun little virtual pet widget you can embed on your page

Web Neko https://webneko.net/

An reboot of the classic Neko desktop pet, but for your website!

Status.cafe https://status.cafe/

A place to share your current status, with an embeddable widget for your website. An easy way to put a quick status update on your website without having to actually update it

iMood https://www.imood.com/

A cute little pixel art widget you can use to share your current mood

Clippy JS https://github.com/pi0/clippyjs

Add an animated Clippy or one of his friends to your webpage

Useful services

After some time, you may find yourself wishing you could interact with your site's visitors a little bit more, without having to learn how to make a fully dynamic website. That's where these services come in! They allow you to embed simple interactive features into your website without having to make them yourself, and will work with static hosts like Neocities.

Cbox https://www.cbox.ws/

Cbox has been a staple of indie website for a long time, and for a good reason. Cbox is a free, iframes-based chat box that will allow guests to leave short messages on your site, and it's super customizable to boot.

GetForm https://getform.io/

Putting you email out online is going to result in a lot of spam, however, you might want a way for users to contact you. GetForm allows you to easily set up a web form while protecting your email. The downside is that you're limited to 1 form and 50 submissions per month, but for most personal websites that shouldn't be an issue

Formspree https://formspree.io/

An alternate form hosting site. Also limits to 1 endpoint and 50 submissions per month, though it has a much cheaper paid option

PollCode https://pollcode.com/

Who doesn't love stupid internet polls? PollCode is a great way to add a simple poll to your page so you can figure out what your guests favorite color is or whatever. My hot tip is, you can remove all the inline styles on the sample code that it gives you and replace them with your own. As long as you leave the form-y bits intact, it still should work.