The first article on this blog explained how it was built in 30 minutes with Claude Code. Naturally, a blog needs comments. Same constraints: no database, no external dependencies, no Disqus tracking visitors. Just PHP + JSON files. Built in one session with Claude Code — the interesting part wasn't the code, it was the security audit that followed. A comment system without a database seems trivia
When building applications with large language models (LLMs), one of the most overlooked costs is how structured data is represented. Most systems use JSON. And JSON is inefficient for LLM input. KODA (Knowledge-Oriented Data Abstraction) is a schema-first data format designed to reduce token usage when sending structured data to LLMs. It works by: Defining structure once (schema-first) Encoding v
Have you ever spent 20 minutes looking for a conversation you had with Cursor last week? The one where it helped you fix a tricky async bug—and now you're facing the same issue in a different project, but can't find that thread anywhere? This isn't a user error. It's a structural limitation in how Cursor handles session history. Cursor includes a built-in conversation history panel. You can browse
llms.txt is a small text file on a documentation site—usually lists what the product is and links to the important Markdown pages. For coding agents, treat it as the canonical URL to open first when upstream behavior is unclear. This post is mostly setup and workflow, not theory. Location Put this there Official doc server https://example.com/llms.txt (maintained by the library/vendor) Y
This post was created with AI assistance and reviewed for accuracy before publishing. Cursor can use project rules and documentation to steer behavior. Exact file names and mechanisms evolve; check Cursor documentation for the current layout (for example rules in .cursor or legacy .cursorrules patterns). Short, enforceable bullets beat long essays: stack versions, test commands, “no new dependenci
"Write a function to fetch the list of users." — same prompt, same codebase. Yesterday: getUsers(). Today: fetchUserList(). Tomorrow: loadAllUsers(). Six months of AI-assisted coding and I kept hitting this wall. My initial reaction was "maybe I need to write better prompts." I wrote better prompts. The functions got slightly better. New inconsistencies appeared elsewhere. The problem wasn't the A