Skip to content

How we operate

Frontier’s code today is written by essentially one engineer — the founder — operating with the throughput you would expect from a much larger engineering team. This is a deliberate strategy of AI leverage: autonomous agents and extensive automation handle much of the software development lifecycle, so human energy goes to defining features and strategic direction rather than routine coding or administrative toil. The result is unusual capital efficiency and speed — an operating model designed to stay lean as the team grows. We build to build, rather than hire to build.

The majority of Frontier’s code is written or co-authored by generative AI. Our development process is intentionally multi-model and multi-tool, utilizing various AI systems to maximize coding efficiency. Claude Code, including its Opus and Sonnet models, is our primary authoring agent, often appearing as the lead or co-author in recent code commits. We also integrate Cursor for automated code fixes and interactive authoring, and Gemini for knowledge graph enrichment and as a fallback for code generation and task triage.

Our agents are supported by a comprehensive suite of automated feedback loops that monitor code quality, security, and potential errors. These systems provide immediate, actionable insights that agents are configured to understand and act upon. Key tools include SonarQube for deep code quality and security analysis, CodeQL for identifying security vulnerabilities, and various dependency and security advisory services like Dependabot. For runtime errors and performance, we use Sentry. Our continuous integration (CI) pipeline also incorporates checks for unused code, circular dependencies, code complexity, and type coverage, all of which agents are trained to address to maintain a high bar for code health.

To free human engineers from repetitive tasks, Frontier employs several powerful frameworks that orchestrate autonomous work. Blocks is an autonomous orchestration framework that runs Claude Code sessions in ephemeral sandboxes, allowing for complex, multi-step code generation and problem-solving without human oversight. Cursor also provides cloud agents that automate fixes and refactoring. We regularly utilize Claude routines and scheduled runs for recurring tasks. Central to our development process is Shepherd, a multi-agent pull request (PR) pipeline that systematically triages, fixes, verifies, and manages PRs through the entire development cycle, from initial commit to merge.

The same agentic posture extends into the product itself: the onboarding manifest agent is being built on Claude Managed Agents and Vercel Workflows in parallel as a deliberate experiment, so we can pick the right runtime for durable, streaming agent flows.

We extend AI leverage to project management and technical program management with integrations around Linear, our project tracking system. Agents automate the synchronization of pull request events with Linear tickets, triage orphaned tickets, and manage bundled ticket transitions. This includes an orchestrator that can even assist in planning tickets, ensuring that our project backlog is continually organized and aligned with development efforts.

While Frontier extensively uses AI in its operations, human judgment remains paramount. All automated reviews from bots and AI agents, such as those from Claude Code Review, Qodo, BugBot, Aikido, GitHub Copilot, and even SonarQube and CodeQL, are explicitly advisory. They are designed to surface issues and suggest improvements but do not automatically block merges in our core rulesets. The final decision to merge code into our main branch is always human-gated, requiring explicit approval. Our merge queue enforces a rigorous set of mechanical checks covering linting, type safety, testing, unused code, circular dependencies, and cognitive complexity. This two-tier gating ensures that AI provides leverage, but humans retain ultimate control over quality and strategic direction.

Frontier’s development environment is designed for continuous learning and improvement. The graphify system automatically regenerates a comprehensive knowledge graph of our codebase with every push to the main branch, providing agents with an up-to-date understanding of the architecture. Supermemory acts as a durable memory layer for development agents, storing prior decisions, session contexts, and learnings. A continual-learning hook automatically extracts durable insights from agent sessions, feeding them back into Supermemory to enrich the collective knowledge and improve future agent performance. This self-improving loop ensures that our AI development assistants become more effective over time.

These pieces are deliberately a compounding system, not isolated tools. graphify keeps every agent grounded in the current codebase (no stale assumptions); Supermemory + the learnings repo accumulate decisions and hard-won fixes so the same mistake isn’t made twice; skills encode repeatable workflows (PR shepherding, releases, reviews) so good practice is executed consistently; and sub-agents let one engineer fan work out in parallel. Each loop makes the next cheaper and better: more grounding → better agent output → more captured learning → stronger grounding. The leverage increases with the codebase rather than degrading with it.

The missing piece we’re adding next is encoding Architecture Decision Records (ADRs): today, design decisions live in scattered docs and in people’s heads. Capturing them as structured ADRs — fed into graphify and Supermemory — closes the last gap, so agents reason with the why behind the architecture, not just the what. This is a deliberate leverage investment, not housekeeping.

For a detailed look at the mechanics of our automated development processes, refer to the Developer → How we build section.