<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://www.jamesperkins.dev/</loc></url><url><loc>https://www.jamesperkins.dev/about/</loc></url><url><loc>https://www.jamesperkins.dev/post/</loc></url><url><loc>https://www.jamesperkins.dev/post/beyond-the-grind-why-early-stage-founders-need-a-life/</loc></url><url><loc>https://www.jamesperkins.dev/post/build-dont-just-babble/</loc></url><url><loc>https://www.jamesperkins.dev/post/chakra-prose/</loc></url><url><loc>https://www.jamesperkins.dev/post/cli-auth-with-unkey/</loc></url><url><loc>https://www.jamesperkins.dev/post/cli-with-clack/</loc></url><url><loc>https://www.jamesperkins.dev/post/conventional-commits/</loc></url><url><loc>https://www.jamesperkins.dev/post/create-content-to-solidify-your-knowledge/</loc></url><url><loc>https://www.jamesperkins.dev/post/daisyui-make-tailwind-components-with-ease/</loc></url><url><loc>https://www.jamesperkins.dev/post/developer-relations-what-do-we-do/</loc></url><url><loc>https://www.jamesperkins.dev/post/did-nextjs-team-fumble-next13/</loc></url><url><loc>https://www.jamesperkins.dev/post/dollar-analytics/</loc></url><url><loc>https://www.jamesperkins.dev/post/dropping-user-tables-2023/</loc></url><url><loc>https://www.jamesperkins.dev/post/force-reload-next-pages/</loc></url><url><loc>https://www.jamesperkins.dev/post/fundraising-doesnt-always-go-to-plan/</loc></url><url><loc>https://www.jamesperkins.dev/post/houseform-forms-made-easy/</loc></url><url><loc>https://www.jamesperkins.dev/post/learning-the-terminal-with-lazy-git/</loc></url><url><loc>https://www.jamesperkins.dev/post/next-date-type-data-fetching/</loc></url><url><loc>https://www.jamesperkins.dev/post/page-reload-with-ssr/</loc></url><url><loc>https://www.jamesperkins.dev/post/page-to-page-loading-in-next/</loc></url><url><loc>https://www.jamesperkins.dev/post/pick-a-language-and-do-something/</loc></url><url><loc>https://www.jamesperkins.dev/post/posthog-web-analytics/</loc></url><url><loc>https://www.jamesperkins.dev/post/rate-limiting-nextjs/</loc></url><url><loc>https://www.jamesperkins.dev/post/ratelimiting-trpc-with-unkey/</loc></url><url><loc>https://www.jamesperkins.dev/post/understanding-assignability-in-typescript/</loc></url><url><loc>https://www.jamesperkins.dev/post/unlock-literal-types-the-magic-of-as-const-in-typescript/</loc></url><url><loc>https://www.jamesperkins.dev/post/using-next-middleware-for-geolocation/</loc></url><url><loc>https://www.jamesperkins.dev/post/vercel-cron/</loc></url><url><loc>https://www.jamesperkins.dev/post/we-built-a-better-auth-abstraction-layer/</loc></url><url><loc>https://www.jamesperkins.dev/post/webhook-thing/</loc></url><url><loc>https://www.jamesperkins.dev/post/what-we-learnt-from-vercel-breach/</loc></url><url><loc>https://www.jamesperkins.dev/post/why-flag-parameters-suck/</loc></url><url><loc>https://www.jamesperkins.dev/post/why-unkey-stays-open-source/</loc></url><url><loc>https://www.jamesperkins.dev/post/youtube-creation-vscode/</loc></url><url><loc>https://www.jamesperkins.dev/post/zed-edit-predictions/</loc></url><url><loc>https://www.jamesperkins.dev/post/zed-lightweight-ide/</loc></url><url><loc>https://www.jamesperkins.dev/post/zod-typesafe-user-input/</loc></url></urlset>