<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>James Perkins</title><description>Writing about building companies, the craft of code, and the messy middle in between.</description><link>https://www.jamesperkins.dev/</link><language>en-us</language><item><title>Why Flue and Unkey Deploy Are a Natural Fit for Shipping AI Agents</title><link>https://www.jamesperkins.dev/post/flue-agent-framework-with-unkey/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/flue-agent-framework-with-unkey/</guid><description>The Agent Harness Framework with Unkey</description><pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate><category>engineering</category><category>flue</category><category>deploying on unkey</category></item><item><title>MUMPS is everywhere and nobody knows it</title><link>https://www.jamesperkins.dev/post/mumps-is-everywhere/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/mumps-is-everywhere/</guid><description>TIL that engineers don&apos;t know what MUMPS is</description><pubDate>Fri, 24 Apr 2026 00:00:00 GMT</pubDate><category>til</category><category>engineering</category></item><item><title>Deploying and Securing Your API with Unkey</title><link>https://www.jamesperkins.dev/post/deploy-with-unkey/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/deploy-with-unkey/</guid><description>Ship APIs, not infrastructure</description><pubDate>Thu, 23 Apr 2026 00:00:00 GMT</pubDate><category>engineering</category><category>apis</category></item><item><title>The Vercel Compromise and the Case for Secret Management</title><link>https://www.jamesperkins.dev/post/what-we-learnt-from-vercel-breach/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/what-we-learnt-from-vercel-breach/</guid><description>Compromise through OAuth with maximum impact</description><pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate><category>engineering</category><category>vercel</category></item><item><title>Unkey Is Staying Open Source</title><link>https://www.jamesperkins.dev/post/why-unkey-stays-open-source/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/why-unkey-stays-open-source/</guid><description>AI and open source isn&apos;t easy</description><pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate><category>thought</category><category>thoughts</category></item><item><title>Beyond the Grind: Why Early-Stage Founders Need a Life</title><link>https://www.jamesperkins.dev/post/beyond-the-grind-why-early-stage-founders-need-a-life/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/beyond-the-grind-why-early-stage-founders-need-a-life/</guid><description>Early stage founders need a life.</description><pubDate>Mon, 18 Aug 2025 00:00:00 GMT</pubDate><category>thought</category><category>thoughts</category></item><item><title>Why &amp; How We Built a Better Auth Abstraction Layer</title><link>https://www.jamesperkins.dev/post/we-built-a-better-auth-abstraction-layer/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/we-built-a-better-auth-abstraction-layer/</guid><description>Open source projects live and die by friction. So we built auth abstraction layer to make it easier.</description><pubDate>Sun, 17 Aug 2025 00:00:00 GMT</pubDate><category>thought</category><category>thoughts</category></item><item><title>Build, Don&apos;t Just Babble</title><link>https://www.jamesperkins.dev/post/build-dont-just-babble/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/build-dont-just-babble/</guid><description>Talking to users is beneficial but talking to hundreds is just noise that hides signals.</description><pubDate>Sat, 16 Aug 2025 00:00:00 GMT</pubDate><category>thought</category><category>thoughts</category></item><item><title>Ratelimiting tRPC with Unkey</title><link>https://www.jamesperkins.dev/post/ratelimiting-trpc-with-unkey/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/ratelimiting-trpc-with-unkey/</guid><description>Ratelimiting tRPC with Unkey is easier, faster and more consistent then Redis based ratelimiting</description><pubDate>Fri, 15 Aug 2025 00:00:00 GMT</pubDate><category>engineering</category><category>tools</category></item><item><title>Unlock Literal Types: The Magic of as const in TypeScript</title><link>https://www.jamesperkins.dev/post/unlock-literal-types-the-magic-of-as-const-in-typescript/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/unlock-literal-types-the-magic-of-as-const-in-typescript/</guid><description>as const assertion should be used more often.</description><pubDate>Wed, 13 Aug 2025 00:00:00 GMT</pubDate><category>engineering</category><category>typescript</category></item><item><title>Fundraising doesn&apos;t always go to plan</title><link>https://www.jamesperkins.dev/post/fundraising-doesnt-always-go-to-plan/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/fundraising-doesnt-always-go-to-plan/</guid><description>Raising funds is a wild game of ups and downs and sometimes it doesn&apos;t truly go to plan.</description><pubDate>Mon, 11 Aug 2025 00:00:00 GMT</pubDate><category>thought</category><category>thoughts</category></item><item><title>Rate limiting in Next.js in under 10 minutes </title><link>https://www.jamesperkins.dev/post/rate-limiting-nextjs/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/rate-limiting-nextjs/</guid><description>Ratelimiting with Unkey is easy</description><pubDate>Tue, 05 Aug 2025 00:00:00 GMT</pubDate><category>engineering</category><category>typescript</category></item><item><title>Edit Predictions in Zed: A Game-Changer for Developers </title><link>https://www.jamesperkins.dev/post/zed-edit-predictions/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/zed-edit-predictions/</guid><description>Zed predictions allows a user to quickly edit files</description><pubDate>Fri, 14 Feb 2025 00:00:00 GMT</pubDate><category>engineering</category><category>zed</category></item><item><title>One dollar stats</title><link>https://www.jamesperkins.dev/post/dollar-analytics/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/dollar-analytics/</guid><description>One Dollar Stats is built from my favorite ORM team over at Drizzle.</description><pubDate>Mon, 06 Jan 2025 00:00:00 GMT</pubDate><category>engineering</category><category>tools</category></item><item><title>Decoding CLI Authentication </title><link>https://www.jamesperkins.dev/post/cli-auth-with-unkey/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/cli-auth-with-unkey/</guid><description>CLI auth with Unkey</description><pubDate>Wed, 03 Apr 2024 00:00:00 GMT</pubDate><category>engineering</category><category>typescript</category></item><item><title>Supercharge Your Application Insights with PostHog </title><link>https://www.jamesperkins.dev/post/posthog-web-analytics/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/posthog-web-analytics/</guid><description>Post hog is built to figure out your users.</description><pubDate>Mon, 04 Mar 2024 00:00:00 GMT</pubDate><category>engineering</category><category>tools</category></item><item><title>Why flag parameters suck </title><link>https://www.jamesperkins.dev/post/why-flag-parameters-suck/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/why-flag-parameters-suck/</guid><description>flag parameters suck</description><pubDate>Mon, 05 Feb 2024 00:00:00 GMT</pubDate><category>engineering</category><category>typescript</category></item><item><title>Building Command-Line Interfaces Made Easy with Clack </title><link>https://www.jamesperkins.dev/post/cli-with-clack/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/cli-with-clack/</guid><description>Clack is a Typescript CLI tool</description><pubDate>Mon, 22 Jan 2024 00:00:00 GMT</pubDate><category>engineering</category><category>typescript</category><category>tools</category></item><item><title>Dropping User Tables in 2023 </title><link>https://www.jamesperkins.dev/post/dropping-user-tables-2023/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/dropping-user-tables-2023/</guid><description>A tenant table is all you need</description><pubDate>Sun, 07 May 2023 00:00:00 GMT</pubDate><category>engineering</category><category>tools</category></item><item><title>Use Git in the Terminal THE LAZY WAY </title><link>https://www.jamesperkins.dev/post/learning-the-terminal-with-lazy-git/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/learning-the-terminal-with-lazy-git/</guid><description>Lazygit is a great TUI for git.</description><pubDate>Sat, 08 Apr 2023 00:00:00 GMT</pubDate><category>engineering</category><category>tools</category></item><item><title>Improving Commit Messages with Conventional Commits </title><link>https://www.jamesperkins.dev/post/conventional-commits/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/conventional-commits/</guid><description>Conventional commits a great for concise messaging.</description><pubDate>Fri, 10 Mar 2023 00:00:00 GMT</pubDate><category>engineering</category><category>tools</category></item><item><title>Breaking Up with Visual Studio Code: Switching to Zed IDE </title><link>https://www.jamesperkins.dev/post/zed-lightweight-ide/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/zed-lightweight-ide/</guid><description>Zed lightweight IDE built for collaboration</description><pubDate>Thu, 09 Mar 2023 00:00:00 GMT</pubDate><category>engineering</category><category>zed</category></item><item><title>HouseForm - Simplify Form Creation in React</title><link>https://www.jamesperkins.dev/post/houseform-forms-made-easy/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/houseform-forms-made-easy/</guid><description>Simplify Form Creation in React</description><pubDate>Fri, 03 Mar 2023 00:00:00 GMT</pubDate><category>engineering</category><category>tools</category></item><item><title>Vercel Cron Jobs are here! </title><link>https://www.jamesperkins.dev/post/vercel-cron/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/vercel-cron/</guid><description>Vercel has finally dropped Cron jobs for your application</description><pubDate>Fri, 03 Mar 2023 00:00:00 GMT</pubDate><category>engineering</category><category>tools</category></item><item><title>Webhookthing... a webhook testing tool </title><link>https://www.jamesperkins.dev/post/webhook-thing/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/webhook-thing/</guid><description>Webhook thing, for testing webooks</description><pubDate>Fri, 03 Mar 2023 00:00:00 GMT</pubDate><category>engineering</category><category>tools</category></item><item><title>Understanding Assignability in TypeScript </title><link>https://www.jamesperkins.dev/post/understanding-assignability-in-typescript/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/understanding-assignability-in-typescript/</guid><description>Learn about assignability </description><pubDate>Sun, 25 Dec 2022 00:00:00 GMT</pubDate><category>engineering</category><category>typescript</category></item><item><title>Zod Typesafe User Input </title><link>https://www.jamesperkins.dev/post/zod-typesafe-user-input/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/zod-typesafe-user-input/</guid><description>Zod a schema declaration and validation library</description><pubDate>Tue, 22 Nov 2022 00:00:00 GMT</pubDate><category>engineering</category><category>typescript</category></item><item><title>Did the Next.js team fumble Next.js 13 release </title><link>https://www.jamesperkins.dev/post/did-nextjs-team-fumble-next13/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/did-nextjs-team-fumble-next13/</guid><description>The newest release of Next.js seems to have lost it way.</description><pubDate>Fri, 18 Nov 2022 00:00:00 GMT</pubDate><category>thought</category><category>tools</category></item><item><title>Code profiles make YouTube creation easier </title><link>https://www.jamesperkins.dev/post/youtube-creation-vscode/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/youtube-creation-vscode/</guid><description>Keep your content creation separation from your code. </description><pubDate>Wed, 16 Nov 2022 00:00:00 GMT</pubDate><category>engineering</category><category>tools</category></item><item><title>Using Next Middleware to access and use geolocation in a non dynamic route </title><link>https://www.jamesperkins.dev/post/using-next-middleware-for-geolocation/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/using-next-middleware-for-geolocation/</guid><description>Geolocation is easy with middleware. </description><pubDate>Sun, 22 May 2022 00:00:00 GMT</pubDate><category>engineering</category><category>typescript</category></item><item><title>How to reload an SSR page </title><link>https://www.jamesperkins.dev/post/page-reload-with-ssr/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/page-reload-with-ssr/</guid><description>Reloading with SSR without refetchprops</description><pubDate>Fri, 01 Apr 2022 00:00:00 GMT</pubDate><category>engineering</category><category>typescript</category></item><item><title>Chakra Prose is finally here </title><link>https://www.jamesperkins.dev/post/chakra-prose/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/chakra-prose/</guid><description>Chakra prose is here to make markdown easier than ever to style.</description><pubDate>Sun, 27 Mar 2022 00:00:00 GMT</pubDate><category>engineering</category><category>thoughts</category><category>tools</category></item><item><title>How to handle page to page loading in Next.js </title><link>https://www.jamesperkins.dev/post/page-to-page-loading-in-next/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/page-to-page-loading-in-next/</guid><description>Learn how to handle moving between pages and loading data</description><pubDate>Tue, 22 Mar 2022 00:00:00 GMT</pubDate><category>engineering</category><category>typescript</category></item><item><title>Dealing with Date objects in Next data fetching </title><link>https://www.jamesperkins.dev/post/next-date-type-data-fetching/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/next-date-type-data-fetching/</guid><description>Date objects need to be treated properly.</description><pubDate>Tue, 09 Nov 2021 00:00:00 GMT</pubDate><category>engineering</category><category>typescript</category></item><item><title>DaisyUI - Make Tailwind components with ease!</title><link>https://www.jamesperkins.dev/post/daisyui-make-tailwind-components-with-ease/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/daisyui-make-tailwind-components-with-ease/</guid><description>DaisyUI allows you to use tailwind with simplified classnames</description><pubDate>Thu, 21 Oct 2021 00:00:00 GMT</pubDate><category>engineering</category><category>tools</category></item><item><title>Force Reload Next.js Pages </title><link>https://www.jamesperkins.dev/post/force-reload-next-pages/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/force-reload-next-pages/</guid><description>In some circumstances, you might need to force refresh a page</description><pubDate>Tue, 12 Oct 2021 00:00:00 GMT</pubDate><category>engineering</category><category>typescript</category></item><item><title>Developer Relations what is it </title><link>https://www.jamesperkins.dev/post/developer-relations-what-do-we-do/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/developer-relations-what-do-we-do/</guid><description>Developers relations / advocacy is a role that is a mix of Sales, Marketing, Developer and Educator.</description><pubDate>Wed, 21 Jul 2021 00:00:00 GMT</pubDate><category>thought</category><category>thoughts</category></item><item><title>Create content to solidify your knowledge </title><link>https://www.jamesperkins.dev/post/create-content-to-solidify-your-knowledge/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/create-content-to-solidify-your-knowledge/</guid><description>Creating content can help solidify your knowledge</description><pubDate>Mon, 05 Apr 2021 00:00:00 GMT</pubDate><category>thought</category><category>thoughts</category></item><item><title>Pick a lanaguage and do something </title><link>https://www.jamesperkins.dev/post/pick-a-language-and-do-something/</link><guid isPermaLink="true">https://www.jamesperkins.dev/post/pick-a-language-and-do-something/</guid><description>What language should I pick first</description><pubDate>Wed, 04 Sep 2019 00:00:00 GMT</pubDate><category>thought</category><category>thoughts</category></item></channel></rss>