2012–2019
762 posts
2019 369
December 2019
- This decade in JavaScript
- PostgreSQL User Permissions
- Introduction to PostgreSQL
- How to install SQLite on Mac (it's already installed)
- A practical guide to Homebrew
- Do you always need a database for your app?
- How to install PostgreSQL on macOS
- Introduction to SQL
- What is a Database? And a DBMS?
- Relational Databases
- Relational Algebra
- The Relational Model
- Introduction to the ER Data Model
- Data models
- Information systems, data and information
- How to disable an ESLint rule
- How to read a CSV file with Node.js
- How to write a CSV file with Node.js
- How to make a page editable in the browser
- npm peerDependencies explained, and how npm 7+ installs them
- What are good CSS Breakpoint values for Responsive Design?
- How to flatten an array in JavaScript
- JavaScript Nullish Coalescing
- You should be the worst developer in your team
- Fix 'dangerouslySetInnerHTML did not match' in React
- How to get cookies server-side in a Next.js app
- How to become a Full Stack Developer
- How to render HTML in React
- How to replace white space inside a string in JavaScript
- How I fixed the trailing slash in Netlify rewrites
November 2019
- How to debug a React application
- How to use Next.js API Routes
- How to use the Next.js Router
- The Next.js App Bundles
- The icons added by Next.js to your app
- Adding a wrapper component to your Next.js app
- Lazy loading modules in Next.js
- How to analyze the Next.js app bundles
- Deploying a Next.js app in production
- Run code only on server or client in Next.js
- Deploying a Next.js application on Vercel
- Next.js: populate the head tag with custom tags
- View source to confirm SSR is working in Next.js
- Responsive YouTube Video Embeds
- Detect the active link in Next.js
- How to learn React
- Prefetching content in Next.js
- Styling Next.js components using CSS
- Feed data to a Next.js component using getInitialProps
- Dynamic content in Next.js with the router
- Linking two pages in Next.js using Link
- How to use the React Developer Tools
- JavaScript Optional Chaining
- JavaScript Dynamic Imports
- How to install Next.js
- Next.js vs Gatsby vs create-react-app
- How to use top-level await in JavaScript
- Calculate the number of days between 2 dates in JavaScript
- I posted my password / API key on GitHub
- How to format a date in JavaScript
October 2019
- File uploads in Node.js with Express
- How to upload a file using Fetch
- How to get both parsed body and raw body in Express
- How to use Firebase Firestore as your database
- Responsive pre tags in CSS
- How to get the days between 2 dates in JavaScript
- How to wait for 2 or more promises to resolve in JavaScript
- How to set an alias in a macOS or Linux shell
- Cross-component State Management in Svelte
- Working with events in Svelte
- Resolve promises in Svelte templates
- Svelte templates: loops
- Svelte Lifecycle Events
- How to update a Git branch from another branch
- Check if a date is in the past in JavaScript
- Reactive Statements in Svelte
- Handling State Updates in Svelte
- Svelte Bindings
- How to check if two dates are the same day in JavaScript
- How to get the month name from a JavaScript date
- How to get yesterday's date using JavaScript
- How to get tomorrow's date using JavaScript
- How to add comments in Svelte templates
- Svelte Slots
- How to rerender a Svelte component on demand
- How to invert colors using CSS
- How to send urlencoded data using Axios
- Svelte templates: conditional logic
- Export functions and variables from a Svelte component
- How to import components in Svelte
September 2019
- How to work with props in Svelte
- Getting started with Svelte - a short tutorial
- Overcoming JavaScript fatigue and loving the ecosystem
- Running commands with Node.js child processes
- How to get last element of an array in JavaScript?
- How to check if a JavaScript value is an array?
- How to work from home without going crazy
- How to join two arrays in JavaScript
- How to join two strings in JavaScript
- Links used to activate JavaScript functions
- let vs var in JavaScript: what's the difference?
- How to install an older version of a Homebrew package
- How to pass multiple parameters to a partial in Hugo
- What is Imposter Syndrome
- How to disable a button using JavaScript
- The definitive guide to the JavaScript Clipboard API
- Why you should not modify a JavaScript object prototype
- Add item to an array at a specific index in JavaScript
- How to comment in HTML (and why comments aren't private)
- JavaScript loop exits: forEach mistakes and nested loops
- How to check if an object is empty in JavaScript
- Return the result of an async function in JavaScript
- How to check if a checkbox is checked using JavaScript?
- How to write Unmaintainable Code
- Is JavaScript still worth learning?
- What is a port
- Cross Site Scripting (XSS) tutorial
- == vs === in JavaScript: what's the difference?
- What does the double negation operator !! do in JavaScript?
August 2019
- Accessibility on the Web
- How to create an HTML attribute using vanilla Javascript
- How to check if a JavaScript array contains a specific value
- How to remove all children from a DOM element
- Touch events
- How to check types in JavaScript without using TypeScript
- HTML container tags
- How to rename fields when using object destructuring
- Mouse events
- How to put an item at the bottom of its container using CSS
- How to authenticate using GraphQL Cookies and JWT
- Unix Shells Tutorial
- Keyboard events
- The HTML figure tag
- Every developer should have a blog. Here’s why, and how to stick with it
- Tutorial purgatory from the perspective of a tutorial maker
- The HTML picture tag
- Handling forms in JavaScript
- How to work with scrolling on Web Pages
- The definitive guide to Web Components and Custom Elements
- The HTML a tag (links)
- HTML img tag: add images with src, alt, and responsive sizes
- The definitive guide to drag and drop in JavaScript
- HTML tables
- HTML tags for text
- The HTML audio tag
- The HTML video tag
- The definitive guide to getUserMedia()
- HTML forms
- The HTML iframe tag
- An introduction to HTML
July 2019
- The definitive guide to the JavaScript Geolocation API
- How to disable text selection using CSS
- All the software projects I made in the past
- How to use the JavaScript bcrypt library
- React Router basics
- JavaScript Symbols
- The CSS z-index property
- Connect your React app to a backend on the same origin
- How to use the useReducer React hook
- How to use the useContext React hook
- How to use the useRef React hook
- How to use the useMemo React hook
- useEffect React hook, how to use
- How to use the useCallback React hook
- How to use the useState React hook
- The Navigator Object
- JavaScript Public Class Fields
- How to sort an array by date value in JavaScript
- How I record my videos
- How to make your first Pull Request on GitHub
- Have you filled a developer bucket?
- JavaScript Private Class Fields
- Add an event listener to multiple elements in JavaScript
- How to get the value of a CSS property in JavaScript
- JavaScript Operators
- The Streams API
- CSS Normalizing
- How to create a GraphQL Server with Node.js and Express
- How to enable ES Modules in Node.js
- How to get the real number of pageviews of a static site
June 2019
- The CSS float property and clearing
- The JavaScript in operator
- CSS Padding
- How to get the value of an input element in React
- CSS Fonts
- CSS Comments
- The JavaScript reduce() Function
- The JavaScript map() Function
- The JavaScript filter() Function
- The JavaScript Global Object
- JavaScript Error Objects
- CSS Backgrounds
- JavaScript Object Properties
- JavaScript Recursion
- JavaScript Ternary Operator
- CSS Filters
- CSS Error Handling
- Importing a CSS file using @import
- CSS Borders
- JavaScript Logical Operators
- JavaScript Return Values
- The JavaScript Spread Operator
- The CSS calc() function
- JavaScript Function Parameters
- The JavaScript delete Operator
- The CSS Display property
- The JavaScript Switch Conditional
- Styling HTML Tables with CSS
- The JavaScript if/else conditional
May 2019
- JavaScript Equality Operators
- JavaScript Type Conversions (casting)
- CSS Pseudo Elements
- CSS Pseudo Classes
- CSS Inheritance
- CSS Vendor Prefixes
- How to style lists using CSS
- JavaScript Scope
- The BroadcastChannel API
- CSS Transforms
- JavaScript Statements
- CSS Feature Queries
- CSS Media Queries and Responsive Design
- JavaScript instanceof Operator
- The DataView Object
- Typed Arrays
- The CSS position property
- The URL Object
- JavaScript Operators Precedence Rules
- ArrayBuffer
- ArrayBufferView
- The FileList Object
- JavaScript Comparison Operators
- The CSS Box Model
- CSS Typography
- The FileReader Object
- The File Object
- JavaScript new Operator
- CSS url()
- CSS Units
- CSS Colors
- JavaScript typeof Operator
April 2019
- JavaScript Internationalization
- CSS Attribute Selectors
- JavaScript Assignment Operator
- The Blob Object
- CSS Specificity
- CSS Cascade
- CSS Selectors
- JavaScript Reference: Object
- The Object valueOf() method
- The Object toString() method
- The Object toLocaleString() method
- The Object propertyIsEnumerable() method
- The Object isPrototypeOf() method
- Fix the 'Missing write access' error in npm
- The Object hasOwnProperty() method
- The Object values() method
- The Object setPrototypeOf() method
- The Object seal() method
- The Object preventExtensions() method
- The Object keys() method
- The Object isSealed() method
- The Object isFrozen() method
- The Object isExtensible() method
- The Object is() method
- The Object getPrototypeOf() method
- The Object getOwnPropertySymbols() method
- The Object getOwnPropertyNames() method
- The Object getOwnPropertyDescriptors() method
- The Object getOwnPropertyDescriptor() method
- How to be productive
- The Object freeze() method
- The Object entries() method
March 2019
- The Object defineProperty() method
- The Object defineProperties() method
- The Object create() method
- The Object assign() method
- JavaScript Property Descriptors
- JavaScript Reference: Number
- The Number isFinite() method
- The Number toFixed() method
- The Number toLocaleString() method
- The Number toExponential() method
- The Number toPrecision() method
- The Number valueOf() method
- The Number toString() method
- The Number parseInt() method
- The Number parseFloat() method
- The Number isSafeInteger() method
- The Number isNaN() method
- The Number isInteger() method
- JavaScript Reference: String
- The String valueOf() method
- The String trimStart() method
- Memoization in JavaScript
- The String trimEnd() method
- The String trim() method
- The String toUpperCase() method
- The String toString() method
- The String toLowerCase() method
- How to debug CSS by bisecting
- The String toLocaleUpperCase() method
- The String toLocaleLowerCase() method
- Introduction to Puppeteer
- The String substring() method
- The String startsWith() method
- The String split() method
- Web Scraping using Node.js and Puppeteer
February 2019
- The String slice() method
- The String repeat() method
- Arduino vs Raspberry Pi
- The String padStart() method
- The String padEnd() method
- Making a table responsive using CSS
- The String normalize() method
- The String match() method
- The String localeCompare() method
- The String lastIndexOf() method
- The UNIX Filesystem Commands
- The String indexOf() method
- The String includes() method
- The String endsWith() method
- UNIX Editors
- The String concat() method
- The String codePointAt() method
- The String charCodeAt() method
- The Node.js Runtime v8 options list
- The String charAt() method
- How I run little JavaScript snippets
- The ES2019 Guide
- The String search() method
- The String replace() method
- Configuring the macOS command line
- Configuring VS Code
- Do I need a degree to be a programmer?
- Why are programming interview questions so hard?
- Why use a preview version of a browser?
- How to list all methods of an object in JavaScript
- Does programming require knowing math?
- What is pnpm?
January 2019
- Fix the 'Unexpected identifier' error importing JS modules
- The node_modules folder size is a privilege, not a problem
- JavaScript Generators Tutorial
- Everyone can learn programming
- How to learn how to learn
- React, how to transfer props to child components
- Conditional rendering in React
- How to return multiple elements in JSX
- How to handle errors in React
- Casting in JavaScript
- How to style DOM elements using JavaScript
- Loosely typed vs strongly typed languages
- Passing undefined to a JavaScript IIFE
- How to pass a parameter to event handlers in React
- The Fish Shell: A Complete Guide
- Introduction to Bash Shell Scripting
- The Bash shell: a practical guide from commands to scripts
- How to continuously rotate an image using CSS
- Dynamically select a method of an object in JavaScript
- The TypeScript Guide
- How to estimate programming time
- How to discover a bug using git bisect
- The pros of using a boring stack
- The definitive guide to debugging JavaScript
- My notes on the Deep Work book
- Testing React components
- Destructuring Objects and Arrays in JavaScript
- Work with objects and arrays using Rest and Spread
- Introduction to PeerJS, the WebRTC library
2018 358
December 2018
- React Portals
- React StrictMode
- What is Serverless?
- Netlify Lambda Functions Tutorial
- Handling Forms in React
- CSS in React
- How to install React
- Server Side Rendering with React
- Code Splitting in React
- How I added Dark Mode to my website
- React Concept: Composition
- Introduction to create-react-app
- How to only accept images in an input file field
- Introduction to React Hooks
- React Concept: Purity
- React Concept: Immutability
- React Lifecycle Events
- JSON Web Token (JWT) explained
- React Higher Order Components
- The HTTP/2 protocol
- call() and apply() in JavaScript
- Unidirectional Data Flow in React
- How to reference a DOM element in React
- How to count the number of properties in a JavaScript object
- Sort an array of objects by a property in JavaScript
- How to set default parameter values in JavaScript
- How to encode a URL with JavaScript
- How to empty a JavaScript array
- How to replace a DOM element
- How to get the scroll position of an element in JavaScript
November 2018
- How to merge two objects in JavaScript
- Introduction to Gatsby
- What is a CDN?
- What is the JAMstack?
- Debugging Node.js: the complete practical guide
- How to use MongoDB with Node.js
- How MongoDB is different from a SQL database
- The scarcity principle applied to software products
- The MongoDB basics tutorial
- How to use the macOS terminal
- How to hide a DOM element using plain JavaScript
- Should you use or learn jQuery today?
- WebRTC, the Real Time Web API
- How much JavaScript you need to know to use React?
- Hide the Chrome address bar (URL bar) on Mac, Windows, Linux
- The JSONP Guide
- Introduction to JSON
- Run a web server from any folder
- What is a Single Page Application?
- Should you use Vue or React?
- Props vs State in React
- Get the index in a JavaScript for-of loop
- How to loop inside React JSX
- React: How to show a different component on click
- HTML Canvas API Tutorial
- React concepts: declarative
October 2018
- The React Fragment
- React Props
- The React State
- React Events
- The Virtual DOM
- React Components
- Introduction to React
- Add a click event to querySelectorAll elements
- How to change a DOM node value
- How to check if a DOM element has a class
- How to remove a class from a DOM element
- Generate a random number between two numbers in JavaScript
- How to loop over DOM elements from querySelectorAll
- How to add a class to a DOM element
- How to wait for the DOM ready event in plain JavaScript
- Async vs sync code
- Why should you use Node.js in your next project?
- How to write a JSON object to file in Node.js
- How to determine if a date is today in JavaScript
- How to get the last updated date of a file using Node.js
- How to use Async and Await with Array.prototype.map()
- How to remove a file with Node.js
- How to create an empty file in Node.js
- The HTTP Status Codes List
- Caching in HTTP
- The curl guide to HTTP requests
- The HTTPS protocol
- The HTTP protocol
- What is an RFC?
- The ES2018 Guide
- How to initialize a new array with values in JavaScript
- The ES2017 Guide
- How to get the current URL in JavaScript
- The ES2016 Guide
- Why should I create an email list?
September 2018
- How to create a multiline string in JavaScript
- The ES6 Guide
- How to check if a string starts with another in JavaScript
- Get the unique properties of objects in a JavaScript array
- How to validate an email address in JavaScript
- Product / market fit
- How to check if a file exists in Node.js
- Remote working for software developers
- Node, the difference between development and production
- Manage Cookies with Express
- The niche
- Handling CORS in Express
- Handling file uploads in forms using Express
- Handling forms in Express
- The idea is nothing
- Work with HTTP headers in Express
- Setup Let's Encrypt for Express
- Express Middleware
- Handling redirects with Express
- Have a purpose for your business
- Retrieve the POST query parameters using Express
- The Node events module
- The Node os module
- Express, Request Parameters
- Generating value
- How to exit from a Node.js program
- How to read environment variables from Node.js
- The Pug Guide
- An Express HTTPS server with a self-signed certificate
- Error handling in Node.js
- The freedom of a product business
- Routing in Express
- Sanitizing input in Express using express-validator
- Send files using Express
- Send a response using Express
- Developers, learn marketing
- Express Sessions
- Send a JSON response using Express
August 2018
- Serving Static Assets with Express
- Create your own job security
- Express Templates
- Validating input in Express using express-validator
- The basics of working with MySQL and Node
- Using WebSockets with Node.js
- As an indie maker, what kind of product should you build?
- The Node http module
- The complete Node.js path guide
- Working with folders in Node
- Build your own platform
- Node file stats
- Working with file descriptors in Node
- Node File Paths
- Writing files with Node
- HTTP requests in Node using Axios
- Reading files with Node
- Making HTTP requests with Node
- The Node fs module
- The Node Event emitter
- Build an HTTP Server
- Understanding process.nextTick()
- Understanding setImmediate()
- npm dependencies and devDependencies
- Build a lifestyle business
- The Node.js Event Loop
- Uninstalling npm packages with npm uninstall
- npm global or local packages
- Output to the command line using Node
- Accept input from the command line in Node
- How much JavaScript do you need to know to use Node?
- How to use the Node.js REPL
- Node, accept arguments from the command line
- A brief history of Node.js
- How to install Node.js
- Get HTTP request body data using Node
- The Node.js Buffer guide
- Differences between Node and the Browser
- Make an HTTP POST request using Node
- How to log an object in Node
- Expose functionality from a Node file using exports
- Install an older version of an npm package
- How to get the current folder in Node
- Review of the book The 4-Hour Work Week
- Find the installed version of an npm package
- Node.js Streams
- Update all the Node dependencies to their latest version
- SEO for developers writing blogs
- Parsing JSON with Node.js
- Should you commit the node_modules folder to Git?
- Retrieve the GET query string parameters using Express
- The package-lock.json guide
- Semantic Versioning using npm
- How to update Node.js
- How to use or execute a package installed using npm
- The package.json guide
- Where does npm install the packages?
- Quotes in JavaScript
- The JavaScript Cookbook
July 2018
- HTTP vs HTTPS
- The HTTP Response Headers List
- The HTTP Request Headers List
- How HTTP requests work
- How to use JavaScript Classes
- JavaScript Exceptions
- JavaScript Prototypal Inheritance
- How to make your JavaScript functions sleep
- 8 good reasons to become a software developer
- Generate random and unique strings in JavaScript
- How to setup the Git SSH keys
- The npx Node Package Runner
- The JavaScript Math library
- The JavaScript Arithmetic operators
- Semicolons in JavaScript
- Roadmap to become a Vue 3 developer
- Why data must be a function in Vue
- How to use v-model in Vue
- The Vue.js Cheat Sheet
- Common CSS properties and their Tailwind utility classes
- A Moment.js tutorial
- The definitive guide to JavaScript Dates
- How to inspect a JavaScript object
- How to trim the leading zero in a number in JavaScript
- Dynamically show a Vue component
- A quick reference guide to Modern JavaScript Syntax
- How to replace all occurrences of a string in JavaScript
- Run package.json scripts upon any file changes in a folder
June 2018
- How to setup Tailwind CSS
- Vue Router for Vue 3
- The V8 JavaScript Engine
- Emmet Tutorial
- Using Tailwind CSS with Vue 3
- Parcel, a simpler webpack
- Vuex, the Vue.js State Manager
- Vue Components Communication
- Vue.js Events
- JavaScript Asynchronous Programming and Callbacks
- Vue Component Props
- How to build your first Electron app
- Vue Slots
- Introduction to CommonJS
- Introduction to ES Modules
- Vue Components
- Formatting values in Vue templates
- Vue methods vs watchers vs computed properties
- Vue.js Watchers
- Styling Vue.js components using CSS
- Vue.js Computed Properties
- The stack I use to run this blog
- Vue.js Methods
- Vue Directives
- Vue templates and interpolations
- Vue Single File Components
- Create your first app with Vue.js
- Configuring VS Code for Vue Development
May 2018
- How to use VS Code
- The Vue.js DevTools
- The Vue CLI: current setup and migration guide
- An overview of Vue.js
- The Express Guide
- How to check if a JavaScript object property is undefined
- How to append an item to an array in JavaScript
- Introduction to CSS
- How to remove a property from a JavaScript object
- How to redirect to another web page using JavaScript
- JavaScript Immediately-invoked Function Expressions (IIFE)
- JavaScript Strict Mode
- How to get the current timestamp in JavaScript
- Testing JavaScript with Jest
- this in JavaScript
- The Speech Synthesis API
- How to convert a string to a number in JavaScript
- How to format a number as a currency value in JavaScript
- Interact with the Google Analytics API using Node.js
- How to authenticate to any Google API
- How I automate sharing old blog posts on X (Twitter)
- How to uppercase the first letter of a string in JavaScript
- Unicode in JavaScript
- Introduction to Unicode and UTF-8
- The Beginner's Guide to Meteor
- How to deep clone a JavaScript object
- Airtable API for Developers
- Glitch, a great Platform for Developers
- How to remove an item from an Array in JavaScript
- How to check if a string contains a substring in JavaScript
April 2018
- How to use JavaScript Regular Expressions
- A tutorial to JavaScript Arrow Functions
- Introduction to WebSockets
- Working with the DevTools Console and the Console API
- A CSS Animations Tutorial
- Introduction to CSS Transitions
- Compare the options for Animations on the Web
- JavaScript Closures explained
- The JavaScript Glossary
- How the HTML doctype controls standards and quirks mode
- JavaScript Functions
- The JavaScript Event Loop
- The definitive guide to requestAnimationFrame()
- Web Workers
- The complete guide to print CSS
- Write JavaScript loops using map, filter, reduce and find
- Where to host a Node.js app
- JavaScript Loops
- JavaScript Events Explained
- CORS, Cross-Origin Resource Sharing
- The Web Platform Guide
- What are Data URLs
- An in-depth SVG tutorial
- XMLHttpRequest (XHR)
- Getting started with Axios requests and error handling
- The WebP Image Format
- The History API
- Auto trigger deploys on Netlify
March 2018
- Discover JavaScript Timers
- How to set, read and secure cookies in a web app
- The Web Storage API: local storage and session storage
- Introduction to React Router
- CSS System Fonts
- The Document Object Model (DOM)
- Efficiently load JavaScript with defer and async
- The Next.js Guide
- The Node.js Guide
- How to center anything with CSS
- A list of cool Chrome DevTools Tips and Tricks
- A complete introduction to Apollo, the GraphQL toolkit
- JavaScript Expressions
- A guide to JavaScript Template Literals
- The Selectors API: querySelector and querySelectorAll
- Keep your code clean with ESLint
- The CSS margin property
- A tutorial to host your Static Site on Netlify
- Format your code with Prettier
- Overview of the Browser DevTools
- Introduction to PostCSS
- CSS Variables (Custom Properties)
- The Set JavaScript Data Structure
- The JavaScript Map Data Structure
- JavaScript Loops and Scope
February 2018
- Dive into IndexedDB
- The Git Guide
- How to use async/await in JavaScript
- An introduction to Yarn
- An introduction to Functional Programming with JavaScript
- The Notification API Guide
- The Cache API Guide
- A list of sample Web App Ideas
- Service Workers Tutorial
- A developer's introduction to GitHub
- JavaScript Variables
- JavaScript Types
- A short and simple guide to Babel
- The Lexical Structure of JavaScript
- How to use promises in JavaScript
- Styled Components
- The Channel Messaging API
- CSS Grid Tutorial
- The Flexbox Tutorial
- The Push API Guide
- The Fetch API
- The Complete ECMAScript Guide
January 2018
- Getting started with JSX
- An introduction to GraphQL
- An introduction to the npm package manager
- Learn how to use Redux
- Introduction to Webpack
- Introduction to the JavaScript Programming Language
- The Complete Guide to Progressive Web Apps
- How to start with Firebase Hosting
- An incomplete list of great Git tutorials
2017 24
December 2017
November 2017
October 2017
August 2017
- How to set environment variables in bash and zsh
- Create an app with Electron and React
- An introduction to JavaScript Arrays
- VS Code setup for React development
- VS Code: use language-specific settings
- React app example: fetch GitHub users from the API
- Build a simple counter with React
- Deploying a Go Application in a Docker Container
- Go tutorial: REST API backed by PostgreSQL
- Go Data Structures: Binary Search Tree
- The complete guide to Go Data Structures
- Go Data Structures: Set
- Building a Web Crawler with Go to detect duplicate titles
- Getting started with Go CPU and memory profiling
- Visualize your local Git contributions with Go