<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.shipwrightkit.com</loc>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/pricing</loc>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/chat</loc>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog</loc>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/terms</loc>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/privacy</loc>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/drizzle-custom-migration-data-backfill</loc>
<lastmod>2026-11-05</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/postgres-rate-limiter-serverless-nextjs</loc>
<lastmod>2026-11-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/postgres-composite-index-column-order</loc>
<lastmod>2026-11-03</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/react-markdown-server-component-nextjs</loc>
<lastmod>2026-11-02</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/postgres-foreign-key-index-drizzle</loc>
<lastmod>2026-11-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/drizzle-timestamp-withtimezone-postgres</loc>
<lastmod>2026-10-31</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/x-forwarded-for-spoofing-rate-limit-nextjs</loc>
<lastmod>2026-10-30</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/nextjs-generatemetadata-seo-title-description-length</loc>
<lastmod>2026-10-29</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/stripe-subscription-status-past-due-access</loc>
<lastmod>2026-10-26</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/saas-pricing-page-from-plan-config</loc>
<lastmod>2026-10-24</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/nextjs-not-found-page-soft-404</loc>
<lastmod>2026-10-23</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/drizzle-migrations-deploy-order-nextjs</loc>
<lastmod>2026-10-22</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/react-streaming-llm-response-state</loc>
<lastmod>2026-10-21</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/nextjs-opengraph-image-app-router</loc>
<lastmod>2026-10-20</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/nodejs-vs-edge-runtime-nextjs-ai-routes</loc>
<lastmod>2026-10-19</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/nextjs-16-middleware-renamed-proxy</loc>
<lastmod>2026-10-18</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/nextjs-sitemap-llms-txt-from-posts</loc>
<lastmod>2026-10-17</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/postgres-connection-pool-serverless-nextjs</loc>
<lastmod>2026-10-16</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/validate-llm-request-body-zod-cost-control</loc>
<lastmod>2026-10-15</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/stripe-customer-portal-checkout-nextjs-app-router</loc>
<lastmod>2026-10-14</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/ai-usage-dashboard-nextjs</loc>
<lastmod>2026-10-13</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/claude-thinking-parameter-haiku-400-error</loc>
<lastmod>2026-10-12</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/stripe-webhook-signature-verification-nextjs</loc>
<lastmod>2026-10-11</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/claude-1m-context-window-cost-tradeoff</loc>
<lastmod>2026-10-10</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/nextjs-build-without-env-vars-lazy-clients</loc>
<lastmod>2026-10-09</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/claude-api-429-rate-limit-error-handling</loc>
<lastmod>2026-10-08</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/typed-tool-use-claude-zod-agent-loop</loc>
<lastmod>2026-10-06</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/sse-vs-websockets-llm-streaming</loc>
<lastmod>2026-10-05</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/versioned-prompts-typescript</loc>
<lastmod>2026-10-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/model-gating-by-subscription-plan</loc>
<lastmod>2026-10-03</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/better-auth-nextjs-16-setup-gotchas</loc>
<lastmod>2026-10-02</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/llm-as-judge-eval-examples</loc>
<lastmod>2026-10-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/rate-limiting-llm-api-routes-nextjs</loc>
<lastmod>2026-09-30</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/how-much-does-claude-api-cost-per-user</loc>
<lastmod>2026-09-29</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/sse-buffering-proxy-nextjs-streaming</loc>
<lastmod>2026-09-28</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/claude-structured-output-zod</loc>
<lastmod>2026-09-27</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/stripe-metered-billing-ai-saas-402</loc>
<lastmod>2026-07-26</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/llm-prompt-regression-testing-ci</loc>
<lastmod>2026-07-25</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/prevent-free-tier-abuse-ai-saas</loc>
<lastmod>2026-07-24</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/track-llm-token-costs-per-user</loc>
<lastmod>2026-07-17</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/claude-prompt-caching-cost-math</loc>
<lastmod>2026-07-16</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.shipwrightkit.com/blog/nextjs-ai-streaming-abort-on-disconnect</loc>
<lastmod>2026-07-14</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
</urlset>
