reopt designreopt design
DocsExploreToolsPricingBuilder
시작하기
개요
시작하기
핵심 개념
핵심 개념
Surface
Surface 카탈로그
구축·운영
서버 계약
Production readiness
Obrandapp-ui
reopt designreopt design

AI 시대를 위한 디자인 시스템

  • 문서
  • 가격
  • 릴리즈 노트
  • GitHub
  • 서비스 약관
  • 개인정보처리방침

© 2026 reopt-ai. All rights reserved.

핵심 개념
  1. 문서
  2. /
  3. 핵심 개념
  4. /
  5. 핵심 개념

핵심 개념

brandapp-ui는 런타임 UI 라이브러리가 아니라 BrandApp 기능을 제품에 빠르게 붙이는 copy-paste source package입니다.

reopt design · 업데이트 2026년 6월 26일

개요시작하기핵심 개념Surface 카탈로그서버 계약Production readiness

1. Copy-paste package

package.json의 공개 export는 metadata뿐입니다. 실제 Surface는 opt-cli registry에 들어가고, 소비자는 opt surface add로 파일을 복사합니다. 복사된 뒤에는 SemVer upgrade 대상이 아니라 consumer app 코드입니다.

text
@reopt-ai/brandapp-ui
├─ src/surfaces
│  ├─ sign-in-with-reopt-button.tsx
│  ├─ reopt-user-menu.tsx
│  ├─ sign-in-gate.tsx
│  ├─ session-expired-dialog.tsx
│  ├─ reopt-ai-chat.tsx
│  ├─ reopt-ai-image-studio.tsx
│  └─ reopt-record-table.tsx
├─ src/surfaces/_meta.ts
└─ src/meta.ts

2. 책임 경계

brandapp-ui가 SDK와 UI를 모두 대신 소유하지 않습니다. secret, API route, 제품 정책은 consumer app에 남기고, Surface는 검증된 출발점을 제공합니다.

text
Consumer app
  owns env, server routes, auth route, product copy, final UX policy

@reopt-ai/brandapp-sdk
  owns OAuth, sessions, EAV, AI provider, typed SDK errors

@reopt-ai/brandapp-ui
  owns copy-paste source templates and registry metadata

@reopt-ai/opt-ui / opt-chat
  owns primitives, DataTable, Conversation, PromptInput

3. Import boundary

Surface source는 소비자 프로젝트로 복사되므로 내부 monorepo 경로나 app-specific API에 의존하면 안 됩니다. 인증 Surface는 반드시 consumer app의 @/lib/auth-client를 사용합니다.

tsx
// Surface source 안에서는 consumer project 경로를 사용합니다.
import { authClient } from "@/lib/auth-client";
import { SignInWithReoptButton } from "./sign-in-with-reopt-button";

// OK: public package API
import { Button, Avatar, DataTable } from "@reopt-ai/opt-ui";
import { Conversation, useChatSession } from "@reopt-ai/opt-chat";

// 금지: opt-ui 내부 파일 경로, app-specific router, secret SDK client
// import { Button } from "@reopt-ai/opt-ui/src/core/button";
// import { useRouter } from "next/navigation";
// import { createReoptSDK } from "@reopt-ai/brandapp-sdk";

4. Client/server split

SurfaceClient sideServer side
Auth surfaces@/lib/auth-client, authClient.useSession(), signInWithReoptBetter Auth route and createReoptBetterAuth live in consumer app
AI surfacesReoptAiChat, ReoptAiImageStudio receive endpoint propscreateBrandappProvider/createReoptSDK and typed error mapping live in route handlers
EAV surfacesReoptRecordTable fetches recordsEndpoint and renders DataTablesdk.eav.records(entityId).list() proxy keeps clientSecret off the browser

5. Surface authoring rules

  • 모든 auth/session Surface는 "use client"로 시작합니다.
  • opt-ui는 public export만 사용합니다. 내부 파일 경로 import는 consumer project에서 깨집니다.
  • prop을 과하게 늘리지 않습니다. copy-paste 모델에서는 소비자가 파일을 직접 수정합니다.
  • secret SDK client는 Surface에 넣지 않습니다. AI/EAV 기능은 server route contract로 연결합니다.
Previous시작하기brandapp-sdk × opt-ui copy-paste Surface 블록. env, Better Auth, auth-client, opt surface add까지의 빠른 시작 가이드시작하기
시작하기 페이지로 이동
NextSurface 카탈로그brandapp-ui 인증, AI, EAV, 운영 콘솔 Surface 선택 기준과 설치 명령Surface