This is a collection of short notes of the things I have learned on a daily basis while working on different technologies. I share these notes as I learn in public.
118 TILs and counting...
- 2025-03-20: March 20, 2025
- 2020-01-01: Use Zod to validate File input
- 2020-01-02: X-Robots-Tag
- 2020-01-03: Remove debugger statements in Vite
- 2020-01-04: Delete lines in vi
- 2020-01-05: Using Netlify Redirects to build a URL Shortener
- 2020-01-06: Using GitHub Actions to push changes
- 2020-01-07: Type declarations for a Vite app
- 2020-01-08: User-defined type guard in TypeScript
- 2020-01-09: TypeScript Template Literal Types
- 2020-01-10: TypeScript: Satisfies operator
- 2020-01-11: Inferring the types from a Remix loader
- 2020-01-12: Array.prototype.reduce() can be typed in TypeScript
- 2020-01-13: TypeScript: ElementRef for React.useRef
- 2020-01-14: TypeScript: Type-only imports and exports
- 2020-01-15: Extending HTML Element Types in React 18
- 2020-01-16: Overriding HTML Attributes in React TypeScript
- 2020-01-17: TypeScript: @ts-expect-error
- 2020-01-18: TypeScript: Exhaustiveness checking in switch with union type
- 2020-01-19: TypeScript Exact Types
- 2020-01-20: TypeScript: exactOptionalPropertyTypes
- 2020-01-21: TypeScript Config: noUnCheckedIndexAccess
- 2020-01-22: TypeScript: Callable interface
- 2020-01-23: TypeScript Assertion Functions
- 2020-01-24: TypeScript narrow Array.includes()
- 2020-01-25: The Idiomatic Text element
- 2020-01-26: The Details disclosure element
- 2020-01-27: Using the
tar
command - 2020-01-28: SvelteKit Sync
- 2020-01-29: Svelte components have file location meta data
- 2020-01-30: Deep clone object with structuredClone()
- 2020-01-31: Spaces vs tabs: It's an accessibility issue
- 2020-02-01: Microfrontend using single-spa
- 2020-02-02: setTimeout(): Node.js vs Web
- 2020-02-03: Implementing a custom RTK Query baseQuery
- 2020-02-04: Rename an AWS Lightsail instance
- 2020-02-05: Remove React app from the DOM
- 2020-02-06: Proxying using Netlify Redirects
- 2020-02-07: postgresql-moddatetime
- 2020-02-08: Use pnpm's shell-emulator to execute scripts on all platforms
- 2020-02-09: Make changes to a dependency using pnpm patch
- 2020-02-10: Today I Learned: PHP
- 2020-02-11: Using Nunjucks Macros in Eleventy
- 2020-02-12: Null is a billion-dollar mistake
- 2020-02-13: Show data about an npm package using npm view
- 2020-02-14: npm-latest
- 2020-02-15: npm disable audit in .npmrc
- 2020-02-16: Accessing stdin with file descriptor 0
- 2020-02-17: Nginx Nested Locations
- 2020-02-18: Next.js statically typed links
- 2020-02-19: Netlify Node.js Version
- 2020-02-20: Module Federation
- 2020-02-21: Recursively delete .DS_Store
- 2020-02-22: Logging variables in Chrome DevTools using logpoints
- 2020-02-23: JSON.stringify replacer parameter
- 2020-02-24: JSON.parse reviver parameter
- 2020-02-25: JavaScript WeapMap
- 2020-02-26: JavaScript: Tagged Template Literals
- 2020-02-27: JavaScript Symbol.iterator
- 2020-02-28: Spread operator clones enumerables properties
- 2020-02-29: Signals
- 2020-03-01: JavaScript: scrollend event
- 2020-03-02: Using Promise.race() to implement request timeout
- 2020-03-03: JavaScript: Negative Zero (-0)
- 2020-03-04: Math.random() vs Crypto.getRandomValue()
- 2020-03-05: JavaScript Map
- 2020-03-06: JavaScript Import Map
- 2020-03-07: Fetch Response.statusText
- 2020-03-08: Copy a function in JavaScript
- 2020-03-09: Send analytics data using the Beacon API
- 2020-03-10: JavaScript Barrel File
- 2020-03-11: Add an object to existing JSON using jq
- 2020-03-12: Smart App Banners
- 2020-03-13: import.meta
- 2020-03-14: The Mark Text element
- 2020-03-15: Hex color notation have an alpha channel
- 2020-03-16: GitHub Issue Forms
- 2020-03-17: Create a release in GitHub using API
- 2020-03-18: Show contents of Git stash
- 2020-03-19: Restore a deleted file in Git
- 2020-03-20: Replace a Git Repository with a New One
- 2020-03-21: Git Remove All Commits
- 2020-03-22: Git: push --force-with-lease
- 2020-03-23: Git: Work with multiple accounts
- 2020-03-24: Use same git commit message as previous commit
- 2020-03-25: Checkout previous branch in Git
- 2020-03-26: Add to previous Git commit
- 2020-03-27: Get last modified date using GitHub GraphQL API
- 2020-03-28: Redirect stderr to stdout using 2>&1
- 2020-03-29: ESLint's
no-restricted-syntax
rule - 2020-03-30: Enable HTTP/2 in Vite's Dev Server by using HTTPS
- 2020-03-31: EditorConfig Glob Expressions
- 2020-04-01: How to Stop All Docker Containers
- 2020-04-02: Push Docker image to self-hosted registry
- 2020-04-03: Docker: Copy files from another image
- 2020-04-04: List the files with the most disk usage
- 2020-04-05: Override web content and HTTP response headers locally
- 2020-04-06: Emulate a focused page in DevTools
- 2020-04-07: Delete files by modified date
- 2020-04-08: Dart Supports Underscore Digit Separators
- 2020-04-09: Cypress cy.clock()
- 2020-04-10: CSS pseudo-classes and pseudo-elements
- 2020-04-11: CSS :is() pseudo-class
- 2020-04-12: CSS :has() pseudo-class
- 2020-04-13: CSS property: font-variant-numeric
- 2020-04-14: CSS ::first-letter pseudo-element
- 2020-04-15: CSS.escape()
- 2020-04-16: No browser cache with self-signed certificates
- 2020-04-17: Buttons can have a value like input elements
- 2020-04-18: Add custom config to Axios requests
- 2020-04-19: Get current page URL in Astro
- 2020-04-20: Astro's image integration
- 2020-04-21: GPTBot is OpenAI’s web crawler
- 2020-04-22: Add features to your Netlify site with Snippet Injection
- 2020-04-23: Add color using FORCE_COLOR
- 2020-04-24: There are actually 50 CSS length units
- 2020-04-25: There are 44 CSS length units
- 2020-04-26: There are 22