On Web Development in General

https://leanpub.com/on-web-development-2

On Big Picture Thinking in Web Development

https://leanpub.com/on-web-development-2

Selector Performance

https://leanpub.com/on-web-development-2

Maintainability

https://leanpub.com/on-web-development-2

Design Consistency

https://leanpub.com/on-web-development-2

Accessibility

https://leanpub.com/on-web-development-2

Vision

https://leanpub.com/on-web-development-2

User-Centered Web Development

https://leanpub.com/on-web-development-2

Web Developers Have Users

https://leanpub.com/on-web-development-2

Web Developers Can Focus on End Users

https://leanpub.com/on-web-development-2

Web Developers Can Focus on Developer Users

https://leanpub.com/on-web-development-2

A Short Guide to Minimal Web Development

https://leanpub.com/on-web-development-2

Master the Core Technologies

https://leanpub.com/on-web-development-2

Read the Specs

https://leanpub.com/on-web-development-2

Practice

https://leanpub.com/on-web-development-2

Publish

https://leanpub.com/on-web-development-2https://leanpub.com/on-web-development-2

Primary Subjects

https://leanpub.com/on-web-development-2

Secondary Subjects

https://leanpub.com/on-web-development-2

Do It Yourself

https://leanpub.com/on-web-development-2https://leanpub.com/on-web-development-2

To Be Avoided

https://leanpub.com/on-web-development-2

Find the Shortest Way

https://leanpub.com/on-web-development-2

Keep It Simple

https://leanpub.com/on-web-development-2

Tailor

https://leanpub.com/on-web-development-2

Know Simple and Simple

https://leanpub.com/on-web-development-2

Automate

https://leanpub.com/on-web-development-2

Review

https://leanpub.com/on-web-development-2

Two Paradigms of Web Development

https://leanpub.com/on-web-development-2

Boring Web Development

https://leanpub.com/on-web-development-2

Celebrating the Wrong Side of Web Development

https://leanpub.com/on-web-development-2

Successful Web Development Is Boring Web Development

https://leanpub.com/on-web-development-2

My Web Development Wishlist 2024

https://leanpub.com/on-web-development-2

On Ethics in Web Development (With a Brief Overview of Ethical Theories)

https://leanpub.com/on-web-development-2

A Quick Overview of Ethical Theories

https://leanpub.com/on-web-development-2

What This Means and How It Can Be Used

https://leanpub.com/on-web-development-2

Expert Web Development: A 3rd Key Differentiator

https://leanpub.com/on-web-development-2

Letter and Spirit of Web Development

https://leanpub.com/on-web-development-2

Website Issues: On the Relevance of Audience Size and Impact

https://leanpub.com/on-web-development-2

Issues in Relation to Audience Size and Impact on the Audience

https://leanpub.com/on-web-development-2

A Model to Enable Better Prioritization

https://leanpub.com/on-web-development-2

Audience Size and Impact in Your Work

https://leanpub.com/on-web-development-2

An Attempt at Outlining the Many Factors Influencing Developer Experience

https://leanpub.com/on-web-development-2

Extrinsic Factors

https://leanpub.com/on-web-development-2

Quality

https://leanpub.com/on-web-development-2

Usability

https://leanpub.com/on-web-development-2

Community

https://leanpub.com/on-web-development-2

Intrinsic Factors

https://leanpub.com/on-web-development-2

Understandable-Simple vs. Minimal-Simple Code

https://leanpub.com/on-web-development-2

Code in Quarantine

https://leanpub.com/on-web-development-2

What Code to Put Under Quarantine

https://leanpub.com/on-web-development-2

How to Mark Code in Quarantine

https://leanpub.com/on-web-development-2

How to Proceed with Code in Quarantine

https://leanpub.com/on-web-development-2

HTML, CSS, and Dependency Direction

https://leanpub.com/on-web-development-2

The Relationship Between HTML and CSS

https://leanpub.com/on-web-development-2

The Situation With Long-Term Maintenance

https://leanpub.com/on-web-development-2

HTML and CSS and the 2019 Web Almanac

https://leanpub.com/on-web-development-2

