> activepieces
Build workflow automations with Activepieces. Use when a user asks to self-host a Zapier alternative, automate workflows with a visual builder, create no-code integrations, or set up open-source business automation.
curl "https://skillshub.wtf/TerminalSkills/skills/activepieces?format=md"Activepieces
Overview
Activepieces is an open-source workflow automation platform — the newest Zapier/n8n alternative. Visual builder, 200+ integrations, code steps, branching, loops, and webhooks. Self-hosted for free with unlimited flows.
Instructions
Step 1: Self-Host
# docker-compose.yml — Activepieces with PostgreSQL and Redis
services:
activepieces:
image: activepieces/activepieces:latest
ports: ["8080:80"]
environment:
AP_ENGINE_EXECUTABLE_PATH: dist/packages/engine/main.js
AP_POSTGRES_DATABASE: activepieces
AP_POSTGRES_HOST: postgres
AP_POSTGRES_PORT: "5432"
AP_POSTGRES_USERNAME: activepieces
AP_POSTGRES_PASSWORD: activepieces
AP_REDIS_HOST: redis
AP_ENCRYPTION_KEY: your-32-char-encryption-key-here
AP_JWT_SECRET: your-jwt-secret-here
AP_FRONTEND_URL: https://auto.example.com
postgres:
image: postgres:16
environment:
POSTGRES_DB: activepieces
POSTGRES_USER: activepieces
POSTGRES_PASSWORD: activepieces
volumes: [pgdata:/var/lib/postgresql/data]
redis:
image: redis:7-alpine
volumes:
pgdata:
Step 2: Code Step
// Inside Activepieces Code step
export const code = async (inputs) => {
const { data } = inputs
return {
processed: data.items.map(item => ({
name: item.name.toUpperCase(),
total: item.price * item.quantity,
})),
grandTotal: data.items.reduce((sum, i) => sum + i.price * i.quantity, 0),
}
}
Step 3: Custom Piece (Integration)
// pieces/my-app/src/index.ts — Build custom integration
import { createPiece } from '@activepieces/pieces-framework'
import { newOrderTrigger } from './triggers/new-order'
import { createInvoiceAction } from './actions/create-invoice'
export const myApp = createPiece({
displayName: 'My App',
auth: PieceAuth.SecretText({ displayName: 'API Key' }),
triggers: [newOrderTrigger],
actions: [createInvoiceAction],
})
Guidelines
- Self-hosted: completely free, unlimited flows and executions.
- Cloud: free tier with 1,000 tasks/month.
- Newer than n8n — cleaner UI, growing fast, but fewer integrations.
- TypeScript-first code steps and custom pieces.
> related_skills --same-repo
> zustand
You are an expert in Zustand, the small, fast, and scalable state management library for React. You help developers manage global state without boilerplate using Zustand's hook-based stores, selectors for performance, middleware (persist, devtools, immer), computed values, and async actions — replacing Redux complexity with a simple, un-opinionated API in under 1KB.
> zod
You are an expert in Zod, the TypeScript-first schema declaration and validation library. You help developers define schemas that validate data at runtime AND infer TypeScript types at compile time — eliminating the need to write types and validators separately. Used for API input validation, form validation, environment variables, config files, and any data boundary.
> xero-accounting
Integrate with the Xero accounting API to sync invoices, expenses, bank transactions, and contacts — and generate financial reports like P&L and balance sheet. Use when: connecting apps to Xero, automating bookkeeping workflows, syncing accounting data, or pulling financial reports programmatically.
> windsurf-rules
Configure Windsurf AI coding assistant with .windsurfrules and workspace rules. Use when: customizing Windsurf for a project, setting AI coding standards, creating team-shared Windsurf configurations, or tuning Cascade AI behavior.