All Posts
thoughts, discoveries, and ideas

You Probably Don't Need Vault: How Deleting a Cache Made Our Key Storage More Secure
pCraft is a BYOK 'Postman for LLMs' whose database is full of other people's provider API keys, bearer credentials with a credit card behind them. This article walks through the envelope-encryption scheme that keeps a stolen database backup worthless, then tells the counterintuitive story of replacing HashiCorp Vault with a local key-encryption key: a change that deleted a plaintext-DEK cache a security review had flagged as critical and collapsed the key's in-memory lifetime from sixty seconds to microseconds. It covers AEAD binding contexts that defeat cross-tenant splicing, self-describing ciphertext, KEK rotation without re-encrypting rows, and how to tell when a managed secrets service is actually worth its operational cost.

Introducing pCraft: A Workbench for People Who Build With LLMs
For a year my most important work, the prompts, lived in Python strings, scattered notes, and 1am messages to myself, with no version history and no way to fairly compare one model against another. pCraft is my answer: a workbench for building with language models, 'Postman for LLMs', where you bring your own key, wire up multi-step chains, and run the same prompt across several models side by side. This founder-tone launch post covers why I built it, why I think it's useful, and the unglamorous lessons the project taught me: overbuilding infrastructure for a scale that didn't exist, falling in love with an architecture instead of a product, and what it means to hold someone else's API key.

Building a RAG Pipeline from Your Sitecore Content
This article details how to build a production RAG pipeline that turns Sitecore CMS content into an AI chatbot. It covers using Sitecore's Layout Service for clean content extraction, component-aware chunking, vector embeddings for semantic search, and prompt engineering to keep responses grounded with source citations. The architecture is composable and keeps Sitecore as the single source of truth.

Migrating from React to Next.js in a Sitecore World: Overcoming the Component Factory Hurdle
Migrating a React-based Sitecore application to Next.js can unlock powerful server-side rendering and modern performance benefits—but it also presents unique challenges. In this post, we dive into how Sitecore’s default component factory generation can unintentionally inflate your rendering list, turning each subcomponent into a standalone element. You’ll learn why this happens and how to implement a custom script that respects your existing folder structure. By doing so, you can keep your code organized, prevent confusion in Sitecore, and ensure a seamless editorial experience.

Pros and Cons of Using AI for Testing: A Developer's Journey with CenariusCMS
In this article, we explore how AI assisted in writing tests for his Go-based CMS project, CenariusCMS. While AI isn’t flawless, it helped speed up the testing process and uncovered edge cases that hadn't been considered. The article delves into the benefits and challenges of using AI for testing, highlighting its ability to assist without replacing human intuition.

Engineering spotlight: Building a headless WordPress site
Learn why our development team chose to build a headless WordPress demo site as well as the technical ins and outs of how it came to life.