HTML

https://leanpub.com/on-web-development-2

CSS

https://leanpub.com/on-web-development-2

“Must Work Without JavaScript”

https://leanpub.com/on-web-development-2

On the Responsibility That Comes With Good JavaScript Support

https://leanpub.com/on-web-development-2

JavaScript Abuse and Its Consequences

https://leanpub.com/on-web-development-2

Responsible JavaScript

https://leanpub.com/on-web-development-2

Two Approaches to Accessibility on the Web

https://leanpub.com/on-web-development-2

Author-Centered Accessibility

https://leanpub.com/on-web-development-2

…Won’t Lead to Automagical Access

https://leanpub.com/on-web-development-2

Conformance and Accessibility

https://leanpub.com/on-web-development-2

The Problem With Web Development Checklists, or: The Frontend Checklist, Revised

https://leanpub.com/on-web-development-2

The Frontend Checklist: Use 33, Question 13, Ignore 41 Items

https://leanpub.com/on-web-development-2

Doctype: The doctype is HTML5 and is at the top of your HTML pages

https://leanpub.com/on-web-development-2

Charset: The charset declared (UTF-8) is declared correctly

https://leanpub.com/on-web-development-2

Viewport: The viewport is declared correctly

https://leanpub.com/on-web-development-2

Title: A title is used on all pages

https://leanpub.com/on-web-development-2

Description: A meta description is provided, it is unique and doesn’t possess more than 150 characters

https://leanpub.com/on-web-development-2

Favicons: Each favicon has been created and displays correctly

https://leanpub.com/on-web-development-2

Apple web app meta: Apple meta tags are present

https://leanpub.com/on-web-development-2

Windows tiles: Windows tiles are present and linked

https://leanpub.com/on-web-development-2

Canonical: Use rel="canonical" to avoid duplicate content

https://leanpub.com/on-web-development-2https://leanpub.com/on-web-development-2

Direction attribute: The direction of [reading] is specified on the html tag (it can be used on another HTML tag)

https://leanpub.com/on-web-development-2https://leanpub.com/on-web-development-2

Conditional Comments: Conditional Comments are present for [Internet Explorer] if needed

https://leanpub.com/on-web-development-2https://leanpub.com/on-web-development-2

Inline critical CSS: The inline critical CSS is correctly injected in the [document] head

https://leanpub.com/on-web-development-2

CSS order: All CSS files are loaded before any JavaScript files in the [document] head

https://leanpub.com/on-web-development-2

Facebook Open Graph

https://leanpub.com/on-web-development-2

Twitter Card

https://leanpub.com/on-web-development-2https://leanpub.com/on-web-development-2

Error pages: Error 404 page and 5xx exist

https://leanpub.com/on-web-development-2https://leanpub.com/on-web-development-2

Clean up comments: Unnecessary code needs to be removed before sending the page to production

https://leanpub.com/on-web-development-2

W3C compliant: All pages need to be tested with the W3C validator to identify possible issues in the HTML code

https://leanpub.com/on-web-development-2

HTML lint: I use tools to help me analyze any issues I could have on my HTML code

https://leanpub.com/on-web-development-2https://leanpub.com/on-web-development-2

Adblockers test: Your website shows your content correctly with adblockers enabled

https://leanpub.com/on-web-development-2

Webfont format: WOFF, WOFF2 and TTF are supported by all modern browsers

https://leanpub.com/on-web-development-2

Webfont size: Webfont sizes don’t exceed 2 MB (all variants included)

https://leanpub.com/on-web-development-2

Webfont loader: Control loading behavior with a webfont loader

https://leanpub.com/on-web-development-2

Responsive Web Design: The website is using responsive web design

https://leanpub.com/on-web-development-2https://leanpub.com/on-web-development-2

Unique ID: If IDs are used, they are unique to a page

https://leanpub.com/on-web-development-2

Reset CSS: A CSS reset (reset, normalize or reboot) is used and up to date

https://leanpub.com/on-web-development-2

JS prefix: All classes (or [IDs] used in JavaScript files) begin with js- and are not styled into the CSS files

https://leanpub.com/on-web-development-2

