The Curious Engineer

Flavio Copes

2020–2026

1,355 posts

← 2012–2019

2026 411

October 2026

  1. Test your SaaS replacement before cancelling the original
  2. How to make it easy to leave your SaaS
  3. Build or buy calculator: when does your replacement cost less?
  4. Research keywords through OpenSEO MCP
  5. Build a tiny site-audit crawler with Workers and Queues
  6. The best voice to text apps for a Mac
  7. Build an agent approval flow that survives a restart
  8. Lessons for builders from Sam Altman's Cheeky Pint interview
  9. When one product pays another
  10. Pi Durable, Cloudflare Workflows, or Vercel Workflow?
  11. How to customize Cloudflare Access pages
  12. How to use TinyFish
  13. The best macOS browsers for AI agents, and how to use them
  14. Give coding agents checks they can learn from
  15. Practicing engineering judgment with AI
  16. The complete guide to AI image generation
  17. The big players in AI coding: models, tools, and who to follow
  18. Internet Business Lab is open
  19. Which business advantages can a solo developer build?
  20. How to use GPT-6.1 Terra, OpenAI's new fast vision model
  21. Chrome Alternatives in 2026: 50 Web Browsers Compared
  22. How to work with coding agents from your phone
  23. How to protect secrets when coding agents deploy your app
  24. How to use MCP Tasks and Elicitations in Claude Code
  25. The complete guide to Convex
  26. How to use Grok Build
  27. A pull request workflow for code written by agents
  28. Prompt caching, compression, and compaction in coding agents
  29. Pushing to main still needs a process
  30. What changes when you stop opening the code editor?
  31. Cloudflare Hyperdrive tutorial: use PostgreSQL with Workers
  32. What teaching can tell us about prompting
  33. Too many conversations with coding agents
  34. Software with a point of view
  35. What would make an overnight agent useful?
  36. I care more about the AI product I can use
  37. How to use Cursor Computer Use
  38. The complete guide to LM Studio Bionic
  39. How to secure a VPS with Tailscale and Cloudflare Tunnel
  40. What to check before submitting a native app to App Review
  41. Triage support tickets in one request with OpenAI's Decisions API
  42. How to publish a Chrome extension to the Chrome Web Store
  43. What to check before upgrading the Anthropic SDK
  44. How to use a coding agent without another subscription
  45. How to create a DMG installer for a Mac app
  46. AI video editing tools: what agents need to work safely
  47. A deep dive into Claude Duet
  48. Paid traffic for SaaS validation: how to test product demand
  49. Security in the age of AI
  50. Give your coding agent a state machine
  51. PSA: update PHP today
  52. Jev vs structured outputs: when to use each
  53. Vite toolchain: Cloudflare, vinext, and shared web tooling
  54. SPA vs server-side rendering: which should you choose?
  55. A deep dive into tsrs
  56. How to update all global npm packages
  57. Cloudflare Pages vs Workers: which should you choose?
  58. How AI agents make existing software more useful
  59. AI-assisted code migration: how to switch frameworks safely
  60. AI coding agent context: how to document project decisions
  61. How to speed up tests for AI coding agents
  62. How to compare OpenCode, Claude Code, and Codex CLI
  63. How I would evaluate Muse Wonder in Cursor
  64. 15 apps you can vibe code instead of subscribing
  65. See all news →
  66. Codex vs Claude Code vs Cursor: how to choose
  67. Parallel coding agents: how to coordinate and review changes
  68. How to use OpenCode with a local model in LM Studio
  69. A practical review workflow for T3 Code threads
  70. Selling SaaS to developers: how to find paying customers
  71. MCP server design: tools, authentication, and rate limits
  72. OpenCode Code Mode explained: JavaScript instead of repeated tool calls
  73. Changing package managers doesn't remove your npm registry dependency
  74. How to compete with AI-generated SaaS clones
  75. Build vs buy software: when AI can replace a SaaS
  76. How to write an OpenCode plugin with the v2 API
  77. How OpenSEO works and how to self-host it
  78. How to build agents that survive crashes with Pi Durable
  79. How to use OpenCode
  80. The complete guide to Void: full-stack Vite apps with Hono and Cloudflare
  81. Meta released Muse Spark Open: what you can run, and what it takes
  82. How to handle web requests in C with CGI 1.1
  83. What “open weights” means for AI models
  84. How to build AI agents with LangChain and LangGraph in TypeScript
  85. How I fixed a full Ubuntu server disk with Codex
  86. How to create an Apple TV app
  87. How to install your own apps on your iPhone with Xcode
  88. LiveKit tutorial: how to build a voice AI agent
  89. How to use Jev with Claude Code, Codex and Cursor
  90. See all posts →
  91. How to avoid the "Open Anyway" message when building macOS apps
  92. Use WhatCable to figure out what your USB cable can do
  93. How to compile JavaScript into a single executable
  94. How to use Jev with the Vercel AI SDK
  95. Use npkill to find and delete old node_modules folders
  96. What happens when AI agents shop for us
  97. I built Footage Ferry, a Mac app to import Blackmagic Camera videos
  98. I open sourced testvm, so your coding agents can test Mac apps in a VM
  99. I built Repo Foyer, a Chrome extension that puts my repos on the GitHub home page
  100. Planning CloudKit sync between a Mac app and an iPhone app
  101. How to schedule cron jobs on Linux and macOS
  102. Payment picker: find how to get paid for your app
  103. Which web host should I use? Hosting comparison tool
  104. How to use cf, the new Cloudflare CLI
  105. I built Architecture Dissector, a Mac app that shows how my apps are built
  106. I built Couch Snake, the classic phone game for the Apple TV
  107. I built Chip Pops, 6,000 8-bit sound effects for my apps
  108. How to use Jev confidence scores
  109. How to fix "Stacked PRs are not enabled for this repository"
  110. Should you pay for the Apple Developer Program?
  111. How to let coding agents test Mac apps in a VM
  112. How to add automatic updates to a Mac app using GitHub Releases
  113. I built Slide Lookout, a Chrome extension that shows your next slide
  114. What running a one-person software business costs per month
  115. Herdr alternatives: terminal workspaces and agent managers compared
  116. How to create and publish a ChatGPT plugin
  117. What is poteto-mode in pstack?
  118. How to classify text with Jev
  119. I built Post Slide Deck, slides from posts on X for my videos
  120. I built VM Peek, a Mac app that shows what your coding agents do in the test VM
  121. Every product I launched this summer, and what happened to each
  122. How to use the Codex CLI
  123. How to use your ChatGPT subscription in other apps
  124. How to use the OpenAI Agents API in JavaScript
  125. Herdr keyboard shortcuts
  126. How to use Codex Cloud
  127. A deep dive into Clef, Cloudflare's decision model

