Skip to content

anishalle/hookemhacks26

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Architecture Studio

Collaborative web app for sketching, refining, and deploying AWS architectures. Phase 1 is a freeform whiteboard; on 80% vote it transitions to Phase 2 β€” a typed node graph (left) reconstructed from the sketch by Claude vision, plus a shared chat (right) where the agent can critique and edit the graph via tool-use. A second 80% vote deploys the graph to LocalStack via AWS CDK.

The repo also exposes a standalone /debug route for the whiteboard parser. It captures a board snapshot, sends it to the configured vision model, validates the returned compact infra schema, compiles it into the shared graph contract, asks for workload requirements, and produces a staged deployment plan with explicit, minimal inferred, and approval-gated upgrade resources.

Layout

  • shared/ β€” types shared between client and server.
  • web/ β€” Vite + React SPA, served as a static bundle.
  • server/ β€” Fastify + Hocuspocus + Anthropic SDK + CDK runner (Docker).
  • nginx/ β€” vhost boilerplate for anishalle.com and localstack.anishalle.com.
  • docker-compose.yml β€” backend + nginx + LocalStack, ready for the VPS.

Local dev

npm install
npm run dev:localstack  # :4566 LocalStack Community
npm run dev:server   # :3000 HTTP, :3001 WS
npm run dev:web      # :5173 (proxies /api β†’ :3000, /collab β†’ :3001)

Set OPENROUTER_API_KEY to use OpenRouter or GOOGLE_API_KEY to use Gemini for /debug. Set DEBUG_VISION_PROVIDER=gemini (default) to use gemini-2.5-flash, or DEBUG_VISION_PROVIDER=openrouter for OpenRouter. Override GEMINI_MODEL to switch Gemini variants. When running the backend locally, set LOCALSTACK_INTERNAL_URL=http://localhost:4566 and LOCALSTACK_PUBLIC_URL=http://localhost:4566. The repo pins LocalStack to localstack/localstack:4.14.0 because the latest tag is currently not reliable for local community usage. Override LOCALSTACK_IMAGE if you need a different stable version.

Open http://localhost:5173 for the app, or http://localhost:5173/debug for the standalone parser bench. The debug route now includes a workload questionnaire that drives stage selection (prototype, mvp, growth, production) and proposes approval-gated topology upgrades before synth/deploy.

For a quick end-to-end deploy smoke test:

curl -X POST http://localhost:3000/api/debug/deploy \
  -H 'content-type: application/json' \
  --data '{"mode":"deploy","graph":{"nodes":[{"id":"app","type":"External","label":"app","position":{"x":120,"y":120}},{"id":"ec2","type":"EC2","label":"ec2","position":{"x":540,"y":400}}],"edges":[{"id":"edge-1","source":"app","target":"ec2"}]}}'

Deploy on the VPS

# on the Oracle Linux VPS:
git pull
cp .env.example .env  # set ANTHROPIC_API_KEY etc.
npm install
npm run build --workspace=web
cp -r web/dist/* nginx/web-html/
docker compose up -d --build

Make sure DNS for anishalle.com and localstack.anishalle.com points at the VPS and Let's Encrypt certs exist at /etc/letsencrypt/live/<host>/.

About

πŸ† Winner AWS Track @ hookemhacks @ UT Austin

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages