Getting Started with the Vention Developer Toolkit
This guide will walk you through creating and running your first machine app using the Starter Template, included in the toolkit.
By the end, you’ll have a fully functional demo app running both locally and in the MachineLogic environment, showcasing real-time control, persistent storage, and a responsive HMI.
Prerequisites
Accounts and Access
Before you begin, ensure you have the following installed and ready:
A Vention account with access to MachineBuilder and MachineLogic
A MachineMotion controller in your design (for simulation or real hardware)
Tool  | Purpose  | Installation  | 
|---|---|---|
Python 3.9  | Backend runtime  | |
Node.js + npm  | Frontend runtime  | |
Vention CLI  | Sync projects between local and cloud  | 
  | 
Graphviz (optional)  | Enables state/DB diagram generation  | 
  | 
Create Your First Machine Design
Start from MachineBuilder on vention.io.
Log in to your account.
Open an existing design or create a new one that includes a MachineMotion controller.
Go to the MachineLogic tab.
Click New App → Application Template.
Name your application (for example,
Quiz Demo).
A new Machine App will appear in your project. It includes a basic demo application and dependencies to get you started.
Link Your Local Development Environment (optional)
You can now link this application to your local machine using the Vention CLI.
Start by creating a new folder on your computer. ( for example, Quiz Demo)
cd MyApp
vention loginThis will prompt you to sign in on your browser.
vention pullFollow the onscreen prompts to choose your design and your Quiz Demo application.
You should now see a local folder containing your new application. The folder structure should look like this:
quiz-demo/
├── customui/                          # React frontend source code
│   └── src/
│       ├── app/                       # Main application components
│       │   ├── pages/                 # Page components
│       │   ├── api.ts                 # Type-safe API client
│       │   ├── app-context.tsx        # React context for state management
│       │   └── app.tsx                # Main app component and router
│       └── main.tsx                   # Application entry point
├── app.py                             # State machine implementation
├── models.py                          # Data models
├── project.json                       # Entry point for your application
├── requirements.txt                   # Python dependencies
├── server.py                          # FastAPI server
└── [build config files]This structure is intended to mirror a real MachineApp and demonstrates two of the core backend modules of the Vention Developer Toolkit:
vention-state-machine→ state-driven control logicvention-storage→ data persistence and audit trails
On the frontend, you’ll find components built using @vention/machine-ui and @vention/machine-app-components for a consistent, production-ready HMI experience.
Configuring your application entry point
You can customize how your backend is run by modifying your
project.json
Refer to our Python Programming Guide for more information
Set Up Your Local Environment
Before running the demo, you’ll need to install its dependencies.
Creating a Python virtual environment is recommended to avoid version conflicts.
(Optional) Create a Virtual Environment
python3 -m venv .venv
source .venv/bin/activate  python3 -m venv .venv
.venv\Scripts\activate Install Backend Dependencies
pip install -r requirements.txtInstall Frontend Dependencies
cd customui
npm installRun the Application Locally
Start the Backend
python -m uvicorn server:app --reloadThe backend should start on http://localhost:8000.
You can verify it’s running by visiting http://localhost:8000/docs — you’ll see automatically generated API documentation.
Start the Frontend
cd customui
viteThis launches the React development server at http://localhost:4205
Once both processes are running, open your browser to the frontend URL.
You should see the Reach Study Quiz interface appear, communicating live with the backend over WebSocket.
Run the Application in Machine Builder
In MachineLogic, open your design and navigate to your app.
Click Simulate to start the backend server.
Open the HMI — you’ll see the same reach study demo running in the MachineLogic interface.