DEV Community

Discussion on: What tools would you choose to create a personal portfolio site if starting from scratch?

Collapse
 
ben profile image
Ben Halpern

I'll go first with an answer that has worked for me, but is not definitely how I would do it next time:

  • Plain HTML, plain CSS, plain JS. No dependencies, no build tools.

The reason for this approach would not be for the ease of initially building or "active" maintenance, but I generally take this approach when building a website I probably won't return to very often. Plan HTML, CSS, and JS — for a fairly small website — never gets out of date, never expires, never uses a build tool I forget how to use.

When I want to update some small thing about a website like this, the saving grace is that I can just do it without remembering the tool chain or dealing with some kind of dependency hell. Things move quickly, and reducing the tooling burden is a huge win in a lot of contexts.


That being said, despite all of that, the drawbacks are that the code and overall process can suffer. Re-usability is tough, and there are some awesome innovations you can't use with this approach.

So I'm really looking forward to hearing your take on this kind of problem. 😀

Collapse
 
joelbonetr profile image
JoelBonetR 🥇

You can add a Bundler as devDependency (Parcel i.e. which is almost zero config) so you can ship your code minified and optimized into production :)

Collapse
 
phantas0s profile image
Matthieu Cneude

I don't like blog framework, maintaining that is too much of a pain. I had a Ghost blog a long time ago, and each time I needed to update it, something was breaking.

Now I'm using Hugo for a couple of years, and I love it. It's not really a framework (I mean the website itself doesn't depend on it) and it's very extensible. Updating Hugo is super simple too (one binary). It generates the plain HTML so it's super fast.

I believe that static site generator have a big future in front of them, especially for businesses.

Collapse
 
arnebab profile image
Arne Babenhauserheide

My take to avoid the pains of complex tooling is to use autotools. Basically have a Makefile that contains what I need to build. That will keep working. When it’s too hard to represent in a Makefile, it’s too complex to maintain casually.

And staying away from npm, maven, and so forth. It has to keep working without internet access, because anything online can move and that way break my setup.

Collapse
 
waylonwalker profile image
Waylon Walker

100, if you are not editing the site very often using a framework makes it so much more work to update every 2 years than its worth.

Collapse
 
simeg profile image
Simon Egersand 🎈

Plan HTML, CSS, and JS — for a fairly small website — never gets out of date, never expires, never uses a build tool I forget how to use.

A previous colleague of mine showed me his personal website and it was just this -- a picture of him, his resume, super basic styling and no JS. He was a very skilled front end engineer so I remember being taken back until he explained why.

I thought about that for a long time and now as I have more experience dealing with npm packages, broken updates, new frameworks etc. I believe it makes a lot of sense.

Assuming you don't enjoy maintaining things like that 😄

Collapse
 
pcmagas profile image
Dimitrios Desyllas

Also it is good idea to practice on fudamentals before going into fancy stuff.

Collapse
 
liviufromendtest profile image
Liviu Lupei

That's such a practical approach.

Because if you ever want to contract a freelancer to maintain it or improve it, you'll easily find someone who understands plain HTML, CSS, JS.

I'm never sure if modern build tools are really helping us save time or if we just use them because the companies that built them have huge Marketing budgets.

When I first learned about GatsbyJS, I thought:
"Oh, that's cool, probably built by some developers in their spare time. I guess people are tweeting about it because it's really helping them."

But the reality was:
"Built by a for-profit company that raised over $46M from investors and spending a ton of money on Marketing and Twitter influencers."

Not criticizing them, it's a useful tool. But I can never be sure if the hype is real or faked.

The sad part is that such tools can really overcomplicate the development process, and make it less exciting for young folks to learn web development.

10 years ago, someone learning to code got their AHA moment when they made some JavaScript and CSS run in the browser.

And now, someone learning to code might get frustrated when some npm installation randomly fails and give up. Tutorials for beginners should still start with the basics.

Collapse
 
bigbott profile image
bigbott

so true...

Collapse
 
yan profile image
y-an

20ish years ago I was so happy to write first for loop statement in php and see something prints on html. Your comment brings back that good moment back. Would stay all night excited just to learn what else I can do.