Web sites are, ideally, static hand-written HTML. Sometimes, it makes sense to write plain text and then write a short shell script to convert to static HTML. You don’t need a database, or server side scripting; if you do, write a native app.
Don’t specify fonts or colors. Browsers provide the capability for users to configure default fonts and colors; if the user prefers something other than their current default, trust them to change it.
Don’t specify alignment, except with respect to table elements. Eschew purely aesthetic distractions like page breaks, drop quotes, and tenuously related images. The user came here to read: let them.
One document per page, please. If you write a whole book, the whole book should be on that page.
Eschew sidebars. If you need a navigation menu, a top or bottom bar is fine: it’s easier to implement, and doesn’t interfere with the flow of text.
Use only the following tags: a, b, body, br, center, h1, head, i, li, ol, p, table, th, title, td, tr, ul. All other tags are unnecessary distractions. If, for some reason, you must include images, the img and align tags are also suitable.
Embedded markup is, within the context of the web, a necessary evil: as it stands now, without it hyperlinks aren’t possible within a web browser. Use it as little as possible, and make sure that it can be easily eliminated so that when external markup becomes widely available the transition is easier.
Any web page should be written so that it is usable and understandable with a text-only browser that does not preserve spacing. In other words, text formatting, images, and position on the page should never contain essential information. If you cannot strip all tags and get a nearly equivalent experience from reading non-tag content as a contiguous stream of text, you have failed to make an accessible web page.