Problem

Software teams waste countless hours on repetitive coding tasks and boilerplate updates. Developers get pulled away from solving core problems to handle routine fixes, refactors, and setup work. Project managers, meanwhile, must constantly track progress and update boards, leading to context switching and overhead. The result: slower iteration cycles, more bugs slipping through, and less focus on impactful work.

Solution

We built Shadow — a background PM and developer in one.

  • Developers log into our Next.js web app and connect their GitHub repos via our custom GitHub integration.
  • Using a chat interface, they describe what they want done.
  • Our Martian routing LLM analyzes the entire codebase for context and breaks requests into small, well-scoped tickets (to reduce LLM hallucinations).
  • Tickets are created in a lightweight Kanban-style view, where you can move items from Todo → In Progress.
  • Once a task moves to In Progress, an AWS Lambda (running in a Docker container) is triggered. This Lambda:
    • Clones the repo and checks out a new branch.
    • Uses Groq’s fast inference API to execute an agentic flow that makes the code changes.
    • Commits the changes with descriptive, LLM-generated messages.
    • Opens a PR with a detailed, auto-generated title and description.
  • The dev team reviews, suggests changes, and Shadow updates the PR accordingly.
  • Once merged, you can pick the next ticket or run multiple tasks in parallel.

Shadow keeps your team in control, while removing the grunt work.

How We Built It

  • Next.js Web App → handles authentication, repo selection, and the chat interface.
  • Martian Routing LLM → creates context-aware, small unit tickets from natural language input.
  • GitHub Integration → OAuth + repo linking for seamless collaboration.
  • AWS Lambda Functions (Dockerized) → perform background code changes and PR creation.
  • Groq API → powers the agent’s fast and reliable code generation flow.

Challenges We Ran Into

  • Ticket generation bugs: Early attempts failed silently due to type mismatches and JSON formatting issues.
  • GitHub integration complexity: OAuth + installation tokens required deep debugging of auth flows.
  • AWS Lambda containers: Setting up Docker builds for Lambda and running/test locally took significant trial and error.

What’s Next

  • PM tool integrations: Sync with Trello, JIRA, and Linear for seamless workflows.
  • Multi-repo support: Allow Shadow to coordinate changes across interconnected services or microservices.
  • Automated testing integration: Run and validate unit/integration tests before opening PRs to improve trust in generated code.

Built With

Share this project:

Updates