SERIES

Place2Page Engineering Notes

13 Posts·Last updated on June 08, 2026

Treating Gemini Overload as a Product Path Problem, Not Just an Outage

May 14, 2026

When Gemini final generation failed with , the easy fix would have been to add another retry. But the more important Place2Page question was different: which failures should the product absorb inside…


Treating AI Copy Quality as a Grounding Problem, Not a Forbidden-Words List

May 15, 2026

Place2Page's AI copy was not grammatically wrong, but repeated patterns became obvious across multiple places. At first, it seemed like blocking words such as and would solve it. The real issue was…


Managing Prompt Experiments as Operational Assets, Not String Edits

May 15, 2026

At first, Place2Page prompts looked like ordinary strings. As experiments accumulated, the real problem became less about finding a better sentence and more about whether we could later explain which…


Why I Removed Time-Dependent Data from AI-Generated Static Pages

May 15, 2026

It was tempting to give the AI more place data and expect a better landing page. But values like "open now" may be correct at generation time and still become risky as soon as they are saved into sta…


Next.js client env is a build artifact, not runtime env

May 19, 2026

The production container had the environment variable, but the Mixpanel Session Replay setting in the browser did not change. At first I suspected a missing runtime environment variable. The actual b…


Tracing Event loop is closed through the OpenAI client lifecycle

May 22, 2026

Sentry kept collecting events where our code was almost absent from the stack. At first it looked like library cleanup noise. But following the coroutine name and the boundary showed a lifecycle is…


Treating DB pool timeout as a lifecycle problem, not just pool size

May 22, 2026

When SQLAlchemy timeout appeared as a P1 issue in Sentry, the easiest fix would have been to increase the pool size. But grouping routes and timestamps showed that database capacity alone did not ex…


From moving fast alone to helping the team move with fewer blockers

May 23, 2026

One thing I learned while building Place2Page is that development speed is not defined only by individual implementation speed. At first, I thought moving quickly, organizing things myself, and build…


Building an Agentic Prompt Experiment Loop

May 24, 2026

Place2Page's landing page generation was already publishable. The question for this experiment was not "does it work?" It was "can we improve place-specific structure and visual rhythm without breaki…


Using Photos as Generation Metadata, Not Prompt Decoration

May 24, 2026

Adding more photos did not automatically make Place2Page landing pages better. My first instinct was to add another prompt rule telling the model to "use the photos well." After looking at the actual…