Generated by Rank Math SEO, this is an llms.txt file designed to help LLMs better understand and index this website. # JONATHANS BLOG ## Sitemaps [XML Sitemap](https://jonathansblog.co.uk/sitemap_index.xml): Includes all crawlable and indexable pages. ## Posts - [Building AI-Powered Apps with Next.js in 2026](https://jonathansblog.co.uk/building-ai-powered-apps-with-next-js-in-2026): Next.js is one of the best platforms for building AI-powered apps in 2026. Here's how to use the Vercel AI SDK, streaming, and RAG patterns to ship AI features fast. - [Pi-hole: Block Ads Across Your Entire Home Network](https://jonathansblog.co.uk/pi-hole-block-ads-across-your-entire-home-network): Pi-hole turns your old Raspberry Pi into a network-wide ad blocker — no browser extension required. Every device in your house benefits automatically. - [Using Cursor with Local LLM Models: The Complete Setup Guide](https://jonathansblog.co.uk/using-cursor-with-local-llm-models-the-complete-setup-guide): Learn how to configure Cursor, the AI-first code editor, to use local LLMs via Ollama — keeping your code private, cutting costs, and coding smarter on your own hardware. - [Using Claude Code with Local GLM 5.2: A Complete Guide](https://jonathansblog.co.uk/using-claude-code-with-local-glm-5-2-a-complete-guide): Discover how to supercharge Claude Code with GLM 5.2 running locally — full privacy, no API costs, and powerful agentic coding capabilities on your own hardware. - [The `xlsx` Claude Code Skill: Generate Excel Spreadsheets with AI](https://jonathansblog.co.uk/the-xlsx-claude-code-skill-generate-excel-spreadsheets-with-ai): The xlsx Claude Code skill gives Claude the knowledge to generate formatted Excel spreadsheets, read and transform existing ones, add charts, and handle the openpyxl vs xlsxwriter tool split correctly. - [Advanced Next.js Routing: Parallel Routes, Interception & Nested Layouts](https://jonathansblog.co.uk/advanced-next-js-routing-parallel-routes-interception-nested-layouts): Nested layouts, parallel routes, and route interception unlock powerful UX patterns in Next.js. Here's how they work and when to use them. - [How to Free Up Disk Space on Linux: A Practical Guide](https://jonathansblog.co.uk/how-to-free-up-disk-space-on-linux-a-practical-guide): Linux systems fill up gradually — old kernels, package caches, Docker images, journal logs, and Flatpak runtimes are the usual suspects. Here's a practical guide to tracking down and reclaiming disk space on Linux. - [Anthropic Cybersecurity Skills: A Beginner’s Guide to the 754-Skill AI Security Knowledge Base](https://jonathansblog.co.uk/anthropic-cybersecurity-skills-a-beginners-guide-to-the-754-skill-ai-security-knowledge-base): Anthropic Cybersecurity Skills is a community-built library of 754 structured skills for AI agents, spanning 26 security domains and mapped to five frameworks including MITRE ATT&CK and NIST CSF 2.0. Here's how to get started with it. - [tomato soup](https://jonathansblog.co.uk/tomato-soup) - [The `pptx` Claude Code Skill: Generate PowerPoint Presentations with AI](https://jonathansblog.co.uk/the-pptx-claude-code-skill-generate-powerpoint-presentations-with-ai): The pptx Claude Code skill gives Claude the knowledge to generate presentations from scratch, populate branded templates, add charts, and extract content from existing decks — correctly, without the python-pptx trial and error. - [Turbopack in Next.js: Why It’s Fast and How to Use It](https://jonathansblog.co.uk/turbopack-in-next-js-why-its-fast-and-how-to-use-it): Turbopack is now the default bundler in Next.js and it's genuinely fast. Here's what it is, why it's so much quicker, and how to get the most from it. - [pentest-ai: Turn Claude Code into Your Offensive Security Research Assistant](https://jonathansblog.co.uk/pentest-ai-turn-claude-code-into-your-offensive-security-research-assistant): pentest-ai is a set of six Claude Code subagents that bring deep offensive security expertise into your terminal — covering engagement planning, recon analysis, exploit research, detection engineering, STIG auditing, and report writing. - [HexStrike AI: A Complete Guide to AI-Powered Penetration Testing with 150+ Security Tools on Kali Linux](https://jonathansblog.co.uk/hexstrike-ai-a-complete-guide-to-ai-powered-penetration-testing-with-150-security-tools-on-kali-linux): HexStrike AI MCP Agents gives AI models like Claude and GPT direct access to 150+ professional security tools, enabling autonomous penetration testing assessments. Here's a comprehensive guide to getting it set up and running on Kali Linux. - [Scotland at the World Cup 2026: Everything You Need to Know — Fixtures, TV Times, Stats & More](https://jonathansblog.co.uk/scotland-at-the-world-cup-2026-everything-you-need-to-know-fixtures-tv-times-stats-more): Scotland are back at the World Cup for the first time in 28 years. Here's everything you need — Scotland's fixtures, every group stage match with UK times and TV channels, plus the best apps and websites to follow all the stats and data. - [BurpGPT Pro: A Beginner’s Guide to AI-Assisted Traffic Analysis in Burp Suite](https://jonathansblog.co.uk/burpgpt-pro-a-beginners-guide-to-ai-assisted-traffic-analysis-in-burp-suite): BurpGPT Pro brings AI-powered traffic analysis directly into Burp Suite Professional, adding LLM-driven scanning, targeted analysis, and an AI chat interface to your existing web security workflow. - [How to Free Up Disk Space on Windows: A Practical Guide](https://jonathansblog.co.uk/how-to-free-up-disk-space-on-windows-a-practical-guide): Windows quietly accumulates gigabytes of update caches, temp files, old installation data, and bloatware. Here's a practical guide to reclaiming disk space on your Windows PC — from Storage Sense to WinSxS cleanup. - [A Beginner’s Guide to PentestGPT: Autonomous AI-Powered Penetration Testing](https://jonathansblog.co.uk/a-beginners-guide-to-pentestgpt-autonomous-ai-powered-penetration-testing): PentestGPT is an open-source framework that uses large language models to automate penetration testing from reconnaissance to exploitation. Here's how to get started with it. - [Prowler: AWS, Azure and GCP Security Auditing in 2026](https://jonathansblog.co.uk/prowler-cloud-security-auditing): A practical guide to Prowler — the open-source cloud security auditing tool for AWS, Azure, and GCP. Covers installation, authentication, compliance framework scans, multi-account setups, and output formats. - [The `pdf` Claude Code Skill: Create, Fill, and Manipulate PDFs with AI](https://jonathansblog.co.uk/the-pdf-claude-code-skill-create-fill-manipulate-pdfs-with-ai): The pdf Claude Code skill gives Claude accurate knowledge for creating PDFs from scratch, filling forms, merging documents, extracting text, and everything else PDF-related — without the trial and error. - [The Next.js Caching Guide Every Developer Needs in 2026](https://jonathansblog.co.uk/the-next-js-caching-guide-every-developer-needs-in-2026): Next.js has four distinct caching layers that work together to make your app fast. Here's how to understand and control all of them. - [Brewing Golden Stag Summer Ale – Batch #2](https://jonathansblog.co.uk/brewing-golden-stag-summer-ale-batch-2): Brew day for a new batch of Festival Golden Stag Summer Ale — this time with New England yeast, Citra hops, and the iSpindel keeping watch on fermentation. - [ScoutSuite: Multi-Cloud Security Auditing in 2026](https://jonathansblog.co.uk/scoutsuite-multi-cloud-security-auditing): A practical guide to ScoutSuite — the open-source multi-cloud security auditing tool from NCC Group. Covers installation, AWS/Azure/GCP scanning, navigating the HTML report, and how it compares to Prowler. - [Nuclei: Fast and Flexible Vulnerability Scanning in 2026](https://jonathansblog.co.uk/nuclei-vulnerability-scanner): A practical guide to Nuclei — the fast, template-driven vulnerability scanner from ProjectDiscovery. Covers installation, running scans, using and writing templates, severity filtering, and CI/CD integration. - [How to Free Up Storage Space on Your iPhone](https://jonathansblog.co.uk/how-to-free-up-storage-space-on-your-iphone): That "iPhone Storage Almost Full" warning is one of the most disruptive things iOS throws at you. Here's a practical guide to sorting it out — from offloading apps to taming your Photos library. - [The `docx` Claude Code Skill: Generate Word Documents Programmatically with AI](https://jonathansblog.co.uk/the-docx-claude-code-skill-generate-word-documents-with-ai): The docx Claude Code skill gives Claude the knowledge to generate, edit, and structure professional Word documents programmatically — covering styles, tables, images, and a full example workflow. - [Mastering Next.js Server Actions: Forms, Mutations & Beyond](https://jonathansblog.co.uk/mastering-next-js-server-actions-forms-mutations-beyond): Server Actions remove the need for API routes in many common patterns. Learn how to use them for forms, data mutations, and full-stack logic in Next.js. - [Claude Code Found 23 Vulnerabilities in My Own Code: A Deep Dive into AI-Powered Security Auditing](https://jonathansblog.co.uk/claude-code-found-23-vulnerabilities-in-my-own-code-a-deep-dive-into-ai-powered-security-auditing): claude-cybersecurity is a free, open-source Claude Code skill that runs 8 parallel security agents against your codebase in a single command. Here's what it found — including 23 vulnerabilities in the developer's own project — and why AI-generated code needs this more than ever. - [How to Free Up Storage Space on Your Android Phone](https://jonathansblog.co.uk/how-to-free-up-storage-space-on-your-android-phone): Android phones accumulate cached data, old downloads, duplicate photos, and forgotten app data surprisingly fast. Here's a practical, systematic guide to reclaiming storage space on your Android device. - [How Claude Code Is Replacing Ad Agencies: 250+ Automated Ad Audit Checks Across 7 Platforms](https://jonathansblog.co.uk/how-claude-code-is-replacing-ad-agencies-250-automated-ad-audit-checks-across-7-platforms): A deep dive into claude-ads — the open-source tool that runs 250+ automated ad audit checks across Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, and Apple Ads in minutes, for free. Is this the end of the traditional ad agency audit? - [Claude SEO: The Free, Open-Source AI SEO Tool That’s Changing the Game for Developers](https://jonathansblog.co.uk/claude-seo-the-free-open-source-ai-seo-tool-thats-changing-the-game-for-developers): Claude SEO is a free, open-source AI SEO audit tool built for Claude Code. With 23 sub-skills, 18 parallel AI agents, and 50+ commands, it delivers the kind of analysis agencies charge $5–10K/month for — at zero cost. - [What Is Kali Linux and Should You Use It? A Beginner’s Guide](https://jonathansblog.co.uk/what-is-kali-linux-beginners-guide): What is Kali Linux and is it right for you? This beginner's guide explains what Kali is, what it's used for, who should use it, and how to get started safely with a virtual machine. - [Next.js Server Components in 2026: The Complete Guide](https://jonathansblog.co.uk/next-js-server-components-in-2026-the-complete-guide): React Server Components have transformed how we build Next.js apps. Here's everything you need to know about using them effectively in 2026. - [The `playwright` Claude Code Skill: Browser Automation and End-to-End Testing with AI](https://jonathansblog.co.uk/the-playwright-claude-code-skill-browser-automation-and-end-to-end-testing-with-ai): The Playwright Claude Code skill turns end-to-end test writing into a conversation — generating resilient, role-based tests and full browser automation scripts with AI. - [How to Free Up Gmail and Google Photos Storage (Without Losing Anything Important)](https://jonathansblog.co.uk/how-to-free-up-gmail-and-google-photos-storage-without-losing-anything-important): Google's 15GB free storage fills up fast when Gmail, Google Photos, and Drive all share the same pot. Here's how to find what's eating your quota and reclaim space without accidentally deleting anything you'll regret. - [How to Run a Linux Shell on Your iPhone with iSH](https://jonathansblog.co.uk/linux-shell-iphone-ish): Did you know you can run a full Linux shell on your iPhone? iSH brings Alpine Linux to iOS with no jailbreak needed. Here's how to install it and what you can do with it. - [Beyond the Command Line: The Best Git UI Clients for Developers in 2026](https://jonathansblog.co.uk/best-git-ui-clients-2026): Git on the command line is powerful, but a great UI client changes how you think about version control entirely. From GitHub's own tools to GitKraken, Tower, Fork, and Sublime Merge — here's a developer's guide to the best Git GUI clients in 2026. - [Deploy to Plesk with GitHub Actions: rsync via SSH & Plesk Git Webhook](https://jonathansblog.co.uk/github-actions-deploy-to-plesk): Learn two methods for deploying your projects to a Plesk server using GitHub Actions: the classic rsync over SSH approach with GitHub Secrets, and the modern Plesk built-in Git integration with webhooks. - [Duplicate <title> Tags with Yoast SEO and Block Themes: Cause and Fix](https://jonathansblog.co.uk/duplicate-title-tags-yoast-seo-block-themes-fix): Block themes that call add_theme_support('title-tag') cause WordPress core and Yoast SEO to both output a title tag. Here's why it happens, why the obvious fix seems broken, and how to actually fix it. - [How to Clear Chrome’s Cache for a Single Site on Android (Without Nuking Everything)](https://jonathansblog.co.uk/how-to-clear-chromes-cache-for-a-single-site-on-android-without-nuking-everything): Chrome on Android stubbornly serving old CSS? Here's how to clear the cache for just one site — plus the long-term fix every developer should use. - [Top Security and Penetration Testing Tools in 2026](https://jonathansblog.co.uk/top-security-penetration-testing-tools-2026): A practical roundup of the top security and penetration testing tools - from Nmap and Metasploit to Burp Suite, Hashcat, and BloodHound. What each tool does, when to use it, and where to practise legally. - [Raspberry Pi as an AirPlay and Spotify Connect Receiver](https://jonathansblog.co.uk/raspberry-pi-airplay-spotify-connect-receiver): Turn a Raspberry Pi into an AirPlay and Spotify Connect receiver using shairport-sync and Raspotify. Stream from any Apple device or the Spotify app to any speaker - no special apps needed. - [Raspberry Pi as a Bluetooth A2DP Speaker Interface](https://jonathansblog.co.uk/raspberry-pi-bluetooth-a2dp-speaker-interface): Turn any passive speaker system into a Bluetooth A2DP receiver using a Raspberry Pi and PulseAudio. This guide covers the full setup on Raspberry Pi OS Lite - from pairing to autostart on boot. - [The `mcp-builder` Claude Code Skill: Build MCP Servers Without Reading the Spec](https://jonathansblog.co.uk/the-mcp-builder-claude-code-skill-build-mcp-servers-without-reading-the-spec): The mcp-builder Claude Code skill generates complete, production-ready MCP servers without reading the spec — giving Claude access to your internal systems and data. - [Beyond VS Code: The Best Code Editors to Use with Claude Code in 2026](https://jonathansblog.co.uk/best-code-editors-claude-code-2026): VS Code is the default, but it's far from your only option when working with Claude Code. From AI-native forks like Cursor and Windsurf to the blazing-fast Zed, here's a developer's guide to choosing the right editor — and understanding when you don't need one at all. - [How to Install Linux on an Apple Silicon Mac (M1/M2/M3)](https://jonathansblog.co.uk/install-linux-apple-silicon-mac): Want to run Linux on your Apple Silicon Mac? This guide covers both options: Asahi Linux for native dual boot and UTM for virtual machines - with clear advice on which suits you best. - [Motorhead – Dancing with the devil](https://jonathansblog.co.uk/motorhead-dancing-with-the-devil): Motörhead Dancing with the Devil is a craft beer that does exactly what the name and the brand suggest — it's bold, it's heavy, and it takes no prisoners. Motörhead have a range of beers developed in collaboration with Cameron's Brewery, and Dancing with the Devil is one of their darker, more intense offerings. The track it's named after is a deep cut from the Motörhead catalogue, and the beer aims to capture that same sense of raw, unapologetic power that defined everything Lemmy and the band ever did. - [The Godot Games Claude Code Skill: Build Complete Godot Games with AI](https://jonathansblog.co.uk/the-godot-games-claude-code-skill-build-complete-godot-games-with-ai): The Godot Games Claude Code skill generates complete, playable Godot 4 projects from plain English — covering scene generation, GDScript, physics, and a full example workflow. - [Fast16: The Pre-Stuxnet Cyber Weapon That Rewrote History](https://jonathansblog.co.uk/fast16-the-pre-stuxnet-cyber-weapon-that-rewrote-history): SentinelOne researchers have decoded Fast16 — a sophisticated sabotage malware from 2005 that predates Stuxnet by five years, targeted precision engineering software, and may be linked to US-Iran cyber tensions. - [Beyond Postman: The Best API Client Alternatives for Developers in 2026](https://jonathansblog.co.uk/best-postman-alternatives-2026): Postman has long been the default API client for developers, but bloat, cloud lock-in, and pricing changes have pushed many to explore alternatives. Here's a comprehensive look at Bruno, Hoppscotch, Insomnia, Thunder Client, HTTPie, Yaak, and more. - [10 Things Most Mac Users Don’t Know They Can Do](https://jonathansblog.co.uk/10-things-mac-users-dont-know): Discover 10 powerful Mac features that most users never find on their own - from Quick Look tricks to Universal Clipboard. These hidden tips will change how you use your Mac every day. - [Git Worktrees vs Branches: A Complete Guide for Developers and AI Coding Agents](https://jonathansblog.co.uk/git-worktrees-vs-branches-a-complete-guide-for-developers-and-ai-coding-agents): A deep dive into Git worktrees versus branches — how Git actually works under the hood, how pull requests fit into each workflow, and why worktrees are becoming the go-to setup for AI coding agents. - [The `test-driven-development` Claude Code Skill: Make Claude Write Tests First](https://jonathansblog.co.uk/the-test-driven-development-claude-code-skill-make-claude-write-tests-first): The test-driven-development Claude Code skill enforces the red-green-refactor loop — making test-first development the default for AI-assisted coding rather than an afterthought. - [How to Free Up Space on Your Mac: A Practical Guide](https://jonathansblog.co.uk/how-to-free-up-space-on-mac): Running low on storage on your Mac? This practical guide covers the best ways to free up space quickly, from built-in macOS tools to manual clean-up techniques that can recover tens of gigabytes. - [The `subagent-driven-development` Claude Code Skill: Orchestrate Multiple Agents Like a Team](https://jonathansblog.co.uk/the-subagent-driven-development-claude-code-skill-orchestrate-multiple-agents-like-a-team): The subagent-driven-development Claude Code skill lets Claude orchestrate multiple focused agents in parallel — dramatically increasing throughput on complex, multi-layer tasks. - [How to Use iPhone Mirroring in macOS Sequoia](https://jonathansblog.co.uk/iphone-mirroring-macos-sequoia): iPhone Mirroring in macOS Sequoia lets you control your iPhone directly from your Mac. Here's how to set it up and get the most from this powerful Continuity feature. - [The `using-git-worktrees` Claude Code Skill: Run Parallel Agents Without the Branch Chaos](https://jonathansblog.co.uk/the-using-git-worktrees-claude-code-skill-run-parallel-agents-without-the-branch-chaos): The using-git-worktrees Claude Code skill operationalises parallel agent workflows — enabling isolated execution, clean diffs, and human review before merge. - [Using Claude Code with Local LLM Models: The Complete Guide](https://jonathansblog.co.uk/using-claude-code-with-local-llm-models-the-complete-guide): Claude Code is a powerful agentic coding tool — but it doesn't have to run on Anthropic's API. Here's how to connect it to local LLMs using Ollama, LM Studio, and llama.cpp, plus the best models for code generation in 2026. - [How to Boot Multiple Operating Systems on a Raspberry Pi with BerryBoot](https://jonathansblog.co.uk/berryboot-raspberry-pi-multiple-os): Use BerryBoot to run multiple operating systems from a single SD card on your Raspberry Pi - including Kali Linux, Raspberry Pi OS, and more. Full setup guide. - [The `Connect` Claude Code Skill: 1000+ Service Integrations Without the Boilerplate](https://jonathansblog.co.uk/the-connect-claude-code-skill-1000-service-integrations-without-the-boilerplate): The Connect Claude Code skill gives Claude integration knowledge for 1000+ services — covering OAuth flows, API clients, webhooks, and a full example workflow. - [Using VNC to Remotely Control Your Kali Pi from iPhone or Mac](https://jonathansblog.co.uk/vnc-remote-control-kali-pi-iphone-mac): Set up VNC on your Raspberry Pi running Kali Linux and control the full desktop remotely from your Mac or iPhone. Covers TightVNC install, XFCE config, autostart, and SSH tunnelling. - [The `Remotion` Claude Code Skill: Generate Videos Programmatically with AI](https://jonathansblog.co.uk/the-remotion-claude-code-skill-generate-videos-programmatically-with-ai): How the Remotion Claude Code skill lets you generate programmatic videos with React — covering installation, use cases, and a full example workflow. - [Docker for Beginners](https://jonathansblog.co.uk/docker-for-beginners): If you've spent any time reading about software development, you've probably come across the word "Docker." It sounds technical, maybe even intimidating - but the core idea behind it is surprisingly simple, and it can make your life as a developer (or even a curious beginner) a whole lot easier. Let's break it all down from scratch. - [How to Set Up a Headless Raspberry Pi as a Kali Linux Pentesting Platform](https://jonathansblog.co.uk/headless-raspberry-pi-kali-linux-pentesting): Learn how to set up a headless Raspberry Pi running Kali Linux as a portable pentesting platform. Step-by-step guide covering flashing, SSH setup, and making it field-deployable. - [Cursor: The AI-Native Editor That’s Changing How Developers Code](https://jonathansblog.co.uk/cursor-the-ai-native-editor-thats-changing-how-developers-code): Cursor is the AI-native editor everyone's talking about. Here's a beginner-friendly guide to setting it up, understanding its key features, and making the most of it for coding. - [GitHub Copilot in VS Code: The AI Coding Veteran Explained](https://jonathansblog.co.uk/github-copilot-in-vs-code-the-ai-coding-veteran-explained): GitHub Copilot is the veteran of AI coding tools. Here's how to set it up in VS Code, what it's great at, and how to get the most from it as a beginner. - [Claude Code in VS Code: AI Coding Right in Your Editor](https://jonathansblog.co.uk/claude-code-in-vs-code-ai-coding-right-in-your-editor): The Claude Code VS Code extension brings Anthropic's agentic coding AI directly into your editor. Here's how to install it, use it, and make the most of it. - [The `frontend-design` Claude Code Skill: Build Beautiful UIs with AI Guidance](https://jonathansblog.co.uk/the-frontend-design-claude-code-skill-build-beautiful-uis-with-ai-guidance): A beginner-friendly guide to the frontend-design Claude Code skill — covering installation, aesthetic modes, and practical use cases for building polished UIs with AI. - [Universal Control Stopped Working? Here’s How to Fix It](https://jonathansblog.co.uk/universal-control-stopped-working-heres-how-to-fix-it): Universal Control is one of those features that feels almost magical when it works - moving your cursor seamlessly from one Mac to another without any setup. But it's also one of those features that quietly breaks after a software update, with no obvious reason why. - [Claude Code: Agentic AI Coding in Your Terminal](https://jonathansblog.co.uk/claude-code-agentic-ai-coding-in-your-terminal): Claude Code is an agentic AI coding tool for your terminal - it reads, writes, and runs your code with your approval. Here's everything you need to get started. - [Claude Desktop: AI Coding on Your Computer](https://jonathansblog.co.uk/claude-desktop-ai-coding-on-your-computer): Claude Desktop brings the power of Claude AI to a native app on your Mac or Windows machine - with local file access, MCP integrations, and more. Here's how to get started. - [Getting Started with Claude.ai: AI Code Writing for Beginners](https://jonathansblog.co.uk/getting-started-with-claude-ai-ai-code-writing-for-beginners): A beginner-friendly guide to using Claude.ai on the web for AI-assisted code writing — covering setup, tips, and practical workflow ideas. - [Submitting WordPress Plugins with AI: A Guide to the New WordPress.org MCP Server](https://jonathansblog.co.uk/submitting-wordpress-plugins-with-ai-a-guide-to-the-new-wordpress-org-mcp-server): WordPress.org just launched an official MCP server that lets AI tools like Claude, Cursor, and VS Code submit and manage plugins directly. Here's everything you need to know, plus a full walkthrough with an example plugin. - [Multi-Tenant Vanity URLs with Cloudflare for SaaS, DNS and Nginx](https://jonathansblog.co.uk/multi-tenant-vanity-urls-with-cloudflare-for-saas-dns-and-nginx): Multi-tenant vanity URLs sound complex, but the pieces fit together elegantly: - [Package Managers on Windows: A Beginner’s Guide to Chocolatey, Winget, and More](https://jonathansblog.co.uk/package-managers-on-windows-a-beginners-guide-to-chocolatey-winget-and-more): Windows users have traditionally relied on downloading installers from websites, running setup wizards, and manually managing software updates. While this approach works, it's time-consuming and can leave your system cluttered with leftover files. Package managers offer a better way – streamlined software installation, easy updates, and clean removal, all from the command line. This guide introduces you to the main package managers available on Windows and helps you choose the right one for your needs. - [Using Homebrew as a Package Manager on Mac: A Beginner’s Guide](https://jonathansblog.co.uk/using-homebrew-as-a-package-manager-on-mac-a-beginners-guide): If you're comfortable using computers but new to the Mac ecosystem, you might have wondered how Mac users install software so efficiently from the command line. The answer is Homebrew – a powerful package manager that has become an essential tool for Mac users ranging from casual enthusiasts to professional developers. This guide will introduce you to Homebrew, explain why it's useful, and show you how to start using it effectively. - [Setting Up the Perfect Windows Development Environment in 2025](https://jonathansblog.co.uk/setting-up-the-perfect-windows-development-environment-in-2026): The Windows development environment in 2025 offers unprecedented flexibility and power. The combination of WSL2, modern Windows tooling, and seamless cloud integration creates a development experience that's both familiar to Windows users and powerful enough for complex modern applications. - [Setting Up the Perfect Ubuntu Development Environment in 2026](https://jonathansblog.co.uk/setting-up-the-perfect-ubuntu-development-environment-in-2026): Ubuntu continues to be a top choice for developers who prefer the flexibility, performance, and cost-effectiveness of Linux. With the release of Ubuntu 24.04 LTS and the maturity of tools like Docker, VS Code, and modern development frameworks, 2026 is an excellent time to establish a robust Ubuntu development environment. This guide covers everything from system setup to cloud deployment, creating a workflow that rivals any other platform. - [Setting Up the Perfect Mac Development Environment in 2026](https://jonathansblog.co.uk/setting-up-the-perfect-mac-development-environment-in-2026): As we move through 2026, the development landscape continues to evolve rapidly. Whether you're building Laravel applications, React frontends with Next.js, or deploying to the cloud, having a properly configured Mac development environment can make the difference between productive coding sessions and frustrating technical roadblocks. This guide will walk you through setting up a modern, efficient development stack that leverages the latest tools and best practices. - [GitHub Actions for Laravel Projects: Complete CI/CD Setup](https://jonathansblog.co.uk/github-actions-for-laravel-projects-complete-ci-cd-setup): Continuous Integration and Continuous Deployment (CI/CD) has become essential for modern Laravel development. GitHub Actions provides a powerful, integrated solution that can automatically test, build, and deploy your Laravel applications whenever you push code. In this comprehensive guide, we'll set up a complete CI/CD pipeline that will transform how you ship Laravel applications. - [installing n8n in a plesk subscription](https://jonathansblog.co.uk/installing-n8n-in-a-plesk-subscription): If you're running a Debian server with Plesk and want to set up n8n workflow automation within a specific Plesk subscription, you've come to the right place. This guide will walk you through running n8n as a native Node.js application in Plesk, giving you isolated instances per subscription. - [How to Enable Xdebug in Laravel Sail for Step Debugging](https://jonathansblog.co.uk/how-to-enable-xdebug-in-laravel-sail-for-step-debugging): Laravel Sail makes development with Docker incredibly simple, but when you need to debug complex middleware issues or step through your code, Xdebug becomes essential. Here's how to properly configure Xdebug in your Laravel Sail environment. - [Wildcard SSL certs in azure with cloudflare](https://jonathansblog.co.uk/wildcard-ssl-certs-in-azure-with-cloudflare): Setting up wildcard SSL certificates for your Azure applications can seem daunting, but with Cloudflare's free services, it becomes surprisingly straightforward. This guide will walk you through the entire process of configuring wildcard SSL certificates for your Azure App Service using Cloudflare. - [A Guide to Open-WebUI: Using It with Ollama](https://jonathansblog.co.uk/a-guide-to-open-webui-using-it-with-ollama): Open-WebUI is a sleek and intuitive web-based user interface designed for interacting with large language models. When paired with Ollama, it provides an easy way to manage and run AI models locally with a clean and accessible dashboard. This post is a Guide to Open-WebUI: Using It with Ollama - [How to install ollama and run deepseek](https://jonathansblog.co.uk/how-to-install-ollama-and-run-deepseek): In this guide, we’ll walk you through how to install ollama and run deepseek, adding different models, and understanding what each model offers—including DeepSeek R1 and others. - [Operation Triangulation: Unraveling a Sophisticated Cyber Espionage Campaign](https://jonathansblog.co.uk/operation-triangulation-unraveling-a-sophisticated-cyber-espionage-campaign): In today's digital age, cyber espionage has become a pressing concern, and Operation Triangulation is a stark reminder of how even the most secure devices can be compromised. Discovered in 2023, this highly sophisticated attack targeted iOS devices through a series of zero-day vulnerabilities, marking one of the most intricate and concerning espionage campaigns in recent memory. - [Digit Expo 2024](https://jonathansblog.co.uk/digit-expo-2024): Today is the Digit Expo 2024 in Edinburgh. - [Modifying my guitar hardware](https://jonathansblog.co.uk/modifying-my-guitar-hardware): Guitar hardware modifications are some of the most accessible and rewarding upgrades available to guitar players — changes to tuning machines, bridge saddles, nut material, and pickups can meaningfully improve both the playability and tone of an instrument without the cost of buying a new guitar. The hardware category specifically covers the mechanical components: tuners, bridge, tailpiece, and nut rather than the electronics, though the line between hardware and electronics blurs around pickup selection. - [Mkcert on Laravel Homestead for trusted SSL certs](https://jonathansblog.co.uk/mkcert-on-laravel-homestead-for-trusted-ssl-certs): You can use an SSL certificate created with mkcert on Laravel Homestead. mkcert is a tool to create locally-trusted development certificates, and you can use it to create an SSL certificate for your Laravel Homestead environment. - [Bash & Zsh Command History Hacks: Say Goodbye to history | grep](https://jonathansblog.co.uk/bash-zsh-command-history-hacks-say-goodbye-to-history-grep): For an even more powerful search tool, you can install fzf (fuzzy finder) and bind it to Ctrl + R to get an interactive fuzzy search through your command history. - [WordPress Yoast add focus keywords to all posts without focus keywords](https://jonathansblog.co.uk/wordpress-yoast-add-focus-keywords-to-all-posts-without-focus-keywords): To update posts in a WordPress database using Yoast SEO, you can run an SQL query to set the Yoast focus keywords to the post’s title if the focus keyword is not already set. - [Configure azure notification hub for ios android and web](https://jonathansblog.co.uk/configure-azure-notification-hub-for-ios-android-and-web): To configure Azure Notification Hub for iOS, Android, and Web push notifications, you need to follow platform-specific steps to integrate Azure Notification Hub with each type of platform. - [Azure static website hosting with blob storage and CDN](https://jonathansblog.co.uk/azure-static-website-hosting-with-blob-storage-and-cdn): Naivgate to: - [Azure Notification Hubs for push notifications in laravel and nextjs](https://jonathansblog.co.uk/azure-notification-hubs-for-push-notifications-in-laravel-and-nextjs): To add native notifications to your frontend Next.js app (using Azure Notification Hubs for push notifications), along with CapacitorJS for building mobile apps, you’ll need to handle both web and mobile notification flows. Here’s an outline of the steps: - [How to block calls on your iphone](https://jonathansblog.co.uk/how-to-block-calls-on-your-iphone): To block calls on your iPhone is a straightforward process that can help reduce unwanted calls, including spam, telemarketers, or persistent contacts. Apple provides several methods to block callers, allowing users to prevent future communication from those numbers. - [WildCard SSL certificates with Letsencrypt in Azure App-Service](https://jonathansblog.co.uk/wildcard-ssl-certificates-with-letsencrypt-in-azure-app-service): We'll be scripting the commands and baking them into a startup script, and a cron job. This will give us wildcard SSL certificates with Letsencrypt in Azure App-Service! - [Azure Wildcard Subdomains](https://jonathansblog.co.uk/azure-wildcard-subdomains): Azure App Service does not natively support wildcard subdomains (*.myapp.azurewebsites.net) under the default azurewebsites.net domain. However, you can achieve wildcard subdomains using a custom domain. - [New Guitar Day](https://jonathansblog.co.uk/new-guitar-day): New Guitar Day! Since hearing the Revolver album as a teenager I've wanted an Epiphone Casino. Revolver is my favourite Beatles album. Zoe and my dad both picked the white album. Watching the Beatles Get Back Documentary Series during Christmas in 2021 just cemented that I should have one by now. - [Laravel homestead xdebug php cli](https://jonathansblog.co.uk/laravel-homestead-xdebug-php-cli): Homestead comes with a nice little utility you can to enable the Laravel homestead xdebug php cli, so firstly ssh into your homestead vagrant machine: - [Optimizing Your PHP Projects with composer-unused: Why and How to Remove Unused Dependencies](https://jonathansblog.co.uk/optimizing-your-php-projects-with-composer-unused-why-and-how-to-remove-unused-dependencies): In modern PHP development, Composer has become an indispensable tool for managing dependencies. It allows developers to easily include external libraries and packages in their projects, simplifying everything from database interactions to user authentication. However, over time, as projects evolve, it’s common to accumulate unused dependencies-packages that were once needed but are no longer used. These unused dependencies can clutter your project, increase complexity, and potentially introduce security vulnerabilities. This is where composer-unused comes in-a powerful tool designed to help you analyze your Composer dependencies and identify those that are no longer in use. In this article, we’ll explore what composer-unused is, how to use it, and why it’s important to remove unused dependencies from your PHP projects. - [Refactoring PHP Code: A Comprehensive Guide Using VSCode and Rector](https://jonathansblog.co.uk/refactoring-php-code-a-comprehensive-guide-using-vscode-and-rector): As applications grow in complexity, maintaining clean, efficient, and easy-to-understand code becomes increasingly challenging. This is where refactoring comes in-refining code to make it more readable, maintainable, and efficient without changing its external behavior. In the PHP ecosystem, refactoring can be done manually, leveraging powerful tools like Visual Studio Code (VSCode), or automatically using tools like Rector. This blog post will explore both manual refactoring techniques using VSCode and automated refactoring with Rector. ## Pages - [Blog](https://jonathansblog.co.uk/blog): Jonathan's Blog - [Multiloquent responsive wordpress theme](https://jonathansblog.co.uk/multiloquent): Multiloquent is responsive and uses bootstrap for interface elements. - [JonathansBlog – jonathansblog.co.uk](https://jonathansblog.co.uk/): I'm Jonathan - CTO, Software Engineer, and founder of Born Creative and JonathansBlog. I've spent 20+ years building things: SaaS platforms, cloud architecture, AI systems, a cybersecurity startup, and more client sites than I can count. I'm a Chartered IT Professional (CITP), a professional member of the British Computer Society (MBCS), and hold an MSc in Advanced Computer Systems Development and a BSc in Electronic Engineering. - [Privacy Policy](https://jonathansblog.co.uk/privacy-policy): At jonathansblog.co.uk, the privacy of my visitors is of extreme importance to me. This privacy policy document outlines the types of personal information is received and collected by jonathansblog.co.uk and how it is used. - [Jonathan Mitchell CITP BSc MSc MBCS](https://jonathansblog.co.uk/about): I'm Jonathan Mitchell, a software engineer with over 20 years of hands-on experience, an engineering leader for more than a decade, and a CTO at multiple companies since 2019. I'm the founder of We Are Born Creative, where I design and build complex SaaS platforms, cloud architecture, and AI-powered systems for clients ranging from ambitious startups to established brands.