Docs

技术栈

Scopify 使用的前端、桌面、状态、动画与工程化技术。

核心技术

技术在 Scopify 中的职责
Next.js + ReactWeb 应用、Electron Renderer 与路由渲染
TypeScript前端、桌面契约和共享包的类型系统
Electron桌面窗口、系统能力、Preload 与安装包
Tailwind CSS主题 token、布局与组件样式
shadcn/ui上游原生基础组件
Zustand播放器与跨页面客户端状态
Axios + TanStack Query请求封装、缓存和服务端状态同步
Framer Motion页面与交互动画
TanStack Virtual长列表与歌曲列表虚拟化
WebGL歌词舞台与视觉效果
pnpm Workspaces + TurborepoMonorepo 依赖与任务编排
DockerWeb 与后端的容器化部署

为什么同时提供 Web 与 Electron

Web 负责快速访问和独立部署;Electron 在同一套 Renderer 体验上补充窗口管理、本地后端、桌面歌词和操作系统集成。Renderer 不直接依赖 Electron 主进程源码,所有跨边界能力通过类型化契约暴露。

状态与数据

  • Zustand 管理播放状态、用户交互状态等客户端状态。
  • TanStack Query 管理来自后端的数据生命周期、缓存与刷新。
  • API Client 负责统一 base URL、请求参数和错误边界。
  • desktop-contract 管理 Web 与 Electron 之间的可版本化 IPC 契约。

共享 UI

共享视觉资产统一由 @scopify/ui 管理:

  1. shadcn/ 保持 CLI 生成的原生组件形态。
  2. scopify/ 保存无法仅靠 props 和 token 表达的通用扩展。
  3. 路由、Store、API 与业务 i18n 相关组件继续留在应用层。

具体组件与实时预览请进入 UI Library。

上游项目

本页内容