Inspiration
Data engineering work is often fragmented across terminals, SQL editors, dashboards, configuration files, and deployment tools. We wanted to create a simpler experience where engineers could describe an outcome in plain English while keeping full control over every important action.
DataStack One was inspired by coding agents such as Codex, but designed specifically for data engineering workflows.
What it does
DataStack One is a local-first conversational data engineering workspace.
Users can upload files, start sessions from existing project folders, connect Postgres databases, profile and query data, build transformations, run quality checks, and publish approved results as JSON or CSV endpoints.
Every session has independent history, files, working directory, DuckDB warehouse, approvals, and execution state. Multiple sessions can run simultaneously without interrupting or colliding with one another.
All write operations require explicit human approval. Database credentials remain on the backend and never enter prompts, chat history, or model-generated tool arguments.
How we built it
The frontend uses React, TypeScript, Vite, and Tailwind CSS. The backend uses Fastify, DuckDB, and an embedded OpenCode agent runtime.
The agent operates through a fixed set of audited data tools. OpenCode events are normalized and streamed to the browser using Server-Sent Events, allowing responses, reasoning, tools, approvals, questions, and results to appear live.
Each session receives an isolated DuckDB catalog. Postgres connections are resolved by name and attached read-only, keeping credentials outside the model boundary.
Codex helped research the OpenCode SDK, design the architecture, implement features, diagnose runtime issues, and build regression coverage. The developer directed the product, security boundaries, and final experience.
Challenges we ran into
The hardest challenge was making a selected folder become the agent's actual working directory instead of a visual attachment.
We also had to ensure background sessions continued running while keeping their messages, files, databases, approvals, and results completely isolated.
OpenCode exposes different event contracts across SDK generations. Permission requests and interactive questions required separate response and recovery flows so the agent could never remain stuck waiting for input.
Another major challenge was allowing useful database access without exposing credentials to the model.
Accomplishments that we're proud of
- Built a working conversational data engineering agent in two days
- Supported multiple independent background sessions
- Made existing folders real agent working directories
- Added secure file uploads and read-only Postgres access
- Implemented inline approvals for every write
- Added recoverable interactive agent questions
- Published approved data as working JSON and CSV endpoints
- Created more than 1,000 automated tests
- Kept credentials, local paths, and sensitive files outside the model boundary
What we learned
We learned that useful agentic software needs strong boundaries more than unlimited autonomy. Clear tools, isolated state, visible execution, recoverable interactions, and human approval create a more trustworthy product.
We also learned that an agent should work inside the user's existing project instead of forcing every file through an upload workflow.
What's next for DataStack One
DataStack One is a two-day hackathon prototype, so some quirks remain. Next, we plan to improve reliability, expand data connectors, add deployment and scheduling options, strengthen observability, and continue developing it into a production-grade data platform with GPT-5.6.
Built With
- codex
- duckdb
- fastify
- gpt-5.6
- node.js
- openai
- opencode-sdk
- parquet
- postgresql
- react
- server-sent-events
- tailwind-css
- typescript
- vite
- zod
Log in or sign up for Devpost to join the conversation.