September 2026

  1. A deep dive into OpenAI dots
  2. Things I let coding agents do unattended, and things I never do
  3. How to use Jev with Python
  4. How to use the unslop skill
  5. GPT-6.1 Sol API tutorial: build a Node.js code reviewer
  6. Payment processing fees compared: Stripe, Paddle, and more
  7. How to stop X from turning a domain into a link
  8. The MCP servers connected to my editor, and the ones I actually use
  9. How to use Jev in Node.js
  10. PostgreSQL and SQLite hosting: free and paid options
  11. The 10 fundamentals still worth learning when AI writes the code
  12. How much does Jev cost?
  13. The CLI tools I use every day
  14. Linux server commands for troubleshooting and maintenance
  15. How to use Cloudflare Worker Previews
  16. How to get access to Jev and an API key
  17. Which AI model is best for coding? A hands-on comparison
  18. Every hosting provider's free tier, side by side (checked September 2026)
  19. The complete guide to Cloudflare Tunnel
  20. The complete guide to Cloudflare Quick Tunnels
  21. A deep dive into Pi
  22. The stack I use to run this blog, 2026 edition
  23. How to build a terminal app people can SSH into
  24. How AI models are measured and compared
  25. 12 CSS features you can use today with no build step
  26. Slop grenades
  27. How to use Vercel's fx coding agent
  28. Node.js built-ins that replaced npm packages
  29. Grok Bot vs Cursor Projects: when to use which
  30. 10 browser APIs that replaced a library I used to install
  31. Updating self-hosted Plausible Analytics using AI
  32. Solving an issue with sending emails on my server
  33. How Cap makes money from open source software
  34. How to safely add paid AI features to a desktop app
  35. How to build a scraping tool
  36. How to build typed decisions with Jev
  37. IDE, CLI, vibe coding tool, …how to decide?
  38. Vercel tutorial: deploy a web app from Git or the CLI
  39. How I built a paid membership site with Astro and Convex
  40. Debugging a process killed on my server with Codex
  41. How to use the Codex desktop app
  42. How I fixed my DevOps mistakes with AI
  43. Securing a server using AI
  44. What I learned in the past 6 months about using agentic AI
  45. Where to host your web app: how to choose
  46. Merchant of Record or payment processor? How to choose how to get paid online
  47. When more people are building software, what's the value of software?
  48. Software was never worth the hours it took
  49. Understanding tsconfig.json
  50. What is tldraw? The canvas, SDK, MCP, Offline and Flash
  51. How to make AI harnesses talk less
  52. JSONL: a practical guide to JSON Lines
  53. How to use Cursor Projects
  54. Native email and password authentication on Cloudflare Workers
  55. AI and the joy of programming
  56. A deep dive into Ghostty
  57. Why I think more clearly when I type
  58. The Cloudflare products I actually use
  59. How to use tmux: sessions, windows, panes, and shortcuts
  60. Vercel AI Gateway tutorial
  61. Why your MacBook runs hotter at high altitude
  62. Build a language model on your Mac with Language Model Builder
  63. How AI agents can log in without seeing your passwords
  64. Passkeys and WebAuthn explained
  65. Content Security Policy (CSP) explained
  66. Zustand: simple React state management
  67. A deep dive into exe.dev
  68. Build a chatbot with Cloudflare Workers AI
  69. How to prevent AI agents from taking irreversible actions
  70. Build a documentation site with Astro and Markdown
  71. Introduction to TanStack Query
  72. Run a local LLM with Ollama
  73. How to stream LLM responses with server-sent events
  74. How to resize and optimize images with Cloudflare Images
  75. What happens when Bun runs a TypeScript file
  76. Biome: one tool for linting and formatting
  77. How to build an LLM from scratch
  78. Use AI to understand code
  79. How to build an MCP server
  80. What is an AGENTS.md file
  81. Email for developers and AI agents: how to choose a provider
  82. How to scan your code with the Codex Security CLI
  83. SSH for developers
  84. The jq command
  85. How to add WebMCP tools to your website for AI agents
  86. Run Cursor cloud agents on your own Mac mini

August 2026

  1. Git hooks for AI engineering
  2. How to connect AI agents to MCP servers and APIs with Executor
  3. ZCode review: Z.ai's GLM-5.3 coding agent on a real project
  4. node:sqlite: SQLite built into Node.js
  5. I built 37 terminal text effects in pure JavaScript
  6. How to scan your code for security issues with DeepSec
  7. How to run a Cloudflare D1 database locally
  8. HTMX 4 is here
  9. The Node.js built-in test runner
  10. A bot added around 5,000 addresses to my newsletter
  11. Introduction to Docker Compose
  12. How to manage environment variables with 1Password
  13. A deep dive into T3 Code
  14. Use 1Password Developer Environments with Cursor
  15. DARP: Durable Activity Record Protocol
  16. How to use GitHub Actions for CI/CD
  17. A deep dive into StyleX
  18. How to exit Herdr: detach, close or stop without losing work
  19. A deep dive into Ponytail
  20. How to use HEY email from the terminal with hey-cli
  21. Using Herdr from a phone
  22. What is Cursor Origin? Cursor's Git hosting vs GitHub
  23. Build an idempotent scheduled job with Cloudflare Queues and D1
  24. How to send email with Cloudflare Email Service
  25. How to use zoxide
  26. How to design 3D-printable parts with AI using Nurb
  27. Scroll-driven CSS animations
  28. Herdr vs tmux vs Zellij
  29. Choosing anti-slop skills for writing and code
  30. Modern CSS colors: oklch() and color-mix()
  31. CSS Subgrid
  32. A practical guide to Herdr plugins
  33. A deep dive into Grok Bot
  34. How to group array items with Object.groupBy()
  35. Swamp tutorial: make AI agent work repeatable
  36. JavaScript immutable array methods: toSorted(), toReversed(), toSpliced(), with()
  37. How to use Herdr skills and herdr --skill
  38. A deep dive into pstack
  39. The View Transitions API
  40. Native CSS Nesting
  41. The Popover API
  42. MutationObserver and ResizeObserver
  43. The HTML dialog tag
  44. Find command-line tools from a macOS app
  45. CSS Container Queries
  46. What I learned reading Claude's system prompts
  47. The CSS :has() selector
  48. The Intersection Observer API
  49. AbortController: how to cancel a fetch request in JavaScript
  50. Add a local LLM without making your app depend on it
  51. Cloudflare Workers AI: run LLMs without API keys
  52. Cloudflare AI Gateway: put a proxy in front of your LLM calls
  53. WebAssembly tutorial
  54. HTTP/2 and HTTP/3: what changed and why it matters
  55. A deep dive into cmux
  56. How to build server-rendered interfaces with HTMX 2
  57. What your photos leak: EXIF metadata and GPS
  58. How to use Kysely with TypeScript and PostgreSQL
  59. Herdr vs cmux: terminal persistence and the Mac browser workflow
  60. How Hono handles requests: routing, middleware, and context
  61. How open-weight AI models work: weights and quantization
  62. Deploying Hono on Cloudflare Workers
  63. Glob patterns explained (and why .gitignore behaves that way)
  64. How to manage coding agents with Herdr
  65. How Cloudflare Computer runs code for AI agents
  66. Hono: middleware, cookies, headers, redirects
  67. How workerd, the Cloudflare Workers runtime, is built
  68. SPF, DKIM, and DMARC explained for developers
  69. Hono: a modern web framework for JavaScript
  70. How bb, the programmable IDE for coding agents, is built
  71. Kitesurf: Cloudflare's browser built for AI agents
  72. How Astro is built
  73. Use fetch, queue, and scheduled handlers in one Cloudflare Worker
  74. Bun: a faster JavaScript runtime
  75. Vercel Observability tutorial: debug a slow or failing Function
  76. How celld runs Workers on your own infrastructure
  77. robots.txt in the age of AI crawlers
  78. The HTTP security headers every site should send
  79. How OAuth 2.0 works: authorization code flow and PKCE
  80. What happens after your email API says accepted
  81. Server-Sent Events: streaming from server to browser
  82. @keyframes and prefers-reduced-motion done right
  83. How I fixed a stuck Cloudflare Pages build queue
  84. Build scanner-safe double opt-in
  85. How Plausible Analytics Community Edition is built
  86. Vitest: an introduction
  87. The CSS aspect-ratio property and the math behind it
  88. How I auto-publish scheduled posts with a Cloudflare Worker cron
  89. Vercel Blob tutorial: upload and serve files
  90. libSQL and Turso: SQLite for production
  91. conic-gradient and the modern CSS gradient toolbox
  92. How I made this Astro site build faster and cut its deploy size
  93. Build idempotent double opt-in signup
  94. Drizzle ORM: an introduction
  95. CSS easing functions: what cubic-bezier actually does
  96. Harden a public form endpoint
  97. How to use the JavaScript Temporal API for dates and time zones
  98. How JWT signing actually works (HS256 with Web Crypto)
  99. Vercel Queues tutorial: process background jobs reliably

July 2026

  1. UUID v4 vs v7, and what's inside a UUID
  2. Kubernetes for developers: a complete beginner's guide
  3. Cloud platform plugins and skills for AI coding agents
  4. How to write JavaScript sort comparators
  5. Storybook tutorial: build and test UI components in isolation
  6. Run a Dockerfile on Vercel
  7. Stateless MCP: what changed in the July 2026 specification
  8. Promise.all vs allSettled vs race vs any
  9. Tauri tutorial: build a desktop app with web technologies
  10. How I turned fstack into a software factory
  11. Vercel Workflows tutorial: build a durable background job
  12. What is MCP, the Model Context Protocol
  13. RAG chunking explained: chunk size, overlap, and what it costs
  14. Build a Vite plugin from scratch
  15. Canvas UI puts WebGL shaders over real, interactive HTML
  16. Terraform for developers: a complete beginner's guide
  17. Running LLMs locally vs paying for an API: the actual math
  18. Liquid Software: When Software Can Change Its Shape
  19. How to build an Astro integration
  20. How much VRAM do you need to run an LLM locally?
  21. Production at the Edge
  22. Build and publish a TypeScript package to npm
  23. Vercel Sandbox tutorial: run untrusted code safely
  24. Record a product demo with Playwright
  25. How I built Notion to Site, and how I'd build it today
  26. Integration testing Node.js with Testcontainers
  27. GitHub Stacked PRs: a practical guide to gh stack
  28. An LLM adapter pattern for Cloudflare Workers
  29. Load testing a web API with k6
  30. Buzz: a workspace where humans and AI agents work together
  31. How to use Notion as Code
  32. Detect a tech stack from a GitHub repo URL
  33. Background jobs in Node.js with BullMQ
  34. v0 tutorial: build and deploy a full-stack app
  35. Self-drawing SVG connection lines
  36. OpenTelemetry tutorial for Node.js: traces and metrics from scratch
  37. Build a draggable node diagram without a library
  38. OpenAPI tutorial: document and validate a REST API
  39. Don't let the LLM do the math
  40. Build a Chrome extension from scratch with JavaScript
  41. Vercel AI SDK tutorial: build a streaming chatbot with tools
  42. Playwright tutorial: end-to-end testing from scratch
  43. First-party analytics with SQLite
  44. Dynamic sitemap.xml in Astro SSR
  45. How I added Polar payments to an Astro app
  46. Better Auth in Astro on Cloudflare Workers
  47. Versioning reference data with effective_from dates
  48. Transactional email from Workers with Resend
  49. The Swift Guide
  50. The SQL and Databases Guide
  51. The Python Guide
  52. The PHP Guide
  53. The Laravel Guide
  54. The htmx Guide
  55. The HTML Guide
  56. The Go Guide
  57. The Cloudflare Guide
  58. The Command Line Guide
  59. The C Guide
  60. The Astro Guide
  61. The Alpine.js Guide
  62. The AI Guide for Developers
  63. Astro SSR with D1 and Drizzle ORM
  64. fstack, the simple stack
  65. How I log every Git commit to a plain text file
  66. How I use the same Git work log with Codex and ChatGPT
  67. Rate limiting with Cloudflare KV
  68. Serving my site as Markdown to AI agents
  69. HMAC-signed URLs on Cloudflare Workers
  70. How I investigated why my iPhone was running hot
  71. What iPhone Developer Mode does, and when you should enable it
  72. Cloudflare Artifacts: Git storage built for AI agents
  73. Better Auth: an introduction
  74. Moondream 3.1 on Workers AI: fast vision at the edge
  75. Workers Caching: a cache in front of your Cloudflare Worker
  76. Temporary Cloudflare accounts: agents can now deploy without signing up
  77. Cloudflare Drop: drag a folder, get a live site
  78. How the Cloudflare Pages build cache works
  79. How I generate an Open Graph image for every post
  80. How I added search to my static site with Pagefind
  81. How to rebuild a Cloudflare site on a schedule
  82. Cloudflare Email Workers: run code when an email arrives
  83. Cloudflare Turnstile: stop bots without annoying CAPTCHAs
  84. Cloudflare Workers: secrets and environments

June 2026

  1. Cloudflare Workers observability: logs and traces
  2. Cloudflare Analytics Engine: store and query metrics
  3. Cloudflare Cron Triggers: run a Worker on a schedule
  4. Cloudflare Durable Objects tutorial
  5. Cloudflare Queues: run work in the background
  6. Cloudflare R2: object storage without egress fees
  7. Cloudflare KV: a key-value store for your Workers
  8. Cloudflare D1: a SQL database for your Workers
  9. Serving a website with Cloudflare Workers static assets
  10. Wrangler: the Cloudflare Workers command line tool
  11. Vercel eve: an open framework for building AI agents
  12. Cloudflare Workers: your first serverless function
  13. Flue: the open framework for building AI agents
  14. How to build APIs and scheduled jobs with Val Town
  15. A hands-on guide to The Agency, a collection of AI agents

2025 20

October 2025

  1. Setting up Tailwind CSS on Vite
  2. Railway deployment guide: apps, databases, domains, pricing
  3. How to use Zod with TypeScript: validate data and infer types
  4. Managing node_modules efficiently with pnpm and Bun
  5. The React Context API
  6. Git Worktrees

April 2025

  1. Deploying an Astro + PostgreSQL app on Railway
  2. Build it and they will come
  3. How to recover lost data from an SD card
  4. My own little corner shop on the Internet
  5. Freeing space on a Mac

March 2025

  1. Concatenating videos on macOS

February 2025

  1. Fix files creation date in macOS
  2. Removing all Homebrew stuff

January 2025

  1. Best SMTP server for development
  2. Supabase email rate limit
  3. On AI doomerism
  4. Astro, fix Form error “Content-Type was not one of…”
  5. Durable cache on Netlify
  6. Underscores in numbers

2024 68

December 2024

  1. The use hook
  2. The useOptimistic hook
  3. The useFormStatus Hook
  4. The useActionState hook
  5. Server Actions
  6. Form Actions
  7. Why learn to code if finding a job is more difficult?

November 2024

  1. The Path to Learn Web Development
  2. Full-Stack TypeScript Stack vs Laravel-Rails
  3. Will AI replace Web Developers?

October 2024

  1. Bumping Node.js dependencies
  2. The AHA Stack

September 2024

  1. Next.js, passing an id to a server action
  2. How to install shadcn-ui on latest Next.js beta-RC
  3. use() and data fetching
  4. How to get the Request headers in Next.js app router
  5. Generate UUIDs in JavaScript with crypto.randomUUID()
  6. What’s new in React 19
  7. Using reCAPTCHA on a Astro form
  8. Using Cloudflare Turnstile on an Astro form
  9. Show or hide an element by parent class in Tailwind
  10. Next.js embed youtube video
  11. Hide HTML elements based on HTMX request status
  12. Astro, set response header
  13. Astro, set caching headers
  14. An HTML element id is a global variable

August 2024

  1. The Git Cheat Sheet
  2. How to install Git on Linux (Ubuntu)
  3. How to install Git on macOS
  4. How to Install Git on Windows

July 2024

  1. Astro, when to use .astro or .ts files

June 2024

  1. Adding React Framer Motion animations to an Astro site

May 2024

  1. Searching for the perfect e-ink writing device
  2. AI and the future of software developers

April 2024

  1. Benefits of using Git (and GitHub) as a solo dev
  2. Git, what if you forgot to add a file to a commit?
  3. Git, detached HEAD
  4. Git, rebase vs merge
  5. Git, squashing vs not squashing
  6. Run client-side JS in Astro MDX
  7. Dynamic function name in JS
  8. Using Railway private networking
  9. Fix 'Too many redirects' after enabling Cloudflare proxy

March 2024

  1. Unregister service workers in Safari
  2. How I fixed some trouble importing types in .d.ts files
  3. Disabled form fields are not POSTed
  4. Why not write logic in Astro layouts
  5. Using Astro locals
  6. Unterminated string literal
  7. Astro page layout and middleware execution order
  8. Pasting code snippets in Discord
  9. Fixing TS issues in VS Code - Astro

February 2024

  1. regex select entire line starting with..
  2. Deploy to Fly via GitHub action

January 2024

  1. Why I use htmx
  2. Why I use Alpine.js
  3. Simplicity
  4. Decide to render a partial or not dynamically in Astro
  5. Render different HTML based on HTTP method in Astro
  6. How to create a sidebar that’s sticky but also scrolls
  7. Dockerfiles used to deploy Astro and PocketBase on Railway
  8. Had an issue with bfcache
  9. Run PocketBase on fly.io
  10. Run an app on fly.io
  11. Fly.io, list all regions available
  12. Fix 'Cannot find module fs' in VS Code
  13. Dockerfile to run Astro Node SSR on fly.io
  14. Deployment strategy on fly.io

2023 106

December 2023

  1. htmx trigger request via JS event
  2. Redirect to a link when user selects option in a select
  3. Conditionally set an HTML attribute
  4. TypeScript type for a string or array of strings
  5. htmx send files using htmx.ajax() call
  6. htmx, include hidden input fields outside of a form
  7. How to implement file upload with drag and drop with Alpine
  8. File upload with drag and drop in vanilla JavaScript
  9. htmx forms and Astro View Transitions
  10. Cookie not being set in Safari
  11. htmx + Alpine template tag
  12. How to disable 1Password in an input field
  13. Why I use Astro
  14. Set custom cookie in the header and then redirect in Astro
  15. htmx, redirect after request
  16. Fix tsconfig.json 'cannot find type definition file for node'
  17. How to automatically run Prettier on all files in a project

November 2023

  1. Customizing visited links
  2. Google Recaptcha missing-input-secret
  3. Running a recent Node version on DigitalOcean App platform
  4. Sending emails with nodemailer on Vercel
  5. Local PostgreSQL vs Vercel Postgres (now Neon) with Kysely
  6. How to reset Postgres SERIAL number
  7. Change the color of a webpage dynamically using JS and CSS

October 2023

  1. Use React component in Astro
  2. Passing Astro components to React components
  3. HTMX, perform something on page load
  4. htmx and Astro View Transitions
  5. Astro, prerendering a single component in a SSR page
  6. Render app deploy stuck on in progress
  7. How to destructure an object to an already defined variable
  8. Fix Node.js imports types errors in VS Code
  9. Astro, fix .md in links
  10. Astro, embed an image in markdown without relative path
  11. Astro View Transitions and Dark Mode

June 2023

  1. Creating CLI commands in Laravel
  2. Deploying a site to Laravel Forge
  3. Only authenticated users can add items to the database
  4. Setting up authentication using Laravel Breeze
  5. Using Tailwind CSS with Laravel
  6. Store form input in the database with Laravel
  7. Dynamic routes in Laravel
  8. Laravel migrations: create and modify a database schema
  9. Connecting a database to Laravel
  10. How to use Blade templates in Laravel
  11. Introduction to Laravel

May 2023

  1. Fix Cloudflare 'too many redirects' on Laravel Forge SSL
  2. How to use custom fonts with Tailwind CSS
  3. SQL injection
  4. How to click a link with a specific text with Puppeteer
  5. How to do a screenshot using Puppeteer
  6. Save some text to a file in Node.js
  7. CSRF (Cross Site Request Forgery) tutorial
  8. nodemailer, how to embed an image into an email
  9. How to send an email using nodemailer
  10. Restarting a Node process without file changes

April 2023

  1. Update all npm packages in multiple projects in subfolders
  2. Apply a style to a children with Tailwind

March 2023

  1. Fix Uncaught Error Objects are not valid as a React child
  2. How to slugify a string in JavaScript
  3. How to turn an image into a data URI string
  4. How to get an image width and height using Node
  5. Revalidation and ISR gotcha on Vercel
  6. How to download an image from URL in Node

February 2023

  1. Fix the “Objects are not valid as a React child” error
  2. How to add a simple dark mode
  3. Ensure an image upload is smaller than a specific size
  4. CSS, how to select elements that do NOT have a class
  5. The valley of sorrow in learning programming
  6. Why blog?
  7. Notion API, how to retrieve the entries in a database
  8. Logging all the requests coming through an Express app
  9. Axios crashes the Node.js process when the request fails
  10. How to play a sound from the macOS command line
  11. Persist aliases and other configuration in Fish Shell
  12. SQL, copy data from one table to another
  13. Vite Tutorial
  14. Hiding classes in VS Code
  15. What is SWC?
  16. AppleScript by example, episode 1

January 2023

  1. How to concatenate strings in AppleScript
  2. How to find the bundle ID of a Mac app
  3. How to add an “Open in Terminal” icon in macOS Finder
  4. How to add an “Open in VS Code” icon in macOS Finder
  5. Ubuntu how to upgrade Node.js
  6. How to add a path to Fish Shell
  7. Notion API, update the icon emoji of a page
  8. Notion API, update a checkbox value in a database
  9. How to self-host Plausible analytics
  10. Run a Node.js script from your macOS menu bar
  11. JavaScript, how to remove multiple line breaks
  12. Optimize images from a Node.js script
  13. Calling the ImageOptim macOS app from a Node.js script
  14. How to execute a shell command using Node.js
  15. Notion API, select all pages with a specific emoji
  16. How to trigger a static-site redeploy safely
  17. Get all regex matches with capturing groups in JavaScript
  18. JavaScript regex to capture a URL without query string
  19. Getting year-month-date from JS dates
  20. How to use .env files in Node.js with import syntax
  21. How to download and save an image using Node.js
  22. Slugify a string in JavaScript
  23. Using Vite to create a new React app
  24. CSS box-sizing: border-box
  25. How to access configuration values in Astro components
  26. How to have a flex child not fill entire height

2022 137

December 2022

  1. How to clone anything in JavaScript
  2. Fish Shell, how to remove the welcome message
  3. How to remove the “Last login..” message from the shell
  4. How to use import in Node.js
  5. How to embed YouTube videos using the correct aspect ratio
  6. How to bulk convert file names using Node.js
  7. Replace spaces with underscores in filenames (shell script)
  8. You can’t generate classes dynamically in Tailwind

November 2022

  1. What's the best platform to deploy your projects?

October 2022

  1. Why JavaScript is a great programming language for beginners
  2. JavaScript or Python?

September 2022

  1. Software development has no gatekeeping
  2. How to add leading zero to a number in JavaScript
  3. Interfaces in Go
  4. Methods in Go
  5. Pointers in Go
  6. Functions in Go
  7. Structs in Go
  8. Operators in Go
  9. Conditionals in Go
  10. Loops in Go
  11. Maps in Go
  12. Slices in Go
  13. Arrays in Go
  14. Strings in Go
  15. Variables and types in Go
  16. Introduction to Go workspaces
  17. How to compile and run a Go program
  18. How to create your first Go program
  19. Introduction to the Go programming language
  20. Deploying PHP applications
  21. How to use Composer and Packagist in PHP
  22. How to work with files/folders in PHP
  23. How to use PHP Cookie-based Sessions

August 2022

  1. How to use Cookies in PHP
  2. How to use HTTP Headers in PHP
  3. How to use forms in PHP
  4. Handling HTTP requests in PHP
  5. How to use exceptions in PHP
  6. How to deal with errors in PHP
  7. How to create your first PHP program
  8. How to set up PHP

July 2022

  1. How to learn programming
  2. How to await in a loop in JavaScript
  3. How to do an endless video stream
  4. How to lazy load images in Hugo
  5. JavaScript, how to get string until character
  6. How to select the first child element with CSS
  7. What to do if WebRTC on iOS shows a black box
  8. Asking Google to index your page
  9. Trigger deploys on Netlify with submodules
  10. Using git submodules to have a portion of a website public
  11. Remove the first or last characters in a shell script
  12. How to get current file name in Hugo without .md
  13. How to get the current url in Hugo
  14. Fix PostCSS 'must export a plugins key' error in Next.js
  15. How to repeat displaying something in JSX
  16. Force download links in HTML
  17. How to redirect to a new URL using JavaScript
  18. Hide a broken image in HTML when the file is missing
  19. Hugo iterate pages of section
  20. Hugo embed HTML in Markdown
  21. How to add Tailwind to Hugo
  22. Fix a package.json error after installing Prettier
  23. Create multiple folders using Bash
  24. Tracking file downloads from a website

June 2022

  1. How to fix prettier messing up your HTML on save
  2. VS Code regex replace: capture groups with $1 and $2
  3. Fix 'Unknown at rule @tailwind' warning in VS Code
  4. How to use Supabase as your PostgreSQL hosting
  5. Where to host a PostgreSQL database
  6. How to use the FormData object
  7. How to make sure your input field can only upload images
  8. Fix uploading files using fetch and multipart/form-data
  9. 24 tips for beginner programmers

May 2022

  1. How to create ebooks with Markdown
  2. How to use useEffect callback with event callbacks
  3. Fix a PostCSS Webpack error ruleSet rules oneOf... etc etc
  4. How to update your Ubuntu server packages
  5. Syntax highlight any block on a Web Page
  6. How to hide a file or folder in macOS Finder
  7. Take screenshots as JPG on macOS
  8. How to change image URLs in a markdown string
  9. How to run a script build time in Next.js
  10. How to fix the ffmpeg not found error with yt-dlp or youtube-dl
  11. Node.js get all files in a folder recursively
  12. How to use the Node.js fs module with async/await
  13. Fix installing the Node.js canvas package on macOS
  14. How to fix the objectID required error on Algolia
  15. How to define an auto increment primary key in PostgreSQL
  16. Fix PostgreSQL 'relation does not exist' error
  17. How to dynamically import JavaScript modules
  18. How to remove the shadow from window screenshots in macOS
  19. How to quickly create a Windows computer on AWS
  20. Why does useEffect run two times?
  21. How to loop over an array in Bash
  22. Fix the 'Parse failure: Unterminated string constant' error
  23. How to fix error serializing Date object JSON in Next.js
  24. How to list files in a folder in Node
  25. How to empty a folder in Node.js
  26. How to create a function in a Bash shell script
  27. How to solve the document is not defined error
  28. How to set up a cron job that runs a Node.js app
  29. How to set the fragment part of a URL
  30. How to get the fragment part of a URL

April 2022

  1. npm can install packages in the parent folder
  2. JavaScript, how to get the class name of an object
  3. Cloud cron jobs with Netlify Scheduled Functions
  4. Set the current working directory of a Node.js program
  5. Format Astro files in VS Code with Prettier
  6. How to fix decimals arithmetic in JavaScript
  7. referenceerror: window is not defined, how to solve
  8. Stick an element to the bottom of the page with Flexbox
  9. How to use Netlify Edge Functions
  10. How to set up Git and GitHub from Zero
  11. Fix 'import call expects exactly one argument' error
  12. Fix 'cannot use import statement outside a module'
  13. Fix '__dirname is not defined in ES module scope'
  14. What's the use of the hashtag # (number sign) in the links?
  15. Fix tsconfig.json 'No inputs were found in config file'
  16. npm run dev: what it does, how to stop it, change the port
  17. How to create an IAM user in AWS
  18. How to upload an image to S3 using Node.js
  19. Blank page after router.push() in Next.js?
  20. How to add days to a date in JavaScript
  21. How to test Netlify Functions locally

February 2022

  1. How to debug JavaScript code
  2. Roadmap to become a Web Developer in 2022
  3. Build a REST API using Node.js, Express and MongoDB

January 2022

  1. How to use Redis from Node.js
  2. Introduction to Programming
  3. How to prepare for a software engineer job interview
  4. How to find a job as a software engineer
  5. Prepare for technical interview questions
  6. Learn how to find solutions and ask for help
  7. Soft skills to thrive as a software developer
  8. Become a great Dev Team Member

2021 296

December 2021

  1. How to manage software projects

November 2021

  1. How to authenticate to GitHub using username and password
  2. What is a webhook?
  3. Fetching data from the network in Astro
  4. Where do you see yourself in 5 years?
  5. Introduction to Remix
  6. A big whiteboard is one of the best investments on yourself
  7. Show an image when you share a link: Open Graph tags in HTML
  8. How to set GitHub credentials for macOS
  9. Moving a simple site to Astro
  10. How to restore a Git remote after removing origin
  11. Building composable layouts in Astro
  12. Astro Props
  13. How I built a dashboard for the iPad with JavaScript
  14. Astro Components
  15. Introduction to Astro
  16. From no-code to some-code
  17. How to hide an HTML hr line and keep the space
  18. You can't replicate the success of other people
  19. How to download a file from a server using the terminal
  20. Convert an image or resize it using macOS Shortcuts
  21. Why Safari is a great browser
  22. Remove EXIF data from images
  23. Low data mode

October 2021

  1. A way to set up automations in macOS easily
  2. Create a system for your blog
  3. Expand your reach with an email list
  4. Making money with a blog
  5. Content is king
  6. Should you have a personal blog or a company/product blog?
  7. Why a blog and not videos or podcasts?
  8. How to pick a niche for your blog
  9. Is blogging still relevant?
  10. The benefits of having a successful blog
  11. Pick a goal for your blog
  12. Ups and downs of having a blog
  13. Practical content suggestions for your blog
  14. How to make the first step and start a blog
  15. Thoughts on intentionally keeping your business small
  16. How do I update my website using the iPad
  17. How to solve the most common learning to code problems
  18. The day I forgot to write a post
  19. Why you should own your platform
  20. How to get people to your blog
  21. Reverting a file to a previous version, on a Mac
  22. My current video recording setup
  23. How to add search to a Ghost site
  24. Swift: How to use SF Symbols
  25. SwiftUI: the Label view
  26. SwiftUI: how to create a Tab View
  27. SwiftUI: NavigationView and NavigationStack
  28. SwiftUI: formatting decimals in Text view
  29. SwiftUI: conditionally show items in the view

September 2021

  1. SwiftUI forms: DatePicker
  2. SwiftUI forms: Stepper
  3. SwiftUI forms: Slider
  4. SwiftUI forms: Picker
  5. SwiftUI forms: Toggle
  6. SwiftUI forms: TextField
  7. SwiftUI forms
  8. SwiftUI: the ForEach view
  9. SwiftUI List: rows, sections, ForEach and list styles
  10. How do you manage to learn several languages?
  11. SwiftUI: images
  12. SwiftUI: alert messages
  13. SwiftUI: the Button view and updating the app state
  14. SwiftUI: properties
  15. SwiftUI: spacing
  16. SwiftUI: stacks and groups
  17. SwiftUI: exploring views and modifiers
  18. Introduction to SwiftUI
  19. Swift Modules
  20. Why iOS
  21. Some thoughts on SwiftUI
  22. Building a passive revenue stream as a developer
  23. Don't hop from one language to another
  24. Introduction to Swift and iOS development for Web developers
  25. On writing about different topics
  26. How to become a Web Developer in 2021
  27. How to make the jump and become a developer
  28. Installing iOS and Mac beta releases
  29. How to join the Apple Developer Program

August 2021

  1. Control a browser game with an Arduino joystick (Johnny Five)
  2. Tsundoku
  3. Learning to code takes time
  4. I don't want to manage your data
  5. Read values from an Arduino via HTTP
  6. Fix psql 'could not connect to server' in PostgreSQL
  7. Scraping with Puppeteer
  8. Solopreneurship
  9. What's bad with freelancing
  10. Cleaning my newsletter
  11. The Trail System of the Park
  12. How I set up a Next.js project structure
  13. On blogging for 3.5 years
  14. The story of how I became a content creator
  15. Selective ignorance
  16. Some days are just better than others
  17. The best stack might be the one you know best. Or maybe not.
  18. Recurring revenue vs one-time revenue
  19. Calculating Ah from Watts

July 2021

  1. Survivorship bias
  2. Handling VAT in the EU as a creator
  3. Using multiple fields for a unique key in Prisma
  4. How to create a PostgreSQL database
  5. Fish Shell, how to avoid recording commands to history
  6. How to conditionally load data with SWR
  7. How to use SWR
  8. How to make an element smaller or bigger with CSS
  9. Clear the terminal in Visual Studio Code (and fix Cmd+K)
  10. How to create a platformer game with Phaser.js
  11. How to copy the properties of an inner object to the outer
  12. Services vs products
  13. React DOM events on components
  14. Prisma, how to reverse order
  15. Prisma, how to clear the database
  16. Prisma relations
  17. React, how to make responsive JSX
  18. Change the Heroicons SVG stroke width in React
  19. React, how to dynamically choose a component to render
  20. Fix 'Constructor requires new operator' in Next.js
  21. Setup your website to allow full-screen on iOS
  22. How to use Prisma
  23. Fix Homebrew 'Permission denied @ apply2files' error
  24. Disable TypeScript 'declared but never read' check
  25. Music for programming
  26. Acronyms in Web Development
  27. Preserving white space and line breaks in a string in HTML
  28. Fix 'prisma/client did not initialize yet' on Vercel

June 2021

  1. Fix the 'module not found' error in Next.js
  2. How to parse Markdown in Next.js
  3. How to add Google Analytics 4 to Next.js
  4. How to upload files in a Next.js form
  5. Next.js, adding features just to development mode
  6. Next.js, how to open a link in a new window
  7. How to make your S3 buckets public
  8. How to upload files to S3 from Node.js
  9. How to convert a callback into async/await
  10. How to get the file extension in Node.js from the MIME type
  11. How to get the file extension in Node.js
  12. Fix 'resolver is not a function' in React
  13. How to add ReCaptcha to a Next.js form
  14. React, how to make a checked checkbox editable
  15. Swift, how to get a random item from an array
  16. How to shuffle an array in Swift
  17. Swift Operators Precedence and Associativity
  18. Swift Protocols
  19. Swift Functions
  20. Swift Classes
  21. Swift Structures
  22. Swift Enumerations
  23. Swift optionals and nil
  24. Swift Tuples
  25. Swift Dictionaries
  26. Swift Sets
  27. Arrays in Swift
  28. Booleans in Swift
  29. Strings in Swift

May 2021

  1. Numbers in Swift
  2. Semicolons in Swift
  3. Swift Comments
  4. Swift Loops Control Transfer Statements
  5. Swift loops: the repeat-while loop
  6. Swift loops: the while loop
  7. Swift loops: the for-in loop
  8. Swift Conditionals: ternary conditional
  9. Swift conditionals: the switch statement
  10. Swift conditionals: the if statement
  11. Swift Operators
  12. Swift Objects
  13. Swift Variables
  14. Introduction to the Swift programming language
  15. Next.js Email Authentication using NextAuth
  16. Cache data globally in Next.js at build time
  17. Fix 'Already 10 Prisma Clients are actively running'
  18. Fix 'PrismaClient is unable to be run in the browser' in Next.js
  19. CSS Border inside the element
  20. Fix 'TypeError: Attempted to assign to readonly property'
  21. Absolute imports in Next.js
  22. How to programmatically change a route in Next.js
  23. How to force a page refresh in Next.js
  24. Next.js: show in development, hide in production
  25. Fix Next.js component state not refreshing on navigation
  26. Fix the 'can't resolve module' error in Next.js
  27. How to create an empty SQLite database
  28. Fix Tailwind 'unable to resolve dependency tree' in Next.js
  29. Fix the 'Upload preset not found' error in Cloudinary
  30. Push to 2 Git repositories at once and keep them in sync

April 2021

  1. Johnny Five, receiving input from the device
  2. Johnny Five, how to use a REPL
  3. Johnny Five, how to work with an LCD Screen
  4. Johnny Five, how to light a LED
  5. Phaser: Multiple scenes
  6. Phaser: Playing sounds
  7. Phaser: Mouse input
  8. Phaser: The game loop
  9. Phaser: Adding images
  10. Phaser: GameObjects
  11. Phaser: Scenes
  12. Phaser: The Canvas
  13. Johnny Five Tutorial
  14. Ideas are like fish, both stink after three days
  15. The Full-Stack Independent Developer
  16. Ideas
  17. How to use window.confirm()
  18. How to use window.prompt()
  19. How to apply padding to multiple lines in CSS
  20. Fix the 'Unable to import django.db' error in VS Code
  21. Arduino project: light the built-in LED using your browser
  22. Arduino project: control a servo motor with a potentiometer

March 2021

  1. Arduino Serial Communication
  2. Arduino: using libraries
  3. Arduino project: the map() function
  4. Arduino project: build a digital thermometer
  5. Arduino project: the tone() function
  6. Arduino project: the analogWrite() function and PWM
  7. Arduino project: use an active buzzer
  8. Arduino project: use a passive buzzer
  9. Arduino project: read analog input
  10. Arduino project: read a digital input
  11. Electronic Project: Build a voltage divider
  12. Electronic Project: Build a LED dimmer with a potentiometer
  13. Electronic components: Servo Motors
  14. DHT11 temperature and humidity sensor with Arduino
  15. 1602 LCD display with Arduino: wiring and code
  16. Electronic components: Analog Joystick
  17. Electronic components: Buzzers
  18. Electronic components: Potentiometers
  19. Electronic components: RGB LEDs
  20. Electronic components: Diodes
  21. Electronic components: LEDs
  22. Electronic components: Buttons
  23. Electronic components: Resistors
  24. Fix 'Your CLT does not support macOS 11' error
  25. The easy-peasy React state management library
  26. How to automatically cut silence in videos
  27. How to use pm2 to serve a Node.js app
  28. How to check if a variable is a number in Python
  29. How to check if a variable is a string in Python

