OrbStack (local dev)
I am moving local containers to OrbStack because it starts faster, uses much less memory, and leaves more of the Mac available for coding agents and product services.
View change in Fleet LogThe Ship Stack / Current
What I use to build, run, and ship Shippopotamus, DiveJourney, Kitecraft, ShipFoundry, and this site.
01
Current changes
I am moving local containers to OrbStack because it starts faster, uses much less memory, and leaves more of the Mac available for coding agents and product services.
View change in Fleet LogI am adding Oxlint because it is unbelievably faster than ESLint. On large repositories, the difference is immediate and makes constant linting practical.
View change in Fleet LogI am adding Oxfmt because it is unbelievably faster than Prettier. Repo-wide formatting becomes a normal part of the engineering loop instead of something coding agents have to wait on.
View change in Fleet LogESLint Oxlint
I am replacing ESLint because Oxlint is unbelievably faster while covering the rules I actually rely on.
View change in Fleet LogPrettier Oxfmt
I am replacing Prettier because Oxfmt is unbelievably faster and makes repo-wide formatting feel nearly instant.
View change in Fleet LogDocker Desktop (local dev) OrbStack
I am replacing Docker Desktop because it uses too much local memory for work that OrbStack now handles faster and more efficiently.
View change in Fleet Log02
Across the fleet
03
The Stack
Showing 23 core defaults
| Stack item | DiveJourney | ShipFoundry | Kitecraft | Shippopotamus | johnpotess.com |
|---|---|---|---|---|---|
| Runtime and frameworks | |||||
| Bun What it is A JavaScript runtime, package manager, script runner, and test runner. Why I use it It is extremely fast, compact, edge-friendly, and combines several useful JavaScript utilities into one package. | Bun is default for DiveJourney | Bun is default for ShipFoundry | Bun is default for Kitecraft | Bun is default for Shippopotamus | Bun is default for johnpotess.com |
| Node.js What it is The standard server-side JavaScript runtime and compatibility layer. Why I use it It remains the JavaScript standard across much of the ecosystem and covers every compatibility path where Bun cannot. | Node.js is specialized for DiveJourney | Node.js is specialized for ShipFoundry | Node.js is specialized for Kitecraft | Node.js is specialized for Shippopotamus | Node.js is specialized for johnpotess.com |
| TypeScript What it is Static types for the JavaScript used throughout every product. Why I use it It is the only sensible choice for agentic engineering because richer types give coding agents more context and make their changes safer. | TypeScript is default for DiveJourney | TypeScript is default for ShipFoundry | TypeScript is default for Kitecraft | TypeScript is default for Shippopotamus | TypeScript is default for johnpotess.com |
| Next.js What it is The React framework behind the main web applications and server APIs. Why I use it It is the full-stack React standard and keeps shipping at the edge of what production web applications can do. | Next.js is default for DiveJourney | Next.js is default for ShipFoundry | Next.js is default for Kitecraft | Next.js is default for Shippopotamus | Next.js is not used by johnpotess.com |
| Astro What it is A content-focused web framework that ships very little browser JavaScript. Why I use it It is a fast, simple static-site builder that still lets me use React exactly where the site needs it. | Astro is not used by DiveJourney | Astro is not used by ShipFoundry | Astro is not used by Kitecraft | Astro is not used by Shippopotamus | Astro is specialized for johnpotess.com |
| React What it is The component system behind the web product interfaces. Why I use it It is the interface standard, with the ecosystem and reusable patterns needed across every product. | React is default for DiveJourney | React is default for ShipFoundry | React is default for Kitecraft | React is default for Shippopotamus | React is default for johnpotess.com |
| React Native / Expo What it is React Native and Expo power DiveJourney on iOS and Android. Why I use it One React-based codebase reaches both iOS and Android without maintaining two native applications. | React Native / Expo is specialized for DiveJourney | React Native / Expo is not used by ShipFoundry | React Native / Expo is not used by Kitecraft | React Native / Expo is not used by Shippopotamus | React Native / Expo is not used by johnpotess.com |
| Interface | |||||
| Tailwind CSS What it is A utility-first styling system used by the main web applications. Why I use it It is the styling standard and its explicit utility classes are especially easy for coding agents to understand and edit safely. | Tailwind CSS is default for DiveJourney | Tailwind CSS is default for ShipFoundry | Tailwind CSS is default for Kitecraft | Tailwind CSS is default for Shippopotamus | Tailwind CSS is not used by johnpotess.com |
| shadcn/ui + Radix UI What it is Source-owned interface components built on accessible primitives. Why I use it It is a fantastic standard component foundation with accessible primitives, strong defaults, and source code I still own. | shadcn/ui + Radix UI is default for DiveJourney | shadcn/ui + Radix UI is default for ShipFoundry | shadcn/ui + Radix UI is default for Kitecraft | shadcn/ui + Radix UI is default for Shippopotamus | shadcn/ui + Radix UI is not used by johnpotess.com |
| TanStack Query What it is A client-side server-state cache for fetching, mutations, retries, and invalidation. Why I use it It makes data-heavy screens responsive without rebuilding cache behavior in every component. | TanStack Query is specialized for DiveJourney | TanStack Query is not used by ShipFoundry | TanStack Query is not used by Kitecraft | TanStack Query is specialized for Shippopotamus | TanStack Query is not used by johnpotess.com |
| Data, auth, and storage | |||||
| Supabase What it is The hosted PostgreSQL, authentication, storage, and local development platform behind the products. Why I use it It combines a fast managed backend, PostgreSQL, authentication, APIs, realtime updates, storage, and Row Level Security in one platform. | Supabase is default for DiveJourney | Supabase is default for ShipFoundry | Supabase is default for Kitecraft | Supabase is default for Shippopotamus | Supabase is not used by johnpotess.com |
| PostgreSQL What it is The relational database that holds product, account, billing, and operational data. Why I use it It is the relational database standard, it powers Supabase, and it keeps the underlying data portable. | PostgreSQL is default for DiveJourney | PostgreSQL is default for ShipFoundry | PostgreSQL is default for Kitecraft | PostgreSQL is default for Shippopotamus | PostgreSQL is not used by johnpotess.com |
| Drizzle ORM What it is A typed TypeScript query and schema layer that stays close to SQL. Why I use it It gives TypeScript applications typed schemas and queries while staying close enough to SQL to understand what the database is doing. | Drizzle ORM is not used by DiveJourney | Drizzle ORM is default for ShipFoundry | Drizzle ORM is default for Kitecraft | Drizzle ORM is default for Shippopotamus | Drizzle ORM is not used by johnpotess.com |
| Kysely What it is A type-safe TypeScript query builder that maps database tables and SQL results into application types. Why I use it It keeps complex SQL explicit while catching table, column, and result-shape mistakes in TypeScript before they reach the database. | Kysely is specialized for DiveJourney | Kysely is not used by ShipFoundry | Kysely is specialized for Kitecraft | Kysely is specialized for Shippopotamus | Kysely is not used by johnpotess.com |
| AI and agents | |||||
| Agents SDK What it is OpenAI's framework for building agents with tools, handoffs, guardrails, and traces. Why I use it I originally ran most AI features on OpenAI models and have since diversified, but the Agents SDK remains a strong framework for structured agent workflows. | Agents SDK is not used by DiveJourney | Agents SDK is specialized for ShipFoundry | Agents SDK is not used by Kitecraft | Agents SDK is not used by Shippopotamus | Agents SDK is not used by johnpotess.com |
| OpenRouter What it is A single model API that can route requests across several AI providers. Why I use it It is a gamechanger for quickly testing models across intelligence, speed, price, and provider without rewriting the integration. | OpenRouter is default for DiveJourney | OpenRouter is not used by ShipFoundry | OpenRouter is default for Kitecraft | OpenRouter is default for Shippopotamus | OpenRouter is not used by johnpotess.com |
| Claude Code What it is Anthropic's command-line coding agent for repository work, implementation, and verification. Why I use it I use it alongside Codex when a new Claude model is worth testing or subsidized tokens make long engineering sessions practical. | Claude Code is specialized for DiveJourney | Claude Code is specialized for ShipFoundry | Claude Code is specialized for Kitecraft | Claude Code is specialized for Shippopotamus | Claude Code is specialized for johnpotess.com |
| Codex What it is The coding workspace used to inspect repositories, implement changes, and run verification. Why I use it It is my default and the best agentic engineering environment I have found for connecting product intent to code, tests, and real browser behavior. | Codex is default for DiveJourney | Codex is default for ShipFoundry | Codex is default for Kitecraft | Codex is default for Shippopotamus | Codex is default for johnpotess.com |
| MCP What it is A shared protocol for exposing product tools and data to AI clients. Why I use it MCP is becoming the standard connection layer for a future where agents operate products and software directly. | MCP is default for DiveJourney | MCP is default for ShipFoundry | MCP is default for Kitecraft | MCP is default for Shippopotamus | MCP is not used by johnpotess.com |
| Langfuse What it is Prompt, trace, evaluation, and cost observability for AI workflows. Why I use it LLM usage must be observed, and Langfuse is open source, generous, and purpose-built for traces, prompts, evaluations, and cost. | Langfuse is not used by DiveJourney | Langfuse is default for ShipFoundry | Langfuse is default for Kitecraft | Langfuse is default for Shippopotamus | Langfuse is not used by johnpotess.com |
| Planning and development | |||||
| Linear What it is The issue tracker connecting product decisions to implementation and release follow-up. Why I use it It gives work clear ownership, status, and a durable next action without slowing down daily use. | Linear is default for DiveJourney | Linear is default for ShipFoundry | Linear is default for Kitecraft | Linear is default for Shippopotamus | Linear is default for johnpotess.com |
| Notion What it is The workspace for longer product plans, research, and operating notes. Why I use it It gives ideas room to develop before they become repository work or a Linear issue. | Notion is specialized for DiveJourney | Notion is specialized for ShipFoundry | Notion is specialized for Kitecraft | Notion is specialized for Shippopotamus | Notion is specialized for johnpotess.com |
| OrbStack (local dev) What it is The local container and Linux environment replacing Docker Desktop on my Mac. Why I use it It is dramatically more memory-efficient than Docker Desktop and leaves more of my local machine available for coding agents and product services. | OrbStack (local dev) is default for DiveJourney | OrbStack (local dev) is default for ShipFoundry | OrbStack (local dev) is default for Kitecraft | OrbStack (local dev) is default for Shippopotamus | OrbStack (local dev) is default for johnpotess.com |
| Docker Desktop (local dev) What it is The existing local container runtime used for databases and supporting product services. Why I use it It remains installed for compatibility, but OrbStack now does the same local work with much lower memory use and faster startup. | Docker Desktop (local dev) is migrating for DiveJourney | Docker Desktop (local dev) is migrating for ShipFoundry | Docker Desktop (local dev) is migrating for Kitecraft | Docker Desktop (local dev) is migrating for Shippopotamus | Docker Desktop (local dev) is migrating for johnpotess.com |
| Podman (VPS) What it is A daemonless container engine for running isolated development workloads on Linux servers. Why I use it It is coming next for VPS coding agents because it provides Docker-compatible containers without a permanently privileged daemon. | Podman (VPS) is planned for DiveJourney | Podman (VPS) is planned for ShipFoundry | Podman (VPS) is planned for Kitecraft | Podman (VPS) is planned for Shippopotamus | Podman (VPS) is planned for johnpotess.com |
| Hetzner What it is Virtual private servers for long-running coding agents, loops, and background engineering work. Why I use it It provides strong compute value for agent workloads that need to stay alive longer than a local session or serverless function. | Hetzner is specialized for DiveJourney | Hetzner is specialized for ShipFoundry | Hetzner is specialized for Kitecraft | Hetzner is specialized for Shippopotamus | Hetzner is specialized for johnpotess.com |
| Tailscale (VPS) What it is A private mesh network connecting my Mac, phone, and VPS development environments. Why I use it It gives long-running coding agents and development services stable private access from anywhere without exposing them to the public internet. | Tailscale (VPS) is specialized for DiveJourney | Tailscale (VPS) is specialized for ShipFoundry | Tailscale (VPS) is specialized for Kitecraft | Tailscale (VPS) is specialized for Shippopotamus | Tailscale (VPS) is specialized for johnpotess.com |
| Termius (VPS) What it is The SSH client I use to reach VPS development environments from desktop and mobile. Why I use it It lets me review, restart, and continue long-running agent work from my phone when I am away from the Mac. | Termius (VPS) is specialized for DiveJourney | Termius (VPS) is specialized for ShipFoundry | Termius (VPS) is specialized for Kitecraft | Termius (VPS) is specialized for Shippopotamus | Termius (VPS) is specialized for johnpotess.com |
| Hosting and integrations | |||||
| Vercel What it is Hosting, preview deployments, server functions, and scheduled routes for the web products. Why I use it It is the best fit for Next.js and makes previewing, deploying, and shipping web products extremely fast. | Vercel is default for DiveJourney | Vercel is default for ShipFoundry | Vercel is default for Kitecraft | Vercel is default for Shippopotamus | Vercel is default for johnpotess.com |
| Upstash What it is Managed Redis, rate limiting, and queue-backed delivery for serverless applications. Why I use it Its serverless Redis, queues, scheduling, and rate limiting cover the coordination jobs that do not belong in PostgreSQL. | Upstash is not used by DiveJourney | Upstash is default for ShipFoundry | Upstash is default for Kitecraft | Upstash is default for Shippopotamus | Upstash is not used by johnpotess.com |
| Stripe What it is Checkout, subscriptions, billing state, and payment webhooks. Why I use it It is the strongest all-in-one provider for payments, billing, subscriptions, webhooks, and customer self-service. | Stripe is default for DiveJourney | Stripe is default for ShipFoundry | Stripe is default for Kitecraft | Stripe is default for Shippopotamus | Stripe is not used by johnpotess.com |
| Resend What it is Transactional email delivery for product and account messages. Why I use it It is a fantastic developer-first email provider with a clean API that powers transactional email across the products. | Resend is default for DiveJourney | Resend is default for ShipFoundry | Resend is not used by Kitecraft | Resend is default for Shippopotamus | Resend is not used by johnpotess.com |
| Slack What it is The alert destination for operational events, product feedback, and workflows that need human attention. Why I use it It puts urgent system signals where I will actually see and act on them instead of creating another monitoring inbox. | Slack is specialized for DiveJourney | Slack is specialized for ShipFoundry | Slack is specialized for Kitecraft | Slack is not used by Shippopotamus | Slack is not used by johnpotess.com |
| LaunchDarkly What it is Feature flags and staged rollout controls. Why I use it It replaces environment-variable flags with proper targeting, staged rollouts, instant kill switches, and safer rollback control. | LaunchDarkly is not used by DiveJourney | LaunchDarkly is specialized for ShipFoundry | LaunchDarkly is not used by Kitecraft | LaunchDarkly is specialized for Shippopotamus | LaunchDarkly is not used by johnpotess.com |
| c15t What it is Consent management for analytics, privacy choices, and regional requirements. Why I use it It is a fast way to keep consent handling consistent and GDPR-aware without rebuilding a compliance system in every product. | c15t is specialized for DiveJourney | c15t is specialized for ShipFoundry | c15t is specialized for Kitecraft | c15t is specialized for Shippopotamus | c15t is not used by johnpotess.com |
| Observability | |||||
| Sentry What it is Application errors, traces, releases, and performance context. Why I use it It is the standard for error tracking and connects failures to the exact release, route, trace, and surrounding events. | Sentry is default for DiveJourney | Sentry is default for ShipFoundry | Sentry is default for Kitecraft | Sentry is default for Shippopotamus | Sentry is not used by johnpotess.com |
| PostHog What it is Product events, funnels, feature usage, and behavioral analytics. Why I use it It does a bit of everything, but its product analytics, funnels, feature flags, and session evidence make it the best analytics fit for the applications. | PostHog is default for DiveJourney | PostHog is default for ShipFoundry | PostHog is default for Kitecraft | PostHog is default for Shippopotamus | PostHog is not used by johnpotess.com |
| Umami What it is Lightweight, privacy-focused traffic analytics for this site. Why I use it I am trying it on the static personal site because it is lightweight, privacy-focused, and avoids the heavier analytics stack. | Umami is not used by DiveJourney | Umami is not used by ShipFoundry | Umami is not used by Kitecraft | Umami is not used by Shippopotamus | Umami is specialized for johnpotess.com |
| OpenTelemetry What it is A vendor-neutral standard for application traces, metrics, and logs. Why I use it It is the open standard that lets all observability signals share one instrumentation layer while the backends can change. | OpenTelemetry is default for DiveJourney | OpenTelemetry is default for ShipFoundry | OpenTelemetry is default for Kitecraft | OpenTelemetry is default for Shippopotamus | OpenTelemetry is not used by johnpotess.com |
| Axiom What it is Operational log storage and querying for production systems. Why I use it It makes traces and logs fast to search without operating a separate ingestion and storage stack. | Axiom is specialized for DiveJourney | Axiom is specialized for ShipFoundry | Axiom is specialized for Kitecraft | Axiom is not used by Shippopotamus | Axiom is not used by johnpotess.com |
| Better Stack What it is External uptime checks, heartbeats, incident alerts, and status monitoring. Why I use it ShipFoundry uses it to prove scheduled and production systems are still alive from outside the application, and the monitoring experience is excellent. | Better Stack is not used by DiveJourney | Better Stack is specialized for ShipFoundry | Better Stack is not used by Kitecraft | Better Stack is not used by Shippopotamus | Better Stack is not used by johnpotess.com |
| Testing and delivery | |||||
| Playwright What it is Real-browser automation for product flows, screenshots, accessibility, and smoke tests. Why I use it It is the browser-automation standard and proves the complete user flow instead of only testing isolated functions. | Playwright is default for DiveJourney | Playwright is default for ShipFoundry | Playwright is default for Kitecraft | Playwright is default for Shippopotamus | Playwright is not used by johnpotess.com |
| Lighthouse CI What it is Repeatable browser audits for performance, accessibility, and page quality. Why I use it It turns performance into a release check when runtimes and frameworks change. | Lighthouse CI is default for DiveJourney | Lighthouse CI is not used by ShipFoundry | Lighthouse CI is not used by Kitecraft | Lighthouse CI is default for Shippopotamus | Lighthouse CI is not used by johnpotess.com |
| Axe Core What it is The accessibility rules engine used inside automated browser tests. Why I use it It is the standard automated check for catching common WCAG failures before they become repeated component patterns. | Axe Core is default for DiveJourney | Axe Core is default for ShipFoundry | Axe Core is default for Kitecraft | Axe Core is default for Shippopotamus | Axe Core is not used by johnpotess.com |
| Vitest What it is A fast Vite-native unit and integration test runner with a mature testing ecosystem. Why I use it It provides strong mocking, coverage, browser-like environments, and compatibility for the shared starter test suite. | Vitest is not used by DiveJourney | Vitest is not used by ShipFoundry | Vitest is not used by Kitecraft | Vitest is default for Shippopotamus | Vitest is not used by johnpotess.com |
| Bun Test What it is The unit test runner built directly into Bun. Why I use it It starts quickly, needs almost no extra configuration, and keeps everyday tests inside the same runtime used for scripts and packages. | Bun Test is default for DiveJourney | Bun Test is default for ShipFoundry | Bun Test is default for Kitecraft | Bun Test is not used by Shippopotamus | Bun Test is not used by johnpotess.com |
| Oxc family What it is A fast parser, linter, formatter, and TypeScript-aware toolchain. Why I use it It is unbelievably faster than the ESLint and Prettier toolchain it replaces. The difference is large enough to change how often linting and formatting can run. | Oxc family is default for DiveJourney | Oxc family is planned for ShipFoundry | Oxc family is planned for Kitecraft | Oxc family is default for Shippopotamus | Oxc family is planned for johnpotess.com |
| ESLint What it is The existing JavaScript and TypeScript linter in repositories not yet moved to Oxlint. Why I use it It remains only while its rules are transferred without weakening the checks. | ESLint is not used by DiveJourney | ESLint is migrating for ShipFoundry | ESLint is migrating for Kitecraft | ESLint is not used by Shippopotamus | ESLint is not used by johnpotess.com |
| Prettier What it is The formatter still used where Oxfmt has not yet replaced it. Why I use it It stays until the new formatter can produce stable output without noisy repository-wide changes. | Prettier is not used by DiveJourney | Prettier is not used by ShipFoundry | Prettier is not used by Kitecraft | Prettier is not used by Shippopotamus | Prettier is migrating for johnpotess.com |
| GitHub Actions What it is Continuous integration, release automation, and scheduled repository work. Why I use it Checks should run beside the pull request and commit they are evaluating. | GitHub Actions is default for DiveJourney | GitHub Actions is default for ShipFoundry | GitHub Actions is default for Kitecraft | GitHub Actions is default for Shippopotamus | GitHub Actions is default for johnpotess.com |
| CodeRabbit PR reviews What it is Automated pull request review for bugs, regressions, and code-quality problems. Why I use it It adds a consistent review pass before a human spends time on the final decision. | CodeRabbit PR reviews is specialized for DiveJourney | CodeRabbit PR reviews is specialized for ShipFoundry | CodeRabbit PR reviews is specialized for Kitecraft | CodeRabbit PR reviews is specialized for Shippopotamus | CodeRabbit PR reviews is specialized for johnpotess.com |
| Codex PR reviews What it is Repository-aware review of the implementation, tests, product behavior, and release risk. Why I use it It can connect a code diff to the surrounding system instead of reviewing changed lines in isolation. | Codex PR reviews is default for DiveJourney | Codex PR reviews is default for ShipFoundry | Codex PR reviews is default for Kitecraft | Codex PR reviews is default for Shippopotamus | Codex PR reviews is default for johnpotess.com |
| Blacksmith runners What it is High-performance hosted machines used for selected GitHub Actions jobs. Why I use it They shorten expensive build and browser workloads when GitHub-hosted machines become the bottleneck. | Blacksmith runners is specialized for DiveJourney | Blacksmith runners is not used by ShipFoundry | Blacksmith runners is not used by Kitecraft | Blacksmith runners is not used by Shippopotamus | Blacksmith runners is not used by johnpotess.com |
| Avrea runners What it is An external runner lane used during the fleet workflow experiments. Why I use it It is tracked because runner choice affects delivery speed, reliability, and trust boundaries. | Avrea runners is not used by DiveJourney | Avrea runners is not used by ShipFoundry | Avrea runners is not used by Kitecraft | Avrea runners is experiment for Shippopotamus | Avrea runners is not used by johnpotess.com |
| Tenki runners What it is Managed GitHub Actions runners used for selected small and medium workloads. Why I use it They provide another cost and performance option while trusted jobs remain explicitly routed. | Tenki runners is experiment for DiveJourney | Tenki runners is experiment for ShipFoundry | Tenki runners is experiment for Kitecraft | Tenki runners is experiment for Shippopotamus | Tenki runners is not used by johnpotess.com |
| Publishing and knowledge | |||||
| Sanity What it is The structured-content platform and editing studio behind johnpotess.com. Why I use it Essays, metadata, translations, and related content need a real content model rather than loose files. | Sanity is not used by DiveJourney | Sanity is not used by ShipFoundry | Sanity is not used by Kitecraft | Sanity is not used by Shippopotamus | Sanity is specialized for johnpotess.com |
| Fumadocs What it is The documentation framework used for ShipFoundry knowledge and product guidance. Why I use it It provides a strong public reading and search experience without rebuilding a documentation system. | Fumadocs is not used by DiveJourney | Fumadocs is specialized for ShipFoundry | Fumadocs is not used by Kitecraft | Fumadocs is not used by Shippopotamus | Fumadocs is not used by johnpotess.com |
| Maps, media, and collection | |||||
| Mapbox What it is Web and native maps, place search, and geographic imagery for DiveJourney. Why I use it The product needs one geographic foundation across discovery, planning, and the mobile experience. | Mapbox is specialized for DiveJourney | Mapbox is not used by ShipFoundry | Mapbox is not used by Kitecraft | Mapbox is not used by Shippopotamus | Mapbox is not used by johnpotess.com |
What it is A JavaScript runtime, package manager, script runner, and test runner.
Why I use it It is extremely fast, compact, edge-friendly, and combines several useful JavaScript utilities into one package.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default · johnpotess.com: Default
What it is The standard server-side JavaScript runtime and compatibility layer.
Why I use it It remains the JavaScript standard across much of the ecosystem and covers every compatibility path where Bun cannot.
DiveJourney: Specialized · ShipFoundry: Specialized · Kitecraft: Specialized · Shippopotamus: Specialized · johnpotess.com: Specialized
What it is Static types for the JavaScript used throughout every product.
Why I use it It is the only sensible choice for agentic engineering because richer types give coding agents more context and make their changes safer.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default · johnpotess.com: Default
What it is The React framework behind the main web applications and server APIs.
Why I use it It is the full-stack React standard and keeps shipping at the edge of what production web applications can do.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default
What it is A content-focused web framework that ships very little browser JavaScript.
Why I use it It is a fast, simple static-site builder that still lets me use React exactly where the site needs it.
johnpotess.com: Specialized
What it is The component system behind the web product interfaces.
Why I use it It is the interface standard, with the ecosystem and reusable patterns needed across every product.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default · johnpotess.com: Default
What it is React Native and Expo power DiveJourney on iOS and Android.
Why I use it One React-based codebase reaches both iOS and Android without maintaining two native applications.
DiveJourney: Specialized
What it is A utility-first styling system used by the main web applications.
Why I use it It is the styling standard and its explicit utility classes are especially easy for coding agents to understand and edit safely.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default
What it is Source-owned interface components built on accessible primitives.
Why I use it It is a fantastic standard component foundation with accessible primitives, strong defaults, and source code I still own.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default
What it is A client-side server-state cache for fetching, mutations, retries, and invalidation.
Why I use it It makes data-heavy screens responsive without rebuilding cache behavior in every component.
DiveJourney: Specialized · Shippopotamus: Specialized
What it is The hosted PostgreSQL, authentication, storage, and local development platform behind the products.
Why I use it It combines a fast managed backend, PostgreSQL, authentication, APIs, realtime updates, storage, and Row Level Security in one platform.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default
What it is The relational database that holds product, account, billing, and operational data.
Why I use it It is the relational database standard, it powers Supabase, and it keeps the underlying data portable.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default
What it is A typed TypeScript query and schema layer that stays close to SQL.
Why I use it It gives TypeScript applications typed schemas and queries while staying close enough to SQL to understand what the database is doing.
ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default
What it is A type-safe TypeScript query builder that maps database tables and SQL results into application types.
Why I use it It keeps complex SQL explicit while catching table, column, and result-shape mistakes in TypeScript before they reach the database.
DiveJourney: Specialized · Kitecraft: Specialized · Shippopotamus: Specialized
What it is OpenAI's framework for building agents with tools, handoffs, guardrails, and traces.
Why I use it I originally ran most AI features on OpenAI models and have since diversified, but the Agents SDK remains a strong framework for structured agent workflows.
ShipFoundry: Specialized
What it is A single model API that can route requests across several AI providers.
Why I use it It is a gamechanger for quickly testing models across intelligence, speed, price, and provider without rewriting the integration.
DiveJourney: Default · Kitecraft: Default · Shippopotamus: Default
What it is Anthropic's command-line coding agent for repository work, implementation, and verification.
Why I use it I use it alongside Codex when a new Claude model is worth testing or subsidized tokens make long engineering sessions practical.
DiveJourney: Specialized · ShipFoundry: Specialized · Kitecraft: Specialized · Shippopotamus: Specialized · johnpotess.com: Specialized
What it is The coding workspace used to inspect repositories, implement changes, and run verification.
Why I use it It is my default and the best agentic engineering environment I have found for connecting product intent to code, tests, and real browser behavior.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default · johnpotess.com: Default
What it is A shared protocol for exposing product tools and data to AI clients.
Why I use it MCP is becoming the standard connection layer for a future where agents operate products and software directly.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default
What it is Prompt, trace, evaluation, and cost observability for AI workflows.
Why I use it LLM usage must be observed, and Langfuse is open source, generous, and purpose-built for traces, prompts, evaluations, and cost.
ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default
What it is The issue tracker connecting product decisions to implementation and release follow-up.
Why I use it It gives work clear ownership, status, and a durable next action without slowing down daily use.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default · johnpotess.com: Default
What it is The workspace for longer product plans, research, and operating notes.
Why I use it It gives ideas room to develop before they become repository work or a Linear issue.
DiveJourney: Specialized · ShipFoundry: Specialized · Kitecraft: Specialized · Shippopotamus: Specialized · johnpotess.com: Specialized
What it is The local container and Linux environment replacing Docker Desktop on my Mac.
Why I use it It is dramatically more memory-efficient than Docker Desktop and leaves more of my local machine available for coding agents and product services.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default · johnpotess.com: Default
What it is The existing local container runtime used for databases and supporting product services.
Why I use it It remains installed for compatibility, but OrbStack now does the same local work with much lower memory use and faster startup.
DiveJourney: Migrating · ShipFoundry: Migrating · Kitecraft: Migrating · Shippopotamus: Migrating · johnpotess.com: Migrating
What it is A daemonless container engine for running isolated development workloads on Linux servers.
Why I use it It is coming next for VPS coding agents because it provides Docker-compatible containers without a permanently privileged daemon.
DiveJourney: Planned · ShipFoundry: Planned · Kitecraft: Planned · Shippopotamus: Planned · johnpotess.com: Planned
What it is Virtual private servers for long-running coding agents, loops, and background engineering work.
Why I use it It provides strong compute value for agent workloads that need to stay alive longer than a local session or serverless function.
DiveJourney: Specialized · ShipFoundry: Specialized · Kitecraft: Specialized · Shippopotamus: Specialized · johnpotess.com: Specialized
What it is A private mesh network connecting my Mac, phone, and VPS development environments.
Why I use it It gives long-running coding agents and development services stable private access from anywhere without exposing them to the public internet.
DiveJourney: Specialized · ShipFoundry: Specialized · Kitecraft: Specialized · Shippopotamus: Specialized · johnpotess.com: Specialized
What it is The SSH client I use to reach VPS development environments from desktop and mobile.
Why I use it It lets me review, restart, and continue long-running agent work from my phone when I am away from the Mac.
DiveJourney: Specialized · ShipFoundry: Specialized · Kitecraft: Specialized · Shippopotamus: Specialized · johnpotess.com: Specialized
What it is Hosting, preview deployments, server functions, and scheduled routes for the web products.
Why I use it It is the best fit for Next.js and makes previewing, deploying, and shipping web products extremely fast.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default · johnpotess.com: Default
What it is Managed Redis, rate limiting, and queue-backed delivery for serverless applications.
Why I use it Its serverless Redis, queues, scheduling, and rate limiting cover the coordination jobs that do not belong in PostgreSQL.
ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default
What it is Checkout, subscriptions, billing state, and payment webhooks.
Why I use it It is the strongest all-in-one provider for payments, billing, subscriptions, webhooks, and customer self-service.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default
What it is Transactional email delivery for product and account messages.
Why I use it It is a fantastic developer-first email provider with a clean API that powers transactional email across the products.
DiveJourney: Default · ShipFoundry: Default · Shippopotamus: Default
What it is The alert destination for operational events, product feedback, and workflows that need human attention.
Why I use it It puts urgent system signals where I will actually see and act on them instead of creating another monitoring inbox.
DiveJourney: Specialized · ShipFoundry: Specialized · Kitecraft: Specialized
What it is Feature flags and staged rollout controls.
Why I use it It replaces environment-variable flags with proper targeting, staged rollouts, instant kill switches, and safer rollback control.
ShipFoundry: Specialized · Shippopotamus: Specialized
What it is Consent management for analytics, privacy choices, and regional requirements.
Why I use it It is a fast way to keep consent handling consistent and GDPR-aware without rebuilding a compliance system in every product.
DiveJourney: Specialized · ShipFoundry: Specialized · Kitecraft: Specialized · Shippopotamus: Specialized
What it is Application errors, traces, releases, and performance context.
Why I use it It is the standard for error tracking and connects failures to the exact release, route, trace, and surrounding events.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default
What it is Product events, funnels, feature usage, and behavioral analytics.
Why I use it It does a bit of everything, but its product analytics, funnels, feature flags, and session evidence make it the best analytics fit for the applications.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default
What it is Lightweight, privacy-focused traffic analytics for this site.
Why I use it I am trying it on the static personal site because it is lightweight, privacy-focused, and avoids the heavier analytics stack.
johnpotess.com: Specialized
What it is A vendor-neutral standard for application traces, metrics, and logs.
Why I use it It is the open standard that lets all observability signals share one instrumentation layer while the backends can change.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default
What it is Operational log storage and querying for production systems.
Why I use it It makes traces and logs fast to search without operating a separate ingestion and storage stack.
DiveJourney: Specialized · ShipFoundry: Specialized · Kitecraft: Specialized
What it is External uptime checks, heartbeats, incident alerts, and status monitoring.
Why I use it ShipFoundry uses it to prove scheduled and production systems are still alive from outside the application, and the monitoring experience is excellent.
ShipFoundry: Specialized
What it is Real-browser automation for product flows, screenshots, accessibility, and smoke tests.
Why I use it It is the browser-automation standard and proves the complete user flow instead of only testing isolated functions.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default
What it is Repeatable browser audits for performance, accessibility, and page quality.
Why I use it It turns performance into a release check when runtimes and frameworks change.
DiveJourney: Default · Shippopotamus: Default
What it is The accessibility rules engine used inside automated browser tests.
Why I use it It is the standard automated check for catching common WCAG failures before they become repeated component patterns.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default
What it is A fast Vite-native unit and integration test runner with a mature testing ecosystem.
Why I use it It provides strong mocking, coverage, browser-like environments, and compatibility for the shared starter test suite.
Shippopotamus: Default
What it is The unit test runner built directly into Bun.
Why I use it It starts quickly, needs almost no extra configuration, and keeps everyday tests inside the same runtime used for scripts and packages.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default
What it is A fast parser, linter, formatter, and TypeScript-aware toolchain.
Why I use it It is unbelievably faster than the ESLint and Prettier toolchain it replaces. The difference is large enough to change how often linting and formatting can run.
DiveJourney: Default · ShipFoundry: Planned · Kitecraft: Planned · Shippopotamus: Default · johnpotess.com: Planned
What it is The existing JavaScript and TypeScript linter in repositories not yet moved to Oxlint.
Why I use it It remains only while its rules are transferred without weakening the checks.
ShipFoundry: Migrating · Kitecraft: Migrating
What it is The formatter still used where Oxfmt has not yet replaced it.
Why I use it It stays until the new formatter can produce stable output without noisy repository-wide changes.
johnpotess.com: Migrating
What it is Continuous integration, release automation, and scheduled repository work.
Why I use it Checks should run beside the pull request and commit they are evaluating.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default · johnpotess.com: Default
What it is Automated pull request review for bugs, regressions, and code-quality problems.
Why I use it It adds a consistent review pass before a human spends time on the final decision.
DiveJourney: Specialized · ShipFoundry: Specialized · Kitecraft: Specialized · Shippopotamus: Specialized · johnpotess.com: Specialized
What it is Repository-aware review of the implementation, tests, product behavior, and release risk.
Why I use it It can connect a code diff to the surrounding system instead of reviewing changed lines in isolation.
DiveJourney: Default · ShipFoundry: Default · Kitecraft: Default · Shippopotamus: Default · johnpotess.com: Default
What it is High-performance hosted machines used for selected GitHub Actions jobs.
Why I use it They shorten expensive build and browser workloads when GitHub-hosted machines become the bottleneck.
DiveJourney: Specialized
What it is An external runner lane used during the fleet workflow experiments.
Why I use it It is tracked because runner choice affects delivery speed, reliability, and trust boundaries.
Shippopotamus: Experiment
What it is Managed GitHub Actions runners used for selected small and medium workloads.
Why I use it They provide another cost and performance option while trusted jobs remain explicitly routed.
DiveJourney: Experiment · ShipFoundry: Experiment · Kitecraft: Experiment · Shippopotamus: Experiment
What it is The structured-content platform and editing studio behind johnpotess.com.
Why I use it Essays, metadata, translations, and related content need a real content model rather than loose files.
johnpotess.com: Specialized
What it is The documentation framework used for ShipFoundry knowledge and product guidance.
Why I use it It provides a strong public reading and search experience without rebuilding a documentation system.
ShipFoundry: Specialized
What it is Web and native maps, place search, and geographic imagery for DiveJourney.
Why I use it The product needs one geographic foundation across discovery, planning, and the mobile experience.
DiveJourney: Specialized
The canonical starting point. A new fleet product should use it unless there is a clear reason not to.
A deliberate product-specific or workload-specific exception. It is not second-class and is not expected everywhere.
Actively being evaluated. It is useful enough to run, but not yet a long-term standard.
Approved for adoption but not active yet.
04
Retired