Embedded or inline CSS: Avoid at all cost [embedding] CSS in <style> tags or using inline CSS

https://leanpub.com/on-web-development-2

Vendor prefixes: CSS vendor prefixes are used and are generated accordingly with your browser support compatibility

https://leanpub.com/on-web-development-2

Concatenation: CSS files are concatenated in a single file (not for HTTP/2)

https://leanpub.com/on-web-development-2

Minification: All CSS files are minified

https://leanpub.com/on-web-development-2

Non-blocking: CSS files need to be non-blocking to prevent the DOM from taking time to load

https://leanpub.com/on-web-development-2

Stylelint: All CSS or SCSS files are without any errors

https://leanpub.com/on-web-development-2

Responsive web design: All pages were tested with the correct breakpoints

https://leanpub.com/on-web-development-2

CSS validator: The CSS was tested and pertinent errors were corrected

https://leanpub.com/on-web-development-2

Desktop browsers: All pages were tested on all current desktop browsers (Safari, Firefox, Chrome, Internet Explorer, Edge…)

https://leanpub.com/on-web-development-2

Mobile browsers: All pages were tested on all current mobile browsers (Native browser, Chrome, Safari…)

https://leanpub.com/on-web-development-2

OS: All pages were tested on all current OS (Windows, Android, iOS, Mac…)

https://leanpub.com/on-web-development-2

Reading direction: All pages need to be tested for LTR and RTL languages if they need to be supported

https://leanpub.com/on-web-development-2

JavaScript inline: You don’t have any JavaScript code inline (mixed with your HTML code)

https://leanpub.com/on-web-development-2

Concatenation: JavaScript files are concatenated

https://leanpub.com/on-web-development-2

Minification: JavaScript files are minified (you can add the .min suffix)

https://leanpub.com/on-web-development-2

noscript tag: Use [the] <noscript> tag in the HTML body if a script type on the page is unsupported or if scripting is currently turned off […]

https://leanpub.com/on-web-development-2

Non-blocking: JavaScript files are loaded asynchronously using async or deferred using [the] defer attribute

https://leanpub.com/on-web-development-2

Modernizr: If you need to target some specific features you can use a custom Modernizr to add classes in your <html> tag

https://leanpub.com/on-web-development-2

ESLint: No errors are flagged by ESLint (based on your configuration or standards rules)

https://leanpub.com/on-web-development-2

Optimization: All images are optimized to be rendered in the browser; WebP format could be used for critical pages (like [the] Homepage)

https://leanpub.com/on-web-development-2

picture/srcset: You use picture/srcset to provide the most appropriate image for the current viewport of the user

https://leanpub.com/on-web-development-2

Retina: You provide layout images 2× or 3×, support retina display

https://leanpub.com/on-web-development-2

Sprite: Small images are in a sprite file (in the case of icons, they can be in an SVG sprite image)

https://leanpub.com/on-web-development-2

Width and height: Set width and height attributes on <img> if the final rendered image size is known (can be omitted for CSS sizing)

https://leanpub.com/on-web-development-2

Alternative text: All <img> have an alternative text which describe the image visually

https://leanpub.com/on-web-development-2

Lazy loading: Images are lazy-loaded (a noscript fallback is always provided)

https://leanpub.com/on-web-development-2

Progressive Enhancement: Major functionality like main navigation and search should work without JavaScript enabled

https://leanpub.com/on-web-development-2

Color contrast: Color contrast should at least pass WCAG AA (AAA for mobile)

https://leanpub.com/on-web-development-2

h1: All pages have an h1 which is not the title of the website

https://leanpub.com/on-web-development-2

Headings: Headings should be used properly and in the right order (h1 to h6)

https://leanpub.com/on-web-development-2

Specific HTML5 input types are used: This is especially important for mobile devices that show customized keypads and widgets for different types

https://leanpub.com/on-web-development-2

Label: A label is associated with each input form element; in case a label can’t be displayed, use aria-label instead

https://leanpub.com/on-web-development-2

Accessibility standards testing: Use the WAVE tool to test if your page respects the accessibility standards

