A Visual Engineering Platform Proof-of-Concept
Built as a demonstration of Ezyr's "Glass Box" visual engineering concept — a canvas where you build data pipelines with blocks, see data flow in real-time, and view the generated code.
This prototype demonstrates understanding of Ezyr's core technical challenges:
- Visual Programming Canvas — React Flow-based drag-and-drop interface
- Code Execution Engine — Actually executes JavaScript transformations (not mocks)
- Glass Box Transparency — See data flowing through connections in real-time
- Visual → Code Compilation — Shows generated JavaScript from the visual flow
- Modular Block System — 5 different block types with distinct operations
- Frontend: React 18 + Vite
- Canvas: @xyflow/react (React Flow v12)
- State: Zustand
- Styling: Custom CSS (dark theme matching Ezyr's aesthetic)
- Execution: Custom topological flow executor
| Block | Purpose | Ports |
|---|---|---|
| 📥 Input | Source of data | → Out |
| ⚡ Transform | Modify data (uppercase, lowercase, reverse, etc.) | In → Out |
| 🌐 API | Mock API call with delay | In → Out |
| 🔀 Condition | If/else routing | In → True/False |
| 📤 Output | Display final result | In → |
- Topological Sort — Executes blocks in correct order based on connections
- Edge Animation — Edges glow as data passes through them
- Execution Badges — Each block shows what data it received/sent
- Real-time Logs — Right panel shows execution results per node
The "Generated Code" tab shows JavaScript equivalent of the visual flow:
// Input: input-1
const input_1 = "hello world";
// Transform: uppercase
const transform_1 = transform_uppercase(input_1);
// Output
console.log(transform_1);# Install dependencies
npm install
# Start dev server
npm run dev
# Open http://localhost:5173- Drag blocks from the left sidebar onto the canvas
- Connect blocks by dragging from output port → input port
- Configure blocks by clicking and editing their properties
- Click Run to execute the flow and see data animation
- View Code in the right panel to see generated JavaScript
The canvas starts with a simple flow:
Input ("hello world") → Transform (uppercase) → Output ("HELLO WORLD")
Click Run to see it execute!
- Builds a dependency graph from nodes and edges
- Uses topological sort to determine execution order
- Executes each node asynchronously with visual feedback
- Handles errors and shows them inline
- Zustand store manages the entire flow graph
- Supports undo/redo-ready structure
- Updates are immutable and reactive
- Each block type is a React component
- Uses React Flow's
HandleAPI for connection ports - Shows execution results inline after Run
- Understanding of Visual Programming UX — Familiar node-based interface like Figma/Unreal
- Code Execution Complexity — Actually runs transformations, not just UI
- Graph Theory Application — Topological sort for execution order
- Component Architecture — Modular, extensible block system
- Real-time Feedback — Execution state visible throughout the flow
# Build for production
npm run build
# Deploy to Vercel
vercel --prod
# Or deploy to any static host
# (Netlify, GitHub Pages, Railway, etc.)If building this for production:
- Web Worker sandboxing for safer code execution
- Custom block creation (user-defined functions)
- Subsystem packaging (reusable block groups)
- Real API integration (not mocked)
- Collaborative editing (WebSockets)
- Marketplace for sharing blocks
- Export flows as standalone functions
"I built this overnight to show I understand Ezyr's vision."
Key points to mention:
- Glass Box Concept — "I made sure data is visible at every step, not hidden in black boxes"
- Execution Engine — "The hardest part was the topological executor — making sure blocks run in the right order"
- Visual → Code — "Users see both the visual canvas AND the generated code, so they understand what's happening"
- Extensibility — "Adding a new block type is just creating a new React component"
- Why React Flow — "It's the industry standard for node-based UIs (Figma, Webflow, n8n all use similar libraries)"
Built with ❤️ in 4 hours to demonstrate technical depth.