A web-based visual platform for modular AI agents with database persistence and improved workflow execution.
SynApps is a web-based visual platform for modular AI agents called Snaplets. Its mission is to let indie creators build autonomous AI snaplets like LEGO blocks – each snaplet is a small agent with a specialized skill (e.g. Writer, Memory, Artist).
A lightweight SynApps Orchestrator routes messages between these snaplets, sequencing their interactions to solve tasks collaboratively. In other words, SynApps connects AI "synapses" (snaplets) in real time, forming an intelligent network that can tackle complex workflows.
- One-Click Creation & Extreme Simplicity: Create an AI workflow with minimal steps (one or two clicks).
- Autonomous & Collaborative Snaplets: Each snaplet runs autonomously but can pass data to others via the orchestrator.
- Real-Time Visual Feedback: See the AI snaplets at work with an animated graph of nodes (snaplets) and connections (data flow).
- Background Execution & Notifications: Snaplets run in the background once triggered, with a notification system to alert users of important status changes.
- Openness and Extensibility: Support for user-editable snaplets via code for those who want to customize logic.
- Docker and Docker Compose
- Optionally: Node.js 16+ and Python 3.9+ for local development
-
Clone the repository:
git clone https://github.com/nxtg-ai/SynApps-v0.4.0.git cd SynApps-v0.4.0 -
Create a
.envfile in the root of the project with your API keys and database URL:OPENAI_API_KEY=your_openai_api_key STABILITY_API_KEY=your_stability_api_key DATABASE_URL=sqlite+aiosqlite:///synapps.db -
Build and run the containers:
docker-compose -f infra/docker/docker-compose.yml up --build
-
Open your browser and navigate to http://localhost:3000
-
Navigate to the orchestrator directory:
cd apps/orchestrator -
Create a virtual environment and install dependencies:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txt
Alternatively, you can install the orchestrator as a development package:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -e . # Installs the package in editable mode with all dependencies
-
Initialize the database:
alembic upgrade head
-
Run the development server:
uvicorn main:app --reload
-
Navigate to the frontend directory:
cd apps/web-frontend -
Install dependencies:
npm install
-
Run the development server:
npm start
SynApps follows a microkernel architecture:
- Orchestrator: A lightweight message routing core that passes data between applets and manages workflow execution.
- Applets: Self-contained AI micro-agents implementing a standard interface to perform specialized tasks.
- Frontend: React app with a visual workflow editor, built on React Flow and anime.js for animations.
- Database: SQLite with async SQLAlchemy ORM for persistent storage of workflows and execution state.
The MVP includes three core applets:
- WriterApplet: Generates text given a topic or prompt using gpt-4o.
- MemoryApplet: Stores or retrieves information to maintain context between steps using a vector store.
- ArtistApplet: Creates an image from a text description using Stable Diffusion.
The application is configured for deployment to:
- Frontend: Vercel
- Backend: Fly.io
CI/CD pipelines are set up using GitHub Actions.
SynApps v0.4.0 uses SQLAlchemy with async support for database operations:
- ORM Models: SQLAlchemy models for flows, nodes, edges, and workflow runs
- Migrations: Alembic for database schema migrations
- Repository Pattern: Clean separation of database access logic
- Async Support: Full async/await pattern for database operations
-
Navigate to the orchestrator directory:
cd apps/orchestrator -
Install the package in development mode:
pip install -e .This will install the orchestrator as an editable package, allowing you to make changes to the code without reinstalling.
-
Create a
.envfile in the orchestrator directory with your API keys:OPENAI_API_KEY=your_openai_api_key STABILITY_API_KEY=your_stability_api_key DATABASE_URL=sqlite+aiosqlite:///synapps.db FRONTEND_URL=http://localhost:3000 -
Run database migrations:
alembic upgrade head
-
Start the backend server:
uvicorn main:app --reload --port 8000
-
Navigate to the web-frontend directory:
cd apps/web-frontend -
Install dependencies:
npm install
-
Create a
.envfile in the web-frontend directory:REACT_APP_API_URL=http://localhost:8000 REACT_APP_WEBSOCKET_URL=ws://localhost:8000/ws -
Start the development server:
npm start
- Create a feature branch from
main - Make your changes
- Write tests for your changes
- Submit a pull request to
main - After review and approval, the changes will be merged and deployed automatically
Backend tests use pytest and are located in the apps/orchestrator/tests/ directory.
cd apps/orchestrator
source venv/bin/activate # On Windows: venv\Scripts\activate
pytest -vFor more details on testing, see the CONTRIBUTING.md file.
Frontend tests use Jest and React Testing Library and are located alongside the components they test.
cd apps/web-frontend
npm testFor convenience, a development script is provided to start both the backend and frontend servers:
.scripts/start-dev.shThis script will:
- Kill any existing processes on ports 8000 and 3000
- Start the backend server with hot-reloading
- Start the frontend development server
Contributions are welcome! Please feel free to submit a Pull Request. See CONTRIBUTING.md for detailed guidelines.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- React Flow for the workflow visualization
- anime.js for animations
- FastAPI for the backend
- Monaco Editor for the code editor

