reopt designreopt design
DocsExploreToolsPricingBuilder
Explore/
opt-ui161opt-charts21opt-datagrid5opt-editor5opt-chat6opt-shell14brandapp-ui8Examples12
reopt designreopt design

A design system for the AI era

  • Docs
  • Pricing
  • Releases
  • GitHub
  • Terms of Service
  • Privacy Policy

© 2026 reopt-ai. All rights reserved.

Explore/brandapp-ui/BrandApp Control Center
Controlbrandapp-ui example

BrandApp Control Center

brandapp-sdk 인증, SDK verifier, OAuth secret rotation, EAV drift remediation, AI credit guard, webhook replay, 약관 publish 클라이언트를 한 화면에서 점검하는 운영 콘솔형 Surface입니다.

SDK control center showing server-side verifier checks, auth health, secret rotation, EAV schema remediation, AI credit guardrails, webhook replay, terms publication, and lazy server-client boundaries.

brandapp-sdkverifierautheavaiwebhooks
opt surface add sign-in-gate reopt-ai-chat reopt-record-table
createReoptEavClientcreateReoptTermsClientcreateBrandappProviderSignInGate
1024px

BrandApp Control

SDK operations

Environment

preview

Last SDK check 48 seconds ago. Secrets stay in route handlers.

connectedbrandapp_8f2c...21ad · synced 48 seconds ago

SDK-backed admin center

EH
live

1,248

OAuth sessions

99.98% success · secret due

live

18

EAV entities

3 synced today

live

8,420

AI credits

of 10,000 left

live

3/4

Published terms

refund policy draft

Runtime contract

lazy clients
// lib/brandapp-sdk.ts
import { createReoptEavClient } from "@reopt-ai/brandapp-sdk/eav";
import { createReoptTermsClient } from "@reopt-ai/brandapp-sdk/terms";

type BrandappClients = {
  eav: ReturnType<typeof createReoptEavClient>;
  terms: ReturnType<typeof createReoptTermsClient>;
};

let cachedClients: BrandappClients | undefined;

function readConfig() {
  return {
    clientId: process.env.BRANDAPP_CLIENT_ID!,
    clientSecret: process.env.BRANDAPP_CLIENT_SECRET!,
    brandappId: process.env.BRANDAPP_ID!,
    baseUrl: process.env.REOPT_BASE_URL,
  };
}

export function getBrandappClients() {
  if (!cachedClients) {
    const config = readConfig();
    cachedClients = {
      eav: createReoptEavClient(config),
      terms: createReoptTermsClient(config),
    };
  }
  return cachedClients;
}

Health checks

SDK verifier

verifies server-only config before release

ready

AI provider

Vercel AI SDK UIMessage stream

streaming

AI budget guard

enable before image or long reasoning runs

watch

Webhook delivery

terms.published failed at customer endpoint

failed

EAV schema

2 optional attrs need review

watch

Terms fallback

refund draft falls back to i18n copy

review

Auth session

expires in 58 minutes

fresh

OAuth secret

rotation due within 7 days

due

SDK client cache

route handlers reuse server clients

ready

BrandApp doctor

run before publishing config changes

ready

Operations log

2 of 2 events

SDK sync completed

ok

EAV, terms, auth, and AI clients checked 48 seconds ago

Schema drift detected

check

2 optional EAV attrs need owner review

Related Examples

Reopt AI Chat

brandapp-sdk × opt-chat

EH

안녕하세요! Reopt AI 크레딧으로 구동되는 채팅입니다. 프롬프트를 입력하면 BrandApp 기본 모델이 스트리밍으로 응답합니다.

AI Chatbrandapp-ui

Reopt AI Chat

brandapp-sdk ai-provider + opt-chat useChatSession을 조합한 풀스택 채팅 Surface. streamText 라우트 핸들러로 BrandApp 크레딧 스트리밍 응답이 나가고, 헤더에서 모델·에이전트 선택과 크레딧 잔액 배지를 제공합니다.

aichatstreamingbrandapp-sdk
ReoptAiChat
Open

Image Studio

brandapp-sdk × opt-ui

비율
서울 한강 야경, 네온 감성 포스터
AI Imagebrandapp-ui

Reopt AI Image Studio

brandapp-sdk ai.generateImage 결과를 Vercel Blob URL로 받아 opt-ui 컨트롤과 함께 렌더하는 text-to-image Surface. 프롬프트·비율·스타일 컨트롤과 최근 생성 썸네일을 함께 제공합니다.

aiimagegenerationbrandapp-sdk
ReoptAiImageStudio
Open

Data Table

레코드세그먼트유입상태생성일
봄 컬렉션 런칭캠페인127활성2026-03-12
친구 초대 이벤트리퍼럴84활성2026-03-09
얼리버드 할인프로모션213보관2026-02-28
신규 가입 웰컴온보딩56초안2026-03-15
VIP 사전 예약로열티31활성2026-03-01
Data Tablebrandapp-ui

Reopt Record Table

brandapp-sdk EAV 레코드를 opt-ui DataTable로 렌더하는 Surface. sdk.eav는 clientSecret이 필요한 서버 전용이라 서버 라우트가 records().list()를 프록시하고, columns 미지정 시 레코드 values 키로 컬럼을 자동 추론합니다.

eavdatatablebrandapp-sdk
ReoptRecordTable
Open
NextSign In With Reopt Button