February 2021

  1. How to use Python reduce()
  2. How to use Python filter()
  3. How to use Python map()
  4. Introduction to multithreading in Python
  5. Powering an Arduino with a power bank
  6. The PEP8 Python style guide
  7. Python Ternary Operator
  8. Python Operator Overloading
  9. Python Polymorphism
  10. Python Constants
  11. Python Enums
  12. How to check the current Python version
  13. How to install Pygame Zero on macOS
  14. GUI programming in Python with tkinter
  15. Python List comprehensions
  16. Regular Expressions in Python
  17. Python, how to write to a file
  18. Python, create a TCP server
  19. Python, create a Web (HTTP) server
  20. How to host a Web Application using DigitalOcean Apps
  21. useLocation and useHistory undefined in React Router
  22. React Router, how to get data from a dynamic route
  23. Wait for all promises to resolve in JavaScript
  24. React, edit text on doubleclick
  25. React, focus an item in React when added to the DOM
  26. Python, read the content of a file
  27. Install third-party Python packages with pip

January 2021

  1. Python, create a network request
  2. The with statement in Python
  3. Python, how to create an empty file
  4. Python, how to create a directory
  5. Python Exceptions
  6. Python, how to check if a file or directory exists
  7. Python, how to get the details of a file
  8. How to check if a number is odd or even in Python (with %)
  9. Python, how to list files and folders in a directory
  10. Python Annotations
  11. Python Introspection
  12. Python Docstrings
  13. Python Decorators
  14. Python, how to create a list from a string
  15. How to remove a Git remote
  16. How to run a Web Server on an Arduino
  17. How to connect to a WiFi network using an Arduino
  18. The Arduino Cloud platform
  19. How I deleted all my old tweets using Python
  20. How to update Pi-hole
  21. Use a GoPro as a remote webcam using Python
  22. Python Virtual Environments
  23. Python Closures
  24. Python Lambda Functions
  25. Python Nested Functions
  26. Python Recursion
  27. Python, accept arguments from command line
  28. Python variables scope
  29. Debugging Python
  30. The Python Standard Library

2020 317

December 2020

  1. Breadboard Power Supply Module
  2. The Arduino built-in LED
  3. Arduino project: blink a LED
  4. What to buy to get started with Arduino and Electronics
  5. Measuring voltage, current and resistance using a multimeter
  6. Python Classes
  7. Python Modules
  8. Python Loops
  9. Python Objects
  10. Python Functions
  11. Python Dictionaries
  12. Python Sets
  13. Python Tuples
  14. Electronics Basics: using a multimeter
  15. Electronics Basics: Prototyping using breadboards
  16. Electronics Basics: Your first circuit
  17. Electronics Basics: Short Circuit
  18. Electronics Basics: Resistance
  19. Electronics Basics: Vcc, ground, ...
  20. Electronics Basics: Voltage
  21. Electronics Basics: Current
  22. Electronics Basics: Analog vs digital
  23. Introduction to Electronics
  24. Python Lists
  25. Python Control Statements
  26. Python, Accepting Input
  27. Python Numbers
  28. Python Booleans
  29. Python Strings
  30. Python Operators
  31. Python Data Types

November 2020

  1. The basics of working with Python
  2. Python 2 vs Python 3
  3. Running Python programs
  4. Installing Python 3 on macOS
  5. Introduction to Python
  6. JavaScript Algorithms: Bubble Sort
  7. JavaScript Algorithms: Merge Sort
  8. JavaScript Algorithms: Quicksort
  9. JavaScript Algorithms: Selection Sort
  10. JavaScript Algorithms: Binary Search
  11. JavaScript Algorithms: Linear Search
  12. Algorithm Complexity and Big O Notation
  13. JavaScript, how to replace an item of an array
  14. How to use Netcat
  15. JavaScript, how to find duplicates in an array
  16. JavaScript, how to extend a class
  17. JavaScript, how to filter an array
  18. JavaScript, how to find a character in a string
  19. JavaScript, how to exit a function
  20. JavaScript, how to export multiple functions
  21. JavaScript Data Structures: Linked lists
  22. JavaScript Data Structures: Queue
  23. A short guide to nano
  24. A short guide to emacs
  25. A short guide to vim
  26. A short guide to the ed editor

October 2020

  1. The Stack JavaScript Data Structure
  2. The Array JavaScript Data Structure
  3. How to move around blocks of code with React and Tailwind
  4. Using useState with an object: how to update
  5. Destructure a JavaScript object to existing variables
  6. Fix 'cannot update a component while rendering' in React
  7. Fix 'EMFILE: too many open files, watch' in React Native
  8. Fix 'iphoneos cannot be located' in React Native
  9. Fix 'unrecognized command run-ios' in React Native
  10. Linux commands: env
  11. Linux commands: printenv
  12. Linux commands: basename
  13. Linux commands: crontab
  14. Linux commands: export
  15. Linux commands: tar
  16. Linux commands: traceroute
  17. Linux commands: ping
  18. Linux commands: gunzip
  19. Linux commands: gzip
  20. Linux commands: xargs
  21. Linux commands: df
  22. Linux commands: diff
  23. Linux commands: uniq
  24. Linux commands: sort
  25. Linux commands: uname
  26. Linux commands: man

September 2020

  1. Linux commands: grep
  2. Linux commands: umask
  3. Linux commands: du
  4. Linux commands: open
  5. Linux commands: chmod
  6. Linux commands: chown
  7. Linux commands: sudo
  8. Linux commands: clear
  9. Linux commands: who
  10. Linux commands: alias
  11. Linux commands: kill
  12. Linux commands: top
  13. Linux echo command: -e, -n, and examples in Bash
  14. Linux commands: ps
  15. Linux commands: ln
  16. Linux commands: find
  17. Linux commands: cat
  18. Linux commands: tail

August 2020

  1. The less command in Linux: scroll, search, jump to the end
  2. Linux commands: cp
  3. Linux commands: mv
  4. Linux commands: ls
  5. Linux commands: cd
  6. Linux commands: mkdir
  7. How to set up hot reload on Electron
  8. How to change a Next.js app port
  9. How to create your first VPS on DigitalOcean
  10. How to get the index of an item in a JavaScript array
  11. What is a reverse proxy?
  12. Fix 'util.pump is not a function' in Node.js
  13. Serve an HTML page using Node.js
  14. Find and kill the process using a port on Linux or Mac (lsof)
  15. Nginx reverse proxy for multiple Node.js apps in subfolders
  16. How to configure Nginx for HTTPS
  17. Fix the 'cb.apply is not a function' error in GitBook
  18. How to swap two array elements in JavaScript
  19. How to configure HTTPS in a React app on localhost
  20. How to simulate a for loop in Svelte templates
  21. How to dynamically apply CSS in Svelte
  22. How to install a local SSL certificate in macOS
  23. How to use Sequelize to interact with PostgreSQL

