56,966 blogs · [ { "id": "01a07df2-5439-71ac-b9d4-6186919eb03d", "title": "Clear Module Cache/Force Import in Node.js with CommonJS and with ES Modules (ESM)", "url": "https://codewithhugo.com/nodejs-esm-cjs-clear-module-cache/", "published_at": "2025-08-18T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-618691e16ac6", "title": "Taming Timezones: Replacing moment.parseZone with @date-fns/tz and Vanilla JS Date", "url": "https://codewithhugo.com/taming-timezones-moment-parsezone-to-date-fns-tz/", "published_at": "2025-08-11T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-618692186ac5", "title": "TypeScript in the Trenches: Utility types and type manipulation patterns for application development", "url": "https://codewithhugo.com/typescript-types-in-the-trenches/", "published_at": "2025-07-28T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-618692e0efd2", "title": "Configure Timezone for Jest/Node.js with the `TZ` env var", "url": "https://codewithhugo.com/jest-set-timezone-tz-env-var/", "published_at": "2024-08-17T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-61869377e2fe", "title": "Nock on Node 18/20/22 Fails to Intercept isomorphic-unfetch/fetch Request", "url": "https://codewithhugo.com/nock-node-18-20-22-fails-to-intercept-fetch/", "published_at": "2024-08-11T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186939e2a28", "title": "`dotenv` not required: load `.env` and parse env vars natively in modern Node.js", "url": "https://codewithhugo.com/load-env-vars-files-nodejs-dotenv/", "published_at": "2024-07-28T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-618693d6c6d5", "title": "Mocking/stubbing the current Date in Jest tests", "url": "https://codewithhugo.com/mocking-the-current-date-in-jest-tests/", "published_at": "2024-06-06T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186946aa230", "title": "Docsify Mermaid 10", "url": "https://codewithhugo.com/docsify-mermaid-10/", "published_at": "2024-03-04T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-618694fe960f", "title": "Mocking/stubbing the Date and timers (setTimeout) in Node.js tests with built-in `node:test` MockTimers", "url": "https://codewithhugo.com/node-test-mock-date-and-timers/", "published_at": "2024-02-26T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-618695b22f83", "title": "Direnv setup for multiple git/GitHub, npm and AWS accounts/credentials", "url": "https://codewithhugo.com/direnv/", "published_at": "2024-02-19T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-618695dabaaa", "title": "Test Native `fetch` in Node.js with Undici interception and mock utils", "url": "https://codewithhugo.com/node-test-native-fetch-intercept-undici/", "published_at": "2024-02-12T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186967bbf16", "title": "Node Test Runner: skip a test if an environment variable is missing/empty", "url": "https://codewithhugo.com/node-test-skip-test-env-variable/", "published_at": "2024-02-05T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-618697570425", "title": "Lerna publish with no git commit, tag or push", "url": "https://codewithhugo.com/lerna-publish-no-git/", "published_at": "2024-01-29T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-61869819fb98", "title": "What is Jest and why should I use it?", "url": "https://codewithhugo.com/what-is-jest/", "published_at": "2024-01-22T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186984e8f2f", "title": "Concurrent/Parallel HTTP Requests in Go", "url": "https://codewithhugo.com/parallel-http-request-golang/", "published_at": "2024-01-15T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-618698a892d8", "title": "Markdown escape backticks in inline code and fenced code blocks", "url": "https://codewithhugo.com/markdown-escape-backticks/", "published_at": "2024-01-08T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-618698db29ac", "title": "git diff by word", "url": "https://codewithhugo.com/git-diff-by-word/", "published_at": "2022-11-14T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-618699549f7e", "title": "git/GitHub CLI set editor to vim or VSCode", "url": "https://codewithhugo.com/git-gh-cli-editor-vim-vscode/", "published_at": "2022-11-09T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-61869a2f8143", "title": "Node.js Native Test Runner", "url": "https://codewithhugo.com/node-test-runner/", "published_at": "2022-05-23T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-61869a588456", "title": "Tips for real-world Alpine.js", "url": "https://codewithhugo.com/alpine-tips/", "published_at": "2021-06-09T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-61869b075acf", "title": "Why doesn't React.useEffect run on React server-side renders (SSR)?", "url": "https://codewithhugo.com/react-useeffect-ssr/", "published_at": "2021-03-01T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-61869b8a7274", "title": "Cypress Scroll Position Assertions", "url": "https://codewithhugo.com/cypress-scroll-assertions/", "published_at": "2020-11-17T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-61869b8f36b0", "title": "What is the \"?.\" JavaScript/TypeScript operator", "url": "https://codewithhugo.com/javascript-typescript-optional-chaining/", "published_at": "2020-11-09T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-61869c8e7897", "title": "Convert images to data URLs at the command line (Mac OS)", "url": "https://codewithhugo.com/convert-image-data-url/", "published_at": "2020-10-26T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-61869c95ce67", "title": "The Future of PHP: Is It a Dead Programming Language?", "url": "https://codewithhugo.com/future-of-php/", "published_at": "2020-08-20T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-61869cd65a74", "title": "Tips For Students Choosing Their First Programming Language", "url": "https://codewithhugo.com/select-programming-language/", "published_at": "2020-08-18T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-61869d787fe2", "title": "Disable a HTML link/anchor tag", "url": "https://codewithhugo.com/disable-html-anchor/", "published_at": "2020-08-17T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-61869dfee692", "title": "An accessible Alpine.js menu toggle", "url": "https://codewithhugo.com/alpinejs-a11y-menu/", "published_at": "2020-08-10T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-61869e5e7ddc", "title": "Alpine.js in-depth: listen to JavaScript events using x-on", "url": "https://codewithhugo.com/alpinejs-x-on/", "published_at": "2020-08-03T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-61869f4d463f", "title": "Alpine.js in-depth: reactive HTML attribute binding with x-bind", "url": "https://codewithhugo.com/alpinejs-x-bind/", "published_at": "2020-07-27T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-61869fd21de7", "title": "Show/hide in Alpine.js with x-show", "url": "https://codewithhugo.com/alpinejs-x-show/", "published_at": "2020-07-20T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-61869fdc43bd", "title": "Github Pull Request Review: reset viewed files", "url": "https://codewithhugo.com/github-review-reset-viewed/", "published_at": "2020-07-13T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a0cbe39f", "title": "Alpine.js In-Depth: x-data \"state\" & x-text \"echo\"", "url": "https://codewithhugo.com/alpinejs-x-data-x-text/", "published_at": "2020-07-07T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a1baa7da", "title": "Alpine.js `x-for` a number of iterations (n times)", "url": "https://codewithhugo.com/alpinejs-x-for-n-times/", "published_at": "2020-06-29T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a2047893", "title": "Alpine.js `x-for` with objects: 4 ways to iterate/loop through JavaScript objects", "url": "https://codewithhugo.com/alpinejs-x-for-with-objects/", "published_at": "2020-06-22T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a254743e", "title": "How to get type-checking and generate TypeScript Typing declaration (types.d.ts) from JSDoc annotations", "url": "https://codewithhugo.com/jsdoc-typescript-typings-types-d-ts/", "published_at": "2020-06-15T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a335ecca", "title": "Sync Alpine.js x-data to localStorage/sessionStorage", "url": "https://codewithhugo.com/alpinejs-localstorage-sessionstorage/", "published_at": "2020-06-08T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a36a55e5", "title": "How to Access Alpine.js Magic Properties from inline handlers and function/component methods", "url": "https://codewithhugo.com/alpinejs-magic-property-access/", "published_at": "2020-06-01T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a3de96c0", "title": "Access Alpine.js component data/state from outside its scope", "url": "https://codewithhugo.com/alpinejs-inspect-component-data-from-js/", "published_at": "2020-05-25T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a3f9d8f4", "title": "A guide to Alpine.js component communication", "url": "https://codewithhugo.com/alpinejs-component-communication-event-bus/", "published_at": "2020-05-18T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a4bd6beb", "title": "App Ideas: 17 Web Apps You Can Build To Level Up Your Coding Skills", "url": "https://codewithhugo.com/coding-web-app-ideas/", "published_at": "2020-05-12T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a5029a18", "title": "Alpine.js + jQuery/JavaScript Plugin Integration: a Select2 example", "url": "https://codewithhugo.com/alpinejs-jquery-plugin-integration-select2/", "published_at": "2020-05-11T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a55f64ba", "title": "JavaScript remove duplicates, get unique/distinct values from Array with ES6+ Set and spread", "url": "https://codewithhugo.com/es6-dedupe-set/", "published_at": "2020-05-09T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a6521196", "title": "AVA: pass or fail a test if an environment variable is missing/empty", "url": "https://codewithhugo.com/ava-pass-fail-test-env-variable/", "published_at": "2020-05-04T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a6de4437", "title": "Use microbundle for a TypeScript npm module", "url": "https://codewithhugo.com/microbundle-typescript-npm-module/", "published_at": "2020-05-02T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a726a4e1", "title": "Add days to a Date in vanilla JavaScript", "url": "https://codewithhugo.com/add-date-days-js/", "published_at": "2020-05-01T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a766773b", "title": "Synchronize x-data and the URL in Alpine.js with the location/History APIs and $watch", "url": "https://codewithhugo.com/alpinejs-x-data-watch-url/", "published_at": "2020-04-27T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a8395f29", "title": "Integrating Alpine.js + Pre/Server-rendered content", "url": "https://codewithhugo.com/alpine-server-pre-render-x-remove/", "published_at": "2020-04-20T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a89bc133", "title": "Integrating Alpine.js with Eleventy & YAML files to create Alpine Playground's Collections", "url": "https://codewithhugo.com/eleventy-collections-yaml-alpinejs/", "published_at": "2020-04-14T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186a9718d9c", "title": "How to migrate a bunch of HTML pages (Alpine.js Playground) to Eleventy", "url": "https://codewithhugo.com/migrate-html-alpinejs-to-eleventy/", "published_at": "2020-04-08T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186aa571465", "title": "Practical Alpine.js: x-data data access & data fetching/AJAX examples", "url": "https://codewithhugo.com/alpinejs-x-data-fetching/", "published_at": "2020-03-09T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186ab4d42f3", "title": "Run Alpine.js inside of React", "url": "https://codewithhugo.com/alpine-js-react/", "published_at": "2020-03-02T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186abe01ba5", "title": "Advantages and Disadvantages of Node.js", "url": "https://codewithhugo.com/node-pros-and-cons/", "published_at": "2020-01-24T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186ac4c1402", "title": "5 Reasons Why You Should Learn Programming", "url": "https://codewithhugo.com/5-reasons-to-code/", "published_at": "2020-01-24T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186ad347b8f", "title": "Managing Your Videos With HTML and JavaScript", "url": "https://codewithhugo.com/html-js-video/", "published_at": "2020-01-22T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186ad97d29f", "title": "Catalina \"Apple cannot check for malicious software\" Command Line Fix", "url": "https://codewithhugo.com/catalina-permission-command-line-fix/", "published_at": "2020-01-20T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186ae7ac94c", "title": "Fix \"[Vue warn]: You are using the runtime-only build of Vue\"", "url": "https://codewithhugo.com/vue-warn-runtime-only-build/", "published_at": "2019-11-25T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186af58acc5", "title": "Jest set, clear and reset mock/spy/stub implementation", "url": "https://codewithhugo.com/jest-stub-mock-spy-set-clear/", "published_at": "2019-11-11T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186afde2a26", "title": "Jest .fn() and .spyOn() spy/stub/mock assertion reference", "url": "https://codewithhugo.com/jest-fn-spyon-stub-mock/", "published_at": "2019-11-05T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b095beb7", "title": "Jest Array/Object partial match with objectContaining and arrayContaining", "url": "https://codewithhugo.com/jest-array-object-match-contain/", "published_at": "2019-10-28T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b0c96ca1", "title": "Jest explicitly or arbitrarily force fail() a test", "url": "https://codewithhugo.com/jest-force-explicitly-fail-test/", "published_at": "2019-10-21T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b1a327cc", "title": "How to integrate Python/Ruby/PHP/shell script with Node.js using child_process.spawn or child_process.exec", "url": "https://codewithhugo.com/integrate-python-ruby-php-shell-with-node-js/", "published_at": "2019-10-16T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b2698f96", "title": "Jest Full and Partial Mock/Spy of CommonJS and ES6 Module Imports", "url": "https://codewithhugo.com/jest-mock-spy-module-import/", "published_at": "2019-10-15T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b2e8e859", "title": "Importance of Blocking Web Crawlers and Bots From Your Website", "url": "https://codewithhugo.com/importance-crawler-bot-block/", "published_at": "2019-10-11T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b36685cd", "title": "How to run, ignore or skip Jest tests, suites and files", "url": "https://codewithhugo.com/run-skip-single-jest-test/", "published_at": "2019-10-07T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b443d484", "title": "Auto-publish future posts with JAMstack on Netlify and IFTTT/CircleCI 2.0 scheduled jobs", "url": "https://codewithhugo.com/scheduled-future-posts-jamstack/", "published_at": "2019-09-29T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b508d8e3", "title": "Detect ctrl/cmd/alt/shift + Click in Vanilla JavaScript, React and Vue.js", "url": "https://codewithhugo.com/detect-ctrl-click-js-react-vue/", "published_at": "2019-09-16T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b56a492d", "title": "Record analytics events with a Zeit \"micro\" + SQLite3 Node.js application", "url": "https://codewithhugo.com/micro-analytics-events-sqlite/", "published_at": "2019-09-09T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b5f0ad14", "title": "How to run Jest tests sequentially", "url": "https://codewithhugo.com/run-jest-sequentially/", "published_at": "2019-09-02T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b69a206e", "title": "Detect if the current file/module is the entrypoint or import/require-d in Node.js", "url": "https://codewithhugo.com/node-module-entry-required/", "published_at": "2019-08-26T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b73ed5a1", "title": "Add Diagrams to your Jekyll/Hugo/Gatsby blog with Mermaid JS", "url": "https://codewithhugo.com/mermaid-js-hugo-shortcode/", "published_at": "2019-08-12T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b7f50cd3", "title": "Yarn Workspaces: monorepo management without Lerna for applications and coding examples", "url": "https://codewithhugo.com/yarn-workspaces-application-monorepo/", "published_at": "2019-08-05T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b83ca1f2", "title": "Add Search to a Hugo site with Lunr.js and Node.js", "url": "https://codewithhugo.com/hugo-lunrjs-search-index/", "published_at": "2019-07-01T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b8da77d9", "title": "JavaScript Data Type Check Cheatsheet", "url": "https://codewithhugo.com/javascript-data-type-check-cheatsheet/", "published_at": "2019-06-24T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b90f2c71", "title": "Tailwind CSS 1.x impressions, development and production setup for static sites with Tailwind CLI and PurgeCSS CLI", "url": "https://codewithhugo.com/tailwind-css-1.x-impressions-development-and-production-setup-for-static-sites-with-tailwind-cli-and-purgecss-cli/", "published_at": "2019-06-17T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b9262c63", "title": "Jest ignore or exclude file/function/statement from test coverage", "url": "https://codewithhugo.com/jest-exclude-coverage/", "published_at": "2019-06-10T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186b945a43d", "title": "Super-powered newsletter content with Pocket and Netlify Lambda", "url": "https://codewithhugo.com/pocket-newsletter-netlify-lambda/", "published_at": "2019-06-03T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186ba32e0d7", "title": "Avoiding recursion pitfalls: MongoDB nested query clause addition and removal", "url": "https://codewithhugo.com/mongo-or-query-add-remove/", "published_at": "2019-05-20T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186bac9e4d5", "title": "Read and parse POST/PATCH/PUT request JSON or form body with Express and no dependencies", "url": "https://codewithhugo.com/parse-express-json-form-body/", "published_at": "2019-05-11T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186baee407b", "title": "Using ES6 classes for Sequelize 4 or 5 models", "url": "https://codewithhugo.com/using-es6-classes-for-sequelize-4-models/", "published_at": "2019-05-04T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186bb240070", "title": "Jest assert over single or specific argument/parameters with .toHaveBeenCalledWith and expect.anything()", "url": "https://codewithhugo.com/jest-specific-argument-parameter-assert/", "published_at": "2019-04-29T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186bbabb9ee", "title": "An enterprise-style Node.js REST API setup with Docker Compose, Express and Postgres", "url": "https://codewithhugo.com/node-postgres-express-docker-compose/", "published_at": "2019-04-24T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186bc2e6e88", "title": "Enable CDN (Cloudflare) caching for your Netlify site", "url": "https://codewithhugo.com/enable-cdn-netlify/", "published_at": "2019-04-01T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186bc53af58", "title": "Docker Compose Local HTTPS with nginx or Caddy and mkcert", "url": "https://codewithhugo.com/docker-compose-local-https/", "published_at": "2019-03-25T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186bcac0092", "title": "Deployment options: Netlify + Dokku on DigitalOcean or Hetzner Cloud vs now.sh, GitHub Pages, Heroku and AWS", "url": "https://codewithhugo.com/deployment-options-netlify-dokku-on-digitalocean-vs-now.sh-github-pages-heroku-and-aws/", "published_at": "2019-03-20T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186bd8920d2", "title": "JavaScript Object.defineProperty for a function: create mock object instances in Jest or AVA", "url": "https://codewithhugo.com/js-object-defineproperty-for-function/", "published_at": "2019-03-18T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186be72734f", "title": "Fix git “tip of your current branch is behind its remote counterpart” - 4 real-world solutions", "url": "https://codewithhugo.com/fix-git-failed-to-push-updates-were-rejected/", "published_at": "2019-03-11T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186bea641f3", "title": "Pass cookies with axios or fetch requests", "url": "https://codewithhugo.com/pass-cookies-axios-fetch-requests/", "published_at": "2019-03-04T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186bf5ef8fc", "title": "A testing guide for Express with request and response mocking/stubbing using Jest or sinon", "url": "https://codewithhugo.com/express-request-response-mocking/", "published_at": "2019-02-18T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186bf722238", "title": "Node.js configuration management without config or dotenv", "url": "https://codewithhugo.com/node-configuration-management/", "published_at": "2019-02-13T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186bfb867e2", "title": "Bash Cheatsheet: check if environment variables are set or file/symlinks exists + more", "url": "https://codewithhugo.com/just-enough-bash-to-be-dangerous/", "published_at": "2019-02-05T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186c04df5ce", "title": "Async JavaScript: history, patterns and gotchas", "url": "https://codewithhugo.com/async-js/", "published_at": "2019-01-28T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186c08d39c6", "title": "Connect to MongoDB on Dokku with your local command line or Robo3T", "url": "https://codewithhugo.com/connect-to-mongodb-on-dokku-with-your-local-command-line-or-robo3t/", "published_at": "2018-12-31T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186c0b6e5fe", "title": "Sequelize Data Types: a practical guide", "url": "https://codewithhugo.com/sequelize-data-types-a-practical-guide/", "published_at": "2018-12-19T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186c153da69", "title": "Avoid null/undefined in JavaScript arrays", "url": "https://codewithhugo.com/avoiding-falsy-values-in-javascript-arrays/", "published_at": "2018-12-13T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186c1b7e502", "title": "JavaScript array type check - “is array” vs object in-depth", "url": "https://codewithhugo.com/detecting-object-vs-array-in-javascript-by-example/", "published_at": "2018-12-10T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186c21a615f", "title": "Technical content workflow for “Code with Hugo”: static site, Paper, Medium, DEV and Buttondown", "url": "https://codewithhugo.com/technical-content-workflow-for-code-with-hugo-static-site-paper-medium-dev-and-buttondown/", "published_at": "2018-12-07T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186c2f1085b", "title": "Post Frequency: from prototype to production with Vue + Node", "url": "https://codewithhugo.com/post-frequency-from-prototype-to-production-with-vue-node/", "published_at": "2018-11-26T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186c37ad57f", "title": "Add a Vanilla JavaScript paywall to a Hugo site using checkoutpage.co", "url": "https://codewithhugo.com/vanilla-js-hugo-paywall/", "published_at": "2018-11-22T00:00:00+00:00" }, { "id": "01a07df2-5439-71ac-b9d4-6186c3868832", "title": "A simple JavaScript/Node coding setup on Mac OS X", "url": "https://codewithhugo.com/a-simple-javascript/node-coding-setup-on-mac-os-x/", "published_at": "2018-11-19T00:00:00+00:00" } ] posts Claim your blog
Back to Hugo Di Francesco
Blog · corpus.blog/blogs/codewithhugo.com/posts

Hugo Di Francesco

codewithhugo.com

2025

2024

2022

2021

2020

2019

2018