Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ pnpm add -D weapp-vite

<img src="./apps/web/public/brands/varo.svg" width="56" height="56" alt="Varo" />

**规划中 · 跨运行时组件系统的生产底座**
**稳定版 · 跨运行时组件系统的生产底座**

为 H5 与 weapp-vite 小程序提供 registry-first primitives、组件封装、主题 token、业务 Blocks 和 Agent UI,通过 CLI 交付可编辑源码与校验能力。

Expand All @@ -70,10 +70,10 @@ pnpm add -D weapp-vite
- **支持范围:** H5、WeChat、Vue 3、weapp-vite、Tailwind CSS。

```bash
pnpm dlx @varo/cli add --target weapp-vite button input card
pnpm dlx @varo-ui/cli add --target weapp button input card
```

[文档](https://github.com/daguanren21/Varo#readme) · [源码](https://github.com/daguanren21/Varo) · [npm](https://www.npmjs.com/package/@varo/cli)
[文档](https://daguanren21.github.io/Varo/) · [源码](https://github.com/daguanren21/Varo) · [npm](https://www.npmjs.com/package/@varo-ui/cli)

## 更多生态项目

Expand Down
2 changes: 1 addition & 1 deletion apps/web/media-source/showcase/captures.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@
"deviceScaleFactor": 2
},
"state": "Existing AgentComponentDemo messages and waiting event snapshot; documentation viewport expanded to show the entire component.",
"attribution": "Varo AgentChat component demo, Chinese and light theme. Product remains planned on weapp.dev."
"attribution": "Varo AgentChat component demo, Chinese and light theme."
}
]
}
Binary file added apps/web/media-source/varo-homepage-latest.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 7 additions & 4 deletions apps/web/public/llms-full.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# weapp.dev reference

weapp.dev hosts tools for real mini-app repos. weapp-tailwindcss handles styles, weapp-vite handles builds, and Varo documents planned editable component delivery boundaries. Adopt the released tools separately or together. The Chinese homepage is https://weapp.dev/ and the English homepage is https://weapp.dev/en/. The site is maintained by sonofmagic and contributors. The source repository is https://github.com/sonofmagic/weapp.dev.
weapp.dev hosts tools for real mini-app repos. weapp-tailwindcss handles styles, weapp-vite handles builds, and Varo provides Registry-first editable component delivery. Adopt the released tools separately or together. The Chinese homepage is https://weapp.dev/ and the English homepage is https://weapp.dev/en/. The site is maintained by sonofmagic and contributors. The source repository is https://github.com/sonofmagic/weapp.dev.

## weapp-tailwindcss

Expand Down Expand Up @@ -28,9 +28,12 @@ weapp.dev hosts tools for real mini-app repos. weapp-tailwindcss handles styles,

- Canonical Chinese page: https://weapp.dev/projects/varo/
- Canonical English page: https://weapp.dev/en/projects/varo/
- Documentation and source: https://github.com/daguanren21/Varo#readme
- Purpose: Planned Registry, editable UI source, theme token, business block, and Agent UI boundaries for H5 and weapp-vite mini-programs.
- Release status: planned; package metadata, install instructions, runtime capabilities, and performance data are not published yet.
- Documentation: https://daguanren21.github.io/Varo/
- Source: https://github.com/daguanren21/Varo
- npm: https://www.npmjs.com/package/@varo-ui/cli
- Install: `pnpm dlx @varo-ui/cli add --target weapp button input card`
- Purpose: Registry-first editable UI source, theme tokens, business Blocks, and Agent UI for H5 and Wevu mini-programs.
- Targets: Vue 3 on H5 and Wevu with weapp-vite for mini-programs.

## VPT (vite-plugin-taro)

Expand Down
9 changes: 5 additions & 4 deletions apps/web/public/llms.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# weapp.dev

> weapp.dev hosts tools for real mini-app repos: weapp-tailwindcss for styles, weapp-vite for builds, and planned Varo component delivery boundaries. You can adopt the released tools separately.
> weapp.dev hosts tools for real mini-app repos: weapp-tailwindcss for styles, weapp-vite for builds, and Varo for Registry-first component delivery. You can adopt the released tools separately.

## Official project pages

