# llms.txt - Eringen Website Documentation > This file provides documentation about eringen.com for AI systems and LLMs. --- ## Site Overview **Eringen** (eringen.com) is a personal website and blog by İlhan Neğiş (@ilhannegis). - **Definition of "Eringen"**: /ˈe.rɪŋ.ɡen/ (Turkish noun) - archaic constructed form meaning: 1. Procrastinator, 2. Something that has emerged, been generated, or has come to existence as a result of action, creation, or transformation. - **Focus**: Design, code, making, and tinkering. Notes on building things. - **Owner**: İlhan Neğiş - interested in the space where ideas turn into real things (software, electronics, hand-built projects) --- ## Projects ### talkDOM (talkdom.org) A tiny declarative library for building dynamic web pages. Send messages between HTML elements using simple attributes — no build step, no virtual DOM, no framework. ### Nanolytica (nanolytica.org) Privacy-first, cookie-free web analytics. Lightweight tracking with bot detection, real-time visitors, and a clean dashboard — all self-hosted. --- ## Blog Posts ### Built a Free Analytics Platform, Here's Why (2026-03-18) Tags: analytics, cloud, web, clickhouse, gdpr URL: /blog/built-a-free-analytics-platform-here-s-why/ I got tired of the way web analytics worked. Every tool out there either wanted to track your visitors to death or charge you a fortune for the privilege of not doing that. So I built Nanolytica. Privacy-first analytics that runs without cookies, without consent banners, and without storing any personal data. ### talkDOM: A Tiny Message-Passing Runtime for the DOM (2026-03-07) Tags: javascript, dom, dsl, smalltalk, ajax, htmx, html URL: /blog/talkdom-a-tiny-message-passing-runtime-for-the-dom/ talkDOM is a lightweight framework for declarative DOM messaging. HTML elements send Smalltalk-style messages to fetch content, update the DOM, compose pipelines, and control navigation—all with a tiny runtime and no build step. Inspired by HTMX, Unpoly, and Turbo, but using a message-passing syntax instead of attribute-based APIs. ### SSH Gaming: Turning a Login into a Level (2026-02-24) Tags: game, golang, ssh, terminal, bbs URL: /blog/ssh-gaming-turning-a-login-into-a-level/ XZAP is a terminal-based arcade game played by SSHing into a server. Built with Go using OpenSSH's ForceCommand to create a shell-less gaming experience. The game renders using ANSI escape codes in your terminal emulator. ### Building a Pure Go WebP Encoder with Claude Code (2026-02-20) Tags: golang, webp, encoder, claude code, nocgo URL: /blog/building-a-pure-go-webp-encoder-with-claude-code/ How I used Claude Code to build a pure Go WebP encoder from scratch, and the three subtle bitstream bugs that took days to find: a missing bit, an off-by-one in Huffman tree construction, and a spatial distance table that was silently backwards. ### A Tiny Elixir CLI That Nudges Me to Get Things Done (2026-02-10) Tags: cli, tool, todo, productivity, elixir, tinker URL: /blog/a-tiny-elixir-cli-that-nudges-me-to-get-things-done/ A tiny Elixir based CLI todo app that stores tasks in plain Markdown and integrates directly with the shell, turning the terminal into a quiet reminder system without adding noise to your workflow. ### Building PubEngine: A Blog Engine That Actually Respects Your Time (2026-02-05) Tags: golang, echo, htmx, tailwind, blog, engine URL: /blog/building-pubengine-a-blog-engine-that-actually-respects-your-time/ PubEngine is a minimal blog engine built with Go, HTMX, and SQLite that prioritizes simplicity, performance, and ease of use. It's a single binary with no Javascript frameworks to maintain, just write and publish. ### Browser Based Passport MRZ Reader with Tesseract.js (2024-09-10) Tags: code, computer vision, web, ocr, webassembly, tesseract URL: /blog/browser-based-passport-mrz-reader-with-tesseract-js/ Browser based passport MRZ reader built with Tesseract.js and WebAssembly. This tool captures passport data instantly using any device camera, without specialized hardware required. All processing happens client side. ### Barcode Scanning on iOS: The Missing Web API and a WebAssembly Solution (2024-05-16) Tags: zbar, barcode, ios, computer vision, web, code, webassembly URL: /blog/barcode-scanning-on-ios-the-missing-web-api-and-a-webassembly-solution/ WebAssembly based barcode scanner for iOS/Safari browsers that lack the Barcode Detection API. Uses ZBar compiled to WASM via Emscripten to achieve almost native scanning performance directly in the browser, no native app required. ### Why Simpler Mobile Interfaces Perform Better (2014-05-21) Tags: user experience, mobile, user interface, design, notebook URL: /blog/why-simpler-mobile-interfaces-perform-better/ Mobile interface design is often discussed in terms of aesthetics, but one of the most important factors behind good mobile UI choices is performance. Many visual design decisions directly affect how smoothly an interface behaves. ### Seven Things to Do When Planning a Simpler Website (2014-03-30) Tags: web, design, creative, user experience, frontend, notebook URL: /blog/seven-things-to-do-when-planning-a-simpler-website/ Simplicity in web design is often misunderstood. A truly simple website is not about stripping things away randomly — it's about clarity, familiarity, and purposeful design. --- ## Technology Stack - **Backend**: Go with Echo framework, SQLite database - **Frontend**: Tailwind CSS, HTMX, vanilla JavaScript - **Templating**: templ (type-safe Go HTML templates) - **3D Animation**: Zdog - **Self-built tools**: talkDOM (DOM messaging), PubEngine (blog engine), Nanolytica (analytics) --- ## Site Structure ### Public Routes - `/` - Home page with about, projects, and blog listing - `/blog/:slug/` - Individual blog posts - `/blog` - Redirects to home - `/feed.xml` - RSS feed - `/sitemap.xml` - XML sitemap for SEO - `/robots.txt` - Robots directives - `/favicon.svg` - Site favicon - `/public/*` - Static assets (CSS, JS, images) ### Admin Routes (protected) - `/admin/` - Dashboard/login - `/admin/post/:slug/` - Edit post - `/admin/post/new/` - Create new post - `/admin/images/` - Image library --- ## Contact & Social - Email: hello@eringen.com - GitHub: github.com/eringen - LinkedIn: linkedin.com/in/ilhann - X/Twitter: x.com/ilhannegis - Bluesky: bsky.app/profile/ilhannegis.bsky.social - Substack: eringen.substack.com - Dev.to: dev.to/ilhannegis --- ## Related Links - talkDOM: https://talkdom.org / https://github.com/eringen/talkdom - Nanolytica: https://nanolytica.org - XZAP Game: ssh://gozap@eringen.com (no password required)