Inspiration
An AI coding session often starts with one person and a prompt. The handoff comes when a teammate asks, “Can I try it?” Someone still has to run the code, share a link, and explain what changed. We built Code in Cloud so a team can go from that first prompt to an app everyone can open, with the conversation and code history in one place.
What it does
A teammate can drop a design screenshot into a shared chat and ask the agent to build it. The agent edits the project files, runs commands in a dedicated Docker sandbox, and deploys the app. Everyone in the project can follow the run live and open the preview. If the layout needs work, the team can point it out in the same conversation.
How we built it
We built the coding agent with LangChain Deep Agents and gave it tools to edit files, run shell commands, deploy an app, check its health, and read its logs. FastAPI and WebSockets stream the agent’s progress to teammates’ browsers. LangGraph checkpoints preserve the conversation between runs, and Git records code changes under the name of the teammate who requested them.
Challenges we ran into
Two teammates can ask for changes at the same time. If both runs edit the same files, one can overwrite the other’s work. We allowed one active run per project while keeping its progress visible to everyone. Images posed a different challenge. We store them as files and keep only their paths in conversation checkpoints, so a long design discussion doesn’t repeatedly save the same image data.
Accomplishments that we're proud of
The agent can check its own deployment. If the app fails to start, it can read the logs, edit the code, and deploy again. For a UI change, it can use Playwright to capture the running page and share that screenshot in the chat. That gives the team something concrete to review alongside the original request.
What we learned
A health check can tell us that a page responds. A screenshot can tell us that the button we asked for is cut off. Building both checks taught us to give the agent a way to inspect the result that matters to the person making the request.
What's next for Code in Cloud
We’d like to give each conversation its own Git worktree and branch. That would let one teammate try a new layout while another fixes a bug, then review and merge each change when it’s ready.
Built With
- deep-agents
- docker
- docker-compose
- fastapi
- git
- javascript
- langchain
- langgraph
- playwright
- python
- sqlalchemy
- sqlite
- traefik
- websockets