
I don’t know how to create a website - ingve
https://mortoray.com/2018/07/09/i-dont-know-how-to-create-a-website/
======
newsbinator
> Veering ever so slightly from the common, but entirely non-documented,
> approach makes it hard to get help. Places like StackOverflow are
> increasingly useless: instead of answers you get “Why are you doing this at
> all?”, “Yuck, you’re doing it all wrong, but I won’t tell you why” [...]

While I disagree with the premise (that using old approaches should still take
you just as far (and further) 20 years later), I do agree with this particular
quote.

Often on SO I see well-supported answers like, "that's because you're doing it
wrong" without going into detail on what doing it right would mean, or better
yet, suggesting alternative frameworks or patterns where what's "wrong" over
here is "right" over there.

If programming in 2018 has become more like plumbing, then plumbers in 2018
have become more dogmatic, and less willing to steer novices that prefer tools
like 'x' towards approaches that use tools like 'x' more often.

~~~
MaxBarraclough
> Often on SO I see well-supported answers like, "that's because you're doing
> it wrong" without going into detail

Disagree, but that might be because we frequent different territories of the
StackOverflow space. I admit I don't often delve in to web-dev topics. For
.Net questions, I'm continually impressed by StackOverflow's answers.

~~~
sheldor
While I agree that the quality of .net is impressive, I think that it follows
the overall SO problem with outdated answers.

Recently I ran into the 'why Boolean.toString returns an odd "True" value', I
visited SO to find a terrific [1] but outdated [2] answer.

Nowadays I shift my teams away from SO. My piece of advice would be to stay
away from it (especially junior devs), until they reach a level were they can
evaluate and cross check what they are reading.

[1] [https://stackoverflow.com/questions/491334/why-does-
boolean-...](https://stackoverflow.com/questions/491334/why-does-boolean-
tostring-output-true-and-not-true) [2][https://msdn.microsoft.com/en-
us/library/atahsch6(v=vs.110)....](https://msdn.microsoft.com/en-
us/library/atahsch6\(v=vs.110\).aspx)

~~~
MaxBarraclough
Maybe I'm missing something obvious, but what's outdated there?

The correct solution remains `b ? "true" : "false"`, no?

If the XML spec requires exactly those strings, why do anything cute with
`ToString`?

~~~
sheldor
The function used to return "TrueString" or "FalseString" back then. Nowadays
it returns "True" or "False".

~~~
MaxBarraclough
Aren't those identical? If I understand correctly, .Net guarantees string
internment for all string literals, even across assembly boundaries, so they
should end up referring to the same String instances.

[https://blog.jetbrains.com/dotnet/2015/02/12/string-
internin...](https://blog.jetbrains.com/dotnet/2015/02/12/string-interning-
effective-memory-management-with-dotmemory/)

~~~
sheldor
It's not a matter of instance or memory. In the aforementioned example it was
me trying to print valid JSON from a razor view, so the capital T in "True",
was causing me headaches. I wouldn't of course use "toLower" as a workaround
and actually found out the best practice. However this incident made me
curious regarding this behavior and triggered my little "research".

~~~
MaxBarraclough
I don't follow. Boolean.TrueString _is_ "True", with a capital 'T'. I don't
see that anything on SO is out of date.