https://leanpub.com/on-web-development-2

Keyboard navigation: Test your website using only your keyboard in a previsible order; all interactive elements are reachable and usable

https://leanpub.com/on-web-development-2

Screen reader: All pages were tested in two or more screen readers (such as JAWS, VoiceOver, and NVDA)

https://leanpub.com/on-web-development-2

Focus style: If the focus is disabled, it is replaced by visible state in CSS

https://leanpub.com/on-web-development-2

Page weight: The weight of each page is between 0 and 500 KB

https://leanpub.com/on-web-development-2

Minified HTML: Your HTML is minified

https://leanpub.com/on-web-development-2

Lazy loading: Images, scripts and CSS need to be lazy loaded to improve the response time of the current page

https://leanpub.com/on-web-development-2https://leanpub.com/on-web-development-2

DNS resolution: DNS of third-party services that may be needed are resolved in advance during idle time using dns-prefetch

https://leanpub.com/on-web-development-2

Preconnection: DNS lookup, TCP handshake and TLS negotiation with services that will be needed soon is done in advance during idle time using preconnect

https://leanpub.com/on-web-development-2

Prefetching: Resources that will be needed soon (e.g. lazy loaded images) are requested in advance during idle time using prefetch

https://leanpub.com/on-web-development-2

Preloading: Resources needed in the current page (e.g. scripts placed at the end of <body>) [are requested] in advance using preload

https://leanpub.com/on-web-development-2

Google PageSpeed: All your pages were tested (not only the homepage) and have a score of at least 90/100

https://leanpub.com/on-web-development-2

Google Analytics: Google Analytics is installed and correctly configured

https://leanpub.com/on-web-development-2

Headings logic: Heading text helps to understand the content in the current page

https://leanpub.com/on-web-development-2

sitemap.xml: A sitemap.xml exists and was submitted to Google Search Console

https://leanpub.com/on-web-development-2

robots.txt: The robots.txt is not blocking webpages

https://leanpub.com/on-web-development-2

Structured data: Pages using structured data are tested and are without errors

https://leanpub.com/on-web-development-2

Structured data helps crawlers understand the content in the current page

https://leanpub.com/on-web-development-2https://leanpub.com/on-web-development-2https://leanpub.com/on-web-development-2

In Critical Defense of Frontend Development

https://leanpub.com/on-web-development-2

What Is Frontend Development?

https://leanpub.com/on-web-development-2

Problem 1: Frontend Development Is Much Larger

https://leanpub.com/on-web-development-2

Problem 2: Frontend Development Is Much More Complex

https://leanpub.com/on-web-development-2

Start Respecting Frontend Development

https://leanpub.com/on-web-development-2

3 [+1] Books to Become a Better Developer

https://leanpub.com/on-web-development-2

A Philosophy of Software Design by John K. Ousterhout

https://leanpub.com/on-web-development-2

The Pragmatic Programmer by Thomas David and Hunt Andrew

https://leanpub.com/on-web-development-2

Clean Code by Robert C. Martin

https://leanpub.com/on-web-development-2

Addition: Fundamentals of Software Architecture by Mark Richards and Neal Ford

https://leanpub.com/on-web-development-2

What We Should Teach Up-and-Coming Developers

https://leanpub.com/on-web-development-2

Great Sources

https://leanpub.com/on-web-development-2

Great Principles

https://leanpub.com/on-web-development-2

Great Ethics

https://leanpub.com/on-web-development-2

How to Identify Your Unknown Unknowns in Web Development

https://leanpub.com/on-web-development-2

Web Development Has a Short-Term Memory

https://leanpub.com/on-web-development-2

The 3-Second Frontend Developer Test

https://leanpub.com/on-web-development-2

Definition of Web Developer

https://leanpub.com/on-web-development-2

Thoughts for the Aging Web Developer

https://leanpub.com/on-web-development-2

Focus on Your Strengths

https://leanpub.com/on-web-development-2

Specialize

https://leanpub.com/on-web-development-2

Reinvent Yourself

https://leanpub.com/on-web-development-2

Take the Next Step

https://leanpub.com/on-web-development-2