[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81430":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":12,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":14,"stars30d":14,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":15,"rankGlobal":10,"rankLanguage":10,"license":16,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":17,"hasPages":17,"topics":19,"createdAt":10,"pushedAt":10,"updatedAt":20,"readmeContent":21,"aiSummary":22,"trendingCount":14,"starSnapshotCount":14,"syncStatus":23,"lastSyncTime":24,"discoverSource":25},81430,"slideleaf","zhangrongchuan\u002Fslideleaf","zhangrongchuan","AI-native HTML slide studio for generating, editing, and collaborating on presentation workspaces.","https:\u002F\u002Fwww.slideleaf.art\u002F",null,"TypeScript",33,3,0,41.81,"Apache License 2.0",false,"master",[5],"2026-06-12 04:01:33","\u003Cp align=\"center\">\n  \u003Cimg src=\"apps\u002Fweb\u002Fpublic\u002Flogo.png\" alt=\"SlideLeaf logo\" width=\"96\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\".\u002FREADME.md\">\u003Cstrong>English\u003C\u002Fstrong>\u003C\u002Fa>\n  ·\n  \u003Ca href=\".\u002FREADME.zh-CN.md\">简体中文\u003C\u002Fa>\n\u003C\u002Fp>\n\n# SlideLeaf\n\nAI-native HTML slide workspaces for people who want serious decks as editable source files.\n\n[![TypeScript](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTypeScript-5.x-3178c6)](https:\u002F\u002Fwww.typescriptlang.org\u002F)\n[![Next.js](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNext.js-15-black)](https:\u002F\u002Fnextjs.org\u002F)\n[![NestJS](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNestJS-10-e0234e)](https:\u002F\u002Fnestjs.com\u002F)\n\nSlideLeaf turns deck creation into a workflow instead of a one-shot prompt. Describe what you need, let AI ask the missing questions, choose a visual direction, approve a DeckPlan, then generate modular HTML slide files that can be reviewed, edited, compiled, and shared.\n\nIt is built for product demos, technical talks, open-source project showcases, startup pitch drafts, teaching materials, and other presentations where teams want editable source files instead of locked slide exports.\n\n## Why SlideLeaf\n\n- **Ask-first generation**: the AI clarifies audience, goal, language, tone, constraints, missing facts, and narrative intent before generating files.\n- **Design before output**: visual directions and a DeckPlan are created before slide files are generated.\n- **HTML-first slides**: slides are source files, not screenshots or locked exports.\n- **Reviewable AI patches**: AI changes stay in review until a user applies or rejects them.\n- **Open and self-hostable**: run the full stack locally or deploy it on your own infrastructure.\n- **Bring your own API key**: configure your own DeepSeek, Gemini, or Claude key in the browser; own keys do not consume SlideLeaf credits.\n- **Collaborative workspaces**: invite teammates to view or edit the same project.\n- **Portable output**: compile decks into static HTML with local theme and runtime assets.\n\n## How It Works\n\n```text\nDescribe the deck\n  -> AI asks clarifying questions\n  -> AI proposes visual directions\n  -> AI creates a DeckPlan\n  -> You approve the plan\n  -> AI generates modular slide files\n  -> You review the patch\n  -> Compile and share static HTML\n```\n\nGenerated decks are ordinary project files:\n\n```text\nproject.config.json\nslides\u002F\n  01-title.html\n  02-problem.html\n  03-workflow.html\nthemes\u002F\n  deck.css\nruntime\u002F\n  deck.js\nassets\u002F\n```\n\nEach generated slide is a fragment:\n\n```html\n\u003Csection class=\"slide\" data-slide-id=\"s01\" data-motion=\"progressive-reveal\">\n  ...\n\u003C\u002Fsection>\n```\n\n`project.config.json` is the compile index. The renderer reads the listed slide files, injects the shared theme\u002Fruntime, and produces a portable HTML deck.\n\n## Core Concepts\n\n### DeckPlan\n\nThe DeckPlan is the frozen blueprint for a deck. It contains the brief, main thesis, sections, slide roles, action titles, evidence needs, visual recommendations, dependencies, and `doNotCover` constraints. Slide generation follows this plan instead of improvising the whole deck in one prompt.\n\n### AI Playbook\n\nSlideLeaf ships with a local Markdown playbook in `packages\u002Fai-playbook`. It includes deck archetypes, analysis operators, visual patterns, style directions, motion presets, QA rules, and examples. The backend retrieves relevant entries and injects only the needed context into each AI request.\n\n### Review Patches\n\nAI output is not applied directly. The system creates a workspace patch that can be reviewed, applied, or rejected. This makes AI editing closer to a code review workflow than a blind overwrite.\n\n## Tech Stack\n\n- **Monorepo**: pnpm workspaces, TypeScript\n- **Web**: Next.js 15, React 19, Tailwind CSS, Monaco editor\n- **API**: NestJS, Prisma, PostgreSQL, cookie\u002FJWT auth\n- **Worker**: BullMQ, Redis\n- **Storage**: S3-compatible storage, MinIO for local development\n- **Renderer**: custom static HTML deck compiler\n- **AI**: DeepSeek, Gemini, Anthropic Claude, OpenAI-compatible routes\n\n## Repository Layout\n\n```text\napps\u002F\n  web\u002F       Next.js app and workspace UI\n  api\u002F       NestJS API, auth, projects, AI orchestration\n  worker\u002F    compile\u002Frender worker\npackages\u002F\n  ai-playbook\u002F   local AI generation knowledge base\n  renderer\u002F      static HTML deck compiler\n  shared\u002F        shared types\n  storage\u002F       S3-compatible storage adapter\n  workspace\u002F     workspace utilities\nprisma\u002F\n  schema.prisma\n```\n\n## Quick Start\n\nRequirements:\n\n- Node.js 22+\n- pnpm via Corepack\n- Docker, for PostgreSQL, Redis, and MinIO\n\n```bash\ncorepack enable\ncorepack prepare pnpm@9.15.4 --activate\npnpm install\ncp .env.example .env\ndocker compose up postgres redis minio\npnpm prisma:push\npnpm prisma:generate\n```\n\nStart the services in separate terminals:\n\n```bash\npnpm --filter @slideleaf\u002Fapi dev\npnpm --filter @slideleaf\u002Fworker dev\npnpm --filter @slideleaf\u002Fweb dev\n```\n\nOpen:\n\n```text\nhttp:\u002F\u002Flocalhost:3000\n```\n\nYou can also run the local Docker stack:\n\n```bash\ndocker compose up --build\n```\n\n## AI Providers\n\nOfficial server models are configured through API environment variables:\n\n```env\nAI_PROVIDER=\"deepseek\"\nDEEPSEEK_API_KEY=\"...\"\nDEEPSEEK_MODEL=\"deepseek-v4-pro\"\n\nGEMINI_API_KEY=\"...\"\nGEMINI_MODEL=\"gemini-3-flash-preview\"\n\nANTHROPIC_API_KEY=\"...\"\nANTHROPIC_SONNET_MODEL=\"claude-sonnet-4-6\"\nANTHROPIC_OPUS_MODEL=\"claude-opus-4-7\"\n```\n\nUsers can also add personal provider keys in the dashboard Settings panel. These keys are stored only in the browser's local storage and are sent to the API only for the selected request.\n\n\n## Deployment\n\nDocker is the recommended deployment path. It keeps the web app, API, worker, database, Redis, and object storage wiring explicit and avoids cross-domain cookie issues by letting the web app proxy browser API traffic through `\u002Fapi\u002F...`.\n\nCreate `.env` from the example, set production secrets and provider keys, then run:\n\n```bash\ndocker compose up --build\n```\n\n## Roadmap \u002F Not Yet Implemented\n\n- Persisted AI run recovery and clearer background job visibility\n- Stronger visual QA for compiled decks\n- PDF export from compiled HTML decks\n- Document\u002Fimage ingestion for evidence-driven decks\n- Preview inline text editing with source-file patches\n- Simple visual layout adjustments in preview, such as moving or resizing selected blocks\n- More deck archetypes and golden example decks\n- Real-time collaborative editing\n\n## Contributing\n\nContributions are welcome.\n\n## License\n\nSee [LICENSE](.\u002FLICENSE).\n","SlideLeaf 是一个基于AI的HTML幻灯片工作室，用于生成、编辑和协作处理演示文稿工作区。其核心功能包括通过AI先行询问来明确需求，设计前输出视觉方向和DeckPlan，并生成模块化的HTML幻灯片文件以供审查、编辑、编译及分享。项目采用TypeScript编写，支持Next.js和NestJS框架，提供开放且可自托管的服务模式，允许用户使用自己的API密钥进行配置。它特别适合需要高度定制化和团队协作的场景，如产品演示、技术讲座、开源项目展示、初创企业路演草稿以及教学材料等，尤其是在团队希望拥有可编辑源文件而非锁定格式导出的情况下。",2,"2026-06-11 04:05:01","CREATED_QUERY"]