-
-
Notifications
You must be signed in to change notification settings - Fork 6
Origin Story
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?
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 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.
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.
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.
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.
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.
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.
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.
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.
- Natural language first - Any language, any complexity. YAML is there for when you want precision, not because you need it.
-
Zero-config to production -
pip install,sandcastle init,sandcastle serve. Three commands to a running system. - No feature gates - Community mode has everything. License keys are a compliance signal, not a paywall.
- Batteries included - Templates, connectors, dashboard, CLI, memory, scheduling, approvals - all in one package.
- Open source - BSL-1.1 license. Read every line of code. Fork it. Extend it. Make it yours.
Sandcastle v0.17.0 | BSL-1.1 License | Created by Tomas Pflanzer @gizmax