> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# 프로젝트 구조

Rust 셸, 부트 페이지, 릴리스 스크립트, 웹 앱과의 경계를 찾습니다.

## 설치 및 설정

모든 단계 전에 [시작하기 전에](https://supastack.dev/ko/docs/desktop/before-you-start.md)와 [터미널 기본](https://supastack.dev/ko/docs/desktop/terminal-basics.md)을 읽으십시오. package.json이 들어 있는 폴더인 루트에서 supastack 폴더를 엽니다. Desktop 체크아웃에는 apps/desktop과 그 릴리스 스크립트가 있고, All Platforms 모노레포는 Web 백엔드와 모바일 앱을 추가합니다. 환경 변수는 로컬 .env 파일 또는 호스팅 대시보드에 저장된 이름 있는 설정입니다. 셸은 SUPASTACK_APP_URL을 파일에서가 아니라 터미널 설정으로 읽습니다.

1. `apps/desktop/src-tauri/src/lib.rs`를 엽니다 — 모든 네이티브 동작이 이 하나의 파일에 있습니다.

2. `apps/desktop/src-tauri/`를 둘러봅니다 — 구성, capabilities, 아이콘.

3. 리포지토리 루트에서 `corepack pnpm --filter @supastack/desktop dev`를 접근 가능한 백엔드로 실행합니다.

체크아웃에는 Tauri 셸만 있습니다: Rust 소스, 그 구성, 부트 페이지, 릴리스 스크립트. 제품 화면은 창이 로드하는 웹 앱에 있습니다 — Desktop 전용 체크아웃에는 자체 앱 화면이 없습니다. 동작을 변경하기 전에 AGENTS.md와 .ai/PROJECT_CONTEXT.md를 읽으십시오. `.ai/` 미러 문서는 파일만으로는 보이지 않는 결정을 기록합니다.

```
apps/desktop/src-tauri/src/    Rust — window, tray, menus, deep links, updater
apps/desktop/src-tauri/        tauri.conf.json, capabilities/, Cargo.toml, icons
apps/desktop/ui/               Boot page (index.html + boot.js) shown while loading
apps/desktop/scripts/          Release preflight + update manifest
docs/                          Runbooks incl. desktop updates
.agents/skills/                Task guides for coding agents
```


## 변경이 속할 위치

편집 전에 어느 쪽이 변경을 소유하는지 결정하십시오: 사용자가 제품 UI로 보는 것은 웹 앱에 속하고, OS 수준 동작만 Rust에 속합니다.

[첫 번째 데스크톱 기능 구축](https://supastack.dev/ko/docs/desktop/first-feature.md)

- 창, 트레이, 메뉴, 단축키 또는 단일 인스턴스 동작 → `apps/desktop/src-tauri/src/lib.rs`.
- 새 webview 권한 → `apps/desktop/src-tauri/capabilities/default.json` — 네이티브 기능이 필요할 때만 확장합니다.
- 번들 식별자, 버전, 업데이터 엔드포인트 또는 플러그인 옵션 → `apps/desktop/src-tauri/tauri.conf.json`.
- 자리 표시자 제품 아이콘 → `placeholder-icon.png`를 교체하고 아이콘 스크립트를 실행합니다.
- 부팅, 로딩 또는 오프라인 오버레이 동작 → `apps/desktop/ui/`.
- 모든 제품 화면, 설정 또는 데이터 → 웹 앱 리포지토리 — 셸은 제품 UI를 포크하지 않습니다.


## 구현 워크플로

네이티브 변경의 경우 `lib.rs`를 편집하고 `cargo check`와 Rust 테스트를 실행한 다음 각 대상 OS에서 창을 실제로 실행합니다 — 트레이, 단축키, 딥링크 동작은 플랫폼마다 다릅니다. `.agents/skills/`의 `add-a-desktop-capability` 스킬이 같은 순서를 안내합니다.


## 검증 및 문제 해결

`cargo check`는 컴파일 오류를 잡고 `cargo test`는 순수 로직을 다룹니다. 실제 검증은 Windows, macOS, Linux에서 실행 중인 창입니다 — 트레이, 단축키, 딥링크는 테스트만으로는 증명할 수 없습니다.

```
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop typecheck
```


## 다음

[첫 기능 만들기](https://supastack.dev/ko/docs/desktop/first-feature.md)
