Foundary Studio: Conversational product development
|
|
||
|---|---|---|
| .claude | ||
| .githooks | ||
| .sdlc | ||
| apps | ||
| cli | ||
| docs | ||
| packages | ||
| pkg | ||
| scripts | ||
| services | ||
| workers | ||
| .gitignore | ||
| .golangci.yml | ||
| .woodpecker.yml | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| go.work | ||
| package.json | ||
| pnpm-workspace.yaml | ||
| Procfile | ||
| README.md | ||
Foundary Studio
A product studio for conversational product development. Foundary Studio enables teams to build, iterate on, and ship products through natural conversation — turning dialogue into working software.
Quickstart
# Clone the repo
git clone https://git.threesix.ai/jordan/foundary-test-1770773605.git
cd foundary-test-1770773605
# Install dependencies
./scripts/install.sh
# Start local development (PostgreSQL, Redis, all services)
./scripts/dev.sh
Architecture
Foundary Studio is a monorepo with Go backend services, TypeScript frontend applications, and shared packages for both.
foundary-test-1770773605/
├── services/ # Go API services (port 8001+)
├── workers/ # Go background workers (queue consumers, jobs)
├── apps/ # TypeScript frontend applications (port 3001+)
├── cli/ # Go CLI tools
├── packages/ # Shared TypeScript packages
│ ├── ui/ # Component library (Radix + CSS variables)
│ ├── layout/ # Dashboard layout
│ ├── auth/ # Authentication provider
│ ├── api-client/ # Generated TypeScript API client
│ └── logger/ # HTTP and console logging
├── pkg/ # Shared Go packages
│ ├── app/ # Service bootstrapper
│ ├── auth/ # JWT and API key authentication
│ ├── config/ # Configuration management
│ ├── database/ # Database utilities
│ ├── httpclient/ # Resilient HTTP client (circuit breaker, retries)
│ ├── httperror/ # Typed HTTP errors
│ ├── httpresponse/ # Response envelope ({data, meta})
│ ├── logging/ # Structured logging (slog)
│ ├── middleware/ # HTTP middleware (CORS, recovery, request ID)
│ ├── openapi/ # OpenAPI 3.0 spec builder + Scalar docs
│ ├── queue/ # PostgreSQL-backed job queue
│ ├── realtime/ # WebSocket and Redis pub/sub
│ └── svc/ # Inter-service discovery and communication
├── scripts/ # Development and CI scripts
└── docs/ # API documentation
Tech Stack
| Layer | Technology |
|---|---|
| Backend services | Go, Chi router, PostgreSQL, Redis |
| Frontend apps | TypeScript, React |
| Shared UI | Radix primitives, CSS custom properties |
| Job processing | PostgreSQL-backed queue |
| Real-time | WebSocket, Redis pub/sub |
| Workspace | Go workspaces, pnpm workspaces |
| Infrastructure | Docker Compose (local), Woodpecker CI |
Development
Scripts
| Script | Description |
|---|---|
./scripts/dev.sh |
Start local dev environment (Docker services + all components) |
./scripts/install.sh |
Install all dependencies (pnpm packages + Go modules) |
./scripts/quality.sh |
Run quality checks (lint, test, typecheck) |
./scripts/discover.sh |
List all components in the monorepo |
./scripts/generate-client.sh |
Generate TypeScript API client from OpenAPI specs |
Local Infrastructure
Local development uses Docker Compose for backing services:
- PostgreSQL 16 on port 5432 (user:
dev, database:foundary-test-1770773605) - Redis 7 on port 6379
API Documentation
Each service exposes an OpenAPI spec at /openapi.json. Documentation is generated and deployed automatically on push to main.
Adding Components
Components are added via the rdev API:
# Add a Go service
curl -X POST $RDEV_API_URL/projects/foundary-test-1770773605/components \
-H "X-API-Key: $RDEV_API_KEY" \
-d '{"type": "service", "name": "my-service"}'
# Add a React app
curl -X POST $RDEV_API_URL/projects/foundary-test-1770773605/components \
-H "X-API-Key: $RDEV_API_KEY" \
-d '{"type": "app", "name": "my-app", "template": "app-react"}'