<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>ramigs.dev</title><description>Frontend engineering, AI-assisted development, and the tools I use day to day — from quick TILs to longer deep dives.</description><link>https://ramigs.dev/</link><item><title>Three layers of accessibility checks (and what each one caught)</title><link>https://ramigs.dev/blog/three-layers-of-accessibility-checks/</link><guid isPermaLink="true">https://ramigs.dev/blog/three-layers-of-accessibility-checks/</guid><description>How I approached accessibility on this rebuilt site — static linting, an automated axe-core audit, and manual keyboard testing — and the real, distinct bugs each layer caught that the others missed.</description><pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Claude Agent Skills: when a prompt deserves to be promoted</title><link>https://ramigs.dev/blog/claude-code-agent-skills/</link><guid isPermaLink="true">https://ramigs.dev/blog/claude-code-agent-skills/</guid><description>What Claude Agent Skills are, the 3-YESes test for deciding when to create one, their anatomy and progressive disclosure model, and the security considerations of installing someone else&apos;s skill.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>100 Posts, a New Stack: Migrating ramigs.dev to Astro</title><link>https://ramigs.dev/blog/100-posts-migrating-to-astro/</link><guid isPermaLink="true">https://ramigs.dev/blog/100-posts-migrating-to-astro/</guid><description>Reflecting on 100 posts and a full rebuild of ramigs.dev — from Eleventy to Astro, what changed, and what stayed the same.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate></item><item><title>CSS Cascade Layers: ending specificity wars</title><link>https://ramigs.dev/blog/css-cascade-layers/</link><guid isPermaLink="true">https://ramigs.dev/blog/css-cascade-layers/</guid><description>How @layer gives explicit control over the CSS cascade, letting us rank groups of styles independently of selector specificity</description><pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Node.js Corepack: one shim for npm, pnpm and yarn</title><link>https://ramigs.dev/blog/node-corepack/</link><guid isPermaLink="true">https://ramigs.dev/blog/node-corepack/</guid><description>What Corepack does, why corepack enable is still a manual step, and how nvm&apos;s default-packages file can automate it once Corepack becomes a separate npm package in Node.js 25+</description><pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate></item><item><title>CLAUDE.md and AGENTS.md: Correct the System, Not the Output</title><link>https://ramigs.dev/blog/claude-md-and-agents-md/</link><guid isPermaLink="true">https://ramigs.dev/blog/claude-md-and-agents-md/</guid><description>Why CLAUDE.md and AGENTS.md exist, what actually belongs in them, progressive disclosure, and how to keep them in sync across different AI coding tools.</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate></item><item><title>[TIL] vite-plugin-checker</title><link>https://ramigs.dev/blog/vite-plugin-checker/</link><guid isPermaLink="true">https://ramigs.dev/blog/vite-plugin-checker/</guid><description>vite-plugin-checker: surfacing TypeScript/ESLint errors in the terminal and as a browser overlay during Vite dev</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate></item><item><title>How Agents and Subagents Work in Claude Code</title><link>https://ramigs.dev/blog/agents-and-subagents-in-claude-code/</link><guid isPermaLink="true">https://ramigs.dev/blog/agents-and-subagents-in-claude-code/</guid><description>Breaking down what an &apos;agent&apos; actually is in Claude Code: harness vs agent vs model, built-in vs custom agents, and how subagents delegate with isolated context.</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate></item><item><title>[TIL] git worktree</title><link>https://ramigs.dev/blog/git-worktree/</link><guid isPermaLink="true">https://ramigs.dev/blog/git-worktree/</guid><description>How git worktree lets you check out multiple branches at once, and why it&apos;s not just a manual folder copy</description><pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate></item><item><title>[TIL] AI Context Windows and Tokens</title><link>https://ramigs.dev/blog/ai-context-windows-and-tokens/</link><guid isPermaLink="true">https://ramigs.dev/blog/ai-context-windows-and-tokens/</guid><description>A breakdown of the 8 pillars of AI-assisted software development, centered around optimizing your core dev workflow.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate></item><item><title>[TIL] The 9 Pillars of AI-Assisted Software Development</title><link>https://ramigs.dev/blog/pillars-of-ai-assisted-software-development/</link><guid isPermaLink="true">https://ramigs.dev/blog/pillars-of-ai-assisted-software-development/</guid><description>A breakdown of the 8 pillars of AI-assisted software development, centered around optimizing your core dev workflow.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate></item><item><title>[TIL] Prompting Techniques (How AI Models Actually &quot;Think&quot;)</title><link>https://ramigs.dev/blog/ai-prompting-techniques/</link><guid isPermaLink="true">https://ramigs.dev/blog/ai-prompting-techniques/</guid><description>A quick guide to the 5 core AI prompting techniques and how they help LLMs solve complex tasks.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate></item><item><title>[TIL] The 4 Layers of Modern AI Tools (Prompt, Context, Harness, Loop)</title><link>https://ramigs.dev/blog/four-layers-modern-ai-tools/</link><guid isPermaLink="true">https://ramigs.dev/blog/four-layers-modern-ai-tools/</guid><description>Understanding how AI tools work from a developer&apos;s perspective: the four layers of Prompt, Context, Harness, and Loop engineering</description><pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Smoothing Nuxt 2 to Nuxt 4 Migration with vue-declassify</title><link>https://ramigs.dev/blog/smoothing-nuxt-2-to-nuxt-4-migration-with-vue-declassify/</link><guid isPermaLink="true">https://ramigs.dev/blog/smoothing-nuxt-2-to-nuxt-4-migration-with-vue-declassify/</guid><description>How vue-declassify is helping me prepare a Nuxt migration.</description><pubDate>Sun, 02 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Transitioning to AI-assisted software development</title><link>https://ramigs.dev/blog/transitioning-to-ai-assisted-software-development/</link><guid isPermaLink="true">https://ramigs.dev/blog/transitioning-to-ai-assisted-software-development/</guid><description>How I began integrating AI tools into my workflow</description><pubDate>Sun, 02 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Vue.js: notes on Slots</title><link>https://ramigs.dev/blog/vue-notes-on-slots/</link><guid isPermaLink="true">https://ramigs.dev/blog/vue-notes-on-slots/</guid><description>Notes on Vue.js Slots</description><pubDate>Wed, 25 Dec 2024 00:00:00 GMT</pubDate></item><item><title>[TIL]: Ventoy: bootable USB drive with multiple ISOs</title><link>https://ramigs.dev/blog/ventoy-bootable-usb-drive-with-multiple-isos/</link><guid isPermaLink="true">https://ramigs.dev/blog/ventoy-bootable-usb-drive-with-multiple-isos/</guid><description>Ventoy: open source tool to create bootable USB sticks with multiple ISOs</description><pubDate>Fri, 06 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Raspberry Pi 4 + Ubuntu: how to control the Case Fan</title><link>https://ramigs.dev/blog/raspberry-pi-4-ubuntu-how-to-control-the-case-fan/</link><guid isPermaLink="true">https://ramigs.dev/blog/raspberry-pi-4-ubuntu-how-to-control-the-case-fan/</guid><description>How to control the Raspberry Pi 4 fan on Ubuntu Server</description><pubDate>Mon, 02 Dec 2024 00:00:00 GMT</pubDate></item><item><title>[TIL] Dynamically importing JSON in JavaScript</title><link>https://ramigs.dev/blog/dynamically-importing-json-in-javascript/</link><guid isPermaLink="true">https://ramigs.dev/blog/dynamically-importing-json-in-javascript/</guid><description>Dynamic JSON import</description><pubDate>Fri, 08 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Vue: v-model on custom components</title><link>https://ramigs.dev/blog/vue-v-model-on-custom-components/</link><guid isPermaLink="true">https://ramigs.dev/blog/vue-v-model-on-custom-components/</guid><description>Vue.js: Understanding the usage of v-model in custom components</description><pubDate>Sat, 02 Nov 2024 00:00:00 GMT</pubDate></item><item><title>TypeScript: conditionally type a property based on another property</title><link>https://ramigs.dev/blog/typescript-conditionally-type-a-property-based-on-another-property/</link><guid isPermaLink="true">https://ramigs.dev/blog/typescript-conditionally-type-a-property-based-on-another-property/</guid><description>TypeScript: using a discriminated union to conditionally type a property based on another property</description><pubDate>Sat, 26 Oct 2024 00:00:00 GMT</pubDate></item><item><title>TypeScript: union members as object properties</title><link>https://ramigs.dev/blog/typescript-union-members-as-object-properties/</link><guid isPermaLink="true">https://ramigs.dev/blog/typescript-union-members-as-object-properties/</guid><description>TypeScript: how to type an object that has as properties all members of a string union type</description><pubDate>Wed, 09 Oct 2024 00:00:00 GMT</pubDate></item><item><title>How to set up Sass in a Vue.js Vite project</title><link>https://ramigs.dev/blog/how-to-set-up-sass-in-a-vue-vite-project/</link><guid isPermaLink="true">https://ramigs.dev/blog/how-to-set-up-sass-in-a-vue-vite-project/</guid><description>Vue.js 3: how to configure Sass in a Vite based project</description><pubDate>Sun, 06 Oct 2024 00:00:00 GMT</pubDate></item><item><title>Vite dev: automatically open app in the browser</title><link>https://ramigs.dev/blog/vite-dev-automatically-open-app-in-the-browser/</link><guid isPermaLink="true">https://ramigs.dev/blog/vite-dev-automatically-open-app-in-the-browser/</guid><description>Automatically open your app in the browser when running vite dev</description><pubDate>Sat, 05 Oct 2024 00:00:00 GMT</pubDate></item><item><title>[TIL] Unix shebang</title><link>https://ramigs.dev/blog/unix-shebang/</link><guid isPermaLink="true">https://ramigs.dev/blog/unix-shebang/</guid><description>How the Unix shebang is actually used</description><pubDate>Sat, 14 Sep 2024 00:00:00 GMT</pubDate></item><item><title>[TIL] Git: commit early, commit often</title><link>https://ramigs.dev/blog/git-commit-early-commit-often/</link><guid isPermaLink="true">https://ramigs.dev/blog/git-commit-early-commit-often/</guid><description>Avoid accidentally loosing ongoing work by git committing more often</description><pubDate>Sun, 08 Sep 2024 00:00:00 GMT</pubDate></item><item><title>GitHub Actions: trigger a workflow_dispatch workflow from another workflow</title><link>https://ramigs.dev/blog/github-actions-trigger-workflow-dispatch-workflow-from-another-workflow/</link><guid isPermaLink="true">https://ramigs.dev/blog/github-actions-trigger-workflow-dispatch-workflow-from-another-workflow/</guid><description>How to trigger a GitHub Actions workflow_dispatch workflow from another workflow</description><pubDate>Tue, 11 Jun 2024 00:00:00 GMT</pubDate></item><item><title>Open Props review</title><link>https://ramigs.dev/blog/open-props-review/</link><guid isPermaLink="true">https://ramigs.dev/blog/open-props-review/</guid><description>A review on using Open Props in production</description><pubDate>Thu, 06 Jun 2024 00:00:00 GMT</pubDate></item><item><title>[TIL] CSS: detect user request for light/dark themes</title><link>https://ramigs.dev/blog/css-detect-user-request-for-light-dark-themes/</link><guid isPermaLink="true">https://ramigs.dev/blog/css-detect-user-request-for-light-dark-themes/</guid><description>CSS: how to natively detect user request for light/dark themes</description><pubDate>Sat, 09 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Fully uninstall an application on macOS</title><link>https://ramigs.dev/blog/fully-uninstall-an-application-on-macos/</link><guid isPermaLink="true">https://ramigs.dev/blog/fully-uninstall-an-application-on-macos/</guid><description>How to fully uninstall an application on macOS</description><pubDate>Sun, 21 Jan 2024 00:00:00 GMT</pubDate></item><item><title>GitHub Actions: how to set a value conditionally</title><link>https://ramigs.dev/blog/github-actions-how-to-set-a-value-conditionally/</link><guid isPermaLink="true">https://ramigs.dev/blog/github-actions-how-to-set-a-value-conditionally/</guid><description>How to set a value conditionally in GitHub Actions</description><pubDate>Tue, 16 Jan 2024 00:00:00 GMT</pubDate></item><item><title>What I do when my PR includes commits that are already in main</title><link>https://ramigs.dev/blog/what-i-do-when-my-pr-includes-commits-that-are-already-in-main/</link><guid isPermaLink="true">https://ramigs.dev/blog/what-i-do-when-my-pr-includes-commits-that-are-already-in-main/</guid><description>Specify which node version should be used to run a project</description><pubDate>Fri, 12 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Integrating GitHub CLI in my workflow</title><link>https://ramigs.dev/blog/integrating-github-cli-in-my-workflow/</link><guid isPermaLink="true">https://ramigs.dev/blog/integrating-github-cli-in-my-workflow/</guid><description>Integrating GitHub CLI in my workflow: pull request management</description><pubDate>Sat, 30 Dec 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] Specify node version in package.json</title><link>https://ramigs.dev/blog/specify-node-version-in-package-json/</link><guid isPermaLink="true">https://ramigs.dev/blog/specify-node-version-in-package-json/</guid><description>Specify which node version should be used to run a project</description><pubDate>Thu, 28 Dec 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] VSCode: Two file management extensions</title><link>https://ramigs.dev/blog/vscode-two-file-management-extensions/</link><guid isPermaLink="true">https://ramigs.dev/blog/vscode-two-file-management-extensions/</guid><description>Two file management extensions in VSCode for increased productivity</description><pubDate>Tue, 26 Dec 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] Manage yarn via nvm</title><link>https://ramigs.dev/blog/manage-yarn-via-nvm/</link><guid isPermaLink="true">https://ramigs.dev/blog/manage-yarn-via-nvm/</guid><description>How to manage different yarn versions via nvm</description><pubDate>Wed, 06 Dec 2023 00:00:00 GMT</pubDate></item><item><title>Migrating to Cypress.js 13 is awesome DX</title><link>https://ramigs.dev/blog/migrating-to-cypress-13-is-awesome-dx/</link><guid isPermaLink="true">https://ramigs.dev/blog/migrating-to-cypress-13-is-awesome-dx/</guid><description>My experience updating Cypress.js versions in two different projects</description><pubDate>Fri, 01 Dec 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] VSCode: Setting the correct TypeScript version</title><link>https://ramigs.dev/blog/vscode-setting-typescript-version/</link><guid isPermaLink="true">https://ramigs.dev/blog/vscode-setting-typescript-version/</guid><description>The importance of setting the TypeScript version according to the project in VSCode</description><pubDate>Fri, 01 Dec 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] Vue Router Navigation Guards</title><link>https://ramigs.dev/blog/vue-router-navigation-guards/</link><guid isPermaLink="true">https://ramigs.dev/blog/vue-router-navigation-guards/</guid><description>How to hook into Vue&apos;s route navigation process</description><pubDate>Thu, 30 Nov 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] yarn link</title><link>https://ramigs.dev/blog/yarn-link/</link><guid isPermaLink="true">https://ramigs.dev/blog/yarn-link/</guid><description>A use case for yarn link</description><pubDate>Tue, 31 Oct 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] git: interactive rebase</title><link>https://ramigs.dev/blog/git-interactive-rebase/</link><guid isPermaLink="true">https://ramigs.dev/blog/git-interactive-rebase/</guid><description>git: how to interactive rebase</description><pubDate>Sat, 14 Oct 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] The importance of font smoothing in WebKit and Firefox</title><link>https://ramigs.dev/blog/the-importance-of-font-smoothing-in-webkit-and-firefox/</link><guid isPermaLink="true">https://ramigs.dev/blog/the-importance-of-font-smoothing-in-webkit-and-firefox/</guid><description>CSS font smoothing makes a difference on macOS</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>[BOOKMARK] A CSS reset for 2023</title><link>https://ramigs.dev/blog/a-css-reset-for-2023/</link><guid isPermaLink="true">https://ramigs.dev/blog/a-css-reset-for-2023/</guid><description>A modern CSS reset for 2023</description><pubDate>Sun, 24 Sep 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] Nuxt 2: nuxt generate fails silently and how to avoid it</title><link>https://ramigs.dev/blog/nuxt2-generate-fails-silently-and-how-to-avoid-it/</link><guid isPermaLink="true">https://ramigs.dev/blog/nuxt2-generate-fails-silently-and-how-to-avoid-it/</guid><description>Nuxt 2: How to force generate command to exit with non-0 code on errors</description><pubDate>Tue, 19 Sep 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] iTerm2: click filename to open in VSCode</title><link>https://ramigs.dev/blog/iterm2-click-filename-to-open-in-vscode/</link><guid isPermaLink="true">https://ramigs.dev/blog/iterm2-click-filename-to-open-in-vscode/</guid><description>How to click filename in iTerm2 and have it open in VSCode</description><pubDate>Tue, 12 Sep 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] git: how to merge a remote branch locally</title><link>https://ramigs.dev/blog/git-how-to-merge-a-remote-branch-locally/</link><guid isPermaLink="true">https://ramigs.dev/blog/git-how-to-merge-a-remote-branch-locally/</guid><description>git: how to merge a remote branch locally</description><pubDate>Thu, 17 Aug 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] Firefox DevTools: request duration</title><link>https://ramigs.dev/blog/firefox-devtools-request-duration/</link><guid isPermaLink="true">https://ramigs.dev/blog/firefox-devtools-request-duration/</guid><description>How to find out the duration of requests in Firefox Developer Tools</description><pubDate>Sun, 11 Jun 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] VSCode: configure auto format on save</title><link>https://ramigs.dev/blog/vscode-configure-auto-format-on-save/</link><guid isPermaLink="true">https://ramigs.dev/blog/vscode-configure-auto-format-on-save/</guid><description>Project settings to enable auto format on save in VSCode</description><pubDate>Sun, 11 Jun 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] Firefox DevTools: how to persist logs on page navigation</title><link>https://ramigs.dev/blog/firefox-devtools-persist-logs-on-page-navigation/</link><guid isPermaLink="true">https://ramigs.dev/blog/firefox-devtools-persist-logs-on-page-navigation/</guid><description>How to persist Web Console and Network Monitor logs in Firefox Developer Tools upon page navigation and page reload</description><pubDate>Sat, 10 Jun 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] JavaScript: directly chaining catch handler to await expression</title><link>https://ramigs.dev/blog/javascript-chaining-catch-handler-to-await-expression/</link><guid isPermaLink="true">https://ramigs.dev/blog/javascript-chaining-catch-handler-to-await-expression/</guid><description>JavaScript: chaining catch handler to await expression, outside of try/catch block</description><pubDate>Fri, 19 May 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] Responsive HTML element without media queries</title><link>https://ramigs.dev/blog/responsive-html-element-without-media-queries/</link><guid isPermaLink="true">https://ramigs.dev/blog/responsive-html-element-without-media-queries/</guid><description>CSS: how to make an HTML element responsive without the need for media queries</description><pubDate>Fri, 19 May 2023 00:00:00 GMT</pubDate></item><item><title>VSCode: Vue 2 or Vue 3 extensions per project</title><link>https://ramigs.dev/blog/vscode-how-to-configure-extensions-vue-2-or-vue-3/</link><guid isPermaLink="true">https://ramigs.dev/blog/vscode-how-to-configure-extensions-vue-2-or-vue-3/</guid><description>VSCode: How to configure extensions for Vue 2 or Vue 3 per project</description><pubDate>Mon, 08 May 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] JavaScript: renaming variables during object destructuring</title><link>https://ramigs.dev/blog/javascript-renaming-variables-during-object-destructuring/</link><guid isPermaLink="true">https://ramigs.dev/blog/javascript-renaming-variables-during-object-destructuring/</guid><description>JavaSctipt: how to rename variables when doing destructuring an object</description><pubDate>Tue, 02 May 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] TypeScript type predicates</title><link>https://ramigs.dev/blog/typescript-type-predicates/</link><guid isPermaLink="true">https://ramigs.dev/blog/typescript-type-predicates/</guid><description>Type narrowing in TypeScript using type predicates</description><pubDate>Fri, 28 Apr 2023 00:00:00 GMT</pubDate></item><item><title>GitHub Actions: how to skip PR status checks based on changed files</title><link>https://ramigs.dev/blog/github-actions-how-to-skip-pr-status-checks-based-on-changed-files/</link><guid isPermaLink="true">https://ramigs.dev/blog/github-actions-how-to-skip-pr-status-checks-based-on-changed-files/</guid><description>GitHub Actions: how to conditionally status checks in PRs based on changed files</description><pubDate>Mon, 24 Apr 2023 00:00:00 GMT</pubDate></item><item><title>How to fix deprecated GitHub Action chrisdickinson/setup-yq</title><link>https://ramigs.dev/blog/how-to-fix-deprecated-github-action-chrisdickinson-setup-yq/</link><guid isPermaLink="true">https://ramigs.dev/blog/how-to-fix-deprecated-github-action-chrisdickinson-setup-yq/</guid><description>How to fix deprecated Node.js 12 GitHub Action chrisdickinson/setup-yq</description><pubDate>Fri, 07 Apr 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] How to help browsers offer appropriate form autofill options</title><link>https://ramigs.dev/blog/how-to-help-browsers-offer-appropriate-autofill/</link><guid isPermaLink="true">https://ramigs.dev/blog/how-to-help-browsers-offer-appropriate-autofill/</guid><description>[TIL] How to help browsers offer automated assistance in filling out forms</description><pubDate>Fri, 07 Apr 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] VSCode setup for Nunjucks</title><link>https://ramigs.dev/blog/vscode-setup-for-nunjucks/</link><guid isPermaLink="true">https://ramigs.dev/blog/vscode-setup-for-nunjucks/</guid><description>Setting up VSCode for better developer experience using Nunjucks</description><pubDate>Tue, 14 Mar 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] just: command runner</title><link>https://ramigs.dev/blog/just-command-runner/</link><guid isPermaLink="true">https://ramigs.dev/blog/just-command-runner/</guid><description>Using just command runner for Node.js projects</description><pubDate>Thu, 09 Mar 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] Vuex: how to commit a mutation for a specific namespaced module</title><link>https://ramigs.dev/blog/vuex-how-to-commit-mutation-namespaced-module/</link><guid isPermaLink="true">https://ramigs.dev/blog/vuex-how-to-commit-mutation-namespaced-module/</guid><description>Vuex: how to commit a mutation for a specific namespaced module</description><pubDate>Thu, 09 Mar 2023 00:00:00 GMT</pubDate></item><item><title>[TIL] Useful k3d and kubectl commands</title><link>https://ramigs.dev/blog/useful-k3d-and-kubectl-commands/</link><guid isPermaLink="true">https://ramigs.dev/blog/useful-k3d-and-kubectl-commands/</guid><description>Listing some useful k3d and kubectl commands I&apos;ve been using lately</description><pubDate>Sat, 29 Oct 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] Useful terraform commands</title><link>https://ramigs.dev/blog/useful-terraform-commands/</link><guid isPermaLink="true">https://ramigs.dev/blog/useful-terraform-commands/</guid><description>Listing some useful terraform commands I&apos;ve been using lately</description><pubDate>Sat, 29 Oct 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] TypeScript: How to define a type for objects with dynamic properties</title><link>https://ramigs.dev/blog/typescript-how-to-define-type-for-objects-with-dynamic-properties/</link><guid isPermaLink="true">https://ramigs.dev/blog/typescript-how-to-define-type-for-objects-with-dynamic-properties/</guid><description>TypeScript: How to define a type for objects with dynamic properties</description><pubDate>Sat, 27 Aug 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] Cypress: How to run only one test inside a spec file</title><link>https://ramigs.dev/blog/cypress-how-to-run-only-one-test-inside-a-spec-file/</link><guid isPermaLink="true">https://ramigs.dev/blog/cypress-how-to-run-only-one-test-inside-a-spec-file/</guid><description>Cypress: How to run only one test inside a spec file to improve efficiency when creating tests</description><pubDate>Fri, 26 Aug 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] Useful AWS CLI commands for S3 and CloudFront</title><link>https://ramigs.dev/blog/useful-aws-cli-commands-for-s3-and-cloudfront/</link><guid isPermaLink="true">https://ramigs.dev/blog/useful-aws-cli-commands-for-s3-and-cloudfront/</guid><description>Listing some useful commands I&apos;ve been using lately for AWS S3 and CloudFront</description><pubDate>Wed, 04 May 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] VSCode: Editing files remotely over SSH</title><link>https://ramigs.dev/blog/vscode-editing-files-remotely-over-ssh/</link><guid isPermaLink="true">https://ramigs.dev/blog/vscode-editing-files-remotely-over-ssh/</guid><description>How to access folders and files remotely on VSCode using SSH</description><pubDate>Mon, 18 Apr 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] K8s: Difference between ingress controller and service mesh</title><link>https://ramigs.dev/blog/ingress-controller-vs-service-mesh/</link><guid isPermaLink="true">https://ramigs.dev/blog/ingress-controller-vs-service-mesh/</guid><description>Understanding the different roles played by ingress controller and service mesh in a K8s cluster</description><pubDate>Sun, 17 Apr 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] VSCode: How to save without auto formatting</title><link>https://ramigs.dev/blog/vscode-save-without-auto-formatting/</link><guid isPermaLink="true">https://ramigs.dev/blog/vscode-save-without-auto-formatting/</guid><description>How to save a file on VSCode without auto formatting</description><pubDate>Fri, 01 Apr 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] JavaScript: How to update the URL without page reload</title><link>https://ramigs.dev/blog/how-to-update-url-without-page-reload/</link><guid isPermaLink="true">https://ramigs.dev/blog/how-to-update-url-without-page-reload/</guid><description>How to programmatically set the URL in the URL bar without page reload</description><pubDate>Mon, 28 Mar 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] K8s AWS: How to check Pod logs</title><link>https://ramigs.dev/blog/k8s-aws-how-to-check-pod-logs/</link><guid isPermaLink="true">https://ramigs.dev/blog/k8s-aws-how-to-check-pod-logs/</guid><description>How to check Pod logs on a K8s cluster running on AWS EKS</description><pubDate>Fri, 11 Mar 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] GitHub Actions: how to get execution status of a specific job</title><link>https://ramigs.dev/blog/github-actions-how-to-get-status-execution-of-a-specific-job/</link><guid isPermaLink="true">https://ramigs.dev/blog/github-actions-how-to-get-status-execution-of-a-specific-job/</guid><description>GitHub Actions: How to get execution status of a specific job</description><pubDate>Wed, 09 Mar 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] Vue: parsing input value as number</title><link>https://ramigs.dev/blog/vue-parsing-input-value-as-number/</link><guid isPermaLink="true">https://ramigs.dev/blog/vue-parsing-input-value-as-number/</guid><description>Using modifier .number on v-model in order to parse an input value as number</description><pubDate>Mon, 07 Mar 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] Node: specifying the versions a package works on</title><link>https://ramigs.dev/blog/node-specifying-versions-a-package-works-on/</link><guid isPermaLink="true">https://ramigs.dev/blog/node-specifying-versions-a-package-works-on/</guid><description>Using configuration engines in package.json to specify which versions a package works on</description><pubDate>Sat, 05 Mar 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] How to parse flags passed to a bash script</title><link>https://ramigs.dev/blog/how-to-parse-flags-passed-to-a-bash-script/</link><guid isPermaLink="true">https://ramigs.dev/blog/how-to-parse-flags-passed-to-a-bash-script/</guid><description>Parsing flags passed to a bash script using built-in function getopts</description><pubDate>Tue, 01 Mar 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] Docker: How to execute without sudo</title><link>https://ramigs.dev/blog/docker-execute-without-sudo/</link><guid isPermaLink="true">https://ramigs.dev/blog/docker-execute-without-sudo/</guid><description>Avoid having to type sudo every time when executing the command docker on Ubuntu</description><pubDate>Tue, 22 Feb 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] Cypress custom selector commands</title><link>https://ramigs.dev/blog/cypress-custom-selector-commands/</link><guid isPermaLink="true">https://ramigs.dev/blog/cypress-custom-selector-commands/</guid><description>Configuring custom selector commands in Cypress</description><pubDate>Mon, 21 Feb 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] How to backup a GPG key pair</title><link>https://ramigs.dev/blog/how-to-backup-a-gpg-key-pair/</link><guid isPermaLink="true">https://ramigs.dev/blog/how-to-backup-a-gpg-key-pair/</guid><description>How to backup a GPG key pair and its respective revocation certificate</description><pubDate>Sun, 20 Feb 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] Connecting Adminer to an Azure MySQL database</title><link>https://ramigs.dev/blog/adminer-mysql-azure/</link><guid isPermaLink="true">https://ramigs.dev/blog/adminer-mysql-azure/</guid><description>How to fix SSL-related issues when trying to connect Adminer running in Docker to an Azure MySQL database</description><pubDate>Sun, 13 Feb 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] git: how to rollback in trunk based development</title><link>https://ramigs.dev/blog/git-how-to-rollback-in-trunk-based-development/</link><guid isPermaLink="true">https://ramigs.dev/blog/git-how-to-rollback-in-trunk-based-development/</guid><description>git: how to rollback in trunk based development</description><pubDate>Sun, 13 Feb 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] How to fix error CORS OPTIONS Missing Allow Header</title><link>https://ramigs.dev/blog/how-to-fix-cors-options-missing-allow-header/</link><guid isPermaLink="true">https://ramigs.dev/blog/how-to-fix-cors-options-missing-allow-header/</guid><description>How to fix error CORS OPTIONS Missing Allow Header</description><pubDate>Sat, 12 Feb 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] Email delivery in Auth0</title><link>https://ramigs.dev/blog/auth0-email-delivery/</link><guid isPermaLink="true">https://ramigs.dev/blog/auth0-email-delivery/</guid><description>The importance of setting up an external email provider for Auth0 email delivery</description><pubDate>Thu, 10 Feb 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] logrotate: how to prevent deletion of old logs</title><link>https://ramigs.dev/blog/logrotate-prevent-deletion-of-old-logs/</link><guid isPermaLink="true">https://ramigs.dev/blog/logrotate-prevent-deletion-of-old-logs/</guid><description>How to avoid logrotate to delete rotated logs</description><pubDate>Thu, 10 Feb 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] git: multiple line commit message</title><link>https://ramigs.dev/blog/git-multiple-line-commit-message/</link><guid isPermaLink="true">https://ramigs.dev/blog/git-multiple-line-commit-message/</guid><description>How to commit with multiple line commit message in git</description><pubDate>Wed, 09 Feb 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] Style Editor in Firefox Developer Tools</title><link>https://ramigs.dev/blog/style-editor-firefox-developer-tools/</link><guid isPermaLink="true">https://ramigs.dev/blog/style-editor-firefox-developer-tools/</guid><description>Style Editor in Firefox Developer Tools</description><pubDate>Sun, 06 Feb 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] git: moving unstaged changes to a new branch</title><link>https://ramigs.dev/blog/git-moving-unstaged-changes-to-a-new-branch/</link><guid isPermaLink="true">https://ramigs.dev/blog/git-moving-unstaged-changes-to-a-new-branch/</guid><description>How to move unstaged changes and switch to a new branch in git</description><pubDate>Sat, 05 Feb 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] Difference between data streaming tools and message brokers</title><link>https://ramigs.dev/blog/stream-processing-tools-vs-message-brokers/</link><guid isPermaLink="true">https://ramigs.dev/blog/stream-processing-tools-vs-message-brokers/</guid><description>Understanding the different use cases for data streaming tools and message brokers</description><pubDate>Sat, 05 Feb 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] Nuxt: hook created is executed when building as static</title><link>https://ramigs.dev/blog/nuxt-static-created-hook/</link><guid isPermaLink="true">https://ramigs.dev/blog/nuxt-static-created-hook/</guid><description>Vue&apos;s lifecycle hook created is executed when building with generate</description><pubDate>Fri, 04 Feb 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] Linux commands: recursive options instead of wildcards</title><link>https://ramigs.dev/blog/linux-commands-recursive-options/</link><guid isPermaLink="true">https://ramigs.dev/blog/linux-commands-recursive-options/</guid><description>Preferring the usage of recursive options in Linux commands in order to prevent errors</description><pubDate>Wed, 02 Feb 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] msmtp: sending emails from the command line</title><link>https://ramigs.dev/blog/msmtp/</link><guid isPermaLink="true">https://ramigs.dev/blog/msmtp/</guid><description>msmtp: a tool to send emails from the command line and bash scripts</description><pubDate>Wed, 02 Feb 2022 00:00:00 GMT</pubDate></item><item><title>[TIL] mv and cp file permissions</title><link>https://ramigs.dev/blog/mv-and-cp-file-permissions/</link><guid isPermaLink="true">https://ramigs.dev/blog/mv-and-cp-file-permissions/</guid><description>mv and cp file permissions</description><pubDate>Sat, 29 Jan 2022 00:00:00 GMT</pubDate></item><item><title>Load testing with Artillery</title><link>https://ramigs.dev/blog/load-testing-artillery/</link><guid isPermaLink="true">https://ramigs.dev/blog/load-testing-artillery/</guid><description>An account on using Artillery to load test an application&apos;s backend (and database)</description><pubDate>Fri, 01 Oct 2021 00:00:00 GMT</pubDate></item><item><title>How to reliably clear a Linux log file</title><link>https://ramigs.dev/blog/reliably-clear-log-file-linux/</link><guid isPermaLink="true">https://ramigs.dev/blog/reliably-clear-log-file-linux/</guid><description>Presenting file truncation and log rotation as two viable approaches for reliably clearing a log file on Linux</description><pubDate>Tue, 20 Jul 2021 00:00:00 GMT</pubDate></item><item><title>Automating database backups</title><link>https://ramigs.dev/blog/automating-database-backups/</link><guid isPermaLink="true">https://ramigs.dev/blog/automating-database-backups/</guid><description>Describing an automated database backup procedure</description><pubDate>Sat, 12 Jun 2021 00:00:00 GMT</pubDate></item><item><title>Strapi Hooks</title><link>https://ramigs.dev/blog/strapi-hooks/</link><guid isPermaLink="true">https://ramigs.dev/blog/strapi-hooks/</guid><description>Understanding the different types/categories of Strapi Hooks</description><pubDate>Sat, 06 Feb 2021 00:00:00 GMT</pubDate></item><item><title>Strapi Authentication in Nuxt.js</title><link>https://ramigs.dev/blog/strapi-authentication-in-nuxt-js/</link><guid isPermaLink="true">https://ramigs.dev/blog/strapi-authentication-in-nuxt-js/</guid><description>This is a step-by-step guide on how to implement Strapi-based authentication in a Nuxt.js app.</description><pubDate>Tue, 25 Aug 2020 00:00:00 GMT</pubDate></item><item><title>How to set up a canonical URL in Eleventy</title><link>https://ramigs.dev/blog/canonical-url-11ty/</link><guid isPermaLink="true">https://ramigs.dev/blog/canonical-url-11ty/</guid><description>How to set up a canonical URL in Eleventy cross posting content syndication</description><pubDate>Tue, 04 Aug 2020 00:00:00 GMT</pubDate></item><item><title>Building a Jamstack app with Nuxt, Vue and FaunaDB</title><link>https://ramigs.dev/blog/building-a-jamstack-app-with-nuxt-vue-and-faunadb/</link><guid isPermaLink="true">https://ramigs.dev/blog/building-a-jamstack-app-with-nuxt-vue-and-faunadb/</guid><description>Changing the order of HTML elements between mobile and desktop layouts</description><pubDate>Tue, 14 Jul 2020 00:00:00 GMT</pubDate></item><item><title>How to dynamically change the order of HTML elements</title><link>https://ramigs.dev/blog/dynamic-order-change-html/</link><guid isPermaLink="true">https://ramigs.dev/blog/dynamic-order-change-html/</guid><description>Changing the order of HTML elements between mobile and desktop layouts</description><pubDate>Fri, 08 May 2020 00:00:00 GMT</pubDate></item><item><title>Three months of Nuxt.js in Production - A Restrospective</title><link>https://ramigs.dev/blog/nuxt-review/</link><guid isPermaLink="true">https://ramigs.dev/blog/nuxt-review/</guid><description>My experience with Nuxt.js in a continuous delivery production setting</description><pubDate>Sat, 18 Apr 2020 00:00:00 GMT</pubDate></item><item><title>Finding the array element that appears once</title><link>https://ramigs.dev/blog/finding-the-element-that-appears-once/</link><guid isPermaLink="true">https://ramigs.dev/blog/finding-the-element-that-appears-once/</guid><description>JavaScript solution to Finding the element that appears once in an array problem</description><pubDate>Sun, 24 Nov 2019 00:00:00 GMT</pubDate></item><item><title>Creating a Pull Request on GitHub</title><link>https://ramigs.dev/blog/creating-a-pull-request-on-github/</link><guid isPermaLink="true">https://ramigs.dev/blog/creating-a-pull-request-on-github/</guid><description>Step-by-step guide on how to open a Pull Request on GitHub</description><pubDate>Fri, 01 Nov 2019 00:00:00 GMT</pubDate></item><item><title>How the JAMstack inspired me to start blogging</title><link>https://ramigs.dev/blog/how-the-jamstack-inspired-me-to-start-blogging/</link><guid isPermaLink="true">https://ramigs.dev/blog/how-the-jamstack-inspired-me-to-start-blogging/</guid><description>Blogging with traditional monolithic CMSs vs. modern JAMstack web architectures</description><pubDate>Wed, 21 Aug 2019 00:00:00 GMT</pubDate></item></channel></rss>