Skip to content

Origin Story

Tomas Pflanzer edited this page Feb 27, 2026 · 1 revision

Origin Story

The problem we saw

Most teams have the same problem: repetitive work that's too complex for a simple script but too boring for a human. Legacy RPA tools promise automation but deliver brittle flowcharts that break the moment anything changes. No-code platforms look good in demos but hit walls fast - limited integrations, no real AI, no way to handle the messy reality of business processes.

We asked a simple question: What if you could just tell your computer what to do, in plain language, and it would figure out the rest?

How it started

Sandcastle began as a weekend experiment - a Python script that could take a YAML workflow definition and execute each step using Claude as the AI backbone. The first version had maybe 200 lines of code. One YAML file, one executor, one model.

The first workflow we ran was a text summarizer. Three steps: read input, summarize with an LLM, output result. It worked. Then we tried something harder - a lead enrichment pipeline that took a company name, searched the web, extracted contacts, and composed personalized outreach emails. That worked too.

That's when we realized this wasn't just a script. It was an orchestrator.

The evolution

Phase 1 - Foundation

The core DAG engine, basic step types (standard, LLM, HTTP, code, condition, classify, loop), and the YAML workflow format. We built the FastAPI backend, SQLite for persistence, and a simple CLI. The first 7 step types covered most use cases.

Phase 2 - Power features

We added race (parallel execution where first result wins), sensor (poll URLs and webhooks for external events), and gate (multi-strategy approval with timeout fallbacks). These three step types turned Sandcastle from a sequential executor into a real-time orchestration platform.

Phase 3 - Zero cost additions

transform (Jinja2 template rendering - no API calls needed), notify (push alerts to Slack, email, webhooks), and delegate (spawn sub-workflows). These cost nothing to run but added enormous flexibility.

The dashboard

What started as a simple status page became a 20-page React application with a visual workflow builder, template gallery, run monitoring with real-time SSE streaming, scheduling, approval queues, cost optimization, A/B testing for workflows, and more. 29,000+ lines of TypeScript.

Integrations explosion

From 5 connectors to 56. Slack, GitHub, Salesforce, Stripe, SAP, browser automation, Google Sheets, PostgreSQL, MongoDB, Snowflake, and dozens more. Each connector is a self-contained .mjs file with retry logic, error handling, and shared utilities.

Community hub

The community started contributing workflows. We built a registry, a CLI for publishing and installing, curated collections, and a browse page. 118 community templates from 22 authors across 18 collections.

Enterprise hardening

Credential encryption (Fernet AES-128-CBC), API key rotation with grace periods, IP allowlisting, Docker seccomp profiles, distributed rate limiting, security headers, SSRF prevention, and an Ed25519 license key system. Not because we wanted to gate features (everything works in community mode), but because enterprises need compliance signals.

What it is now

Sandcastle is a ~89,000-line open-source project with:

  • A complete workflow orchestrator - 15 step types, DAG execution, parallel fan-out, human-in-the-loop approvals
  • 56 connectors - from Slack and GitHub to SAP and Snowflake, plus browser RPA
  • 236 workflow templates - 118 built-in + 118 community, covering marketing, sales, engineering, HR, legal, security, and more
  • A production-ready dashboard - 20 pages, visual builder, real-time monitoring, cost tracking
  • 4 sandbox backends - E2B (cloud), Docker (local), Cloudflare Workers (edge), subprocess (dev)
  • Multi-model support - Claude, OpenAI, Google Gemini, MiniMax, with automatic failover
  • Agent memory - persistent context across runs with importance scoring and decay
  • 3 protocol standards - Google A2A, CopilotKit AG-UI, Anthropic MCP
  • Enterprise security - encryption at rest, key rotation, IP allowlisting, seccomp, rate limiting
  • 1,463 tests across 57 test files

All from a single pip install sandcastle-ai.

The philosophy

  1. Natural language first - Any language, any complexity. YAML is there for when you want precision, not because you need it.
  2. Zero-config to production - pip install, sandcastle init, sandcastle serve. Three commands to a running system.
  3. No feature gates - Community mode has everything. License keys are a compliance signal, not a paywall.
  4. Batteries included - Templates, connectors, dashboard, CLI, memory, scheduling, approvals - all in one package.
  5. Open source - BSL-1.1 license. Read every line of code. Fork it. Extend it. Make it yours.

Clone this wiki locally