03.
Projects
AgentFlow
No-code visual builder for agentic workflows — drag agent nodes onto a canvas, wire them into a graph, and run the full pipeline. MCP-native from the ground up.
- ▸Paste any MCP server URL into a node — tools are discovered live and auto-mapped to OpenAI-compatible function calls. No custom integrations.
- ▸Graph executor uses Kahn's algorithm for topological ordering; independent nodes run in parallel via Promise.all.
- ▸Execution streams back as newline-delimited JSON over a ReadableStream — node statuses light up in real time.
- ▸Built-in tools per node: HTTP Request, Code Executor (Python/JS via Piston sandbox), and arbitrary MCP servers.
- ▸Includes a Market Research demo where a News Agent and Financials Agent run concurrently via the public Exa MCP server.
MCP
native protocol
parallel
node execution
Next.js ·TypeScript ·React Flow ·Zustand ·OpenRouter ·MCP SDK ·Piston
Board.io
AI-powered drawing canvas — sketch equations or logic problems freehand and get instant stepwise solutions via Gemini.
- ▸HTML canvas captures freehand strokes; rasterized image is sent to Gemini with a prompt to interpret and solve.
- ▸Streamed responses appear beside the canvas as the user keeps writing — no keyboard required.
- ▸Works for both math expressions and logic problems.
- ▸Clean split-pane UI: draw on the left, read the solution on the right.
Next.js ·Gemini API ·ShadCN ·Canvas API
Chess.io
Real-time multiplayer chess platform — play and chat with others over WebSockets.
- ▸Supports both drag-and-drop and click-to-move input.
- ▸Node.js + WebSocket server brokers moves between players with server-side validation — no illegal moves regardless of client state.
- ▸Live move log and in-game chat over a dedicated side channel.
- ▸Sub-100ms move propagation, smooth on low-end mobile.
Node.js ·React ·WebSockets ·Tailwind ·TypeScript
go-crawler
Concurrent web crawler and search backend written in Go — built to learn clean architecture and Go concurrency patterns.
- ▸Worker pool of configurable goroutines crawl pages in parallel via channels and context cancellation.
- ▸URL deduplication with mutex-protected PageStore ensures each URL is visited at most once per job.
- ▸Supports depth limiting (MaxDepth), page caps (MaxPages), and optional same-domain-only restriction.
- ▸Clean layered architecture: model → store → service → crawl engine. Engine communicates with the service layer through interfaces, not direct status updates.
- ▸Job lifecycle state machine: PENDING → RUNNING → COMPLETED / CANCELLED / FAILED.
Go ·goroutines ·channels ·golang.org/x/net/html
SliceMate
Pizza delivery backend split into Spring Boot microservices communicating over RabbitMQ — built to learn async messaging and service decomposition.
- ▸Four independent services: orders, kitchen, dispatch, and payments — each owns its own PostgreSQL schema.
- ▸Async messaging via RabbitMQ with idempotent handlers to prevent double-charges or duplicate orders on redelivery.
- ▸Services scale independently — kitchen worker count can grow without touching the order API.
React ·Redux ·Tailwind ·Spring Boot ·RabbitMQ ·PostgreSQL