Complete guide to all automation tools, workflows, and techniques used by ONOX Systems. ONIX manages and expands this stack continuously.
Automate everything that doesn't require Mario's judgment. Notify Mario on everything that does.
Every automation must:
- Be documented here with purpose and trigger
- Have a fallback/alerting mechanism
- Be monitorable by ONIX
- Improve velocity, stability, or knowledge
| Tool | Role | Environment | Status |
|---|---|---|---|
| GitHub Actions | CI/CD, sync, testing | Cloud | Active |
| N8N | Business automation, webhooks, integrations | Local + Cloud | Configuring |
| Vercel | Auto-deploy on push | Cloud | Active |
| Supabase Edge Functions | Serverless automation triggers | Cloud | Active |
| Tailscale | Private network automation, health checks | Private mesh | Active |
| Notion API | Documentation automation, briefings | Cloud | Planned |
| ONIX Agent | Meta-automation — manages all others | Both | Active |
File: .github/workflows/ci.yml
Trigger: Every PR to main
Actions:
- Install dependencies (bun install)
- Run TypeScript check
- Run linter (Biome)
- Run unit tests
- Comment results on PR
File: .github/workflows/deploy.yml
Trigger: Push to main
Actions:
- Trigger Vercel deployment
- Wait for deployment URL
- Post deployment URL to commit status
- Notify ONIX via webhook
File: .github/workflows/sync-pascal-upstream.yml
Trigger: Weekly schedule (Monday 09:00 UTC)
Actions:
- Fetch upstream changes from
pascalorg/editor - Create PR with upstream diff
- Label PR as
upstream-sync - ONIX reviews and decides to merge
File: .github/workflows/onix-briefing.yml (to create)
Trigger: Every Friday 17:00 UTC
Actions:
- Collect git log from past week
- Collect open issues and PRs
- Generate briefing via ONIX
- Create GitHub issue tagged
onix-brief - Post to Notion workspace
File: .github/workflows/deps-update.yml (to create)
Trigger: Monthly (1st of month)
Actions:
- Run
bun update - Create PR with updated lock file
- Run CI checks
- Label as
deps-update
# Local N8N (development)
docker run -it --rm -p 5678:5678 n8nio/n8n
# Access at http://localhost:5678Trigger: GitHub webhook (new issue, PR, commit) Flow: GitHub → N8N → Notion database Purpose: Keep Notion project board in sync with GitHub activity
Trigger: Vercel deployment webhook Flow: Vercel → N8N → [Slack/Telegram/Email] Purpose: Notify team of successful/failed deployments
Trigger: Daily schedule (08:00) Flow: RSS feeds → N8N → Filter by keywords → Notion page Keywords: WebGPU, React Three Fiber, AI agents, spatial computing, Basque tech Purpose: Feed STUDIES.md research pipeline
Trigger: Every 15 minutes Flow: Supabase API ping → N8N → Alert if down Purpose: Service health monitoring
Trigger: Every Monday 09:00 Flow: Stripe API → N8N → MRR calculation → Notion Purpose: Track revenue metrics for INVESTMENT.md KPIs
// vercel.json
{
"buildCommand": "bun run build",
"outputDirectory": ".next",
"framework": "nextjs",
"git": {
"deploymentEnabled": {
"main": true
}
}
}- Every PR gets a preview URL automatically
- Preview URLs are posted as PR comments
- ONIX reviews preview before approving merge
Managed via Vercel dashboard. ONIX tracks required vars in .env.example.
Never commit secrets to git.
Purpose: Receive webhook from external services and notify ONIX
Endpoint: https://[project].supabase.co/functions/v1/onix-notify
Purpose: Trigger Vercel deployment from external events Usage: Called by N8N when conditions are met
Purpose: Track API usage for billing/metrics Trigger: Each 3D scene load via the viewer
onoxsystems.com (Vercel Edge)
↓
[Public traffic]
↓
Supabase (DB + Auth + Functions)
↓
[Tailscale mesh]
↓
Dev machines (Vitoria-Gasteiz)
N8N instance
Local test environments
#!/bin/bash
# Run via cron every 5 minutes
tailscale status | grep -E "(online|offline)" | while read line; do
if echo "$line" | grep -q "offline"; then
curl -X POST $WEBHOOK_URL -d "{\"text\": \"ONOX Tailscale node offline: $line\"}"
fi
done- Understand GitHub Actions YAML syntax
- Create simple N8N workflows
- Monitor Vercel deployments
- Use Supabase dashboard
- Write custom GitHub Actions
- N8N advanced flows (conditions, loops, error handling)
- Supabase Edge Functions (Deno/TypeScript)
- Tailscale ACL configuration
- Multi-step automation orchestration
- Webhook security and validation
- Rate limiting and cost optimization
- Automation testing and monitoring
- Custom ONIX integration patterns
- Idempotency — Running twice should produce same result
- Observability — Every automation must log its actions
- Fail loudly — Failures must alert, never silently fail
- Least privilege — Each automation only has the access it needs
- Documentation first — Document before you build
- ONIX awareness — ONIX must know about every automation
| Service | Account | Purpose |
|---|---|---|
| GitHub | marioperezfuertes-svg | Code + CI/CD |
| Vercel | ONOX account | Deployment |
| Supabase | ONOX project | DB + Auth + Functions |
| Tailscale | ONOX org | Private network |
| N8N | Self-hosted or n8n.cloud | Business automation |
| Stripe | ONOX account | Payments |
| Notion | ONOX workspace | Docs + PM |
| Anthropic | API key | ONIX LLM |
| Cloudflare | onoxsystems.com DNS | Domain + CDN |
Maintained by ONIX. Extended by the DevOps team. All additions must be documented here before deployment.