96 lines
3.5 KiB
Markdown
96 lines
3.5 KiB
Markdown
# foundary-test-1770784989
|
|
|
|
A product studio for conversational product development. Build, iterate, and ship products through natural conversation — from idea to deployed software in a single workflow.
|
|
|
|
Foundary Studio combines Go backend services, TypeScript frontends, and shared libraries in a polyglot monorepo, orchestrated by AI-assisted development tooling that turns conversations into working code.
|
|
|
|
## Quickstart
|
|
|
|
```bash
|
|
# Clone the repo
|
|
git clone https://git.threesix.ai/jordan/foundary-test-1770784989.git
|
|
cd foundary-test-1770784989
|
|
|
|
# Install dependencies
|
|
./scripts/install.sh
|
|
|
|
# Start local development (PostgreSQL, Redis, all services)
|
|
./scripts/dev.sh
|
|
```
|
|
|
|
## Architecture
|
|
|
|
```
|
|
foundary-test-1770784989/
|
|
├── services/ # Go API services (port 8001+)
|
|
├── workers/ # Go background workers
|
|
├── apps/ # TypeScript frontends (port 3001+)
|
|
├── cli/ # Go CLI tools
|
|
├── packages/ # Shared TypeScript packages
|
|
│ ├── ui/ # Headless UI component library
|
|
│ ├── layout/ # Dashboard shell and navigation
|
|
│ ├── auth/ # Auth provider and protected routes
|
|
│ ├── api-client/ # Generated typed API client
|
|
│ └── logger/ # Structured HTTP/console logging
|
|
├── pkg/ # Shared Go packages
|
|
│ ├── app/ # Service bootstrapper (Wrap, Bind, Health)
|
|
│ ├── auth/ # JWT and API key authentication
|
|
│ ├── config/ # Environment-based configuration
|
|
│ ├── database/ # PostgreSQL connections and migrations
|
|
│ ├── httperror/ # Typed HTTP error responses
|
|
│ ├── httpresponse/ # Standard response envelope
|
|
│ ├── middleware/ # CORS, request ID, recovery, logging
|
|
│ ├── openapi/ # OpenAPI 3.0 spec builder + docs UI
|
|
│ ├── queue/ # Redis-backed job queue
|
|
│ ├── realtime/ # WebSocket hub with Redis pub/sub
|
|
│ └── svc/ # Service-to-service discovery
|
|
├── scripts/ # Development and CI scripts
|
|
└── docs/ # Generated API documentation
|
|
```
|
|
|
|
## Scripts
|
|
|
|
| Script | Description |
|
|
|--------|-------------|
|
|
| `./scripts/dev.sh` | Start local development environment |
|
|
| `./scripts/install.sh` | Install all dependencies |
|
|
| `./scripts/quality.sh` | Run linting, tests, and quality checks |
|
|
| `./scripts/discover.sh` | List all components in the monorepo |
|
|
| `./scripts/generate-client.sh` | Generate TypeScript API client from OpenAPI specs |
|
|
|
|
## Tech Stack
|
|
|
|
| Layer | Technology |
|
|
|-------|------------|
|
|
| Backend | Go 1.25, chi router, sqlx, PostgreSQL, Redis |
|
|
| Frontend | TypeScript, React, Radix UI, Tailwind CSS |
|
|
| Package management | pnpm workspaces (TS), Go workspaces (Go) |
|
|
| Infrastructure | Docker Compose (local), Woodpecker CI/CD |
|
|
| Auth | JWT + API key with opt-in middleware |
|
|
| Docs | OpenAPI 3.0 specs with Scalar UI |
|
|
|
|
## API Documentation
|
|
|
|
API documentation is generated from OpenAPI specs and deployed to:
|
|
|
|
- **Docs**: https://docs.9d4u7q6t.threesix.ai
|
|
- **OpenAPI Spec**: Each service exposes `/openapi.json`
|
|
|
|
Documentation is automatically rebuilt on every push to `main`.
|
|
|
|
## Adding Components
|
|
|
|
Components are added via the rdev API:
|
|
|
|
```bash
|
|
# Add a Go service
|
|
curl -X POST $RDEV_API_URL/projects/foundary-test-1770784989/components \
|
|
-H "X-API-Key: $RDEV_API_KEY" \
|
|
-d '{"type": "service", "name": "auth-api"}'
|
|
|
|
# Add a React app
|
|
curl -X POST $RDEV_API_URL/projects/foundary-test-1770784989/components \
|
|
-H "X-API-Key: $RDEV_API_KEY" \
|
|
-d '{"type": "app", "name": "dashboard", "template": "app-react"}'
|
|
```
|