After my last article about Typescript, I've decided to move forward and start building a website.
Building a website isn't as simple a task as it ...
For further actions, you may consider blocking this person and/or reporting abuse
IMHO... My advice is to use React or Next JS straight away.
Reasons:
If you want to become a senior with JavaScript it is better to fight and learn the platform to understand the nuances of it. That bunch of libs, frameworks, compilers and so on are live now. But like any other they will eventually disappear as it happened before. (i.e. JQuery mobile was deprecated and JQuery UI is dead with a single version upgrade in like 8 years).
On the other hand, you can choose to use TS or not. But the thing doesn't stop here.
You can also use Flow, maybe a less invasive approach as we discussed before (reference) or, if you're using React maybe the straightforward way to handle that is to use proptypes or even none of them.
Whatever you end up with I recommend you to follow a TDD approach because no other thing can give you confidence in your code.
You may find this book useful.
Best regards
Thank you for your advice! I will definitely consider using React or Next JS. I appreciate your thoughts on frameworks vs. libraries and the importance of understanding the JavaScript language core. I will also keep in mind your suggestion to follow a TDD approach.
I started learning JS and TS from advice that I got from a friend, but I always looking for new things to learn :)
You're welcome! We have a big community here around JS, share your steps anytime you need feedback 😁
Great to know 😁
Would advice using NextJS since it's built on React and is much less work to set up.
Well yes but it serves a different purpose.
I do usually use Next JS on sideprojects because I have Node and React in the same place and I already know how Next JS works due to both side projects, PoCs and projects that are in production made at work. It's pretty convenient to build a monolithic application quickly but if you just need a frontend it would be inefficient.
Also some practices you probably use in frontend of Next apps are not aligned with what you'll find in React-only projects as it includes opinionated components for different purposes (i.e. Next/Image).
So like always it just depends on the project needs 😁
On the other hand, setting up a React project is just...
npm i react react-dom, creating an index, an App main component and you're done mostly, plus you can use whatever bundler you like (i.e. Parcel which, once you understand how to properly use it's zero config or mostly).I've recently been looking at other ways I can get sites up and running. On that investigation I've tried .... Eleventy, Astro and Svelte
The first 2 excel at static content, the third does a good job of not straying to far from the Web conventions we're used to
Thank you for your comment!
Looking forward to seeing what you build
This can be used to justify about everything so it doesn't really narrow things down.
This sounds like a blog with perhaps a comment section.
From my perspective your research was fairly narrow.
There are two articles that may be helpful
Patterns for Building JavaScript Websites in 2022
Ryan Carniato for This is Learning ・ Jun 8 ・ 9 min read
and experiences. Web. frameworks. future. me.
This should give you the wide 20,000 foot view of what is going on right now.
So my inclination would be to give Astro a very good look.
So you could start with SSG functionality for content with markdown and MDX then perhaps add social networking related client side functionality with webmention, Staticman, utterances, or some other way novel way.
Thank you for the suggestions! I will check them out.
You all should read this
After using both Vue and React I can 100% assure you that Vue easly Stomps React in everything. The thing is that Vue is not built by the holy saviour Facebook so it's not that popular although how amazing it is.
I'm glad to hear that you've had a good experience with Vue. I'm definitely considering using it for my website
Definitely support that 100%, you won't regret it....good luck.
Thank you!
Hello Anna Baker,
Thank you for your article.
It gave me an overview of React, NextJS and VueJS.
Unfortunately I can't recommend you which framework is the best because when I wrote my first and last personal website I used Notepad++ and a browser to implement it. The same applies to my internship as a web developer. The difference was that in addition to the tools mentioned, I also used WordPress.
The most important thing at that time was always feedback because it helped me eliminate some features that I thought would be cool :D.
Hello there,
Thank you so much for your kind words on my article! I'm glad it was helpful in giving you an overview of some of the most popular frameworks out there.
I totally agree with you, feedback is a great thing :)
I liked your article! I can suggest to try angular, We can collaborate together if you want :)
Thank you so much for enjoying my article! I may give angular a try in the future, and I would love to collaborate with you if the opportunity ever arises :)
Send me a message on my Twitter/LinkedIn, then we will could discuss about it.
Sure will do :)
VUE, your welcome.
Thanks!
What kind of site are you building? Iam making my first site right now as well .
Hello,
I am building a simple website for learning purposes :)
It's great to hear that you are also building your first website! What kind of website are you looking to create?
I am doing a tech blog with JAMstack approach using 11ty. I am writing articles about its creation process on here then I have some articles to start the site with when it goes live
That's really cool! I'm excited to see what you have in store for when it goes live
Astro.build
Also, you may consider Redwood JS which is promising or gatsby.
Thank you for the suggestion!
Smaller scale - Vue.js all the way. SSR wise - Svelte Kit or Nuxt.js.
TypeScript should be now used by default on both ends if you write them in JavaScript.
Thank you for your advice! I appreciate you taking the time to help me out. :)
Ok, so what struck me here is that you said
And then you went straight into what 99% of newbies are using today. React/Vue Javascript frameworks that require a few npm installs and button presses and your site is done.
WordPress can actually be quite challenging if you were to build a custom theme, add custom plugins, use shortcodes and ajax calls to load dynamic data and apply caching, and so on and so on.
PHP in itself, building a site from scratch in PHP is relatively easy, but i'd say still more complex than any JS framework since again you'd actually be writing the url handling logic yourself. Try managing sessions and cookies and building a custom CMS in PHP versus any JS frameworks and you'll find it much more challenging and a greater learning experience.
I dare say Python would be a bigger challenge, mostly because i find it a tedious but simple language that likes things done in very specific ways so building anything with it would be more work than necessary.
Going back to JavaScript, why not build a dynamic site with nothing but vanilla JS?
That would also be far more of a challenge than using any framework. Note for PHP i skipped Laravel which is also a few commands away from having a done site without understanding how it all really works.
You want to learn and share things in your journey? then look at building things from scratch and you will learn a heck of a lot more than just installing premade code, writing some basic interactions on top and calling it a day.
Learning how things work from the ground up is the best thing a dev can do for their long term career. Once you do, all the tools and languages don't matter, you can work with any of them because you understand what's happening under the hood so to speak.
At most, I agree with your post up to:
Nowadays, building things from scratch is time-consuming and, overall, a waste of time. IMHO, an efficient way of building a website is to take advantage of the right technology and frameworks for the job.
I think that looking at the end product when starting, for example, if you want to build a web course site and that's the goal, I'd choose the most efficient way to do so. Also, the industry today is focused on frameworks and less on building by writing HTML, CSS, and JS from scratch.
However, if you want to become an expert in this field, you should start from scratch, but holy shit you're in for a long journey.
That's the thing, you're really not. The majority of websites lack features that take long to build from scratch.
Sure, if you're going to build a custom ecommerce site, or a calendar /task management application, inventory management tools, and such, using prebuilt stuff of course saves time.
But 10-20 page websites, meh, the tools hardly save you time if you know how to write custom html/css/js.
And i'm not saying this to be petulant. I'm honestly saying, you can build a full website just as fast from scratch once you understand those three languages well enough. This of course takes some years of web dev to achieve.
In the mean time tools do speed things up, but leave you stuck with bugs you don't understand since you didn't write the tools.
In the long run knowing the languages speeds up your entire process, including when you choose to use tools to speed certain aspects up, but you'll also know better how to debug problems with those tools since perfect tools do not exist.