{"id":50944664,"url":"https://github.com/qtaghdi/boundra","last_synced_at":"2026-06-17T18:35:09.661Z","repository":{"id":363469710,"uuid":"1218645367","full_name":"qtaghdi/boundra","owner":"qtaghdi","description":"(🚧 Under Development) Enforced boundaries for domain-first TypeScript applications.","archived":false,"fork":false,"pushed_at":"2026-06-16T08:55:43.000Z","size":98,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-16T10:26:33.943Z","etag":null,"topics":["framework","javascript","rust","typescript"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qtaghdi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-23T04:38:00.000Z","updated_at":"2026-06-16T08:57:20.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/qtaghdi/boundra","commit_stats":null,"previous_names":["qtaghdi/boundra"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/qtaghdi/boundra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qtaghdi%2Fboundra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qtaghdi%2Fboundra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qtaghdi%2Fboundra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qtaghdi%2Fboundra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qtaghdi","download_url":"https://codeload.github.com/qtaghdi/boundra/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qtaghdi%2Fboundra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34461617,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["framework","javascript","rust","typescript"],"created_at":"2026-06-17T18:35:08.309Z","updated_at":"2026-06-17T18:35:09.654Z","avatar_url":"https://github.com/qtaghdi.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Boundra\n\n도메인 중심 풀스택 개발을 강제하는 TypeScript 프레임워크 (Rust 기반 툴링 엔진)\n\n## Why Boundra\n\nBoundra는 \"모든 걸 대체하는 프레임워크\"가 아닙니다. 구조와 경계를 강제해서, 팀 규모가 커져도 코드베이스 일관성을 유지하도록 돕는 플랫폼입니다.\n\n해결하려는 핵심 문제:\n- 도메인 단위 분리가 되지 않아 변경 영향 범위가 불명확한 문제\n- 모노레포에서 import 자유도로 경계가 붕괴되는 문제\n- 풀스택 개발에서 구조 일관성이 빠르게 깨지는 문제\n\n핵심 가치:\n- 구조 강제를 통한 유지보수 비용 절감\n- AI가 이해하고 작업하기 쉬운 코드베이스\n- 서버/클라이언트/타입/정책 일관성\n- 모노레포 확장성\n\n## Non-Goals\n\n초기에는 아래 영역을 직접 만들지 않습니다.\n- JS 런타임\n- 번들러\n- UI 프레임워크\n- ORM\n- 상태관리\n- 테스트 러너\n- Next.js 대체\n\n## Design Principles\n\n1. 앱보다 도메인이 먼저다\n2. shared는 최소화한다\n3. 경계는 규칙이 아니라 도구로 강제한다\n4. 타입 공유보다 계약(shared contract)을 우선한다\n5. 자유보다 안전한 제약을 제공한다\n6. AI가 이해하기 쉬운 구조를 만든다\n7. MCP는 코어가 아니라 확장 레이어다\n\n## Target Structure\n\n```txt\napps/\n  web/\n  admin/\n\ndomains/\n  \u003cdomain-name\u003e/\n    client/\n    server/\n    shared/\n    mcp/\n    tests/\n\npackages/\n  runtime/\n  ui/\n  infra/\n  config/\n  tooling/\n\ncrates/\n  core/\n  parser/\n  rules/\n  cli/\n```\n\n## V1 Scope\n\n반드시 포함:\n- `create-domain`\n- `check-boundaries`\n- `graph-domains`\n- schema 기반 계약\n- route/query/mutation 코드 생성\n\n## Documentation Map\n\n- 프로젝트 헌장: [docs/project-charter.md](docs/project-charter.md)\n- 아키텍처: [docs/architecture.md](docs/architecture.md)\n- 경계 규칙: [docs/boundary-rules.md](docs/boundary-rules.md)\n- CLI 명세(v1): [docs/cli-spec-v1.md](docs/cli-spec-v1.md)\n- 설정 명세: [docs/config-spec.md](docs/config-spec.md)\n- 프레임워크 표면: [docs/framework-surface.md](docs/framework-surface.md)\n- CI 연동: [docs/ci-integration.md](docs/ci-integration.md)\n- 네이밍 규약: [docs/naming-convention.md](docs/naming-convention.md)\n- 도메인 매니페스트 명세: [docs/domain-manifest-spec.md](docs/domain-manifest-spec.md)\n- 로드맵: [docs/roadmap.md](docs/roadmap.md)\n- 1인 개발 컨벤션: [docs/solo-convention.md](docs/solo-convention.md)\n- 용어 사전: [docs/glossary.md](docs/glossary.md)\n- ADR: [docs/adr](docs/adr)\n- 기여 가이드: [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## Current Status\n\n- Repository bootstrap is complete.\n- Core documentation and conventions are drafted.\n- Rust workspace and `check-boundaries` MVP are available for BR-001 through BR-004.\n- `create-domain`, `graph-domains`, and initial `generate` workflows are available.\n- `packages/runtime` provides the first TypeScript helper surface for generated contracts.\n- Generated route/query/mutation contracts are registered in `domain.json` `publicApi.shared`.\n- CLI fixture tests cover text/json output, boundary behavior, scaffolding, graph output, code generation, and manifest updates.\n\n## Quick Start (MVP)\n\n사전 요구사항:\n- Rust toolchain (`cargo`, `rustc`)\n\n실행:\n\n```bash\ncargo run -p boundra-cli -- create-domain order\ncargo run -p boundra-cli -- check-boundaries\ncargo run -p boundra-cli -- graph-domains --format mermaid\ncargo run -p boundra-cli -- generate route order/create-order\n```\n\nRun against an explicit project root:\n\n```bash\ncargo run -p boundra-cli -- check-boundaries --root .\n```\n\nJSON 출력:\n\n```bash\ncargo run -p boundra-cli -- check-boundaries --format json\n```\n\nCI 실행:\n\n```bash\ncargo run -p boundra-cli -- check-boundaries --root . --format json\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqtaghdi%2Fboundra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqtaghdi%2Fboundra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqtaghdi%2Fboundra/lists"}