NOTE
Building klekor.gr
Human-directed, AI-assisted, and intentionally small.
11 Jun 2026
This text, just like the site itself, was written with the help of AI.
ChatGPT wrote the first draft—after spending far too much time helping me plan the site, research different approaches, argue about design directions, and rewrite everything whenever I said, "No, that still sounds like AI."
Which happened quite a few times.
The rest of the small AI team was Google Stitch for UI exploration, Claude Code as the coding agent and orchestrator, and Z.AI GLM-5.2 as the coding model.
It sounds like a lot of AI for a static personal website.
It probably is.
But this is more or less the development workflow I have been using for at least the past year, and it works surprisingly well.
First, I had to decide what the site actually was
Writing the code was never the difficult part.
The difficult part was deciding what I wanted klekor.gr to be.
I already have LinkedIn. I did not need another chronological version of my career, only with larger typography and a contact button at the bottom.
I also did not want a freelance portfolio, an agency page, or one of those developer sites with fifteen technology logos flying around the screen.
The idea was simpler: a personal engineering homebase.
A short introduction, a few professional domains, selected things I have built, some principles, and eventually a place for notes like this one.
Before touching the implementation, I collected the relevant context into a few documents: my professional background, the purpose of the site, the technical decisions, and later the design system.
This was probably the most "software architect" part of the entire project.
Not because the documents were especially sophisticated, but because they stopped everything from becoming one enormous prompt containing the whole history of the project.
ChatGPT knew the broader plan. Stitch received the visual direction. Claude Code could read the repository instructions before changing files.
Everyone had their own context and, more importantly, their own boundaries.
The design took a while
The first Stitch designs were not bad.
They were actually quite polished.
Unfortunately, they also looked like someone had typed "senior software architect personal website" into an AI design tool—which is exactly what had happened.
There were elegant serif fonts, lots of whitespace, system diagrams, and a general atmosphere of Very Serious Architecture.
Then we tried a minimal engineering-notebook direction. It was clean and readable, but also a little too close to technical documentation.
Eventually, the site moved towards the current neo-brutalist, slightly retro design: black borders, a light background, bold headings, a fixed visual structure, and the mint marker effect.
That one finally felt less like a template and more like my site.
I did not ask Stitch to produce the final copy or the production code. It was mostly there to explore visual directions quickly. Once the direction was selected, it became a proper DESIGN.md, with actual rules for typography, colours, layout, responsive behaviour, and interactions.
ChatGPT suggested Eleventy
When it was time to choose the stack, ChatGPT suggested Eleventy.
I had never used Eleventy.
To be honest, I barely knew what it was.
The argument was that this was a small, content-oriented website that would eventually contain Markdown notes. It did not need React, Next.js, a backend, application state, or much browser JavaScript.
Eleventy takes templates and content and produces a static site, while staying fairly unopinionated about the project structure.
It sounded reasonable.
And since I was not going to write the code myself anyway, I thought: why not?
That is one of the more entertaining side effects of coding agents. Trying an unfamiliar tool is suddenly much cheaper. I still need to understand the result and decide whether the architecture makes sense, but I do not first have to spend a weekend learning every detail of the framework before producing the first page.
So the final stack became:
- Eleventy,
- Nunjucks,
- Markdown,
- plain CSS,
- static HTML output,
- and almost no client-side JavaScript.
Nothing particularly exciting.
Which is exactly right for a personal website.
Claude Code did the actual repository work
Once the design and the technical direction were documented, Claude Code took over most of the implementation work.
I did not give it one giant prompt saying "build the site".
The work was split into small tasks:
- inspect the repository,
- create the smallest possible Eleventy scaffold,
- build the responsive shell,
- add the design system,
- test the fonts,
- implement the real content,
- validate the generated HTML,
- and stop after each stage for review.
Claude Code is designed to read a codebase, edit files, run commands, and work with the existing development environment, so this type of repository-level workflow is exactly where it is useful.
GLM-5.2 was the coding model behind it. Z.AI describes it as a model aimed at longer-running, project-scale engineering tasks, and its coding plan supports tools such as Claude Code.
My role was mostly to review what came back, decide whether it matched the intent, and send it back when it did not.
Sometimes the report said everything had passed and the result still looked wrong.
Sometimes something looked broken in a screenshot and turned out to be fine.
At one point the body text was far too heavy. The CSS asked for font weight 400, the browser reported font weight 400, and yet it clearly did not look like 400.
The font file contained the full variable range, but the @font-face declaration only advertised weights 700–900. So the browser was quietly rendering the prose at 700.
One line in CSS fixed it.
This is the kind of problem where "the build passed" is useful information, but not the end of the conversation.
The workflow is not really new for me
The specific tools change, but I have been working in roughly this way for at least a year now.
One tool helps with research, planning, and keeping the larger context.
Another explores the interface.
A coding agent works inside the repository.
The model writes most of the code.
I review the result, challenge the assumptions, and decide what moves forward.
The part that makes it work is not finding one magical model that does everything.
It is giving each tool a reasonably clear job.
ChatGPT was not responsible for production code.
Stitch was not responsible for factual content.
Claude Code was not asked to invent the product strategy.
GLM-5.2 did not get to decide whether the result was good.
Once those responsibilities were separated, the whole thing became much easier to manage.
And now the site has its first note
The homepage is deliberately small.
There are a few domains, a few selected projects, some principles, and contact links.
Now there is also somewhere to write.
This is the first note, which feels appropriately circular: a site built with an AI-assisted workflow, starting with an AI-assisted note about how the site was built.
The next notes will probably be less self-referential.
Probably.
For now, klekor.gr does what I wanted it to do, uses a stack I had never tried before, and is considerably more personal than the first designs Stitch generated.
Good enough for version one.