Auditing the journal's own data: a duplicate venture and colliding IDs
This time I audited the journal's own data rather than the code, and six concrete errors turned up: "Payda" was recorded twice in the ventures list (the real root cause of the inflated homepage counter — the code had a guard, but the data was still dirty), four entry numbers were used twice (10, 30, 31, 32), four entries were empty auto-generated stubs with some Ekran Çeviri and Devam work misfiled under samiaktas.com, five entries had no tags, and one entry still showed Turkish on the English page. On top of that, work done since 16 August had never been written up at all. I fixed the lot in a single pass: the duplicate venture removed, colliding numbers reassigned, the empty stubs replaced with the real work and moved to the right venture, and the missing tags and translation filled in.
Firestore · Data Quality · i18n · Content
Entry 59refactor
Post-audit repair: 36 changes across 18 files, independently verified
After the audit I ran the repair phase: 36 changes applied across five non-overlapping groups, 18 files touched, and the site's identity generation (entry number, project slug, page anchor, JSON-LD id) pulled out of four duplicated copies into a single new module. Three accuracy bugs visible in production are gone: same-day entries were rendering in reverse order, a duplicated "Payda" record made the homepage counter read 4 active ventures instead of 3, and the same post was being published under multiple identities in the structured data. A hole in the local preview tool was closed and the tool now listens only on my own machine; the journal script now takes a backup before writing and refuses to overwrite the document if it changed in the meantime. Every group was then re-audited by an independent agent that hadn't done the repair: four passed clean, and in the publish-pipeline group three of the repair agent's changes had introduced new problems — the verifier reverted all three. Nothing was pushed to production, no live data was touched, and all 20 modified files were backed up so the whole thing can be undone with one command.
Astro · Node.js · Bash · JSON-LD · Accessibility
Entry 58security
A 53-agent audit: 13 of 19 critical claims collapsed
I ran a parallel audit of the site and its surrounding tooling across nine specialist modes (debugging, architecture, performance, clean architecture, backend, frontend, tech lead, security, DevOps); 53 agents ran in total and every critical finding had to survive a rebuttal test from two independent reviewers. The result was not what I expected: 13 of the 19 "critical" claims fell apart once measured — "the site hasn't deployed in three days", "HTML is cached at no layer", "analytics is delaying critical CSS" all failed verification against the live site. The three genuinely urgent items that remained had nothing to do with the site itself; they were in the local tools around it. The application layer held up better than I assumed: the URL safety filter blocked all 21 attack vectors tried against it, and there is no secret leakage in the built output. My lasting rule for this project: a conclusion reached by reading code isn't a finding until it's measured against production.
Today I connected the Grok API to the site. I built a simple admin interface to add new projects and change images. Automatic publishing feature was also added. (Later cancelled: I dropped the Grok API subscription.)
Admin Panel · Auto-sharing · Discontinued
Entry 41update
Daily System Improvements
Today I improved my daily system. I made data handling more realistic.
Build Journal · Automation · Data Handling
Entry 18optimization
Code diet: ~8 MB of dead weight gone, structure now modular
We cleared the leftovers of the old single-file site (nearly 8 MB of dead files); the original went into the archive. Header, footer and journal-entry blocks that were copy-pasted across three pages became single components — changing a view now means editing one file. Cyrillic/Greek/Vietnamese font subsets a Turkish site never uses were dropped too (39 definitions down to 16). The look stayed pixel-identical.
Refactor · Modular Architecture · Performance
Entry 17milestone
The site is bilingual now: the English version is live
samiaktas.com/en is open — the entire site in English: homepage, journal archive and venture pages. A TR/EN button sits top right; there is deliberately no auto-redirect (Google's advice: hreflang + user choice). All 15 journal entries, my About story and the whole UI were hand-translated; even dates format per language. Zero code duplication: the same files render both languages. AI engines and Google can now cite this ledger for English queries too.
i18n · hreflang · SEO · Astro
Entry 16transparency
Real expenses and technology tags
The ledger's 'zero expenses' didn't reflect reality — we opened an overhead class called 'Workflow & Tools' and recorded the Claude Pro subscription (17 USD ≈ ₺796). Transparency now shows the real number; the class doesn't count as a venture and gets its own itemized section. Every journal entry also got tags for that day's technologies and security work — visitors see at a glance what each job was built with.
Transparency · Overhead · Tagging
Entry 11
Journal archive and venture pages
As the build journal grew, we restructured it: the homepage now shows only the last 5 entries and the full ledger lives at /gunluk. Every venture got its own journal page — Payda and samiaktas.com read separately, and any new venture gets its page automatically. Entries now run newest to oldest, every page introduces itself to search engines with its own title and schema, and the sitemap updates itself.
Astro · SEO · Schema.org
Entry 09Automation
The site publishes itself + a triple expert audit
Today we built a pipeline that automatically rebuilds and publishes the site on every edit (build → deploy → instantly notify search engines). Then came three separate expert audits — design, SEO/GEO and security: accessibility/contrast fixes, richer structured data, and the database write rule locked to my account only. Note: this entire site was built with a single Claude Pro subscription, together with AI.
CI/Automation · Security · SEO · Accessibility
Entry 07Move to Astro
Rebuilt the site with zero-JavaScript Astro
For the fastest visibility on AI and Google, we moved the site to a fully static, zero-JavaScript Astro build. The result: ~34 KB, sub-half-second loads, and every piece of content embedded so bots read it instantly. We simplified the design too: a text-first opening and a single large photo in About.
Astro · Tailwind CSS · Zero-JS
Entry 05Identity & login
Identity, login and the UI settled
We wrote the About text (Adana; starting my software entrepreneurship with this site), secured the admin login with Firebase and reworked the UI. We also found and fixed a missing DNS record on the e-mail side; [email protected] works now.
Firebase Auth · DNS · Security
Entry 03SEO & AI
Search-engine and AI visibility package
We introduced the site to Google, Bing and Yandex; set up the sitemap, robots.txt, llms.txt, Schema.org markup and IndexNow. AI crawlers like GPTBot/ClaudeBot got read access. Cloudflare added speed, security (SSL, WAF) and a caching layer.
SEO · Schema.org · Cloudflare · WAF/SSL
Entry 01First launch
The site is finally live
We moved the broken portfolio site to Firebase Hosting and got it online. Split the single 7 MB file into pieces and made it persistent with Firestore; the page no longer resets on every refresh. Step by step, with AI, without knowing how to code.