How I built Second Derivative in a weekend

How I built Second Derivative in a weekend

A place for longer thoughts

For a couple of months I’ve been posting regularly on LinkedIn—short observations on startups, tech, economics, and the occasional off-topic thought. It worked well for reaching people, but not for writing in depth. Threads aren’t essays. Ideas that warranted more space often sat in voice memos or notebooks and rarely made it further.

So I decided to build a proper blog.

My goal was to keep it simple: one home for long-form writing, with the flexibility to evolve—ideally something I could also automate later. I opened a new chat with GPT and began working through the decisions.

Choosing the platform

I asked GPT o3 to compare options. o3 is positioned for heavy reasoning tasks where accuracy matters more than cost or speed. Basically, it can and does “think longer,” especially querying various websites to get the relevant information.

Platform Substack Ghost(Pro) WordPress Static Site
(e.g. Hugo/Next.js)
Cost Free $9–40/mo $5–25/mo Mostly free
Write API None (RSS only) Yes (Admin API) Requires plugins Git-based or scripted
Design flexibility Minimal Full theme control High (via plugins) Unlimited
Emailing Built-in Built-in Requires plugins External service (e.g. Mailgun)
Ease of use Very easy Easy Moderate Complex setup

Ghost(Pro) came out ahead. It let me use my own domain, didn’t push its branding or email formatting, and offered good design flexibility. More importantly, I could access its Admin API to eventually automate content creation, remix posts for LinkedIn, or trigger publications from voice memos. I signed up that afternoon.

Branding and design

I asked o3 for blog name suggestions, and within a few minutes had a shortlist:

  • Second Derivative(selected)
  • Temporal Bias
  • Continuous Signal
  • Delta Works
  • Convex Futures

I chose Second Derivative because it captured both a mathematical reference and a broader sense of accelerating change. GPT provided a set of tagline options and colour schemes.

We then worked on a hero image. I asked for a subtle S-curve that conveyed the idea of a second derivative without being literal. We went through four iterations:

  1. Arrow (too generic)
  2. Plain S-curve (too flat)
  3. Glowing S-curve (closer)
  4. Futuristic wave with particle grid ✅ (selected)

These images were generated and refined directly within the chat interface. I uploaded each to Ghost and shared screenshots back into the thread for feedback.

During this process I switched to o4‑mini‑high, which is tuned for lower latency and dramatically lower cost, making them the sensible choice for iterative design work, quick CSS suggestions, or iterative drafting. It also seems that it performed better at image drafting than o3.

CSS and where AI struggled

Once the design was in place, small design issues remained—positioning the image correctly, adjusting spacing, and fixing overlap with the navigation bar. This is where o4-mini-high's suggestions became unreliable.

I tried uploading screenshots, even pasted the entire page’s HTML into the chat. The responses didn’t match what I was seeing.

Eventually, I opened Chrome’s inspector, found the class responsible, and gave that to GPT. With that direction, it produced the correct CSS. That became the pattern: AI didn’t spot the problem on its own, but solved it effectively once I pointed to the right place.

Turning the chat into this post

Once the blog was up and running, I asked GPT-4o, which is best for long‑context recall, meaning it could re‑read our entire thread and summarise it coherently in one pass. I gave it a few constraints—keep it concise, avoid unnecessary code, match the tone of The Economist (which, alas, only worked half-great)—and edited lightly from there.

Join me on the curve