41554 blogs · [ { "id": "01a08759-f5ac-7110-b68e-130b19999f00", "title": "De-Googling My Email, Contacts, and Calendar", "url": "https://brunty.me/post/de-googling-my-email-contacts-calendar/", "published_at": "2026-02-21T14:50:35+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b1a6af113", "title": "Blogging Questions Challenge", "url": "https://brunty.me/post/blogging-questions-challenge/", "published_at": "2025-03-16T14:38:10+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b1a7b8a69", "title": "My Photo Storage & Editing Workflow in Lightroom using a NAS", "url": "https://brunty.me/post/photo-storage-and-editing-workflow-in-lightroom-using-a-nas/", "published_at": "2024-08-23T12:10:58+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b1b1f17e9", "title": "Camera Gear 2024", "url": "https://brunty.me/post/camera-gear-2024/", "published_at": "2024-05-08T09:57:44+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b1c07d779", "title": "Useful macOS Software", "url": "https://brunty.me/post/useful-macos-software/", "published_at": "2023-06-15T07:26:45+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b1ce7653b", "title": "D&D Backstory: Tegan Da'shar", "url": "https://brunty.me/post/dnd-backstory-tegan-dashar/", "published_at": "2023-04-23T12:38:31+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b1d830f71", "title": "D&D Backstory: Varas", "url": "https://brunty.me/post/dnd-backstory-varas/", "published_at": "2023-04-22T12:38:31+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b1dd4f1fb", "title": "Lifenotes: January 2023", "url": "https://brunty.me/post/lifenotes-jan-2023/", "published_at": "2023-01-31T18:05:20+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b1e8ee167", "title": "Connected Home Devices", "url": "https://brunty.me/post/connected-home-devices/", "published_at": "2022-09-28T20:21:20+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b1eba12e0", "title": "Energy Monitoring: 2022 Edition", "url": "https://brunty.me/post/energy-monitoring-2022-edition/", "published_at": "2022-09-06T15:00:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b1f408fa7", "title": "Got bored, made some security-focused chat backgrounds", "url": "https://brunty.me/post/got-bored-made-security-focused-chat-backgrounds/", "published_at": "2022-07-18T14:50:12+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b20130d9c", "title": "Replicate AdGuard Home settings into Home Assistant AdGuard Home Addon", "url": "https://brunty.me/post/replicate-adguard-home-settings-into-home-assistant-adguard-home-addon/", "published_at": "2022-05-16T14:50:12+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b20d87e18", "title": "Scavenger hunt?", "url": "https://brunty.me/post/scavenger-hunt-2022/", "published_at": "2022-04-23T14:50:12+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2127b7b7", "title": "New Year New Network", "url": "https://brunty.me/post/2022-new-year-new-network/", "published_at": "2022-01-23T07:26:45+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2185c01a", "title": "More great Windows software", "url": "https://brunty.me/post/more-great-windows-software/", "published_at": "2021-12-20T07:26:45+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b21a0b2f5", "title": "New PC: Shades", "url": "https://brunty.me/post/new-pc-shades/", "published_at": "2021-12-07T07:26:45+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2235d470", "title": "Hildebrand Glow, Home Assistant and MQTT - Getting visibility into my energy data", "url": "https://brunty.me/post/hildebrand-glow-home-assistant-mqtt/", "published_at": "2021-10-13T09:05:10+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b22eee777", "title": "Useful Tasmota Commands: Part 1", "url": "https://brunty.me/post/useful-tasmota-commands-part-1/", "published_at": "2021-09-07T11:05:10+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b23a2770b", "title": "Understanding MQTT: My Notes", "url": "https://brunty.me/post/understanding-mqtt/", "published_at": "2021-08-28T15:05:10+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2413f13b", "title": "Display A Message On Old Hugo Posts", "url": "https://brunty.me/post/display-message-on-old-hugo-entries/", "published_at": "2021-08-25T19:42:25+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b24ea396a", "title": "Automatically backing up photos from iOS using PhotoSync and PhotoPrism", "url": "https://brunty.me/post/ios-photosync-photoprism/", "published_at": "2021-07-17T20:25:34+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b25ae973b", "title": "April & May 2021 - a whirlwind few weeks", "url": "https://brunty.me/post/april-may-2021-a-whirlwind-few-weeks/", "published_at": "2021-06-02T10:25:34+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b260bc467", "title": "It's never simple", "url": "https://brunty.me/post/its-never-simple/", "published_at": "2021-05-27T13:25:34+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b267587df", "title": "Tweeting paid for my PlayStation 5", "url": "https://brunty.me/post/tweeting-paid-for-my-playstation-5/", "published_at": "2020-11-01T16:25:34+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2679f3a4", "title": "Home Assistant Part 2: The mobile app and remote control", "url": "https://brunty.me/post/home-assistant-part-2-mobile-app-and-remote-control/", "published_at": "2020-07-07T10:25:34+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b271c737b", "title": "Home Assistant Part 1: Setup and Initial Configuration", "url": "https://brunty.me/post/home-assistant-part-1-setup-and-initial-configuration/", "published_at": "2020-05-29T16:19:20+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b278328fb", "title": "February 2020 - #FullMonzo", "url": "https://brunty.me/post/february-2020-full-monzo/", "published_at": "2020-02-26T10:58:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b282ca220", "title": "Conditional Routing in Symfony using ENV Vars", "url": "https://brunty.me/post/conditional-routing-in-symfony-using-env-vars/", "published_at": "2020-02-23T17:41:55+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b28649ccf", "title": "Going #FullMonzo", "url": "https://brunty.me/post/going-full-monzo/", "published_at": "2020-01-28T13:04:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b28dbe6d7", "title": "Bullet Journalling: 2020 Edition", "url": "https://brunty.me/post/bullet-journalling-2020-edition/", "published_at": "2020-01-07T09:00:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b29018f46", "title": "Invisibly good Windows software", "url": "https://brunty.me/post/invisibly-good-windows-software/", "published_at": "2019-12-26T12:30:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2931fd1f", "title": "Mini Story the Care and Handling of Dragons", "url": "https://brunty.me/post/mini-story-the-care-and-handling-of-dragons/", "published_at": "2019-07-08T17:15:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2a25b052", "title": "Docker Volume mounts in WSL", "url": "https://brunty.me/post/docker-volume-mounts-in-wsl/", "published_at": "2019-05-26T15:45:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2a9d35a1", "title": "PHP (7.2), Xdebug and Docker (Compose)", "url": "https://brunty.me/post/php72-xdebug-and-docker-compose/", "published_at": "2019-02-14T16:15:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2b217fbf", "title": "Contract Testing", "url": "https://brunty.me/post/contract-testing/", "published_at": "2019-01-14T13:15:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2bfebf54", "title": "Moving to Windows for PHP Development from macOS", "url": "https://brunty.me/post/moving-to-windows-for-php-development-from-macos/", "published_at": "2018-08-23T18:00:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2c635fa6", "title": "PHP and OpenFaaS", "url": "https://brunty.me/post/php-and-openfaas/", "published_at": "2018-07-21T12:40:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2d14033f", "title": "Talks, travelling and time on trains", "url": "https://brunty.me/post/talks-travelling-and-time-on-trains/", "published_at": "2018-04-02T14:21:18+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2ddeacec", "title": "HACK 24: 2018 LIVE BLOG", "url": "https://brunty.me/post/hack-24-2018-live-blog/", "published_at": "2018-03-09T19:43:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2e336355", "title": "Tech for Hack24 2018", "url": "https://brunty.me/post/tech-for-hack24-2018/", "published_at": "2018-03-08T18:00:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2e3c15fe", "title": "Rockstar Ninja Job Advert", "url": "https://brunty.me/post/rockstar-ninja-job-advert/", "published_at": "2018-01-12T21:26:59+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2e4a04bd", "title": "Using SQLite with Kahlan in PHP", "url": "https://brunty.me/post/using-sqlite-with-kahlan/", "published_at": "2017-07-15T12:01:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2f00bc33", "title": "Cigar: Smoke testing in PHP", "url": "https://brunty.me/post/cigar-smoke-testing-in-php/", "published_at": "2017-06-18T12:49:37+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b2f14795a", "title": "1, 2, many development", "url": "https://brunty.me/post/1-2-many-development/", "published_at": "2017-06-13T15:17:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b300d0f3a", "title": "Transformers in Behat", "url": "https://brunty.me/post/transformers-in-behat/", "published_at": "2017-05-08T06:36:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b30f59ab3", "title": "Page objects in Behat", "url": "https://brunty.me/post/page-objects-in-behat/", "published_at": "2017-04-07T10:08:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b3183f579", "title": "A month of bullet journalling", "url": "https://brunty.me/post/a-month-of-bullet-journalling/", "published_at": "2017-03-31T09:12:04+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b31f08ce7", "title": "Symfony and Dokku", "url": "https://brunty.me/post/symfony-and-dokku/", "published_at": "2017-03-28T09:12:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b32c16e13", "title": "My command prompt", "url": "https://brunty.me/post/my-command-prompt/", "published_at": "2017-03-25T10:57:16+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b333f41f2", "title": "Hack 24: 2017 Live Blog", "url": "https://brunty.me/post/hack-24-2017-live-blog/", "published_at": "2017-03-17T19:27:35+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b33bb83d0", "title": "Testing PHP PSR-7 Middleware", "url": "https://brunty.me/post/testing-php-psr-7-middleware/", "published_at": "2017-03-15T11:25:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b3416c8a1", "title": "uuidgen on macOS", "url": "https://brunty.me/post/uuidgen-on-macos/", "published_at": "2017-03-11T09:54:11+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b342a9055", "title": "The Decorator Pattern, Composition and SRP in PHP", "url": "https://brunty.me/post/the-decorator-pattern-composition-and-srp-in-php/", "published_at": "2017-03-07T12:24:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b3458291e", "title": "Anonymous classes in PHP 7 are fantastic for tests", "url": "https://brunty.me/post/anonymous-classes-in-php-7-are-fantastic-for-tests/", "published_at": "2017-03-03T18:09:15+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b34f7d490", "title": "Behat & Symfony's Process component", "url": "https://brunty.me/post/behat-symfony-process-component/", "published_at": "2017-01-23T12:19:19+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b35cd4d5a", "title": "Thank you 2016", "url": "https://brunty.me/post/thank-you-2016/", "published_at": "2016-12-16T10:15:37+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b36807f43", "title": "Behat, Mink and Docker", "url": "https://brunty.me/post/behat-mink-and-docker/", "published_at": "2016-07-10T10:08:11+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b37758e59", "title": "BDD & Behat: Avoiding implementation in features", "url": "https://brunty.me/post/bdd-behat-avoiding-implementation-in-features/", "published_at": "2016-06-29T09:13:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b379e5f65", "title": "Trello for User Groups", "url": "https://brunty.me/post/trello-for-usergroups/", "published_at": "2016-06-22T18:29:39+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b3887fed3", "title": "Auto renewals with Let's Encrypt on Ubuntu 14.04", "url": "https://brunty.me/post/letsencrypt-auto-renewal/", "published_at": "2016-06-20T20:18:19+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b389ed26b", "title": "Less than 24 hours until Hack24!", "url": "https://brunty.me/post/less-than-24-hours-until-hack24/", "published_at": "2015-05-01T13:43:26+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b38be8abd", "title": "Before the Hack24 Hackathon", "url": "https://brunty.me/post/hack24-2015-before/", "published_at": "2015-04-19T22:10:00+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b38e55fc9", "title": "Hiawatha & New Relic", "url": "https://brunty.me/post/hiawatha-and-new-relic/", "published_at": "2015-03-02T21:50:39+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b39637e9e", "title": "Content Security Policies", "url": "https://brunty.me/post/content-security-policies/", "published_at": "2015-02-28T16:51:38+00:00" }, { "id": "01a08759-f5ac-7110-b68e-130b396599e1", "title": "Using Bolt", "url": "https://brunty.me/post/using-bolt/", "published_at": "2015-02-22T12:00:00+00:00" } ] posts Claim your blog
Back to Posts | Matt Brunt - Developer & Problem Solver
Blog · corpus.blog/blogs/brunty.me/posts

Posts | Matt Brunt - Developer & Problem Solver

brunty.me

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015