Synter - The AI Agent Operator for Ads
███████╗██╗ ██╗███╗ ██╗████████╗███████╗██████╗
██╔════╝╚██╗ ██╔╝████╗ ██║╚══██╔══╝██╔════╝██╔══██╗
███████╗ ╚████╔╝ ██╔██╗ ██║ ██║ █████╗ ██████╔╝
╚════██║ ╚██╔╝ ██║╚██╗██║ ██║ ██╔══╝ ██╔══██╗
███████║ ██║ ██║ ╚████║ ██║ ███████╗██║ ██║
╚══════╝ ╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚═╝ ╚═╝
Building Synter
The Full Story — 103 Days, 5 Pivots, 1 Vision
September 11, 2025 → December 23, 2025
The first commit tells the story: "Rebrand from ai-advertising to Synter - AI Advertising Agency." A FastAPI backend, Railway deployment configs, and a vision document that would guide everything that followed.
┌─────────────────────────────────────────────────────────────┐
│ Day 1 Commits │
│ ───────────────────────────────────────────────────────── │
│ d31b2ff Rebrand from ai-advertising to Synter │
│ ef6e0df Add Railway deployment configuration │
│ e499e68 Fix nixpacks.toml: remove duplicate section │
│ 97061ff Fix nixpacks.toml: properly configure Python │
│ c027f8f Fix nixpacks.toml: correct providers syntax │
│ 6d3f2b7 Fix nixpacks.toml: use ensurepip │
│ fcead60 Simplify nixpacks.toml │
│ f947cbb Simplify deployment │
│ ───────────────────────────────────────────────────────── │
│ 13 commits in one day — the deployment dance │
└─────────────────────────────────────────────────────────────┘
In 48 hours, the entire frontend shifted from Python templates to Next.js 15. D3.js charts, a settings panel, auth sessions, RBAC — 22,000+ lines in a single day.


The first major feature: OAuth connections to Google Ads, LinkedIn, Microsoft, Reddit. A credential vault with auto token refresh. The foundation for cross-platform campaign management.


Amp makes its first commits. The codebase gains a collaborator. 439 commits in one day — 16 files touched by AI. The vision of human-machine collaboration becomes real.
The biggest pivot: "Redesign Campaign IDE landing as chat-first interface (Cursor-style)." No more dashboards with forms. Just describe what you want, and the AI builds it.


Four major refactors in one day: "Switch all ad platforms to use Nango authentication." Migrate to NextAuth.js v5. Move all OAuth flows to frontend. Remove Railway backend dependency for auth.
The Oracle enters: GPT-5 reasoning for complex analysis. Business profile inference. Funnel blueprints per company type. The agent learns to think differently about enterprise vs. SaaS customers.
The final frontier: teaching the agent to execute code. E2B sandboxed execution. Approval workflows. Script catalogs. The agent becomes truly autonomous.
┌─────────────────────────────────────────────────────────────┐
│ Sandbox Implementation Phases │
│ ───────────────────────────────────────────────────────── │
│ ✓ SYN-94 Disable broken execute_python in production │
│ ✓ SYN-95 Implement constrained HTTP API tool │
│ ✓ SYN-96 Formalize Python script catalog │
│ ✓ SYN-97 Design sandboxed executor architecture │
│ ✓ SYN-98 Build sandbox orchestrator service │
│ ✓ SYN-99 Implement approval workflows │
└─────────────────────────────────────────────────────────────┘
103 Days Later
From a Python monolith to a chat-first IDE with sandboxed AI execution — built by humans and machines working together.
████████╗██╗ ██╗███████╗ ███████╗███╗ ██╗██████╗ ██████╗
╚══██╔══╝██║ ██║██╔════╝ ██╔════╝████╗ ██║██╔══██╗╚════██╗
██║ ███████║█████╗ █████╗ ██╔██╗ ██║██║ ██║ ▄███╔╝
██║ ██╔══██║██╔══╝ ██╔══╝ ██║╚██╗██║██║ ██║ ▀▀══╝
██║ ██║ ██║███████╗ ███████╗██║ ╚████║██████╔╝ ██╗
╚═╝ ╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═══╝╚═════╝ ╚═╝