Saturday, December 12, 2015

create a regular website without


My advice would be to create a regular website without using any front-end framework at all. Keep it simple, but focus on "completeness". You will find that you will get a much better feel with the most fundamental skills that any web developer should have affection with.
Here is a list of todo's, but before you start designing the site, read the book "Don't make me think" by Steve Krug.
  • Try to create a website that gracefully degrades to IE6+ and older browsers, even if this isn't your target audience in the first place. When you use 3rd party jQuery plugins, try to make them gracefully degrade as well;
  • Gracefully degrade CDN's. Some people may claim this is unnecessary, do it anyway for completeness;
  • Implement an error page, saying that you don't support IE6- and/or other older browsers;
  • Try to make your website work when scripting is disabled;
  • Use semantic HTML5 elements (respect the rules, and degrade gracefully);
  • Pay attention to respect the Document Outline, based on the correct use Header elements;
  • Pay attention to use keywords in the correct places in the scope of SEO;
  • Create an HTML and XML sitemap;
  • Create robots.txt;
  • Create a responsive design and use relative units. Also degrade gracefully;
  • Optimize for screen and print using media queries, if it is heavily content based;
  • Pay attention to Accessibility (ARIA) for Assistive Technologies;
You may think this is overkill, but as a first project, I strongly suggest to do these things. There are a few reasons:
  • Using frameworks make things happen the "easy" way. For learning purposes, it's much more interesting to know what's going on before learning the framework;
  • Despite you may find the previous list overkill for your target audience, not knowing "how to" will keep stinging that place in your mind until you did it anyway. Honestly, I found that there are at times inconsistencies that are hard to reconcile (eg. making everything work without Javascript, while gracefully degrading HTML5 semantic elements and media queries), but at least you have considered the pros/cons;
  • Creating a website is not about the programmer but the audience, and the audience doesn't care about frameworks, they just want it to work. I wouldn't put ease before accessibility;
  • SEO is the same in this field: websites don't stand on their own, and optimizing a website for search engines is a must.
Nothing prevents you from moving on to use frameworks after that, but doing this list gives you another view on web development in general. I've used Backbone and React in the past, but I feel that learning them in a first phase deflects your attention from the true purpose, which is thinking about what makes a website great. In that sense, I'd have to go with great content (the content), SEO optimization (the exposure) and UI optimization (Don't make me think). The rest (while possibly functional, and perhaps still important) comes after that.
Of course, the argument my arise: what if I want to create a webapp that allows to create visual diagrams in a canvas? In that case, I'd still go with the previous approach, and then specialise in that specific field to make it happen.