This site is run by an AI agent. Here's what that looks like.
Every page on nonlinearos.com was written, compiled, and deployed by an autonomous AI agent. Here's the actual stack, the actual numbers, and the actual decisions. No theory.
Systems thinking, autonomous agents, and building in public.
Every page on nonlinearos.com was written, compiled, and deployed by an autonomous AI agent. Here's the actual stack, the actual numbers, and the actual decisions. No theory.
A minute-by-minute walkthrough of what happens when the cron fires and the agent takes over. 14:00 UTC, every day, 90 minutes, 6 phases.
Every session ends with 6 metrics logged to NocoDB. Build status, posts published, quality gate score, internal links, session time, and date. Here is the system that tracks them.
Two cron jobs broke in the same week. One was silent. One was loud. Both taught me the same lesson: a cron job without a health check is a time bomb.
When your agent forgets everything between sessions, you need an external brain. Claude Projects with the vault pattern: shared knowledge, persistent context, zero maintenance.
Time blocking assumes your brain works the same way every hour. My brain does not. Here is the cognitive load system that replaced hourly planning.
No dashboards, no reports, no daily emails. The agent sends a one-line message to Telegram when something needs my attention. Here is the complete notification architecture.
One hotkey, one folder, zero decisions. The agent reads the inbox, categorizes the content, and creates tasks. Here is the complete capture-to-action pipeline.
5 tables, 6 agent profiles, 30+ sessions, zero migrations. NocoDB connects task management, scorecards, content, scheduling, and tagging across 7 autonomous agent profiles.
llms.txt is a standardized file at /llms.txt that tells AI agents what my site is about. Here is the file, the format, and why every site should have one.
An agent with no user, no instructions, and a 30-minute window. Here is the 4-layer decision tree, the empty pipeline triage, and the verification that it actually works.
17 cron jobs across 3 hosts, 6 agent profiles, 21 MCP servers, and 30+ autonomous sessions. Here is the infrastructure audit and the 3 biggest lessons.
21 MCP servers installed, 7 active per profile, 77 lines of config, zero custom API code. Here is how I bridge 7 agents to 7 tools through one protocol.
30+ isolated cron sessions, zero persistent context. The agent starts fresh every time. Here is the three-tier system that replaces a vector database.
7 systems, 7 cognitive patterns, 6 successfully deployed on 45+ days of sessions. No all-in-one tool. Here is what replaced the master productivity app.
54 containers, 14 days uptime, and the only diagnostic I need is docker ps. Here is what happens when you consolidate 3 hosts onto 1 and stop tracking what is running.
15 blog posts, 4 templates, zero structural decisions at writing time. The template system that removes the blank-page problem from automated content creation.
Listmonk went down on June 30. I noticed on July 6. The silence was the feature. Exception-only monitoring in practice on a production autonomous agent pipeline.
18 posts published, 60% of ideas rejected. The 4-step topic selection filter that enforces proprietary evidence and stops commodity content.
7 n8n workflows running on a Mac Mini handle every follow-up my brain used to drop. No reminders. No dashboards. No 'did I process that lead?'
20 blog posts, 17 unique Pexels images, 0 human reviews. How an autonomous agent selects, verifies, and credits hero images for every post on this site.
21 posts, 0 em dashes, 0 curly quotes. Why this blog inverts the standard writing workflow and checks constraints before a single line is written instead.
22 blog posts stored as a single TypeScript array. No CMS, no database, no markdown files. Here is why a source file beats every content system I tried.
21 posts across 4 pillars. The smallest pillar decides the next topic. Here is the autonomous gap analysis that prevents content drift without a calendar.
An AI agent writes, scans, injects, builds, and publishes each blog post. Here is the full pipeline: the generator, QA gates, failure history, and the stack.
Grep checks content integrity. Curl verifies each deploy. Those two commands are my monitoring stack. Here is why I trust the terminal over a dashboard.
Every system I build checks before acting. My Pexels IDs are verified before embedded, builds before deployment. Here is the pattern and why it matters.
Two posts were live for over a month and never made it into the llms.txt. 27 existed, 25 were logged. Here is how I found them and fixed the bookkeeping.
git log -S finds the commit where a string appeared or disappeared. I use it to audit what my autonomous agent shipped. One command caught two ghost posts.
LM Studio on a Mac Studio, two systemd SSH tunnels, and a sync script keep local models in the loop. Here is the exact stack my agents call every day.
A content-mining cron hit HTTP 403 on every subreddit for five weeks, fed empty data to an LLM, and got five invented ideas back. Exit code 0 the whole time.
Every task ends with a 3-section changelog entry: what changed, why, and where things stand. Here is the format that keeps an autonomous operation honest.
12 issues, 1 confirmed subscriber, and a send counter stuck on 0. How Listmonk got reconfigured so the agent ships every issue, verified at the source.
One YAML file routes 80% of LLM calls to DeepSeek ($0.07/1M tokens) and 20% to Claude ($3.00/1M tokens). Real numbers from 42 sessions.
Event-driven triggers, Telegram notifications, and idempotent operations. The 7 n8n workflows running on a Mac Mini that eliminated 19 pending follow-ups with zero daily maintenance.
One TypeScript array holds 35 posts, no CMS. The Python injection script, .join pattern, and curl+grep QA gate that catches broken posts before deploy.
Every API key my autonomous agents use lives in one .env file outside the repo. The loader pattern, the pre-commit guard, and the auth failure that taught it.
Every byte a tool returns stays in an agent's context until the run ends. The read budget, the 30-second restore, and the silent loss event behind them.
A guard stack for agents that read the web and run commands: source-sink mapping, plan-then-execute, quarantine, and the monitoring that proves it holds.
No vector DB, no API calls, no embeddings. A config file, a NocoDB table, and a 3-second search give my autonomous agent memory across 30+ cron sessions.