41554 blogs · [ { "id": "01a08793-f429-70f7-aca2-4c51548ce3f5", "title": "On setting prayer times to spur action", "url": "https://kastrah.com/blog/why-i-moved-prayer-reminders-15-minutes-earlier/", "published_at": "2026-08-28T04:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515531413f", "title": "How I design with AI", "url": "https://kastrah.com/blog/how-i-design-with-ai/", "published_at": "2026-07-13T04:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c5155492e76", "title": "On building CLI for Really Good Email", "url": "https://kastrah.com/blog/on-building-rge-cli/", "published_at": "2026-07-11T04:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c51554e6916", "title": "On flight price APIs", "url": "https://kastrah.com/blog/flight-price-apis-for-developers/", "published_at": "2026-07-07T04:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c5155d70ba6", "title": "How I taught my terminal to find any folder", "url": "https://kastrah.com/blog/how-i-taught-my-terminal-to-find-any-folder/", "published_at": "2026-06-02T04:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515671f9c0", "title": "On 53 failed builds and a stale workflow", "url": "https://kastrah.com/blog/53-failed-builds-and-a-stale-workflow/", "published_at": "2026-05-23T04:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c5156a606f8", "title": "How I sped up internet on my Mac", "url": "https://kastrah.com/blog/how-i-sped-up-internet-on-my-mac/", "published_at": "2026-05-22T04:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c51572df7ca", "title": "My phone had internet. But my Mac didn't. Here's how I fixed it.", "url": "https://kastrah.com/blog/my-phone-had-internet-my-mac-didnt/", "published_at": "2026-05-22T04:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515792fde8", "title": "On LLMs and choosing the right harness", "url": "https://kastrah.com/blog/on-llms-and-choosing-the-right-harness/", "published_at": "2026-03-25T04:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c5157c13456", "title": "Writing push notifications that earn the tap", "url": "https://kastrah.com/blog/a-push-notification-rulebook/", "published_at": "2026-03-21T04:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c5158146c28", "title": "My blog let me read its own system files. Here's the audit that found it, and two more.", "url": "https://kastrah.com/blog/three-security-issues-i-fixed-on-a-web-property-last-week/", "published_at": "2026-02-25T05:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c5158806883", "title": "The duplicate DNS mistake that can kill your outbound emails", "url": "https://kastrah.com/blog/the-dns-mistake-that-silently-breaks-every-email-you-send-and-nobody-tells-you/", "published_at": "2026-02-23T05:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515968b657", "title": "Locking down your server: a practical guide to VPS security", "url": "https://kastrah.com/blog/vps-security-for-beginners/", "published_at": "2026-02-05T05:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515a371518", "title": "Don't be a genius on the bench", "url": "https://kastrah.com/blog/dont-be-a-genius-on-the-bench/", "published_at": "2025-08-11T04:18:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515a8cfd41", "title": "On personalising healthcare with AI", "url": "https://kastrah.com/blog/personalising-healthcare-with-ai/", "published_at": "2025-04-07T04:16:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515abd8fd4", "title": "The % of sandwiched women, through the U.S lens", "url": "https://kastrah.com/blog/the-sandwiched-women/", "published_at": "2025-03-22T12:53:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515b7fb321", "title": "From Vite to Next.js", "url": "https://kastrah.com/blog/from-vite-to-nextjs/", "published_at": "2025-02-04T00:04:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515c2f2d09", "title": "On company culture & employee influence", "url": "https://kastrah.com/blog/on-company-culture-employee-influence/", "published_at": "2025-01-13T11:52:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515d2a1c6f", "title": "Every decision is a trade-off", "url": "https://kastrah.com/blog/every-decision-is-a-trade-off/", "published_at": "2025-01-02T23:56:09+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515dbfee34", "title": "On running an SMS campaign in Nigeria", "url": "https://kastrah.com/blog/on-running-sms-campaign-for-the-first-time/", "published_at": "2024-11-29T23:30:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515dc2e5d3", "title": "On being a panellist + hackathon judge for the first time", "url": "https://kastrah.com/blog/on-being-a-panellist-hackathon-judge-for-the-first-time/", "published_at": "2024-10-02T04:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515de6636e", "title": "Writing an API documentation that's easy to read", "url": "https://kastrah.com/blog/writing-an-api-documentation-thats-easy-to-read/", "published_at": "2024-09-11T21:43:06+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515e101724", "title": "Purposeful ignorance", "url": "https://kastrah.com/blog/purposeful-ignorance/", "published_at": "2024-07-28T16:16:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515e81388a", "title": "Building a personal pharmacy", "url": "https://kastrah.com/blog/building-a-personal-pharmacy/", "published_at": "2024-07-20T22:17:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515f0a73b1", "title": "On avoiding the learning loop", "url": "https://kastrah.com/blog/on-learning-loop/", "published_at": "2024-06-06T23:05:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c515fb9ed66", "title": "On being boring", "url": "https://kastrah.com/blog/on-being-boring/", "published_at": "2024-05-04T20:58:36+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c5160000160", "title": "Online video consumption and how brands can survive", "url": "https://kastrah.com/blog/online-video-consumption-and-how-brands-can-survive/", "published_at": "2023-12-30T00:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c51609904a8", "title": "How to add jump links to your Ghost blog for better UX", "url": "https://kastrah.com/blog/how-to-add-jump-links-to-your-ghost-blog-for-better-ux/", "published_at": "2023-02-24T00:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c516155c2df", "title": "When the river meets the wall", "url": "https://kastrah.com/blog/when-the-river-meets-the-wall/", "published_at": "2022-12-27T00:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c51622c2778", "title": "On Famasi Africa and becoming more than a writer", "url": "https://kastrah.com/blog/on-famasi-africa-and-becoming-more-than-a-writer-new/", "published_at": "2022-12-26T00:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c51625e460a", "title": "Is TikTok the new Vine?", "url": "https://kastrah.com/blog/is-tiktok-the-new-vine/", "published_at": "2022-10-22T00:00:00+00:00" }, { "id": "01a08793-f429-70f7-aca2-4c516352a649", "title": "Tomorrow, I want more meat", "url": "https://kastrah.com/blog/tomorrow-i-want-more-meat/", "published_at": "2021-01-20T05:00:00+00:00" } ] posts Claim your blog
Back to kastrah.com
Blog · corpus.blog/blogs/kastrah.com/posts

kastrah.com

kastrah.com

2026

2025

2024

2023

2022

2021