The StackOverflowers note that the implementation technically doesn't match
the spec, but in a way which can only be observed by using reflection
[https://stackoverflow.com/questions/491334#comment34617036_4...](https://stackoverflow.com/questions/491334#comment34617036_491387)

------
onion2k
While the author implies that making a website is an overly complex, daunting
process and things used to be so much better in the past, the key phrase in
the article is this;

 _The tech I know may no longer be suited to do the things I want..._

The old tech that the author knows doesn't work for the modern web. He says as
much. If you want to build the new shiny you have to use the new shiny tools.
You don't _have_ to make a website that does all the fancy reactive,
responsive, Web 3.0 stuff. You can make a site exactly how we did it 20 years
ago today and it'll work fine. But if you want to build a modern website,
you've got a giant pile of things to learn first.

~~~
crooked-v
My personal recommndation for "modern" would be Next.js. It abstracts away all
the surrounding "stuff" and lets you skip to just directly defining pages as
React components, which gives you a complexity baseline that's only slightly
above just writing HTML directly.

~~~
Rjevski
My personal recommendation would be to stay away from anything that ends in
".js" and do it the good old way with HTML & CSS.

No customer ever asked for React, or Angular, etc. I have never heard someone
say "I wanted to buy your product/service but I'm not going to because you use
boring HTML instead of React".

Use the good old proven stuff until you can't, and then look at your options.
There are scenarios where using React/Angular/etc makes sense. But for 99% of
websites, it doesn't, especially if your website is a way to showcase
content/goods instead of being an application itself.

~~~
guitarbill
Agreed. Whatever happened to progressive enhancement or graceful degradation?
Many a website and user experience is not enhanced by using Javascript at all.

~~~
Rjevski
Not only is a lot of Javascript useless, but it actually degrades the user
experience.

The "new" Reddit completely kills my 12-inch MacBook when I load a page, and
it still feels sluggish afterwards. That pile of garbage literally loads more
code than content.

YouTube's crap navigation system is the same - if you click on a video it will
actually load it & update the page within the client using JS, and in my case
it's considerably slower than just loading the server-generated page from
scratch. I often find myself opening videos in new tabs (and closing the old
ones) or hitting refresh as soon as the URL bar is updated just to avoid this
shit because fetching & loading a brand new page is actually _faster_ than
their so-called "improvement".

~~~
pjmlp
I really hate the new Youtube experience, taking several seconds to display a
full page.

------
klez
Web apps. You don't know how to create web apps.

An actual website (meaning text, images and little more) doesn't really need
all the fancy frameworks OP's talking about. The sooner we re-learn this, the
better.

~~~
moviuro
> An actual website (meaning text, images and little more) doesn't really need
> all the fancy frameworks OP's talking about.

Sure, but you still need:

\- a server/reverse proxy (h2o, apache, nginx, httpd, etc.), in which you
correctly set tons of things, such as headers [0], https (acme.sh? or acme-
client?)

\- haproxy for IPv4/IPv6 if you want to live in the future, but still be
available to people living in the past century [1]

Default versions and settings are still broken (SSL still enabled in 2018,
etc.)... Mozilla does help though by publishing some sane templates [2].

In the end, it's not quite as complex as webapps, but still very far from
trivial.

[0]
[https://securityheaders.com/?q=try.popho.be&followRedirects=...](https://securityheaders.com/?q=try.popho.be&followRedirects=on)
for my own static blog,
[https://securityheaders.com/?q=https%3A%2F%2Fwww.hellobank.f...](https://securityheaders.com/?q=https%3A%2F%2Fwww.hellobank.fr%2F&followRedirects=on)
&
[https://securityheaders.com/?q=particuliers.secure.lcl.fr&fo...](https://securityheaders.com/?q=particuliers.secure.lcl.fr&followRedirects=on)
for French banks...

[1] [https://try.popho.be/https.html](https://try.popho.be/https.html)

[2] [https://mozilla.github.io/server-side-tls/ssl-config-
generat...](https://mozilla.github.io/server-side-tls/ssl-config-generator/)
and [https://wiki.mozilla.org/Security](https://wiki.mozilla.org/Security)

~~~
klez
True, but you can still get a ton of mileage from a simple managed web hosting
solution and (if you feel fancy) cloudfront.

My point is that this whole post reeks a bit of YAGNI. Or, at least, that
we're not talking about "simple websites". If it's the latter, of course, it's
a whole different story. But we should call websites "websites" and web
applications "web applications". This would also avoid those "the web sucks"
arguments that make comments think an article is thinking about the web as "a
way to exchange information" instead of "a platform to distribute system-
agnostic applications".

------
orbifold
It is incredibly easy to create a website. As a member of a university
institute you typically get a folder in your home directory "public_html",
whatever you put there will be accessible from the internet. So you create an
index.html, which basically can be as malformed as you want it to be and it
shows up in Google search after a while. This totally suffices for 90% of all
personal internet publishing, see
[http://math.ucr.edu/home/baez/TWF.html](http://math.ucr.edu/home/baez/TWF.html)
for how far this can take you. This page contains ~20 years of original
content by a mathematical physicist, a lot of it is of very high quality.
Content is more important than presentation.

------
donatj
I really miss the days when I started almost 15 years ago sometimes when we
would just build a site with Dreamweaver Templates, and FTP it up to the
server when it was ready. Maybe add a CGI form if we’re feeling fancy. It was
remarkably more simple to keep an understanding and mental model of the entire
project.

Honestly part of me still feels like that would be good enough for most
businesses these days still, but that’s just not what developers want to
build.

~~~
Angostura
And those businesses just opt for a nice Weebly or Wix template, or something
similar - there's no need for a developer.

~~~
typeliftr
Hell, I’m a developer and I just made myself a Squarespace blog. It’s
$12/month and I set the whole thing up in a few hours.

~~~
donatj
Seems kind of pricey to me for a personal blog. I host 8 sites on a $5 a month
DigitalOcean droplet two of which get pretty high traffic.

------
ezoe
There are people who do cargo-cult programming.

They looks like doing something. They use the famous tool and write seemingly
similar code we write. But it's not correct. It's not just correct, It's also
wrong in all aspects. They don't understand anything. They just imitate the
activities and believe it just work somehow.

When facing it, the only answer we can give them are:

> “Why are you doing this at all?”

or

> “Yuck, you’re doing it all wrong, but I won’t tell you why”

Because, these people don't want to learn in the hard way or listen to the
advice anyway.

So the last advice,

> “can you produce a complete working minimal example, deploy it somewhere,
> set up an issue system, accept code reviews, feed my dog, and then maybe
> I’ll help”.

is actually a kind advice, because these cargo-cult programmers blindly
believe that, they are doing it right, it should just work, and the reason
it's not working right now is a very tiny trivial issue caused by one wrong
setting or something.

Since they don't listen the honest advice(you're doing it wrong in everything)
and believe it will work, let them fail and let them know they are doing it
wrong is the most kind advice.

~~~
pdimitar
You are not wrong but in the end I just prefer not to answer their questions
at all. Somebody else will probably be kinder than myself and I am quite sharp
on forums because I dislike people who tried exactly zero solutions but just
come and cry somewhere. I know sharp language is frowned upon in the moderated
forums and viewed as not constructive so I just say to myself "heh, that poor
thing" and never even write a reply, and move on with my life.

Better for everyone involved IMO.

------
johnlbevan2
I think a lot of us technical minded people fall into the same trap; we start
with the technology, trying to solve problems of making a site dynamic and
secure before considering the content. With the exception of sites solely
aimed at demonstrating new technologies, the purpose of a site is to provide
content (OK, sometimes to provide functionality too; but that's content in a
sense). The key is to work out what content needs to be on the site & start
with that. Once you've got that down you can consider how it can be improved;
and that's where these other pieces start coming in. But start by defining the
problem to be addressed, then look for the tool to fix that problem; don't go
off and find something trendy then work out how you can make problems that it
can handle, or how you can force your problem into being the kind of problem
which that tool could fix; move on and find the tool that makes sense.

This is all obvious at the start of the project, but the moment you see a
rabbit hole it's very hard to resist going down it. For that, keep a list of
what's important nearby, and each time you get back from a break check that
list and ensure you're obeying it. That list will start with a bunch of
don'ts; to keep you away from bad habits, followed by your priority task list
of what you need to create your MVP / the MUSTS of your solution. Once you
have a working solution and have ticked off all the musts from your list, you
can then play safe in the knowledge that you've got a checked in working
version; and the remaining time is just experimenting / tweaking / playing.

Anyway, that's the theory... I've not managed to stick to it yet; let me know
if it works for you though ;).

------
motdiem
On the security and distribution side of things, I recently had to guickly
throw a website together, and found netlify super convenient for that - it
handles the https and cdn part, and you can use it like a folder to drop
static html. It allowed me to have something up and running faster thant I
thought

------
karol
Apart from websites there are now other things that people deliver via HTTP
and browser or a "web view". I would argue that the market for websites has
shrunk. There is a booming market for web applications that are just the best
way to create a gateway between customers and ever changing business logic. In
this space there is a proliferation of tooling and compilers and it's only
going to get more complicated in the sake of betterment (JS as a compilation
target). I'd focus on fundamentals, one of which is user experience. It
doesn't matter if the flow is created in Go, React or closure, it still needs
to be user-friendly, intuitive and secure at the same time. The domain
knowledge is much more important than tooling.

------
rotub
I agree.

I was in the web dev world early enough to also be uploading pages and files
via FTP to production for high profile clients.

In the last 3-5 years with the addition of gulp, sass, npm, etc. it has all
become way too complicated and saturated. I found myself with way to many
options and worse - opinions - to filter through, learn, and master enough to
use in production. Mostly this learning would be done in my own time outside
of work and I really started to lose interest/drive to do it.

~~~
kowdermeister
Oh the nostalgia of fucking up websites with FTP :) You can say it was better
than deploying with Git with a serious face.

------
okaleniuk
I'm doing [https://wordsandbuttons.online](https://wordsandbuttons.online)
with all the interactive plots, and games, and quizzes in plain Javascript. It
was a bit uncomfortable in the beginning, but then I gained some experience
and got better at it. I didn't want any frameworks when I started, now I don't
need them.

------
kerrsclyde
I kind of agree but I've just followed the approach of building in what I
know, it's too easy to get caught up in alternative cutting edge tech and use
it as an excuse not to build something.

If you wind up with something successful you can always switch to modern
technology if it provides a solution which your old school tech cannot fix.

------
collyw
Isn't this where WIX and similar products come in? Sure its a lot more complex
to create a simple website from scratch, but the process is automated by tools
like these. I have non technical friends with blogs these days.

~~~
typeliftr
I’m a web developer and I just set up a Squarespace blog for myself. I
could’ve taken a week to fiddle with Jeckyll and set up plugins for search and
RSS, newsletters and this and that, but this is $12/month and so much easier.
It took me like 2 hours to get the whole thing set up, getting a domain is a
single click with no SSL setup or anything.

~~~
rotub
As a web developer myself I had never come across a CMS that made life easier
for the every day person - friends would always come to me asking for help
with setting up or amending their blog.

Then Squarespace came and I've been so impressed with it. It is the first and
still only CMS that makes creating and maintaining* a blog super easy.

* images were always a problem with Wordpress and other sites... uploading, resizing, and more so moving and placing images on a page was always a "problem" for the non-tech-savvy but Squarespace handles this perfectly

------
kowdermeister
> I no longer know how to create a website.

You do, but you are suffering from analysis paralysis. Fuck it and stick to
what you know, your _web app_ will be fine.

For websites you need VSCode, type ![tab] and you are ready to go.

I feel it's easier than ever to get started with frontend frameworks since
there are tons of resources to learn from (youtube, course platforms, blog
post, official tutorials, etc.) compared to 10 years ago.

As a footnote, I could write a similar blog post about Haskell, but I feel I
could use that time better to watch a 1 hour long video and write a fibonacci
function.

~~~
mdewar
I couldn't agree more.

> I don’t know why this attracts people to programming — imagine trying to be
> a chef where the only source of ingredients is scouring the city for
> restaurant scraps.

I feel this is so untrue - there is a wealth of information on web-dev. The
hard part is choosing what resource to use or what topic to study but in terms
of learning content available - I think there is oceans.

------
ratsimihah
If you keep up with React, it's super easy. It takes 5 minutes to get CRA
working, then an hour to understand React, then days to get good at React,
then a few more days to get good at the ecosystem (state management, etc...)

I agree with what you said. The pace of change is daunting, but as long as you
keep an eye on where it's headed and what's working, things get easier.

