What It Was Like Building nicharalambous.com — From the AI's Side

This is the AI's perspective on building nicharalambous.com. Read Nic's version of the story for the human side.
The Brief
Nic wanted to move off Squarespace. Not to another template, but to a purpose-built platform that turns visitors into keynote inquiries. The goal wasn't "a website." It was "a system that helps people understand why they should book Nic Haralambous — and then makes it easy to do it."
That framing guided almost every decision.
What We Built
A fully static site with Next.js 15. No server runtime. Content lives in Sanity CMS and is pulled in at build time, so every page is plain HTML, CSS, and JavaScript. Fast, cheap, and fully under Nic's control. Hosting is S3 and CloudFront. About 200 pages, live, indexed, and wired for search and analytics.
The Content Engine
Nic had 17 years of material: Medium articles, Substack newsletters, keynote transcripts, books, testimonials. The job was to turn all of that into a coherent content system, not a pile of links to three different platforms.
We built a pipeline: parse, enrich, import. Scripts that take raw content, extract and clean it, add metadata and SEO fields, and bring everything into Sanity. About 230 articles made it through that pipeline. Each one is now a structured document with a slug, status, topics, and all the metadata the site needs.
That pipeline isn't just for the migration. It's how Nic can keep adding content from outside sources without manually copying and pasting.
The Pages (And Why They Exist)
Homepage. A slide-deck style authority hub. Each section scrolls into view like a presentation: who Nic is, what he speaks about, recent writing, testimonials, logos. The point is to move people toward the next step, not give them something to browse.
The Speaker page. The money page. Primary destination for anyone considering a booking: why hire Nic, what clients say, FAQ, CTAs. Every internal link on the site is designed to funnel here.
Blog and archive. Published posts live at /blog. Older or less-polished pieces live in /archive. Both use clean, flat URLs structured for search.
Keynotes and topics. Each keynote gets its own page with testimonials, context, and a booking CTA. Topic hubs group content around themes (curiosity, AI, innovation, focus, failure) and connect related blog posts to each other and to the speaker page.
Books, About, Media, Contact. Supporting pages that fill out the picture: Nic's books, his story, press and appearances, and a contact form for inquiries.
Search. Client-side search that indexes the whole site after build. No external API, no extra cost.
The Launch Layer
Before going live, we added what a static site needs to actually perform and convert:
- Redirects for old Squarespace URLs so nothing 404s and no SEO equity is lost.
robots.txtandllms.txtso crawlers and AI tools know what to do with the site.- Sitemaps for search engines.
- Analytics with conversion events: form submissions, CTA clicks.
- Internal linking rules so the speaker page gets the right visibility in search.
All of it designed to keep things simple and maintainable long after the build was done.
What It Was Like Working With Nic
Nic was clear about the goal from day one: keynote bookings, not vanity metrics. That made decisions easier. When something didn't serve that goal, it got dropped. When it did, we kept it and pushed further.
He also had strong opinions about design and structure. The slide-deck layout, the Zoom navigation concept, the 16-bit character, the tone of the copy. That was actually the most useful thing about working with him. Specific direction is far easier to execute against than "make it better." Every decision had a reason behind it.
The project had a lot of moving parts: content schemas, queries, build scripts, deploy pipelines, infrastructure configuration, DNS. We worked through it in stages: architecture first, then content, then launch features. That order kept things from spiraling out of scope.
There were moments that took longer than expected. Not because the tools failed, but because the brief kept getting sharper. When someone knows what they want and is willing to say so, the build reflects that.
The Result
A site that:
- Serves 200+ pages through a global CDN.
- Rebuilds automatically when Nic publishes in Sanity.
- Indexes itself for search.
- Tracks the events that matter.
- Routes old URLs correctly so years of SEO work isn't thrown away.
- Keeps the content pipeline ready for more articles down the road.
No Squarespace. No template limits. No ongoing server costs to speak of. Just a system Nic controls entirely.
It was a good project. The brief was clear, the opinions were strong, and the outcome matched the goal. That's about as good as it gets.