56,966 blogs · [ { "id": "01a08cbf-4654-7345-95ab-6ec62c85e380", "title": "Serving Markdown to AI agents", "url": "https://www.loopwerk.io/articles/2026/serving-markdown-to-agents/", "published_at": "2026-09-09T19:28:21+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db919855ca", "title": "Ten years of freelancing: lessons and advice", "url": "https://www.loopwerk.io/articles/2026/ten-years-freelance/", "published_at": "2026-09-01T10:01:06+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db91d2ecd4", "title": "Analysis paralysis sucks", "url": "https://www.loopwerk.io/articles/2026/analysis-paralysis/", "published_at": "2026-08-26T11:38:08+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db92488f73", "title": "How I use Claude Code", "url": "https://www.loopwerk.io/articles/2026/how-i-use-claude-code/", "published_at": "2026-08-24T11:39:35+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db92c91e2d", "title": "Apple blames the DMA again", "url": "https://www.loopwerk.io/articles/2026/apple-dma/", "published_at": "2026-06-08T21:38:38+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334b5cd1879", "title": "uv is fantastic, but its package management UX is a mess", "url": "https://www.loopwerk.io/articles/2026/uv-ux-mess/", "published_at": "2026-05-21T18:08:41+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db931606e9", "title": "Announcing Scry", "url": "https://www.loopwerk.io/articles/2026/announcing-scry/", "published_at": "2026-04-06T15:23:28+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db93ed94b5", "title": "Coding with AI: productivity without pride or joy", "url": "https://www.loopwerk.io/articles/2026/ai-productivity-without-joy/", "published_at": "2026-03-31T22:02:12+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db944da434", "title": "Q1 2026 in review", "url": "https://www.loopwerk.io/articles/2026/q1-2026-in-review/", "published_at": "2026-03-28T12:00:00+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db94b4697c", "title": "Announcing Saga 3 and Parsley 1.2", "url": "https://www.loopwerk.io/articles/2026/announcing-saga-3/", "published_at": "2026-03-26T14:20:19+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334b5ec33d6", "title": "Building modern Django apps with Alpine AJAX, revisited", "url": "https://www.loopwerk.io/articles/2026/alpine-ajax-django-revisited/", "published_at": "2026-03-25T10:16:50+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db94dcf72e", "title": "The shortcomings of Swift Package Manager", "url": "https://www.loopwerk.io/articles/2026/spm-shortcomings/", "published_at": "2026-03-19T22:25:58+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db9537f5ad", "title": "Announcing GetSaga.dev", "url": "https://www.loopwerk.io/articles/2026/announcing-getsagadev/", "published_at": "2026-03-07T21:55:50+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db957fe559", "title": "Announcing SwiftTailwind", "url": "https://www.loopwerk.io/articles/2026/announcing-swifttailwind/", "published_at": "2026-03-04T20:25:14+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db962970fe", "title": "Announcing SagaUtils", "url": "https://www.loopwerk.io/articles/2026/announcing-sagautils/", "published_at": "2026-03-02T21:05:16+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db96357fd1", "title": "Announcing Bonsai, a new HTML minifier in pure Swift", "url": "https://www.loopwerk.io/articles/2026/announcing-bonsai/", "published_at": "2026-03-02T21:05:16+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db96d8cd5b", "title": "Protect your analytics with Cloudflare", "url": "https://www.loopwerk.io/articles/2026/protect-analytics/", "published_at": "2026-02-19T20:29:13+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db9777a43d", "title": "Umami vs Plausible: why I switched", "url": "https://www.loopwerk.io/articles/2026/umami-vs-plausible/", "published_at": "2026-02-17T23:06:49+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db97fee045", "title": "Self-hosting Plausible broke my analytics", "url": "https://www.loopwerk.io/articles/2026/plausible/", "published_at": "2026-02-17T12:35:05+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db98c27fa0", "title": "The software and hardware I use", "url": "https://www.loopwerk.io/articles/2026/what-i-use/", "published_at": "2026-02-15T23:46:35+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db98f93a67", "title": "Announcing the Saga CLI", "url": "https://www.loopwerk.io/articles/2026/saga-cli/", "published_at": "2026-02-14T22:20:01+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db9972300d", "title": "Prevent your Coolify deploys from randomly starting without a build cache", "url": "https://www.loopwerk.io/articles/2026/docker-buildkit-cache-coolify/", "published_at": "2026-02-13T12:00:00+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db9a0b408b", "title": "A real-world comparison of static site generators: Hugo vs Publish vs Saga", "url": "https://www.loopwerk.io/articles/2026/hugo-vs-publish-vs-saga/", "published_at": "2026-02-12T13:34:28+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334b656e751", "title": "It's time to leave Heroku", "url": "https://www.loopwerk.io/articles/2026/time-to-leave-heroku/", "published_at": "2026-02-07T00:22:02+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db9b0f5b38", "title": "Tim Cook sold Apple's soul", "url": "https://www.loopwerk.io/articles/2026/tim-cook-sold-apples-soul/", "published_at": "2026-02-01T13:48:49+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334b6ace3c6", "title": "Django's test runner is underrated", "url": "https://www.loopwerk.io/articles/2026/django-tests-underrated/", "published_at": "2026-01-30T20:21:08+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db9ba965c9", "title": "Announcing Moon, a new HTML syntax highlighter for Swift projects", "url": "https://www.loopwerk.io/articles/2026/announcing-moon/", "published_at": "2026-01-23T12:00:00+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334b719a2b8", "title": "Django 6.0 Tasks: a framework without a worker", "url": "https://www.loopwerk.io/articles/2026/django-tasks-review/", "published_at": "2026-01-19T20:00:01+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db9c360be2", "title": "Expertise is the art of ignoring", "url": "https://www.loopwerk.io/articles/2026/expertise/", "published_at": "2026-01-18T15:55:02+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db9c6dc817", "title": "My Home Assistant setup", "url": "https://www.loopwerk.io/articles/2025/home-assistant-setup/", "published_at": "2025-12-27T13:37:37+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db9d62c023", "title": "Home Assistant review after one year of use", "url": "https://www.loopwerk.io/articles/2025/home-assistant-review/", "published_at": "2025-12-26T17:01:03+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db9d9415df", "title": "2025 in review", "url": "https://www.loopwerk.io/articles/2025/2025-in-review/", "published_at": "2025-12-18T13:23:40+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334b7594c74", "title": "Safe Django migrations without server errors", "url": "https://www.loopwerk.io/articles/2025/safe-django-db-migrations/", "published_at": "2025-12-01T12:00:00+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db9ef85deb", "title": "An ode to the tester", "url": "https://www.loopwerk.io/articles/2025/ode-to-testers/", "published_at": "2025-11-15T10:11:04+00:00" }, { "id": "01a0879c-4ccb-7233-ac79-52db9fb2d21e", "title": "My one rule for side projects", "url": "https://www.loopwerk.io/articles/2025/side-projects/", "published_at": "2025-10-25T15:11:40+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334b8114c00", "title": "Async Django: a solution in search of a problem?", "url": "https://www.loopwerk.io/articles/2025/async-django-why/", "published_at": "2025-10-21T20:37:15+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334b8e0b6ac", "title": "Run Django tests using PostgreSQL in GitHub Actions", "url": "https://www.loopwerk.io/articles/2025/github-actions-django-postgresql/", "published_at": "2025-10-07T14:11:38+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c6b0ecf34", "title": "Announcing spamusement.cc", "url": "https://www.loopwerk.io/articles/2025/announcing-spamusementcc/", "published_at": "2025-09-30T20:56:50+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334b9b7e9ad", "title": "Django views versus the Zen of Python", "url": "https://www.loopwerk.io/articles/2025/django-views-versus-zen-of-python/", "published_at": "2025-09-14T12:32:05+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c6cbf1426", "title": "One command to run them all", "url": "https://www.loopwerk.io/articles/2025/just-command-runner/", "published_at": "2025-09-09T13:37:03+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c6d6b72fc", "title": "A quarter century of chasing simplicity", "url": "https://www.loopwerk.io/articles/2025/25-years-chasing-simplicity/", "published_at": "2025-09-08T16:20:07+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334ba0c7098", "title": "How I write Django views", "url": "https://www.loopwerk.io/articles/2025/django-views/", "published_at": "2025-08-28T12:28:25+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334ba38b764", "title": "Announcing django-generic-notifications 1.0.0", "url": "https://www.loopwerk.io/articles/2025/announcing-django-generic-notifications/", "published_at": "2025-08-02T14:09:05+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334babeb812", "title": "Automate Python package releases", "url": "https://www.loopwerk.io/articles/2025/automate-python-releases/", "published_at": "2025-07-30T20:44:58+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334bb7dbe17", "title": "Why Django's DATETIME_FORMAT ignores you (and how to fix it)", "url": "https://www.loopwerk.io/articles/2025/django-i18n-date-formats/", "published_at": "2025-07-18T08:45:13+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334bba85eda", "title": "Django at 20: a personal journey through 16 years", "url": "https://www.loopwerk.io/articles/2025/django-20-years/", "published_at": "2025-07-16T16:23:53+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334bca7c2c1", "title": "Handling static and media files in your Django app running on Coolify", "url": "https://www.loopwerk.io/articles/2025/coolify-django-static-media/", "published_at": "2025-07-08T14:40:32+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c7029cff7", "title": "I code in my dreams", "url": "https://www.loopwerk.io/articles/2025/i-code-in-my-dreams/", "published_at": "2025-07-04T17:55:06+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334bd7f8980", "title": "Hosting your Django sites with Coolify", "url": "https://www.loopwerk.io/articles/2025/coolify-django/", "published_at": "2025-07-02T21:18:20+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334be0ad184", "title": "Production-ready cache-busting for Django and Tailwind CSS", "url": "https://www.loopwerk.io/articles/2025/django-tailwind-production/", "published_at": "2025-06-26T12:32:27+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c71d5c080", "title": "Liquid Disappointment", "url": "https://www.loopwerk.io/articles/2025/liquid-disappointment/", "published_at": "2025-06-25T19:18:56+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334bedab2db", "title": "Comparing three type systems: Python, TypeScript, and Swift", "url": "https://www.loopwerk.io/articles/2025/type-systems/", "published_at": "2025-06-19T11:03:12+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c72e943df", "title": "Garbage in, garbage out: why good developers are still necessary in the age of LLMs", "url": "https://www.loopwerk.io/articles/2025/garbage-in-garbage-out/", "published_at": "2025-06-18T10:39:21+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334beec6793", "title": "Make Django show dates and times in the visitor's local timezone", "url": "https://www.loopwerk.io/articles/2025/django-local-times/", "published_at": "2025-06-12T15:38:21+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334befd18ad", "title": "Beyond htmx: building modern Django apps with Alpine AJAX", "url": "https://www.loopwerk.io/articles/2025/alpine-ajax-django/", "published_at": "2025-06-11T11:54:12+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c73ef8c54", "title": "Thoughts on Apple, and why I left iOS development behind", "url": "https://www.loopwerk.io/articles/2025/thoughts-on-apple/", "published_at": "2025-06-08T11:44:58+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334bf971dd8", "title": "Announcing drf-action-serializers", "url": "https://www.loopwerk.io/articles/2025/drf-action-serializers/", "published_at": "2025-06-03T17:13:58+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c749399b1", "title": "Blocking PHP requests using CloudFlare's WAF rules", "url": "https://www.loopwerk.io/articles/2025/cloudflare-waf-block-php/", "published_at": "2025-04-28T14:10:14+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c05350e7", "title": "You probably don't need a CMS", "url": "https://www.loopwerk.io/articles/2025/you-probably-dont-need-a-cms/", "published_at": "2025-04-15T12:06:56+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c0de80a4", "title": "Announcing RSSfilter.com: a Trump filter for RSS feeds, built with Django", "url": "https://www.loopwerk.io/articles/2025/announcing-rssfilter-com/", "published_at": "2025-04-06T12:00:00+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c0f0fd0f", "title": "Django Admin's handling of dates and times is very confusing", "url": "https://www.loopwerk.io/articles/2025/django-admin-datetime/", "published_at": "2025-02-26T21:25:09+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c19f6446", "title": "uv just keeps on getting better", "url": "https://www.loopwerk.io/articles/2025/uv-keeps-getting-better/", "published_at": "2025-02-24T18:20:08+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c7774c5f5", "title": "DocC and SPM need some love and attention from Apple", "url": "https://www.loopwerk.io/articles/2025/docc-spm-need-love/", "published_at": "2025-02-20T13:34:14+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c7817517e", "title": "Saga... but in Python? Or TypeScript?", "url": "https://www.loopwerk.io/articles/2025/saga-in-python-or-typescript/", "published_at": "2025-02-05T21:19:12+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c78daf2d0", "title": "Looking back at four years of Saga", "url": "https://www.loopwerk.io/articles/2025/saga-four-years/", "published_at": "2025-01-26T22:32:48+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c1ca8d5b", "title": "Looking at Django task runners and queues", "url": "https://www.loopwerk.io/articles/2025/django-task-queues/", "published_at": "2025-01-24T12:53:07+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c7a15166b", "title": "Refactoring Svelte stores to $state runes", "url": "https://www.loopwerk.io/articles/2025/svelte-5-stores/", "published_at": "2025-01-18T15:04:35+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c7a25434c", "title": "First thoughts on Svelte 5's runes", "url": "https://www.loopwerk.io/articles/2025/svelte-5-runes/", "published_at": "2025-01-02T14:30:45+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c7b133b59", "title": "2024 in review", "url": "https://www.loopwerk.io/articles/2024/2024-in-review/", "published_at": "2024-12-31T14:30:31+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c2a378da", "title": "Why I still choose Django over Flask or FastAPI", "url": "https://www.loopwerk.io/articles/2024/django-vs-flask-vs-fastapi/", "published_at": "2024-12-23T23:10:40+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c7c15d457", "title": "Svelte 5 sites don't work as expected in Safari 12 and 13", "url": "https://www.loopwerk.io/articles/2024/svelte5-safari12/", "published_at": "2024-12-03T19:43:31+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c341eb38", "title": "How to migrate your Poetry project to uv", "url": "https://www.loopwerk.io/articles/2024/migrate-poetry-to-uv/", "published_at": "2024-11-18T19:49:42+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c7cc9c6d6", "title": "Putting Svelte stores inside context for fun and profit", "url": "https://www.loopwerk.io/articles/2024/svelte-context-store/", "published_at": "2024-11-12T19:30:38+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c355c57f", "title": "Revisiting uv", "url": "https://www.loopwerk.io/articles/2024/python-uv-revisited/", "published_at": "2024-11-11T18:18:58+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c3ddb174", "title": "How to change MEDIA_URL for one FileField", "url": "https://www.loopwerk.io/articles/2024/media_url/", "published_at": "2024-10-31T13:16:33+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c4392fe6", "title": "Django REST Framework versus Django Ninja", "url": "https://www.loopwerk.io/articles/2024/drf-vs-ninja/", "published_at": "2024-10-25T22:17:12+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c4718cfc", "title": "Automatically deploy your site when you push the main branch", "url": "https://www.loopwerk.io/articles/2024/auto-deploying/", "published_at": "2024-10-23T11:02:29+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c5646ddd", "title": "Trying out PDM (and comparing it with Poetry and uv)", "url": "https://www.loopwerk.io/articles/2024/trying-pdm/", "published_at": "2024-10-04T17:55:36+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c5c538b7", "title": "How I configure my Django projects", "url": "https://www.loopwerk.io/articles/2024/django-settings/", "published_at": "2024-10-01T22:05:37+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c650cc72", "title": "Validate PayPal webhooks using Python", "url": "https://www.loopwerk.io/articles/2024/python-paypal-webhooks/", "published_at": "2024-10-01T16:25:43+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c80e83ef3", "title": "Articles now with comments", "url": "https://www.loopwerk.io/articles/2024/comments-section/", "published_at": "2024-09-30T19:00:24+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c6d82f01", "title": "Poetry versus uv", "url": "https://www.loopwerk.io/articles/2024/python-poetry-vs-uv/", "published_at": "2024-09-17T12:00:00+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c7af9b21", "title": "Changing the way Django 5.1 generates admin list labels", "url": "https://www.loopwerk.io/articles/2024/changing-django51-lookup-labels/", "published_at": "2024-09-16T12:00:00+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c86ddf73", "title": "Extend Django's autocomplete widget actions", "url": "https://www.loopwerk.io/articles/2024/extend-django-autocomplete-actions/", "published_at": "2024-07-22T19:07:29+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c821b58f1", "title": "SvelteKit architecture tip: return a writable store from your load function", "url": "https://www.loopwerk.io/articles/2024/sveltekit-writable-store-from-load/", "published_at": "2024-07-20T10:39:22+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c822c9d5b", "title": "Hardening a web server against script kiddies", "url": "https://www.loopwerk.io/articles/2024/hardening-web-server/", "published_at": "2024-06-09T15:01:06+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c82f82d3b", "title": "Quick review: 12.9\" iPad Pro (2018)", "url": "https://www.loopwerk.io/articles/2024/review-ipad-pro/", "published_at": "2024-01-23T13:03:44+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c83baaba3", "title": "My one week with a Tesla", "url": "https://www.loopwerk.io/articles/2024/one-week-with-tesla/", "published_at": "2024-01-14T10:36:54+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c841f2b22", "title": "2023 in review", "url": "https://www.loopwerk.io/articles/2023/2023-in-review/", "published_at": "2023-12-29T22:38:54+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334c93eb6a4", "title": "Deleting anonymous users' baskets when their sessions expire", "url": "https://www.loopwerk.io/articles/2023/django-sessions-pre-delete/", "published_at": "2023-10-25T09:20:08+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334ca04cd74", "title": "Adding custom actions to the Django Admin", "url": "https://www.loopwerk.io/articles/2023/adding-custom-actions-django-admin/", "published_at": "2023-07-20T19:43:33+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334ca098fa5", "title": "Setting up a Debian 11 server for SvelteKit and Django", "url": "https://www.loopwerk.io/articles/2023/setting-up-debian-11/", "published_at": "2023-03-04T12:00:00+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c84f4e0ec", "title": "2022 in review", "url": "https://www.loopwerk.io/articles/2022/2022-in-review/", "published_at": "2022-12-16T12:00:00+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c853e25c1", "title": "SvelteKit session refactor", "url": "https://www.loopwerk.io/articles/2022/sveltekit-session-refactor/", "published_at": "2022-08-23T08:41:20+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c85c2c32f", "title": "SvelteKit Architecture - the solution", "url": "https://www.loopwerk.io/articles/2022/sveltekit-architecture/", "published_at": "2022-04-22T18:46:55+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c85cb4ad3", "title": "2021 in review", "url": "https://www.loopwerk.io/articles/2021/2021-in-review/", "published_at": "2021-12-29T16:41:49+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c865d8b15", "title": "Working around HttpOnly cookie problems in SvelteKit", "url": "https://www.loopwerk.io/articles/2021/sveltekit-cookies-tokens/", "published_at": "2021-12-25T13:04:05+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c8702aa85", "title": "Saga 1.0.0 has been released", "url": "https://www.loopwerk.io/articles/2021/saga-1-released/", "published_at": "2021-12-12T19:19:26+00:00" }, { "id": "01a0821d-2d53-72f2-a1cb-7334caa7aa7d", "title": "Vapor 4 versus Django REST Framework", "url": "https://www.loopwerk.io/articles/2021/vapor4-vs-drf/", "published_at": "2021-08-26T20:34:29+00:00" }, { "id": "01a0879c-4ccc-7155-b71c-728c88019dfb", "title": "Architecting a SvelteKit app - and failing", "url": "https://www.loopwerk.io/articles/2021/architecting-sveltekit/", "published_at": "2021-08-15T18:34:32+00:00" } ] posts Claim your blog
Back to Kevin Renskers
Blog · corpus.blog/blogs/loopwerk.io/posts

Kevin Renskers

loopwerk.io

2026

2025

2024

2023

2022

2021