How to make a damn website (2024)

1 day ago (lmnt.me)

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/

  • 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?

      2 replies →

  • 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.

  • 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.

  • I found it odd they specifically said not to make a git repo for the page, GitHub is one of the easiest ways I know to publish a website. It just can't be commercial etc

  • 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.

  • 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.

    • It's an example where it can't really help unless you already have some idea what you've got to do. LLM will spit out everything from CPanel instructions to port forwarding when in the end the best way for a non-tech person would be to just dump the files on Neocities.

> 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.

“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.

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.

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

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.

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

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! :-)

    ┍━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┑
    │                     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:

      <!DOCTYPE html>
      <html lang="en">
      <meta charset="UTF-8">
      <title>Hello</title>
      <body>
      <p>Hello!
    

    Remove any tag and the validation fails. Here is how the Tidy check looks:

      $ tidy -qe minimal.html
      $
    

    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

          <!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

          <!DOCTYPE html><html lang><title>a</title><p>a

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.

  • This information (excluding domain which is not 100% a requirement) used to be given by your ISP. Everybody used to have a small web space available, 100MB at the very least, which is plenty to write stuff about yourself or your favorite hobby.

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.

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

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?"

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.

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.

  • Word still has the option to save as HTML (and if I remember correctly even edit it), but you get MS Outlook-style HTML output.

  • > 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.

    Composer, the HTML editor provided by the Seamonkey Internet Application Suite does just that.

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.

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 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"

"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.