This is a nice post. Thanks for sharing it here. The only thing I would like to add to this fine article is that it is perfectly fine for a personal website to simply be a loose collection of pages arranged in an arbitrary manner. Not every personal website needs to be a blog.
Very often I see aspiring website authors quickly make life complicated for themselves by deciding they need a blog, which then leads to numerous questions about tools and processes that can easily draw anyone into busywork. That time could otherwise have been spent on actually writing posts, articles, games, demos, etc. for their website that one can look back with joy months or years later.
Website busywork is probably fine for people who genuinely want to spend their time thinking about tools and processes. But if you just want to put your thoughts out there, it can be more fruitful to simply publish HTML, written directly or converted from your favourite text format such Markdown, AsciiDoc, etc.
This is a topic I care about quite a bit and my complete thoughts about this would be too long for an HN comment, so I will just share a link to a post I wrote about this recently, in case someone finds value in it: https://susam.net/writing-first-tooling-second.html
I would genuinely like to see more personal websites, because they make the Web more diverse and more interesting.
I ran across this[0] post about a month ago, which makes an argument against the chronological blog, and to rather embrace the digital garden. I quite liked the idea. For so long it's felt like a blog is the default, but I find browsing pages without a blog much more interesting. I think it also removes that pressure to post all the time, as adding content is simply adding content. It doesn't matter when it was last updated. Looking at my history (which I had to use to find this), I deleted all my started and abandoned blogs the same day I read this.
edit... Ironically, I just clicked "All Articles" on his home page and it's a chronological blog... At least there is some curation to it.
If the loose collection of simple pages is updated relatively infrequently, you could simply manually update the RSS file as well, so people can still track updates easily.
I never thought that the writing HTML is the hard part. Instead where my Sister struggled was to get a domain, get a server, deal with DNS pointing to that server. That shit is also omitted on posts like that one because it's done differently for each domain registrar and you need quite some knowledge in network stuff to be able to understand what you need to do.
I did not expect how bad this was handled in the article:
> It’s easy to forget how simple a website can be.
> ...
> If you don’t have a domain or hosting yet, now’s the time to buckle down and do that. Unfortunately, I don’t have good advice for you here. Just know that it’s going to be stupid and tedious and bad and unfun. That’s just the way this is.
Yup, it blatantly left out the hard part, and at the same time contradicted the initial claim almost literally.
Kinda reminds me of reading a dozen articles that went, "Learning how to typeset a document with LaTeX. This article assumes that you have LaTeX installed already." ages ago.
Kinda makes me wonder: If the point isn't to show how to make a website, or typeset a LaTeX document.... what IS the point?
> Kinda makes me wonder: If the point isn't to show how to make a website, or typeset a LaTeX document.... what IS the point?
The point of those articles is how to make a website or typeset a LaTeX document. If you read one and find out you don't have a prerequisite, go google for an article on how to get a domain name or install LaTeX --- there is plenty of those too.
Yup. Though I recently learned you can manually upload a local folder (with an index.html etc) to cloudflare pages. They will of course sell you a domain too.
It takes me right back to 1998, making my first few web pages - with a hand-rolled index page. I probably used NotePad.
And how easy it was - I went from reading a “how to HTML” guide to having a page about whatever hobby I was into at the time in a single session. Can’t have been much more than an hour.
I guess I deployed via FTP, into the space my ISP provided.
> If you don’t have a domain or hosting yet, now’s the time to buckle down and do that. Unfortunately, I don’t have good advice for you here. Just know that it’s going to be stupid and tedious and bad and unfun. That’s just the way this is.
I cannot remember if it was here or elsewhere but there was an amazing blogpost making fun of beginner and intermediate "coding" tutorials (coding as a catch-all for programming, markdown, etc.) where the author assumes the reader has deep familiarity with the subject at hand and all of its jargon. This has the exact same vibe.
Probably not too useful for many in this audience, but I wrote a web book for *absolute beginners* learning HTML. It's very much in the same spirit as the OP's post.
Loosely related, a html Quine[1]. I like how it shows how little is needed and how far one can bend the rules to fit a particular use case.
For my homepage I also don't use a CMS, I write raw HTML or convert markdown documents; my homepage URL is in my profile.
Consider checking profiles of others too, a lot of HN users share their web pages there, they are often minimal and a great source of inspiration; and there are many cool ones in this comment section already.
It’s not clear to me who this is useful for. If you have a server already, yes, it’s trivial to put up an HTML page. But most people with servers, I would guess, already know that. Most people _don’t_have servers, though, and it seems to me that thats what the “easier” ways of getting started (hosted wordpress, Cloudflare pages, github pages, etc.) are for. I agree, though, that it’s good to start with plain HTML. I’d probably recommend that new people go with a serverless setup like Cloudflare pages rather than get into administrating a VM, though.
That's how I did it in GradSchool. I took over the web page another student started for the grad-level algorithms class I was taking. The student who started it discovered he had volunteered for too many things. I jumped on it when they needed to change because I needed the extra credit.
Armed with a CD copy of the web site, I moved it over to my hosted space. I setup password-access, and setup the syuidy group, and from there on, I frequently put in one-liner paragraphs from the professor, she sometimes managed to get them to me soon enough that I could put them in before class started that day.
The blog that I started ~13 years ago started as 3 .html files. Everything else followed as needed (styling, rss, comments, etc.). If you can get past building it, the next question becomes "What should I write about?" [0]
My answer is usually that you can write whatever you want on your websites. It's yours after all. None of the limitations that exist on third-party platforms exist. You can make all the pages read upside down if you want to.
The Mozilla docs also lay a great foundation for learning web development. They include a general overview of how the web works before teaching the basics.
https://www.yourhtmlsource.com is my favorite resource from the early 2000s on how to make a website and I'm so happy it's still around. It could be modernized to teach things like viewport and whatever but I found it super simple to understand as a teenager.
┍━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┑
│ how-to-make-a-damn-website.html │
├──────────────────────────────────────────────────────────────────────────┤
│ <title>How to Make a Damn Website</title> │
│ <h1>How to Make a Damn Website</h1> │
│ │
│ │
│ <p>A lot of people want to make a website but don’t know where to start │
│ or they get stuck.</p> │
┕━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┙
HTML is very forgiving! You can start really simple and work your way up to more complexity when you need it.
Web browsers are indeed forgiving when it comes to incomplete HTML. Some time ago, I did a small experiment to see what minimal HTML is required to display a simple 'Hello' page while adhering to the specification, passing HTML Tidy validation and also satisfying the Nu HTML Checker. As far as I can tell, it is this:
The body tag is unnecessary, tidy might complain but that is not the spec. The meta tag is generally unnecessary (the content encoding should be set by the server in the headers since it applies to not just HTML). The html tag is unnecessary if you do not want to declare the language of the document (which is generally a warning).
So I guess smallest without errors should be
<!DOCTYPE html><title>a</title>
And smallest without errors or warnings should be
<!DOCTYPE html><html lang><title>a</title>
And then any content that is not links, scripts, meta tags, etc. will automatically be within a body after like
I have seen at least one blog where the author updated his RSS feed manually, but it's one of the first pieces of busywork that you want to automate away, after applying the page template and entering <p> tags at every double-newline. Jekyll is useful for that; it builds automatically in GitHub Pages, which also conveniently serves as a free web host.
This isn't how to make a damn website, this is how to make a page for a damn website. Missing is all the stuff about actually setting up a website, like hosting, domains, blah blah.
Give me simple instructions about that stuff prior to creating the contents and id be happy.
I think the intent was making a blog has additional requirements one might not need to just make a website, a la what the "The Hard Way" section tries to argue against, not a claim a blog is not also a website (anything the page says not to use will also lead you to having a website as well - just with more than minimal work).
E.g. the section covering RSS for your post is longer than the section covering HTML, you don't really need a fixed structure, and you don't need to think of a story to write unless that's what you want to do. You can just post a picture of your cat and try to add googly eyes later if that's what floats your boat. Or just "Hello World" and let your mind go from there.
In the past, I've had a few visitors to my website look at a possibly silly post and ask me why it was even worth blogging about.
That is when I bring out the expanded form of 'blog' in all its glory. It is my weblog. Of course I am going to log whatever I want for myself, regardless of whether it is interesting to others. I do not need to subscribe to someone else's notion of what is interesting in order to decide what belongs on my own weblog.
Imagine if there were programs that let you write HTML like using a word processor. And then they let you upload that file to a server.
I'm still using Dreamweaver 8 from 2004 to edit some sites. I paid for it as a boxed product, including the right to transfer it to a replacement computer.
It's on its fourth replacement computer now, running under Wine emulation on Linux.
The sites load really fast.
There were a few attempts to build open source tools like Dreamweaver, but they all seem to have been abandoned.
This is terrible for someone who doesn't know anything and wants to make a website (the people this article is directed to)
> Don’t shop around for a CMS. Don’t even design or outline your website. Don’t buy a domain or hosting yet. Don’t set up a GitHub repository; I don’t care how fast you can make one.
I wonder how a beginner is supposed to know what a CMS is, a domain/hosting or a GitHub repository. This is not explained at all.
> Finished? Great. If you have a domain and hosting, make a new folder on your server called blog and upload your first post in there
I don't, I am a beginner! I don't even know what this means! And even if I do have a server, how do I upload a file to it?
> If you don’t have a domain or hosting yet, now’s the time to buckle down and do that. Unfortunately, I don’t have good advice for you here. Just know that it’s going to be stupid and tedious and bad and unfun. That’s just the way this is.
Oh thanks. But it really isn't. On netlify for example you can just drag a folder that contains your website and it's up immediately. Similarly on neocities.
> If you have images or other media in your post, be sure to use the absolute URL to a resource rather than a relative one.
You should consider explaining what they are and how to use them.
This post is useless for "people [who] want to make a website but don’t know where to start or they get stuck"
People might want to use RSS to check on your site for updates whether you write it by hand or use some kind of CMS to generate it for you.
WordPress was a technical mess before their founder had a psychotic break and their company posted features advocating for business owners to put bait-and-switch AI slop on their websites.
And then you find out that the company running the server misconfigured caching, and suddenly half your userbase sees a different version than the other half.
I love websites, something about stumbling across someone’s random content put together with old school hand typed code just stirs a warm and fuzzy feeling, especially if the do something “weird” that doesn’t follow any kind of modern trend or convention.
Another technique (or consideration?) that deserves attention is how to get output from notebook engines (e.g. Quarto) to play well with your existing plain text website... while Quarto does a decent job of plain text websites, it does the best job if it takes over the whole website.
This is a nice post. Thanks for sharing it here. The only thing I would like to add to this fine article is that it is perfectly fine for a personal website to simply be a loose collection of pages arranged in an arbitrary manner. Not every personal website needs to be a blog.
Very often I see aspiring website authors quickly make life complicated for themselves by deciding they need a blog, which then leads to numerous questions about tools and processes that can easily draw anyone into busywork. That time could otherwise have been spent on actually writing posts, articles, games, demos, etc. for their website that one can look back with joy months or years later.
Website busywork is probably fine for people who genuinely want to spend their time thinking about tools and processes. But if you just want to put your thoughts out there, it can be more fruitful to simply publish HTML, written directly or converted from your favourite text format such Markdown, AsciiDoc, etc.
This is a topic I care about quite a bit and my complete thoughts about this would be too long for an HN comment, so I will just share a link to a post I wrote about this recently, in case someone finds value in it: https://susam.net/writing-first-tooling-second.html
I would genuinely like to see more personal websites, because they make the Web more diverse and more interesting.
I ran across this[0] post about a month ago, which makes an argument against the chronological blog, and to rather embrace the digital garden. I quite liked the idea. For so long it's felt like a blog is the default, but I find browsing pages without a blog much more interesting. I think it also removes that pressure to post all the time, as adding content is simply adding content. It doesn't matter when it was last updated. Looking at my history (which I had to use to find this), I deleted all my started and abandoned blogs the same day I read this.
edit... Ironically, I just clicked "All Articles" on his home page and it's a chronological blog... At least there is some curation to it.
[0] https://joelhooks.com/digital-garden/
Dating documents you write on creation and update is always helpful. It doesn't mean one needs to write a chronological blog or have a target cadence.
Love all of this, your comment, parent comment, OP, etc.
When I next start a website I'm just going to channel my old Geocities days.
edit: Easter egg! https://www.google.com/search?q=geocities
if you wish to explore what others plp do with their gardens, there is this gallery for that https://vaults.obsidian-community.com/
A blog is nice for readers who'd like to follow your thoughts without having to poll your website (thanks to RSS).
But indeed, a loose collection of simple pages is better than nothing at all...
You are completely right, just write the damn thing and the blog can come later.
If the loose collection of simple pages is updated relatively infrequently, you could simply manually update the RSS file as well, so people can still track updates easily.
> A blog is nice for readers who'd like to follow your thoughts without having to poll your website (thanks to RSS).
I guess if you have some external site host the RSS feed. Otherwise, how do the readers avoid polling your website?
By polling I meant having to remember to visit the website manually.
Of course, the RSS client itself will poll the website.
The RSS reader will do that for them.
this is why when I my sister wanted a website I just pointed her at substack. She was posting immediately
I never thought that the writing HTML is the hard part. Instead where my Sister struggled was to get a domain, get a server, deal with DNS pointing to that server. That shit is also omitted on posts like that one because it's done differently for each domain registrar and you need quite some knowledge in network stuff to be able to understand what you need to do.
I did not expect how bad this was handled in the article:
> It’s easy to forget how simple a website can be. > ... > If you don’t have a domain or hosting yet, now’s the time to buckle down and do that. Unfortunately, I don’t have good advice for you here. Just know that it’s going to be stupid and tedious and bad and unfun. That’s just the way this is.
Yup, it blatantly left out the hard part, and at the same time contradicted the initial claim almost literally.
Kinda reminds me of reading a dozen articles that went, "Learning how to typeset a document with LaTeX. This article assumes that you have LaTeX installed already." ages ago.
Kinda makes me wonder: If the point isn't to show how to make a website, or typeset a LaTeX document.... what IS the point?
Do you have extruded polyvinyl foam insulation?
No-
Good! Assemble the aluminum J-Channel using self-burring screws.
> Kinda makes me wonder: If the point isn't to show how to make a website, or typeset a LaTeX document.... what IS the point?
The point of those articles is how to make a website or typeset a LaTeX document. If you read one and find out you don't have a prerequisite, go google for an article on how to get a domain name or install LaTeX --- there is plenty of those too.
Yup. Though I recently learned you can manually upload a local folder (with an index.html etc) to cloudflare pages. They will of course sell you a domain too.
This is an example where LLM's really can help. I just went through that process myself for the first time and got that help.
https://lmnt.me/badges
I would like about 5000 more of these by tomorrow, kthxbai.
“Damn”, this is good.
It takes me right back to 1998, making my first few web pages - with a hand-rolled index page. I probably used NotePad.
And how easy it was - I went from reading a “how to HTML” guide to having a page about whatever hobby I was into at the time in a single session. Can’t have been much more than an hour.
I guess I deployed via FTP, into the space my ISP provided.
> If you don’t have a domain or hosting yet, now’s the time to buckle down and do that. Unfortunately, I don’t have good advice for you here. Just know that it’s going to be stupid and tedious and bad and unfun. That’s just the way this is.
I cannot remember if it was here or elsewhere but there was an amazing blogpost making fun of beginner and intermediate "coding" tutorials (coding as a catch-all for programming, markdown, etc.) where the author assumes the reader has deep familiarity with the subject at hand and all of its jargon. This has the exact same vibe.
Probably not too useful for many in this audience, but I wrote a web book for *absolute beginners* learning HTML. It's very much in the same spirit as the OP's post.
https://htmlforpeople.com/
You don't even need html to have a web site. You can host regular text file. For years my website was just that.
Loosely related, a html Quine[1]. I like how it shows how little is needed and how far one can bend the rules to fit a particular use case.
For my homepage I also don't use a CMS, I write raw HTML or convert markdown documents; my homepage URL is in my profile.
Consider checking profiles of others too, a lot of HN users share their web pages there, they are often minimal and a great source of inspiration; and there are many cool ones in this comment section already.
[1]: https://secretgeek.github.io/html_wysiwyg/html.html
It’s not clear to me who this is useful for. If you have a server already, yes, it’s trivial to put up an HTML page. But most people with servers, I would guess, already know that. Most people _don’t_have servers, though, and it seems to me that thats what the “easier” ways of getting started (hosted wordpress, Cloudflare pages, github pages, etc.) are for. I agree, though, that it’s good to start with plain HTML. I’d probably recommend that new people go with a serverless setup like Cloudflare pages rather than get into administrating a VM, though.
That aside, it's really not any more difficult to install svelte or something and add some CSS
I guess the point is: you don’t start with Svelte, you start with writing something good.
Yes, this is a great point. The rest is not as important.
That resonates with https://plainvanillaweb.com/ - which inspired me to ditch my own CMS and use plain html on my website.
That's how I did it in GradSchool. I took over the web page another student started for the grad-level algorithms class I was taking. The student who started it discovered he had volunteered for too many things. I jumped on it when they needed to change because I needed the extra credit.
Armed with a CD copy of the web site, I moved it over to my hosted space. I setup password-access, and setup the syuidy group, and from there on, I frequently put in one-liner paragraphs from the professor, she sometimes managed to get them to me soon enough that I could put them in before class started that day.
I wish teachers and tutorials stopped with the god damned indenting. It makes it twice as hard to learn and serves no purpose for HTML.
The blog that I started ~13 years ago started as 3 .html files. Everything else followed as needed (styling, rss, comments, etc.). If you can get past building it, the next question becomes "What should I write about?" [0]
My answer is usually that you can write whatever you want on your websites. It's yours after all. None of the limitations that exist on third-party platforms exist. You can make all the pages read upside down if you want to.
[0]: https://idiallo.com/blog/what-should-i-write-about
Still using Seamonkey Composer here (descendant of Netscape Composer/Kompozer):
https://en.wikipedia.org/wiki/SeaMonkey#Composer
The Mozilla docs also lay a great foundation for learning web development. They include a general overview of how the web works before teaching the basics.
https://developer.mozilla.org/en-US/docs/Learn_web_developme...
https://www.yourhtmlsource.com is my favorite resource from the early 2000s on how to make a website and I'm so happy it's still around. It could be modernized to teach things like viewport and whatever but I found it super simple to understand as a teenager.
> This is honestly all you need.
No, you need less than that! :-)
HTML is very forgiving! You can start really simple and work your way up to more complexity when you need it.Web browsers are indeed forgiving when it comes to incomplete HTML. Some time ago, I did a small experiment to see what minimal HTML is required to display a simple 'Hello' page while adhering to the specification, passing HTML Tidy validation and also satisfying the Nu HTML Checker. As far as I can tell, it is this:
Remove any tag and the validation fails. Here is how the Tidy check looks: And here's a Nu check link: https://validator.w3.org/nu/?doc=https%3A%2F%2Fsusam.net%2Fc...The body tag is unnecessary, tidy might complain but that is not the spec. The meta tag is generally unnecessary (the content encoding should be set by the server in the headers since it applies to not just HTML). The html tag is unnecessary if you do not want to declare the language of the document (which is generally a warning).
So I guess smallest without errors should be
And smallest without errors or warnings should be And then any content that is not links, scripts, meta tags, etc. will automatically be within a body after likeTo be mobile-friendly, I’d remove the block-drawing characters. ;)
I have seen at least one blog where the author updated his RSS feed manually, but it's one of the first pieces of busywork that you want to automate away, after applying the page template and entering <p> tags at every double-newline. Jekyll is useful for that; it builds automatically in GitHub Pages, which also conveniently serves as a free web host.
This isn't how to make a damn website, this is how to make a page for a damn website. Missing is all the stuff about actually setting up a website, like hosting, domains, blah blah.
Give me simple instructions about that stuff prior to creating the contents and id be happy.
The title should be "How to make a damn blog.", as that appears to be the primary focus of the article.
A blog is a type of website
I think the intent was making a blog has additional requirements one might not need to just make a website, a la what the "The Hard Way" section tries to argue against, not a claim a blog is not also a website (anything the page says not to use will also lead you to having a website as well - just with more than minimal work).
E.g. the section covering RSS for your post is longer than the section covering HTML, you don't really need a fixed structure, and you don't need to think of a story to write unless that's what you want to do. You can just post a picture of your cat and try to add googly eyes later if that's what floats your boat. Or just "Hello World" and let your mind go from there.
Yes, but the author's title framed it as a generic "website", not a specific web log site.
Kids these days forgetting what blog is short for! ;)
In the past, I've had a few visitors to my website look at a possibly silly post and ask me why it was even worth blogging about.
That is when I bring out the expanded form of 'blog' in all its glory. It is my weblog. Of course I am going to log whatever I want for myself, regardless of whether it is interesting to others. I do not need to subscribe to someone else's notion of what is interesting in order to decide what belongs on my own weblog.
I wrote a very lite touch web list maker, so people / I can have a simple fast way to make a list of stuff, and share the url.
http://pho.tiyuti.com
Just lists of title, pic, blurb, url
Imagine if there were programs that let you write HTML like using a word processor. And then they let you upload that file to a server.
I'm still using Dreamweaver 8 from 2004 to edit some sites. I paid for it as a boxed product, including the right to transfer it to a replacement computer. It's on its fourth replacement computer now, running under Wine emulation on Linux.
The sites load really fast.
There were a few attempts to build open source tools like Dreamweaver, but they all seem to have been abandoned.
This is exactly what I needed when I started. Bookmarked
This is terrible for someone who doesn't know anything and wants to make a website (the people this article is directed to)
> Don’t shop around for a CMS. Don’t even design or outline your website. Don’t buy a domain or hosting yet. Don’t set up a GitHub repository; I don’t care how fast you can make one.
I wonder how a beginner is supposed to know what a CMS is, a domain/hosting or a GitHub repository. This is not explained at all.
> Finished? Great. If you have a domain and hosting, make a new folder on your server called blog and upload your first post in there
I don't, I am a beginner! I don't even know what this means! And even if I do have a server, how do I upload a file to it?
> If you don’t have a domain or hosting yet, now’s the time to buckle down and do that. Unfortunately, I don’t have good advice for you here. Just know that it’s going to be stupid and tedious and bad and unfun. That’s just the way this is.
Oh thanks. But it really isn't. On netlify for example you can just drag a folder that contains your website and it's up immediately. Similarly on neocities.
> If you have images or other media in your post, be sure to use the absolute URL to a resource rather than a relative one.
You should consider explaining what they are and how to use them.
This post is useless for "people [who] want to make a website but don’t know where to start or they get stuck"
Sites written by hand don't need RSS. If you absolutely need RSS, you can start a WordPress blog before you can say "what the hell is XML?"
What do you think RSS is for?
Not a whole lot any more, unfortunately.
Let's not overlook podcasts
People might want to use RSS to check on your site for updates whether you write it by hand or use some kind of CMS to generate it for you.
WordPress was a technical mess before their founder had a psychotic break and their company posted features advocating for business owners to put bait-and-switch AI slop on their websites.
That's called a bookmark, which is native to all browsers, while RSS is not.
Do you think that bookmarks serve the same purpose as a RSS feed?
Maybe <1% of visitors might. They're not worth wasting any time satisfying.
I also never met anyone who uses RSS
I forgot where I was writing that. Of course everyone on HN uses RSS.
And then you find out that the company running the server misconfigured caching, and suddenly half your userbase sees a different version than the other half.
https://1kb.club/
Doesn't take much.
Very tempting but I know it will be a hard one for my website.
Been thinking about this lately. Thanks for sharing.
I love websites, something about stumbling across someone’s random content put together with old school hand typed code just stirs a warm and fuzzy feeling, especially if the do something “weird” that doesn’t follow any kind of modern trend or convention.
Another technique (or consideration?) that deserves attention is how to get output from notebook engines (e.g. Quarto) to play well with your existing plain text website... while Quarto does a decent job of plain text websites, it does the best job if it takes over the whole website.
With the amount of crap and complexity we now have online, I miss gopher and well arranged text files.
"While the best time to make an RSS feed was 20 years ago, the second best time is now."
I literally laughed out loud. This is so on point, and so is the rest of the article.