- [weapp-tailwindcss](https://weapp.dev/projects/weapp-tailwindcss/): Tailwind CSS v4 generation, class transforms, and platform-aware styling for mini-apps and cross-platform frameworks.
- [weapp-vite](https://weapp.dev/projects/weapp-vite/): Vite-powered development, builds, runtime tooling, and multi-platform output for mini-app projects.
- [Varo](https://weapp.dev/projects/varo/): Planned editable component delivery boundaries, primitives, business blocks, and Agent UI for H5 and weapp-vite mini-programs.
- [Varo](https://weapp.dev/projects/varo/): Registry-first editable component source, primitives, business Blocks, and Agent UI for H5 and Wevu mini-programs.
- [VPT](https://weapp.dev/projects/vite-plugin-taro/): Vite 8, React 19, and Taro 4 for WeChat, Alipay, and Web apps, with state-preserving hot reload, automatic WeChat subpackages, and Tailwind CSS v4.
- [English project index](https://weapp.dev/en/): English overview of the stack.
- [Sponsorship and services](https://weapp.dev/pricing/): One-time sponsorship tiers with a 60/25/15 public split, plus scoped migration and training services.
Expand All @@ -21,8 +21,9 @@
- [weapp-vite documentation](https://vite.weapp.dev/)
- [weapp-tailwindcss on npm](https://www.npmjs.com/package/weapp-tailwindcss)
- [weapp-vite on npm](https://www.npmjs.com/package/weapp-vite)
- [Varo source and documentation](https://github.com/daguanren21/Varo#readme)
- Varo package and install instructions are not published yet; see the [Varo planning page](https://weapp.dev/projects/varo/).
- [Varo source](https://github.com/daguanren21/Varo)
- [Varo documentation](https://daguanren21.github.io/Varo/)
- [@varo-ui/cli on npm](https://www.npmjs.com/package/@varo-ui/cli)
- [VPT source](https://github.com/sep2/vite-plugin-taro)
- [VPT documentation](https://vpt.js.org/)
- [vite-plugin-taro on npm](https://www.npmjs.com/package/vite-plugin-taro)
Expand Down
Binary file modified apps/web/public/media/projects/varo-home.avif
Binary file not shown.
Binary file modified apps/web/public/media/projects/varo-home.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions apps/web/public/media/showcase/sources.json
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@
"deviceScaleFactor": 2
},
"state": "Existing AgentComponentDemo messages and waiting event snapshot; documentation viewport expanded to show the entire component.",
"attribution": "Varo AgentChat component demo, Chinese and light theme. Product remains planned on weapp.dev.",
"attribution": "Varo AgentChat component demo, Chinese and light theme.",
"output": {
"src": "/media/showcase/varo-agent-chat-1260.webp",
"avif": "/media/showcase/varo-agent-chat-1260.avif",
Expand All @@ -214,11 +214,11 @@
"locales": {
"zh-CN": {
"alt": "Varo AgentChat 组件演示,包含对话历史、registry.inspect 工具事件、确认区域和输入框",
"caption": "Varo AgentChat 组件演示:对话、工具事件与输入区。项目仍在规划中。"
"caption": "Varo AgentChat 组件演示:对话、工具事件、审批与输入区。"
},
"en": {
"alt": "Varo AgentChat demo with message history, a registry.inspect tool event, approval controls and composer",
"caption": "Varo AgentChat component demo: conversation, tool events and composer. The project remains planned."
"caption": "Varo AgentChat component demo: conversation, tool events, approvals, and composer."
}
}
}
Expand Down
5 changes: 3 additions & 2 deletions apps/web/public/media/sources.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"generatedAt": "2026-08-27",
"generatedAt": "2026-09-16",
"projectMedia": [
{
"repository": "sonofmagic/weapp-tailwindcss",
Expand Down Expand Up @@ -27,7 +27,8 @@
},
{
"repository": "daguanren21/Varo",
"source": "apps/docs/public/brand-assets/varo-homepage-source.png",
"page": "https://daguanren21.github.io/Varo/",
"localSource": "../media-source/varo-homepage-latest.png",
"output": "projects/varo-home",
"width": 1440
},
Expand Down
2 changes: 1 addition & 1 deletion apps/web/scripts/capture-showcase.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ try {
route: '/ai/agent-chat',
viewport: { width: 860, height: 1300, deviceScaleFactor: 2 },
state: 'Existing AgentComponentDemo messages and waiting event snapshot; documentation viewport expanded to show the entire component.',
attribution: 'Varo AgentChat component demo, Chinese and light theme. Product remains planned on weapp.dev.',
attribution: 'Varo AgentChat component demo, Chinese and light theme.',
})
}
finally {
Expand Down
11 changes: 7 additions & 4 deletions apps/web/scripts/generate-media.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Buffer } from 'node:buffer'
import { mkdir, writeFile } from 'node:fs/promises'
import { mkdir, readFile, writeFile } from 'node:fs/promises'
import { fileURLToPath } from 'node:url'
import sharp from 'sharp'

Expand Down Expand Up @@ -32,7 +32,8 @@ const projectMedia = [
},
{
repository: 'daguanren21/Varo',
source: 'apps/docs/public/brand-assets/varo-homepage-source.png',
page: 'https://daguanren21.github.io/Varo/',
localSource: '../media-source/varo-homepage-latest.png',
output: 'projects/varo-home',
width: 1440,
},
Expand Down Expand Up @@ -61,7 +62,9 @@ async function downloadGitHubFile(repository: string, source: string): Promise<B
async function generateProjectMedia() {
await mkdir(new URL('projects/', publicMediaDir), { recursive: true })
for (const asset of projectMedia) {
const source = await downloadGitHubFile(asset.repository, asset.source)
const source = 'localSource' in asset
? await readFile(new URL(asset.localSource, import.meta.url))
: await downloadGitHubFile(asset.repository, asset.source)
const image = sharp(source).resize({ width: asset.width, withoutEnlargement: true })
await image.clone().webp({ quality: 82, effort: 5 }).toFile(fileURLToPath(new URL(`${asset.output}.webp`, publicMediaDir)))
await image.clone().avif({ quality: 55, effort: 5 }).toFile(fileURLToPath(new URL(`${asset.output}.avif`, publicMediaDir)))
Expand Down Expand Up @@ -114,7 +117,7 @@ async function generateBuildLens() {
await generateProjectMedia()
await generateBuildLens()
await writeFile(new URL('sources.json', publicMediaDir), `${JSON.stringify({
generatedAt: '2026-08-27',
generatedAt: '2026-09-16',
projectMedia,
buildLens: {
kind: 'deterministic-raster',
Expand Down
4 changes: 2 additions & 2 deletions apps/web/scripts/generate-showcase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ const scenes = [
project: 'varo',
crop: undefined,
locales: {
'zh-CN': { alt: 'Varo AgentChat 组件演示,包含对话历史、registry.inspect 工具事件、确认区域和输入框', caption: 'Varo AgentChat 组件演示:对话、工具事件与输入区。项目仍在规划中。' },
'en': { alt: 'Varo AgentChat demo with message history, a registry.inspect tool event, approval controls and composer', caption: 'Varo AgentChat component demo: conversation, tool events and composer. The project remains planned.' },
'zh-CN': { alt: 'Varo AgentChat 组件演示,包含对话历史、registry.inspect 工具事件、确认区域和输入框', caption: 'Varo AgentChat 组件演示:对话、工具事件、审批与输入区。' },
'en': { alt: 'Varo AgentChat demo with message history, a registry.inspect tool event, approval controls and composer', caption: 'Varo AgentChat component demo: conversation, tool events, approvals, and composer.' },
},
},
]
Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/components/ProjectProofPanel.astro
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const statusLabel = locale === 'zh-CN' ? ({ stable: '稳定', beta: '测试版',
const proof = {
'weapp-vite': { zh: '单目标构建边界', en: 'Single-target build boundary', file: 'vite.config.ts', code: `weapp({\n buildScope: 'wechat',\n platforms: ['wechat'],\n})` },
'weapp-tailwindcss': { zh: '小程序样式接入', en: 'Mini-app style integration', file: 'app.css', code: `@import 'tailwindcss';\n\n/* classes stay in your templates */\n<button class="px-4 py-2 text-white">\n 开始构建\n</button>` },
varo: { zh: '可编辑组件交付边界(规划中)', en: 'Editable component delivery boundary (planned)', file: 'planning.md', code: `status: planned\ninstall: to be confirmed\nruntime: to be confirmed` },
varo: { zh: 'Registry 安装命令', en: 'Registry install command', file: 'terminal', code: `pnpm dlx @varo-ui/cli add \\\n --target weapp \\\n button input card` },
'weapp-sqlite': { zh: '本地数据能力(规划中)', en: 'Local data capability (planned)', file: 'planning.md', code: `status: planned\napi: to be confirmed\nplatforms: to be confirmed\n\n# no production API is promised yet` },
'vite-plugin-taro': { zh: 'Taro + Vite 迁移', en: 'Taro + Vite migration', file: 'package.json', code: `npm create vite-taro@latest my-app\n\n# keep React + Taro APIs\n# move the build pipeline to Vite` },
}[project.id]
Expand Down
4 changes: 2 additions & 2 deletions apps/web/src/components/ProjectSelector.astro
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const copy = locale === 'zh-CN' ? {
paths: [
{ title: '新建小程序工程', body: '从现代 Vite 工程开始,再按需要叠加样式和组件。', ids: ['weapp-vite', 'weapp-tailwindcss', 'varo'] },
{ title: '已有小程序项目', body: '先把样式工作流接进现有项目,不要求重写页面。', ids: ['weapp-tailwindcss'] },
{ title: '需要组件源码和业务 Blocks', body: '从 Varo 的组件与交付规划开始,评估可编辑源码和业务组合方式。', ids: ['varo'] },
{ title: '需要组件源码和业务 Blocks', body: '从 Varo Registry 安装可编辑源码,再按业务需要组合组件与 Blocks。', ids: ['varo'] },
{ title: '需要本地数据', body: '评估结构化本地存储和离线能力,关注 weapp-sqlite 的规划进展。', ids: ['weapp-sqlite'] },
{ title: '已有 Taro / React 项目', body: '保留 Taro 组件和 API,把开发构建链路切换到 Vite。', ids: ['vite-plugin-taro'] },
],
Expand All @@ -22,7 +22,7 @@ const copy = locale === 'zh-CN' ? {
paths: [
{ title: 'Starting a new mini-app', body: 'Begin with a modern Vite project, then add styling and components as needed.', ids: ['weapp-vite', 'weapp-tailwindcss', 'varo'] },
{ title: 'Working in an existing mini-app', body: 'Bring the styling workflow into the current project without rewriting pages.', ids: ['weapp-tailwindcss'] },
{ title: 'Choosing component source and Blocks', body: 'Explore Varo’s component and delivery plans for editable source and business compositions.', ids: ['varo'] },
{ title: 'Choosing component source and Blocks', body: 'Install editable source from the Varo Registry, then compose components and Blocks for your product.', ids: ['varo'] },
{ title: 'Planning local data', body: 'Evaluate structured storage and offline needs while weapp-sqlite is being planned.', ids: ['weapp-sqlite'] },
{ title: 'Already on Taro / React', body: 'Keep Taro components and APIs while moving the development pipeline to Vite.', ids: ['vite-plugin-taro'] },
],
Expand Down
14 changes: 9 additions & 5 deletions apps/web/src/content.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ describe('project definitions', () => {
'weapp-vite': 'https://vite.weapp.dev/',
'vite-plugin-taro': 'https://vpt.js.org/',
'weapp-sqlite': 'https://github.com/weapp-sqlite/weapp-sqlite#readme',
'@varo/cli': 'https://github.com/daguanren21/Varo#readme',
'@varo-ui/cli': 'https://daguanren21.github.io/Varo/',
}

it('provides complete localized content for every project', () => {
Expand Down Expand Up @@ -64,12 +64,15 @@ describe('project definitions', () => {
}
})

it('uses explicit placeholders for the planned Varo release', () => {
it('publishes the Varo release and package actions', () => {
expect(varo).toMatchObject({
status: 'planned',
packageName: '@varo/cli',
status: 'stable',
maturity: 'stable',
packageName: '@varo-ui/cli',
github: 'daguanren21/Varo',
docsUrl: 'https://github.com/daguanren21/Varo#readme',
docsUrl: 'https://daguanren21.github.io/Varo/',
npmUrl: 'https://www.npmjs.com/package/@varo-ui/cli',
installCommand: 'pnpm dlx @varo-ui/cli add --target weapp button input card',
})
})

Expand All @@ -87,6 +90,7 @@ describe('project definitions', () => {
'weapp-vite': 'https://www.npmjs.com/package/weapp-vite',
'weapp-tailwindcss': 'https://www.npmjs.com/package/weapp-tailwindcss',
'vite-plugin-taro': 'https://www.npmjs.com/package/vite-plugin-taro',
'@varo-ui/cli': 'https://www.npmjs.com/package/@varo-ui/cli',
}

for (const project of projects) {
Expand Down
Loading
Loading