July 2020

  1. Redis Publish/subscribe
  2. How to use Redis Hashes
  3. How to use Redis Sorted Lists
  4. Using Redis Sets
  5. Redis Lists
  6. First steps with Redis
  7. How to install Redis
  8. Introduction to Redis
  9. How to handle promise rejections
  10. Introduction to Linux
  11. Updating a deployed container based on a Docker image
  12. How to commit changes to a Docker image
  13. How to access files outside a Docker container
  14. Sharing Docker Images on Docker Hub
  15. Working with Docker Images from the command line
  16. Working with Docker Containers from the command line
  17. What to do if a Docker container immediately exits
  18. Build a Node.js Hello World Docker container
  19. The difference between Frontend and Backend Web Development
  20. Using Docker Desktop to manage a Container
  21. First steps with Docker after the installation
  22. Installing Docker on macOS
  23. Dockerfiles
  24. Introduction to Docker Containers
  25. Introduction to Docker Images
  26. Introduction to Docker
  27. The Command Line for Complete Beginners
  28. How to use Google Fonts
  29. Chaining method calls in JavaScript
  30. A curious usage of commas in JavaScript
  31. Namespaces in JavaScript

June 2020

  1. Custom errors in JavaScript
  2. Custom events in JavaScript
  3. Are values passed by reference or by value in JavaScript?
  4. Introduction to XState
  5. The JavaScript super keyword
  6. Event delegation in the browser using vanilla JavaScript
  7. JavaScript Proxy Objects
  8. How to accept unlimited parameters in a JavaScript function
  9. How to check if a value is a number in JavaScript
  10. The importance of timing when working with the DOM
  11. How to change commas into dots with JavaScript
  12. How to remove empty lines in VS Code
  13. What is hoisting in JavaScript?
  14. The JavaScript for..of loop
  15. What are the ways we can break out of a loop in JavaScript?
  16. null vs undefined in JavaScript: the difference
  17. How to check the current Node.js version at runtime
  18. Arrow functions vs regular functions in JavaScript
  19. Primitive types vs objects in JavaScript
  20. I love books
  21. Software is a superpower
  22. preventDefault vs stopPropagation vs return false
  23. Event bubbling and event capturing

May 2020

  1. How to check if a key exists in a JavaScript object
  2. How to shuffle elements in a JavaScript array
  3. How I use text expanding to save time
  4. Get the last segment of a path or URL in JavaScript
  5. Subfolder vs subdomain
  6. How to use environment variables in Netlify functions
  7. How to create a staging version of your site
  8. How to store passwords in the database
  9. How to add an image to the DOM using JavaScript
  10. GraphQL API vs REST API
  11. Sharing the Journey Towards Building a Software Product Business
  12. How to start freelancing as a developer
  13. This is my little Digital Garden
  14. How to go from tutorials to your own project
  15. Changing the favicon in dark mode
  16. Squashing Git commits
  17. Introduction to Deno
  18. Object destructuring with types in TypeScript
  19. Productivity gains of using a Mac and an iOS device
  20. How to detect if an Adblocker is being used with JavaScript
  21. Fix 'regeneratorRuntime is not defined' in Parcel
  22. Responsive images using srcset
  23. How to detect dark mode using JavaScript
  24. Safari, warn before quitting
  25. How to use insertAdjacentHTML
  26. Gatsby, how to change the favicon
  27. Fix the 'is not a function' error in JavaScript

April 2020

  1. How to force credentials to every Axios request
  2. How to change an HTML image URL in dark mode
  3. How to check if an element is a descendant of another
  4. How to create an exit intent popup
  5. How to test an npm package locally
  6. Use promises and await with Node.js callbacks
  7. Fix 'Cannot assign to read only property exports' in JS
  8. Fix React form state not updating on browser autofill
  9. How to remove the first character of a string in JavaScript
  10. Remove a trailing character with JavaScript slice(0, -1)
  11. How to split a JavaScript array into halves or chunks
  12. How to cut a string into words in JavaScript
  13. How to load an image in an HTML canvas
  14. How to distinguish files from directories in Node.js
  15. A very short introduction to COBOL
  16. How to remove all CSS from a page at once
  17. How to mass rename files in Node.js
  18. How to get the first n items in an array in JS
  19. The same POST API call in various JavaScript libraries
  20. How to download an image using Node.js
  21. How to create and save an image with Node.js and Canvas
  22. How to print a canvas to a data URL
  23. SQL Views
  24. SQL Joins
  25. SQL, how to delete data and tables
  26. SQL, how to update a table structure

March 2020

  1. SQL, how to update data
  2. SQL, Unique and Primary keys
  3. SQL, Handling empty cells
  4. SQL, how to use SELECT
  5. SQL, adding data to a table
  6. SQL, creating a table
  7. Setting up a project to build a JavaScript game with Phaser
  8. What is a GB-second?
  9. What is a JavaScript Frontend Framework?
  10. Incrementing multiple folders numbers at once using Node.js
  11. An introduction to REST APIs
  12. The Node Core Modules
  13. My plan for being hired as a Go developer. In 2017
  14. How TCP works
  15. DNS, Domain Name System
  16. Get query string values with URLSearchParams
  17. How to reload the browser window when you save a file
  18. How to remove all the node_modules folders content
  19. The Developer’s Dilemma
  20. How to convert an Array to a String in JavaScript
  21. Should I be a generalist or specialize?
  22. What is a magic number in programming?
  23. The Arduino MKR WiFi 1010
  24. Give your Raspberry Pi a static IP address
  25. How to connect to a Raspberry Pi using a Mac
  26. List of keywords and reserved words in JavaScript
  27. How to open VS Code from the command line
  28. The C Preprocessor

February 2020

  1. C Header Files
  2. C Structures
  3. C Enumerated Types
  4. The typedef keyword in C
  5. C Global Variables
  6. Static variables in C
  7. Can you nest functions in C?
  8. Scope of variables in C
  9. How to access the command line parameters in C
  10. C conversion specifiers and modifiers
  11. How to print a percentage sign in C: why % fails, %% works
  12. How to check a character value in C
  13. Fix the C 'implicitly declaring library function' warning
  14. How to return a string from a C function
  15. Double quotes vs single quotes in C
  16. Basic I/O concepts in C
  17. NULL in C: what it is, how to check for it, and C23 nullptr
  18. Introduction to C Functions
  19. Booleans in C
  20. Looping through an array with C
  21. Introduction to C Pointers
  22. How to find the length of a string in C
  23. Introduction to C Strings
  24. How to determine the length of an array in C
  25. Introduction to C Arrays
  26. How to work with loops in C
  27. C Conditionals
  28. C Operators
  29. C Constants

January 2020

  1. C Variables and types
  2. Introduction to the C Programming Language
  3. I wrote 1 blog post every day for 2 years. Here's 5 things I learned about SEO
  4. Milli, micro, nano, pico: what they mean and how to convert
  5. Non-printable ASCII characters list
  6. Printable ASCII characters list and how to check them in C
  7. Arduino programming language: what it is (C++), how to use it
  8. The Arduino Uno WiFi rev 2 board
  9. The Arduino Uno rev 3 board
  10. An introduction to Arduino
  11. Coding is an art
  12. How to block distractions using uBlock Origin
  13. How to send the authorization header using Axios
  14. MySQL User Permissions
  15. SQLite User Permissions
  16. Converting Numbers from Decimal to Binary
  17. The Binary Number System
  18. Write what you don't know
  19. The GPL License
  20. The Decimal Number System
  21. Finite State Machines
  22. PostgreSQL vs MySQL, a comparison
  23. How to start a blog using Hugo
  24. Creating a user on MySQL
  25. How to install MySQL on macOS
  26. How to list tables in the current database using PostgreSQL
  27. How to list all databases using PostgreSQL
  28. How to switch database using PostgreSQL
  29. How to list all users in PostgreSQL

← 2012–2019