41554 blogs · [ { "id": "01a087e8-131c-73d1-87a8-916cb5e46f98", "title": "An abstraction for handling TLS in self-hosted applications", "url": "https://supun.io/tls-mode", "published_at": "2026-09-09T09:07:41+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cb671a509", "title": "With --time-limit, does Symfony kill messenger consumers while a message is being handled?", "url": "https://supun.io/symfony-kill", "published_at": "2026-02-11T12:45:11+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cb6b3cc90", "title": "Testing Mago as an alternative to PHPStan", "url": "https://supun.io/mago-phpstan", "published_at": "2025-12-24T07:30:29+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cb7a4c54b", "title": "Reading Books Probably Changed My Brain", "url": "https://supun.io/reading", "published_at": "2025-11-25T00:33:23+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cb7e0f98d", "title": "Renewing French Tech Visa for Founders", "url": "https://supun.io/renew-fr-tech-visa", "published_at": "2025-10-24T11:03:30+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cb80db457", "title": "On Sophie's World", "url": "https://supun.io/sophies-world", "published_at": "2025-08-19T06:00:29+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cb90d48cf", "title": "Symfony: Using the Database for Cache", "url": "https://supun.io/symfony-database-cache", "published_at": "2025-07-31T23:27:14+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cb90ede6b", "title": "Read RFCs", "url": "https://supun.io/rfcs", "published_at": "2025-06-26T16:22:27+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cb9bb6d92", "title": "Sending Laravel Queued Job Errors to Sentry", "url": "https://supun.io/sentry-laravel-jobs", "published_at": "2025-06-21T00:53:17+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cba3d0fde", "title": "On Hawking's Brief History of Time", "url": "https://supun.io/hawkings-time", "published_at": "2025-05-25T00:31:29+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cbadafe62", "title": "Symfony: Using Project Root in Services", "url": "https://supun.io/symfony-project-root", "published_at": "2025-04-21T11:43:04+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cbb518b7b", "title": "Fixing /var/lib/docker/containers too large issue", "url": "https://supun.io/docker-containers-folder", "published_at": "2024-12-23T12:58:06+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cbb9b6873", "title": "Ad-blocking with Headless Raspberry Pi and Pi-hole", "url": "https://supun.io/raspihole", "published_at": "2024-08-11T08:35:30+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cbc5efc64", "title": "Restrict external SSH access using Tailscale and UFW in Ubuntu", "url": "https://supun.io/tailscale-ssh-restrict", "published_at": "2024-06-09T23:35:17+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cbd3f8d6f", "title": "Iced.rs didn't work out (a web dev's experience)", "url": "https://supun.io/iced", "published_at": "2024-03-10T13:41:04+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cbdbc5756", "title": "How to set up Caddy Fallback for Sveltekit Static Adapter", "url": "https://supun.io/caddy-fallback", "published_at": "2024-02-13T12:27:49+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cbe7071ac", "title": "How to set up redirects with Sveltekit Static Adapter", "url": "https://supun.io/sveltekit-static-redirects", "published_at": "2024-02-05T15:49:03+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cbf4f9a04", "title": "How to change env dir to the parent folder in Laravel and Vite", "url": "https://supun.io/laravel-vite-parent-dir-env", "published_at": "2024-02-03T19:24:29+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cbf7fbb61", "title": "How to redirect trailing slash to non-trailing slash URL in Cloudflare?", "url": "https://supun.io/non-trailing-slash-redirect-cloudflare", "published_at": "2024-01-26T00:09:57+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cc00beba9", "title": "How to use a custom morph class in Laravel?", "url": "https://supun.io/how-to-use-a-custom-morph-class-in-laravel", "published_at": "2023-12-16T11:13:54+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cc0ab0b6e", "title": "PHP-fpm performance tuning for high traffic servers", "url": "https://supun.io/php-fpm-static", "published_at": "2023-11-03T03:08:57+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cc1627c29", "title": "Javascript: How to count words in a multi-language safe way?", "url": "https://supun.io/js-words", "published_at": "2023-09-07T20:30:18+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cc2072e07", "title": "Designing a score meter with React, SVG, and CSS.", "url": "https://supun.io/score-meter", "published_at": "2023-09-06T12:06:09+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cc2aebcd6", "title": "Easy Zero-downtime Docker Compose deployment", "url": "https://supun.io/zero-downtime-deployments-docker-compose", "published_at": "2023-04-24T22:16:32+00:00" }, { "id": "01a087e8-131c-73d1-87a8-916cc2cdab7b", "title": "An inefficient way to wait for Meilisearch to complete all async tasks", "url": "https://supun.io/meilisearch-wait-for-tasks", "published_at": "2023-04-17T08:39:36+00:00" } ] posts Claim your blog
Back to Supun's Blog
Blog · corpus.blog/blogs/supun.io/posts

Supun's Blog

supun.io

2026

2025

2024

2023