Blog
202616 posts
- How online card payments actually work
- [TIL] Local Overrides in Chromium DevTools
- What are micro-frontends?
- Three layers of accessibility checks (and what each one caught)
- Claude Agent Skills: when a prompt deserves to be promoted
- 100 posts, a new stack: migrating ramigs.dev to Astro
- CSS Cascade Layers: ending specificity wars
- Node.js Corepack: one shim for npm, pnpm and yarn
- CLAUDE.md and AGENTS.md: correct the system, not the output
- [TIL] vite-plugin-checker
- How agents and subagents work in Claude Code
- [TIL] git worktree
- [TIL] AI Context Windows and Tokens
- [TIL] The 9 pillars of AI-assisted software development
- [TIL] Prompting techniques (how AI models actually "think")
- [TIL] The 4 layers of modern AI tools (Prompt, Context, Harness, Loop)
20252 posts
202417 posts
- Vue.js: notes on Slots
- [TIL]: Ventoy: bootable USB drive with multiple ISOs
- Raspberry Pi 4 + Ubuntu: how to control the Case Fan
- [TIL] Dynamically importing JSON in JavaScript
- Vue: v-model on custom components
- TypeScript: conditionally type a property based on another property
- TypeScript: union members as object properties
- How to set up Sass in a Vue.js Vite project
- Vite dev: automatically open app in the browser
- [TIL] Unix shebang
- [TIL] Git: commit early, commit often
- GitHub Actions: trigger a workflow_dispatch workflow from another workflow
- Open Props review
- [TIL] CSS: detect user request for light/dark themes
- Fully uninstall an application on macOS
- GitHub Actions: how to set a value conditionally
- What I do when my PR includes commits that are already in main
202328 posts
- Integrating GitHub CLI in my workflow
- [TIL] Specify node version in package.json
- [TIL] VSCode: Two file management extensions
- [TIL] Manage yarn via nvm
- Migrating to Cypress.js 13 is awesome DX
- [TIL] VSCode: Setting the correct TypeScript version
- [TIL] Vue Router Navigation Guards
- [TIL] yarn link
- [TIL] git: interactive rebase
- [TIL] The importance of font smoothing in WebKit and Firefox
- [BOOKMARK] A CSS reset for 2023
- [TIL] Nuxt 2: nuxt generate fails silently and how to avoid it
- [TIL] iTerm2: click filename to open in VSCode
- [TIL] git: how to merge a remote branch locally
- [TIL] Firefox DevTools: request duration
- [TIL] VSCode: configure auto format on save
- [TIL] Firefox DevTools: how to persist logs on page navigation
- [TIL] JavaScript: directly chaining catch handler to await expression
- [TIL] Responsive HTML element without media queries
- VSCode: Vue 2 or Vue 3 extensions per project
- [TIL] JavaScript: renaming variables during object destructuring
- [TIL] TypeScript type predicates
- GitHub Actions: how to skip PR status checks based on changed files
- How to fix deprecated GitHub Action chrisdickinson/setup-yq
- [TIL] How to help browsers offer appropriate form autofill options
- [TIL] VSCode setup for Nunjucks
- [TIL] just: command runner
- [TIL] Vuex: how to commit a mutation for a specific namespaced module
202230 posts
- [TIL] Useful k3d and kubectl commands
- [TIL] Useful terraform commands
- [TIL] TypeScript: How to define a type for objects with dynamic properties
- [TIL] Cypress: How to run only one test inside a spec file
- [TIL] Useful AWS CLI commands for S3 and CloudFront
- [TIL] VSCode: Editing files remotely over SSH
- [TIL] K8s: Difference between ingress controller and service mesh
- [TIL] VSCode: How to save without auto formatting
- [TIL] JavaScript: How to update the URL without page reload
- [TIL] K8s AWS: How to check Pod logs
- [TIL] GitHub Actions: how to get execution status of a specific job
- [TIL] Vue: parsing input value as number
- [TIL] Node: specifying the versions a package works on
- [TIL] How to parse flags passed to a bash script
- [TIL] Docker: How to execute without sudo
- [TIL] Cypress custom selector commands
- [TIL] How to backup a GPG key pair
- [TIL] Connecting Adminer to an Azure MySQL database
- [TIL] git: how to rollback in trunk based development
- [TIL] How to fix error CORS OPTIONS Missing Allow Header
- [TIL] Email delivery in Auth0
- [TIL] logrotate: how to prevent deletion of old logs
- [TIL] git: multiple line commit message
- [TIL] Style Editor in Firefox Developer Tools
- [TIL] git: moving unstaged changes to a new branch
- [TIL] Difference between data streaming tools and message brokers
- [TIL] Nuxt: hook created is executed when building as static
- [TIL] Linux commands: recursive options instead of wildcards
- [TIL] msmtp: sending emails from the command line
- [TIL] mv and cp file permissions