41554 blogs · [ { "id": "01a087c0-7607-72b7-902d-fc24aafc1ccc", "title": "Building my personal AI Assistant", "url": "https://petermekhaeil.com/building-my-personal-ai-assistant/", "published_at": "2026-06-18T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24a95cb3cc", "title": "AI Native Documentation", "url": "https://petermekhaeil.com/ai-native-documentation/", "published_at": "2025-12-30T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24aa254e0b", "title": "Building a Today I Learned Habit", "url": "https://petermekhaeil.com/building-a-til-habit/", "published_at": "2024-12-28T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24a9028357", "title": "Accelerate your delivery with modern tools", "url": "https://petermekhaeil.com/accelerate-your-delivery-with-modern-tools/", "published_at": "2022-12-27T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24ac7909de", "title": "How to build an npx starter template", "url": "https://petermekhaeil.com/how-to-build-a-npx-create-template-starter/", "published_at": "2022-09-05T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24b0b6877f", "title": "Typescript tips by Matt Pocock", "url": "https://petermekhaeil.com/typescript-tips-by-matt-pocock/", "published_at": "2022-09-01T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24ad73be0d", "title": "How to keep undefined values in JSON.stringify", "url": "https://petermekhaeil.com/json-stringify-replacer-parameter/", "published_at": "2022-08-22T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24afca425c", "title": "Proxying Ackee through Netlify", "url": "https://petermekhaeil.com/proxying-ackee-through-netlify/", "published_at": "2022-06-29T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24a8ac3dc8", "title": "3 benefits interviews bring you", "url": "https://petermekhaeil.com/3-benefits-interviews-bring-you/", "published_at": "2022-06-14T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24ad4b9899", "title": "Measuring the performance of the McLaren Racing website", "url": "https://petermekhaeil.com/measuring-the-performance-of-the-mclaren-racing-websitemd/", "published_at": "2022-03-19T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24ada599e5", "title": "How to build an app with Remix and Netlify Graph", "url": "https://petermekhaeil.com/netlify-graph-with-remix/", "published_at": "2022-03-03T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24ab56b9bd", "title": "How I landed my first job as a software engineer", "url": "https://petermekhaeil.com/how-i-landed-my-first-job-as-a-software-engineer/", "published_at": "2022-01-28T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24ad20c026", "title": "Jamstack vs Traditional Web", "url": "https://petermekhaeil.com/jamstack-vs-traditional-web/", "published_at": "2021-12-11T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24acdbd38d", "title": "How to get started with improving site performance", "url": "https://petermekhaeil.com/how-to-get-started-performance/", "published_at": "2021-06-18T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24af4aaae0", "title": "Page Speed Comparison of Singapore Commerce", "url": "https://petermekhaeil.com/page-speed-comparison-singapore-commerce/", "published_at": "2021-06-10T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24ac070d1a", "title": "Data Fetching in Next.js", "url": "https://petermekhaeil.com/data-fetching-nextjs/", "published_at": "2021-05-18T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24afe29e80", "title": "Improving Shopify page performance using Next.js", "url": "https://petermekhaeil.com/shopify-with-nextjs/", "published_at": "2021-04-13T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24ae7da690", "title": "Notes - The Coding Career Handbook", "url": "https://petermekhaeil.com/notes-the-coding-career-handbook/", "published_at": "2021-02-19T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24ab2c9ee8", "title": "Page Speed Performance of Formula 1 Websites", "url": "https://petermekhaeil.com/f1-page-speed-insights/", "published_at": "2020-12-15T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24b1027ce1", "title": "Using FaunaDB and Netlify Functions for Analytics", "url": "https://petermekhaeil.com/using-fauna-and-netlify-functions-for-analytics/", "published_at": "2020-12-06T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24afe6da81", "title": "Adding Dark Mode to your Tailwind CSS website", "url": "https://petermekhaeil.com/tailwind-css-dark-mode/", "published_at": "2020-11-30T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24b13815c8", "title": "What I have learnt as an engineering manager", "url": "https://petermekhaeil.com/what-i-learnt-as-an-eng-mgr/", "published_at": "2020-11-24T00:00:00+00:00" }, { "id": "01a087c0-7607-72b7-902d-fc24a9ebd692", "title": "Be strong like your code", "url": "https://petermekhaeil.com/be-strong-like-your-code/", "published_at": "2020-11-21T00:00:00+00:00" } ] posts Claim your blog
Back to petermekhaeil.com
Blog · corpus.blog/blogs/petermekhaeil.com/posts

petermekhaeil.com

petermekhaeil.com

2026

2025

2024

2022

2021

2020