From 689e3e38b5e3a331d237d9ba0efb460c30810b3c Mon Sep 17 00:00:00 2001
From: ZuoZuo <68836346+Mrz-sakura@users.noreply.github.com>
Date: Tue, 14 Apr 2026 17:31:21 +0800
Subject: [PATCH] refactor: publish public site as static html
---
README.md | 65 +-
content/landing-pages/admin-center.json | 36 -
content/landing-pages/agency-center.json | 36 -
content/landing-pages/apply.json | 46 --
content/landing-pages/bd-center.json | 36 -
content/landing-pages/bd-leader-center.json | 36 -
content/landing-pages/coin-seller.json | 36 -
content/landing-pages/games-king.json | 36 -
content/landing-pages/host-center.json | 36 -
content/landing-pages/invite-new-user.json | 36 -
content/landing-pages/rankings-charm.json | 36 -
content/landing-pages/rankings-rooms.json | 36 -
content/landing-pages/rankings-wealth.json | 36 -
content/legal.json | 304 -------
content/site.json | 128 ---
h5/admin-center/index.html | 88 ++
h5/agency-center/index.html | 88 ++
h5/apply/index.html | 88 ++
.../BalooDa2-Bold-ChYvdM8z-1776148661447.ttf | Bin 0 -> 485864 bytes
...ooDa2-ExtraBold-B62XCcbl-1776148661447.ttf | Bin 0 -> 510984 bytes
...BalooDa2-Medium-SHzJrXPy-1776148661447.ttf | Bin 0 -> 457124 bytes
...alooDa2-Regular-Da9EMwmM-1776148661447.ttf | Bin 0 -> 457232 bytes
...looDa2-SemiBold-B7mlaStc-1776148661447.ttf | Bin 0 -> 477276 bytes
h5/assets/coin-lz3Tp0nX-1776148661447.png | Bin 0 -> 22939 bytes
.../defaultAvatar-CdxWBK1k-1776148661448.png | Bin 0 -> 42625 bytes
h5/assets/dollar-fhua8OJo-1776148661448.png | Bin 0 -> 30280 bytes
h5/assets/loading-C5mRJwKD-1776148661447.webp | Bin 0 -> 1550364 bytes
{src => h5/assets}/site.css | 0
.../Ranking/Overall/RankingItem.png | Bin 0 -> 47110 bytes
.../yumi-ranking/Ranking/Overall/bgCharm.png | Bin 0 -> 468777 bytes
.../yumi-ranking/Ranking/Overall/bgRoom.png | Bin 0 -> 462140 bytes
.../yumi-ranking/Ranking/Overall/bgWealth.png | Bin 0 -> 493134 bytes
.../Ranking/Overall/myRankingBg.png | Bin 0 -> 143586 bytes
.../Ranking/Overall/tabSelectedBg.png | Bin 0 -> 42856 bytes
.../Ranking/Overall/top1-charm.png | Bin 0 -> 223253 bytes
.../Ranking/Overall/top1-room.png | Bin 0 -> 183171 bytes
.../Ranking/Overall/top1-wealth.png | Bin 0 -> 176998 bytes
.../Ranking/Overall/top2-room.png | Bin 0 -> 78547 bytes
.../yumi-ranking/Ranking/Overall/top2.png | Bin 0 -> 70864 bytes
.../Ranking/Overall/top3-room.png | Bin 0 -> 81082 bytes
.../yumi-ranking/Ranking/Overall/top3.png | Bin 0 -> 69400 bytes
h5/bd-center/index.html | 88 ++
h5/bd-leader-center/index.html | 88 ++
h5/child-safety.html | 49 ++
h5/coin-seller/index.html | 88 ++
...BackgroundLayer-BG6zWDwW-1776148661684.css | 1 +
h5/css/Ranking-Cjzl4lUk-1776148661684.css | 1 +
h5/css/index-VRlNQ74k-1776148661679.css | 1 +
h5/css/itemCenter-Bkz-3Ge7-1776148661683.css | 1 +
h5/delete-account.html | 54 ++
h5/games-king/index.html | 88 ++
h5/host-center/index.html | 88 ++
h5/index.html | 150 ++++
h5/invite-new-user/index.html | 88 ++
.../BackgroundLayer-DJYogygx-1776148658686.js | 1 +
h5/js/Ranking-xafVKSSF-1776148658686.js | 1 +
h5/js/appConnector-B5Pbaops-1776148658686.js | 1 +
h5/js/coin-Dqu2_ND9-1776148658686.js | 1 +
h5/js/imageHandler-DstQGL3Z-1776148658686.js | 1 +
h5/js/imagePaths-Bi1Bwe4Z-1776148658686.js | 1 +
.../imagePreloader-C_QM-Nv8-1776148658686.js | 1 +
h5/js/index-CIAVq8iD-1776148658686.js | 4 +
h5/js/itemCenter-DveKthYv-1776148658686.js | 1 +
h5/privacy.html | 84 ++
h5/ranking/index.html | 34 +
h5/rankings-charm/index.html | 88 ++
h5/rankings-rooms/index.html | 88 ++
h5/rankings-wealth/index.html | 88 ++
h5/terms.html | 131 +++
package.json | 9 -
scripts/build.mjs | 552 -------------
scripts/new-landing-page.mjs | 61 --
www/assets/site.css | 757 ++++++++++++++++++
www/child-safety/index.html | 15 +
www/delete-account/index.html | 15 +
www/index.html | 73 ++
www/privacy/index.html | 15 +
www/robots.txt | 2 +
www/sitemap.xml | 21 +
www/terms/index.html | 15 +
80 files changed, 2523 insertions(+), 1525 deletions(-)
delete mode 100644 content/landing-pages/admin-center.json
delete mode 100644 content/landing-pages/agency-center.json
delete mode 100644 content/landing-pages/apply.json
delete mode 100644 content/landing-pages/bd-center.json
delete mode 100644 content/landing-pages/bd-leader-center.json
delete mode 100644 content/landing-pages/coin-seller.json
delete mode 100644 content/landing-pages/games-king.json
delete mode 100644 content/landing-pages/host-center.json
delete mode 100644 content/landing-pages/invite-new-user.json
delete mode 100644 content/landing-pages/rankings-charm.json
delete mode 100644 content/landing-pages/rankings-rooms.json
delete mode 100644 content/landing-pages/rankings-wealth.json
delete mode 100644 content/legal.json
delete mode 100644 content/site.json
create mode 100644 h5/admin-center/index.html
create mode 100644 h5/agency-center/index.html
create mode 100644 h5/apply/index.html
create mode 100644 h5/assets/BalooDa2-Bold-ChYvdM8z-1776148661447.ttf
create mode 100644 h5/assets/BalooDa2-ExtraBold-B62XCcbl-1776148661447.ttf
create mode 100644 h5/assets/BalooDa2-Medium-SHzJrXPy-1776148661447.ttf
create mode 100644 h5/assets/BalooDa2-Regular-Da9EMwmM-1776148661447.ttf
create mode 100644 h5/assets/BalooDa2-SemiBold-B7mlaStc-1776148661447.ttf
create mode 100644 h5/assets/coin-lz3Tp0nX-1776148661447.png
create mode 100644 h5/assets/defaultAvatar-CdxWBK1k-1776148661448.png
create mode 100644 h5/assets/dollar-fhua8OJo-1776148661448.png
create mode 100644 h5/assets/loading-C5mRJwKD-1776148661447.webp
rename {src => h5/assets}/site.css (100%)
create mode 100644 h5/assets/yumi-ranking/Ranking/Overall/RankingItem.png
create mode 100644 h5/assets/yumi-ranking/Ranking/Overall/bgCharm.png
create mode 100644 h5/assets/yumi-ranking/Ranking/Overall/bgRoom.png
create mode 100644 h5/assets/yumi-ranking/Ranking/Overall/bgWealth.png
create mode 100644 h5/assets/yumi-ranking/Ranking/Overall/myRankingBg.png
create mode 100644 h5/assets/yumi-ranking/Ranking/Overall/tabSelectedBg.png
create mode 100644 h5/assets/yumi-ranking/Ranking/Overall/top1-charm.png
create mode 100644 h5/assets/yumi-ranking/Ranking/Overall/top1-room.png
create mode 100644 h5/assets/yumi-ranking/Ranking/Overall/top1-wealth.png
create mode 100644 h5/assets/yumi-ranking/Ranking/Overall/top2-room.png
create mode 100644 h5/assets/yumi-ranking/Ranking/Overall/top2.png
create mode 100644 h5/assets/yumi-ranking/Ranking/Overall/top3-room.png
create mode 100644 h5/assets/yumi-ranking/Ranking/Overall/top3.png
create mode 100644 h5/bd-center/index.html
create mode 100644 h5/bd-leader-center/index.html
create mode 100644 h5/child-safety.html
create mode 100644 h5/coin-seller/index.html
create mode 100644 h5/css/BackgroundLayer-BG6zWDwW-1776148661684.css
create mode 100644 h5/css/Ranking-Cjzl4lUk-1776148661684.css
create mode 100644 h5/css/index-VRlNQ74k-1776148661679.css
create mode 100644 h5/css/itemCenter-Bkz-3Ge7-1776148661683.css
create mode 100644 h5/delete-account.html
create mode 100644 h5/games-king/index.html
create mode 100644 h5/host-center/index.html
create mode 100644 h5/index.html
create mode 100644 h5/invite-new-user/index.html
create mode 100644 h5/js/BackgroundLayer-DJYogygx-1776148658686.js
create mode 100644 h5/js/Ranking-xafVKSSF-1776148658686.js
create mode 100644 h5/js/appConnector-B5Pbaops-1776148658686.js
create mode 100644 h5/js/coin-Dqu2_ND9-1776148658686.js
create mode 100644 h5/js/imageHandler-DstQGL3Z-1776148658686.js
create mode 100644 h5/js/imagePaths-Bi1Bwe4Z-1776148658686.js
create mode 100644 h5/js/imagePreloader-C_QM-Nv8-1776148658686.js
create mode 100644 h5/js/index-CIAVq8iD-1776148658686.js
create mode 100644 h5/js/itemCenter-DveKthYv-1776148658686.js
create mode 100644 h5/privacy.html
create mode 100644 h5/ranking/index.html
create mode 100644 h5/rankings-charm/index.html
create mode 100644 h5/rankings-rooms/index.html
create mode 100644 h5/rankings-wealth/index.html
create mode 100644 h5/terms.html
delete mode 100644 package.json
delete mode 100755 scripts/build.mjs
delete mode 100755 scripts/new-landing-page.mjs
create mode 100644 www/assets/site.css
create mode 100644 www/child-safety/index.html
create mode 100644 www/delete-account/index.html
create mode 100644 www/index.html
create mode 100644 www/privacy/index.html
create mode 100644 www/robots.txt
create mode 100644 www/sitemap.xml
create mode 100644 www/terms/index.html
diff --git a/README.md b/README.md
index 73ded2b..0487abf 100644
--- a/README.md
+++ b/README.md
@@ -1,51 +1,58 @@
# Haiyi Public Site
-This directory contains the public website for `www.haiyihy.com` and the H5 landing pages for `h5.haiyihy.com`.
+This repository is the source of truth for the public website on `www.haiyihy.com` and the H5 pages on `h5.haiyihy.com`.
## Structure
-- `content/site.json`: Official website and company-level content.
-- `content/legal.json`: Privacy policy and terms content.
-- `content/landing-pages/*.json`: One JSON file per H5 landing page.
-- `src/site.css`: Shared styling for all generated pages.
-- `scripts/build.mjs`: Static site generator.
-- `scripts/new-landing-page.mjs`: Scaffolds a new landing page JSON file.
+- `www/`: static files served for `https://www.haiyihy.com`
+- `h5/`: static files served for `https://h5.haiyihy.com`
+- `h5/ranking/`: Yumi-compatible ranking page using `https://jvapi.haiyihy.com`
-## Local workflow
+Every page is stored as complete HTML/CSS/JS files in git. There is no JSON-driven page generation step in production anymore.
+
+## Edit Workflow
```bash
cd public-site
-node ./scripts/build.mjs
+edit www/... or h5/...
+git add .
+git commit
+git push
```
-The generated output is written to `public-site/dist`:
+## Production Sync
-- `dist/www`: content for `www.haiyihy.com`
-- `dist/h5`: content for `h5.haiyihy.com`
+Production keeps a dedicated clone on the public-site server and syncs it every 20 seconds through `systemd`:
-## Landing page management
+- server repo: `/opt/haiyihy-public-site/repo`
+- origin runtime: `/opt/haiyihy-public-site/runtime`
+- sync timer: `haiyihy-public-site-sync.timer`
+- source origin domains:
+ - `www-origin.haiyihy.com`
+ - `h5-origin.haiyihy.com`
-Current management is file-driven:
+The origin server serves static files directly from the git checkout:
-1. Duplicate an existing JSON file under `content/landing-pages/`, or run:
+- `repo/www` -> `www.haiyihy.com` / `www-origin.haiyihy.com`
+- `repo/h5` -> `h5.haiyihy.com` / `h5-origin.haiyihy.com`
+
+User-facing traffic goes through Tencent Cloud CDN. CDN pulls from the two `*-origin.haiyihy.com` domains.
+
+## Cache Strategy
+
+- HTML routes: short cache on origin/CDN
+- Static assets: long cache on origin/CDN
+- Fast bypass:
+ - append `?t=...`
+ - purge in Tencent Cloud International CDN console
+ - run the purge script:
```bash
-cd public-site
-node ./scripts/new-landing-page.mjs your-page-slug
+./deploy/tencent-prod/refresh_public_site_cdn.sh
```
-2. Edit the JSON content only. No Vue or HTML editing is required.
-3. Rebuild the site:
+## Bootstrap / Redeploy
```bash
-cd public-site
-node ./scripts/build.mjs
+./deploy/tencent-prod/redeploy_public_site.sh
```
-
-4. Run the public-site deployment script:
-
-```bash
-./deploy/tencent-prod/.venv/bin/python ./deploy/tencent-prod/deploy_public_site.py
-```
-
-If you later want a browser-based online editor with persistence, this structure is already suitable for adding a small API or CMS layer.
diff --git a/content/landing-pages/admin-center.json b/content/landing-pages/admin-center.json
deleted file mode 100644
index 04786e0..0000000
--- a/content/landing-pages/admin-center.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "slug": "admin-center",
- "theme": "steel",
- "eyebrow": "Operations gateway",
- "title": "A public-facing operations handoff page for admin and campaign distribution needs.",
- "summary": "Use this page as a lightweight web entrance when the final system sits behind internal tools or role-based access.",
- "highlight": "Separates public routing and internal operations cleanly.",
- "cta": {
- "label": "Official Website",
- "href": "https://www.haiyihy.com/"
- },
- "secondaryCta": {
- "label": "Host Center",
- "href": "https://h5.haiyihy.com/host-center/"
- },
- "stats": [
- {
- "value": "Public shell",
- "label": "for internal-operation entry design"
- },
- {
- "value": "Reusable",
- "label": "for future operational routing"
- }
- ],
- "sections": [
- {
- "title": "Controlled access",
- "body": "Keep actual admin systems private while still presenting a clear, branded public-facing handoff page when needed."
- },
- {
- "title": "Simple maintenance",
- "body": "Because the content is generated from JSON, copy and target links can be revised quickly."
- }
- ]
-}
diff --git a/content/landing-pages/agency-center.json b/content/landing-pages/agency-center.json
deleted file mode 100644
index 28fc864..0000000
--- a/content/landing-pages/agency-center.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "slug": "agency-center",
- "theme": "violet",
- "eyebrow": "Agency program",
- "title": "A clear H5 entry for agencies, channel partners, and growth collaborators.",
- "summary": "Use this page to explain the agency model, onboarding expectations, communication channels, and next actions.",
- "highlight": "Tailored for channel-driven growth programs and partner onboarding.",
- "cta": {
- "label": "Open BD Center",
- "href": "https://h5.haiyihy.com/bd-center/"
- },
- "secondaryCta": {
- "label": "Invite New Users",
- "href": "https://h5.haiyihy.com/invite-new-user/"
- },
- "stats": [
- {
- "value": "Partner",
- "label": "orientation and conversion flow"
- },
- {
- "value": "Flexible",
- "label": "content for region-specific campaigns"
- }
- ],
- "sections": [
- {
- "title": "Program framing",
- "body": "This page can communicate eligibility, relationship structure, reward model, and operational expectations."
- },
- {
- "title": "Campaign agility",
- "body": "You can run multiple variants over time while keeping the page system stable and easy to maintain."
- }
- ]
-}
diff --git a/content/landing-pages/apply.json b/content/landing-pages/apply.json
deleted file mode 100644
index 10d3275..0000000
--- a/content/landing-pages/apply.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "slug": "apply",
- "theme": "ember",
- "eyebrow": "Host recruitment",
- "title": "Apply to become a Yumi host and start your own voice room community.",
- "summary": "Designed for creators who want to host conversations, run themed rooms, and grow an audience around live social interaction.",
- "highlight": "Fast onboarding for hosts, room operators, and community starters.",
- "cta": {
- "label": "Download Yumi",
- "href": "https://play.google.com/store/apps/details?id=com.org.yumi"
- },
- "secondaryCta": {
- "label": "View Host Center",
- "href": "https://h5.haiyihy.com/host-center/"
- },
- "stats": [
- {
- "value": "Live",
- "label": "voice-room-first host workflow"
- },
- {
- "value": "Flexible",
- "label": "community and event formats"
- }
- ],
- "sections": [
- {
- "title": "Who this is for",
- "body": "Hosts who can bring conversation energy, build room identity, and keep users engaged through recurring activities.",
- "bullets": [
- "Run voice rooms and themed sessions",
- "Build your own regular audience rhythm",
- "Participate in campaigns and operational support"
- ]
- },
- {
- "title": "What you get",
- "body": "Yumi is built to support the host lifecycle from room setup to room growth and activity retention.",
- "bullets": [
- "Room profile and room settings support",
- "Mic, member, and room interaction tools",
- "Campaign entry points connected to H5 funnels"
- ]
- }
- ]
-}
diff --git a/content/landing-pages/bd-center.json b/content/landing-pages/bd-center.json
deleted file mode 100644
index 0e39747..0000000
--- a/content/landing-pages/bd-center.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "slug": "bd-center",
- "theme": "forest",
- "eyebrow": "Business development",
- "title": "A campaign-ready H5 entrance for BD activities and partner growth.",
- "summary": "Use this page to brief BD participants, explain deliverables, and connect external traffic into measurable operational flows.",
- "highlight": "Built for acquisition, activation, and channel-based growth operations.",
- "cta": {
- "label": "Open Agency Center",
- "href": "https://h5.haiyihy.com/agency-center/"
- },
- "secondaryCta": {
- "label": "Invite New Users",
- "href": "https://h5.haiyihy.com/invite-new-user/"
- },
- "stats": [
- {
- "value": "Partner-ready",
- "label": "external communication format"
- },
- {
- "value": "Structured",
- "label": "clear calls to action"
- }
- ],
- "sections": [
- {
- "title": "Operational clarity",
- "body": "Use this page to define the audience, reward logic, participation steps, and submission or review flows."
- },
- {
- "title": "Fast reconfiguration",
- "body": "Swap campaign copy, target region language, and CTA links by editing content files instead of rebuilding the app."
- }
- ]
-}
diff --git a/content/landing-pages/bd-leader-center.json b/content/landing-pages/bd-leader-center.json
deleted file mode 100644
index 4b87a2c..0000000
--- a/content/landing-pages/bd-leader-center.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "slug": "bd-leader-center",
- "theme": "ink",
- "eyebrow": "Leadership view",
- "title": "A structured overview page for BD leaders managing multiple contributors or growth tracks.",
- "summary": "Ideal for summarizing current focus areas, reporting expectations, onboarding standards, and campaign coordination notes.",
- "highlight": "A cleaner destination for management-level communication and rollout guidance.",
- "cta": {
- "label": "Open BD Center",
- "href": "https://h5.haiyihy.com/bd-center/"
- },
- "secondaryCta": {
- "label": "Agency Center",
- "href": "https://h5.haiyihy.com/agency-center/"
- },
- "stats": [
- {
- "value": "Manager",
- "label": "orientation layer for BD leadership"
- },
- {
- "value": "Reusable",
- "label": "template for future operations"
- }
- ],
- "sections": [
- {
- "title": "Use cases",
- "body": "Campaign kickoff notes, team dashboards, policy reminders, or coordination pages can all be routed through this destination."
- },
- {
- "title": "Editorial control",
- "body": "Each page is file-driven, so operational owners can prepare a release-ready content update without touching layout code."
- }
- ]
-}
diff --git a/content/landing-pages/coin-seller.json b/content/landing-pages/coin-seller.json
deleted file mode 100644
index 279a3fc..0000000
--- a/content/landing-pages/coin-seller.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "slug": "coin-seller",
- "theme": "gold",
- "eyebrow": "Sales and recharge",
- "title": "A dedicated funnel page for coin sales, recharge guidance, and payment-related campaigns.",
- "summary": "Use this landing page to explain transaction steps, campaign windows, purchase support, and payment channel notices.",
- "highlight": "Useful for external campaign links where a direct app-store page is too generic.",
- "cta": {
- "label": "Open Google Play",
- "href": "https://play.google.com/store/apps/details?id=com.org.yumi"
- },
- "secondaryCta": {
- "label": "Support Email",
- "href": "mailto:support@haiyihy.com"
- },
- "stats": [
- {
- "value": "Payment-ready",
- "label": "for purchase and recharge communication"
- },
- {
- "value": "Clear",
- "label": "support escalation path"
- }
- ],
- "sections": [
- {
- "title": "Payment communication",
- "body": "Summarize recharge channels, availability windows, support methods, and any temporary campaign mechanics in one stable page."
- },
- {
- "title": "Review-safe",
- "body": "For compliance-sensitive launches, this page can carry explanatory copy without changing in-app billing logic."
- }
- ]
-}
diff --git a/content/landing-pages/games-king.json b/content/landing-pages/games-king.json
deleted file mode 100644
index b51ebae..0000000
--- a/content/landing-pages/games-king.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "slug": "games-king",
- "theme": "berry",
- "eyebrow": "Games campaign",
- "title": "A landing page slot for game-focused events, rankings, and seasonal engagement campaigns.",
- "summary": "Use this destination for mini-game promotions, challenge seasons, rankings, and cross-room participation drives.",
- "highlight": "Designed for event storytelling rather than dense system UI.",
- "cta": {
- "label": "Open Room Rankings",
- "href": "https://h5.haiyihy.com/rankings-rooms/"
- },
- "secondaryCta": {
- "label": "Open Wealth Rankings",
- "href": "https://h5.haiyihy.com/rankings-wealth/"
- },
- "stats": [
- {
- "value": "Seasonal",
- "label": "for event-based traffic spikes"
- },
- {
- "value": "Lightweight",
- "label": "copy-first promotional format"
- }
- ],
- "sections": [
- {
- "title": "Event-ready",
- "body": "Turn this page into a game season hub, contest explainer, or campaign teaser with one content update."
- },
- {
- "title": "Cross-linkable",
- "body": "It can point users into rankings, invitation flows, room events, or download paths."
- }
- ]
-}
diff --git a/content/landing-pages/host-center.json b/content/landing-pages/host-center.json
deleted file mode 100644
index 6f6c93b..0000000
--- a/content/landing-pages/host-center.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "slug": "host-center",
- "theme": "sapphire",
- "eyebrow": "Host operations",
- "title": "A central landing page for creators, room owners, and active hosts.",
- "summary": "Use this page as the distribution point for host-facing updates, onboarding steps, room guidance, and operational notices.",
- "highlight": "A stable host-facing H5 entry point linked directly from the app.",
- "cta": {
- "label": "Apply as Host",
- "href": "https://h5.haiyihy.com/apply/"
- },
- "secondaryCta": {
- "label": "Privacy Policy",
- "href": "https://h5.haiyihy.com/privacy.html"
- },
- "stats": [
- {
- "value": "1 page",
- "label": "for recurring host communication"
- },
- {
- "value": "Low friction",
- "label": "distribution from app and campaigns"
- }
- ],
- "sections": [
- {
- "title": "Use it as a routing hub",
- "body": "This page can carry current season rules, host incentives, room standards, or updated activity instructions without shipping a new app build."
- },
- {
- "title": "Keep copy editable",
- "body": "The page content is managed from a single JSON file so operators can update titles, highlights, bullets, and links with minimal engineering overhead."
- }
- ]
-}
diff --git a/content/landing-pages/invite-new-user.json b/content/landing-pages/invite-new-user.json
deleted file mode 100644
index c6d8a0d..0000000
--- a/content/landing-pages/invite-new-user.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "slug": "invite-new-user",
- "theme": "mint",
- "eyebrow": "Growth funnel",
- "title": "A clean invitation page for user acquisition, referral campaigns, and onboarding traffic.",
- "summary": "Use this page to tell new users what Yumi is, why they should join, and where the invite flow leads next.",
- "highlight": "Built for referral links, community invite traffic, and campaign attribution handoffs.",
- "cta": {
- "label": "Download Yumi",
- "href": "https://play.google.com/store/apps/details?id=com.org.yumi"
- },
- "secondaryCta": {
- "label": "Official Website",
- "href": "https://www.haiyihy.com/"
- },
- "stats": [
- {
- "value": "Referral",
- "label": "friendly landing format"
- },
- {
- "value": "App-first",
- "label": "clear user conversion path"
- }
- ],
- "sections": [
- {
- "title": "What this page should do",
- "body": "Explain the value of Yumi quickly, remove ambiguity for first-time visitors, and route them cleanly into app installation."
- },
- {
- "title": "How to operate it",
- "body": "Adjust headline, incentive copy, and campaign validity in JSON whenever a new invite program starts."
- }
- ]
-}
diff --git a/content/landing-pages/rankings-charm.json b/content/landing-pages/rankings-charm.json
deleted file mode 100644
index a5b62da..0000000
--- a/content/landing-pages/rankings-charm.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "slug": "rankings-charm",
- "theme": "rose",
- "eyebrow": "Rankings",
- "title": "A dedicated landing page slot for charm campaigns, profile visibility pushes, and social leaderboard events.",
- "summary": "Use this page when the campaign angle is social presence, room influence, or creator energy rather than pure spend.",
- "highlight": "Helpful for event framing, rewards copy, and seasonal leaderboards.",
- "cta": {
- "label": "Open Wealth Rankings",
- "href": "https://h5.haiyihy.com/rankings-wealth/"
- },
- "secondaryCta": {
- "label": "Open Room Rankings",
- "href": "https://h5.haiyihy.com/rankings-rooms/"
- },
- "stats": [
- {
- "value": "Social",
- "label": "campaign framing"
- },
- {
- "value": "Brand-safe",
- "label": "copy-first leaderboard destination"
- }
- ],
- "sections": [
- {
- "title": "Use it for social momentum",
- "body": "This page is a better pre-click story for charm or popularity campaigns than a raw in-app ranking screen."
- },
- {
- "title": "Keep it current",
- "body": "Page content is isolated from app releases so the campaign story can change without app-store friction."
- }
- ]
-}
diff --git a/content/landing-pages/rankings-rooms.json b/content/landing-pages/rankings-rooms.json
deleted file mode 100644
index f69e918..0000000
--- a/content/landing-pages/rankings-rooms.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "slug": "rankings-rooms",
- "theme": "teal",
- "eyebrow": "Rankings",
- "title": "A room-ranking campaign page for spotlighting active communities, top rooms, and themed room competitions.",
- "summary": "Useful when you want to explain what the room ranking means before sending users into the app experience.",
- "highlight": "Purpose-built for room growth, discovery, and campaign traffic.",
- "cta": {
- "label": "Apply as Host",
- "href": "https://h5.haiyihy.com/apply/"
- },
- "secondaryCta": {
- "label": "Open Games Campaign",
- "href": "https://h5.haiyihy.com/games-king/"
- },
- "stats": [
- {
- "value": "Community",
- "label": "room-based campaign focus"
- },
- {
- "value": "High-intent",
- "label": "bridge from web to in-app room entry"
- }
- ],
- "sections": [
- {
- "title": "Campaign format",
- "body": "Use this page to explain ranking time windows, participation criteria, or room activity themes."
- },
- {
- "title": "Discovery surface",
- "body": "It also works as a lightweight discovery page for room-focused users coming from ads, social posts, or direct links."
- }
- ]
-}
diff --git a/content/landing-pages/rankings-wealth.json b/content/landing-pages/rankings-wealth.json
deleted file mode 100644
index 29735be..0000000
--- a/content/landing-pages/rankings-wealth.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "slug": "rankings-wealth",
- "theme": "gold",
- "eyebrow": "Rankings",
- "title": "A public landing page for wealth-themed campaigns, visibility pushes, and leaderboard storytelling.",
- "summary": "Use this URL when you need a branded web destination for top-spender or premium-activity campaigns before routing users back into the app.",
- "highlight": "A stable, linkable page for high-value campaign distribution.",
- "cta": {
- "label": "Open Charm Rankings",
- "href": "https://h5.haiyihy.com/rankings-charm/"
- },
- "secondaryCta": {
- "label": "Open Room Rankings",
- "href": "https://h5.haiyihy.com/rankings-rooms/"
- },
- "stats": [
- {
- "value": "Public",
- "label": "campaign destination"
- },
- {
- "value": "Flexible",
- "label": "can describe seasonal leaderboard logic"
- }
- ],
- "sections": [
- {
- "title": "Why use a web page",
- "body": "This lets operations explain campaign windows, prize rules, or ranking focus without requiring app copy updates."
- },
- {
- "title": "How to adapt it",
- "body": "Swap the title, hero summary, and CTA targets to match the next season or region."
- }
- ]
-}
diff --git a/content/legal.json b/content/legal.json
deleted file mode 100644
index e227db6..0000000
--- a/content/legal.json
+++ /dev/null
@@ -1,304 +0,0 @@
-{
- "effectiveDate": "2026-04-13",
- "privacy": {
- "title": "Privacy Policy",
- "summary": "This Privacy Policy explains how Yumi and its operating entity collect, use, store, share, and protect information when users access the Yumi mobile application, websites, H5 pages, and related services.",
- "sections": [
- {
- "title": "1. Data Controller",
- "paragraphs": [
- "Yumi is operated by 環球互動科技有限公司 (Global Interactive Technology Co., Limited).",
- "Registered address: 中国香港环球大厦A01.",
- "For privacy questions, deletion requests, or complaints, contact: postmaster@haiyinet.com.cn or call +85256283162."
- ]
- },
- {
- "title": "2. Scope of This Policy",
- "paragraphs": [
- "This policy applies to the Yumi mobile application, the official website at www.haiyihy.com, H5 pages at h5.haiyihy.com, customer support interactions, and other related online services operated under the Yumi brand."
- ]
- },
- {
- "title": "3. Information We Collect",
- "paragraphs": [
- "Depending on how a user interacts with Yumi, we may collect the following categories of information:"
- ],
- "bullets": [
- "Account information, such as nickname, profile photo, login identifier, country or region, and account preferences.",
- "User-generated content, such as room names, room profile information, chat content, posts, reports, profile text, and uploaded media.",
- "Voice-room interaction data, including room participation, microphone state, room role, room settings, gift activity, and room engagement logs.",
- "Device and technical data, such as device model, operating system version, app version, network type, device identifiers, crash logs, and diagnostic data.",
- "Transaction and billing data related to in-app purchases, order status, recharge behavior, wallet history, and fraud-prevention checks.",
- "Support and risk data, such as user reports, abuse complaints, moderation decisions, and customer service records.",
- "Website usage data, including standard log data and limited browser information when users visit our public web pages."
- ]
- },
- {
- "title": "4. How We Use Information",
- "bullets": [
- "Provide account registration, login, room participation, chat, and social features.",
- "Maintain platform integrity, trust, anti-abuse workflows, and fraud prevention.",
- "Process purchases, virtual items, recharge flows, and related financial support operations.",
- "Operate events, rankings, invitations, host programs, and agency-related H5 campaigns.",
- "Improve product performance through analytics, diagnostics, and crash resolution.",
- "Respond to support requests, complaints, legal notices, and data-rights requests.",
- "Comply with applicable laws, lawful requests, and platform obligations."
- ]
- },
- {
- "title": "5. Legal Bases",
- "paragraphs": [
- "Where applicable, we process personal information because it is necessary to provide requested services, to comply with legal obligations, to protect the platform and users, or based on legitimate business interests such as product operations, analytics, and service improvement.",
- "When consent is required by law for a specific processing activity, we will rely on that consent."
- ]
- },
- {
- "title": "6. How Information May Be Shared",
- "paragraphs": [
- "We do not sell personal information. We may share information only as reasonably necessary in the following cases:"
- ],
- "bullets": [
- "With infrastructure, cloud, analytics, messaging, payment, customer-service, or fraud-prevention vendors that help us operate Yumi.",
- "With app-store or platform providers when required to support purchases, app review, crash handling, or policy compliance.",
- "With professional advisers, auditors, insurers, or legal representatives where reasonably necessary.",
- "When required by law, regulation, subpoena, court order, or lawful government request.",
- "As part of a corporate transaction such as a merger, restructuring, or asset transfer, subject to applicable safeguards."
- ]
- },
- {
- "title": "7. International Transfers",
- "paragraphs": [
- "Yumi may use systems, vendors, and support workflows that operate across different jurisdictions. Where personal information is transferred internationally, we take reasonable steps to apply appropriate contractual, technical, and organizational safeguards."
- ]
- },
- {
- "title": "8. Data Retention",
- "paragraphs": [
- "We retain personal information for as long as necessary to provide services, fulfill account functions, maintain business records, resolve disputes, prevent abuse, enforce agreements, or comply with legal obligations.",
- "Retention periods may vary depending on the type of data, the sensitivity of the data, and the operational or legal reason for retaining it."
- ]
- },
- {
- "title": "9. Security",
- "paragraphs": [
- "We use reasonable administrative, technical, and organizational measures to protect information against unauthorized access, misuse, alteration, disclosure, or destruction. However, no method of transmission or storage can be guaranteed to be completely secure."
- ]
- },
- {
- "title": "10. Your Rights and Choices",
- "paragraphs": [
- "Subject to applicable law, users may request access, correction, deletion, restriction, objection, portability, or withdrawal of consent for certain data-processing activities."
- ],
- "bullets": [
- "You may review and update some profile information directly inside the app.",
- "You may request account deletion or data deletion by contacting postmaster@haiyinet.com.cn.",
- "We may need to verify identity before responding to certain requests."
- ]
- },
- {
- "title": "11. Children's Privacy",
- "paragraphs": [
- "Yumi is not intended for children who are below the minimum age permitted under applicable law in the relevant market. If you believe a child has provided personal information to Yumi inappropriately, please contact postmaster@haiyinet.com.cn."
- ]
- },
- {
- "title": "12. Third-Party Services",
- "paragraphs": [
- "Yumi may integrate third-party services for login, messaging, analytics, purchases, or social sharing. Their data practices are governed by their own terms and privacy notices."
- ]
- },
- {
- "title": "13. Policy Updates",
- "paragraphs": [
- "We may update this Privacy Policy from time to time. The updated version will be posted on this page with a revised effective date."
- ]
- }
- ]
- },
- "terms": {
- "title": "Terms of Service",
- "summary": "These Terms of Service govern access to and use of the Yumi app, website, H5 pages, and related services.",
- "sections": [
- {
- "title": "1. Acceptance of Terms",
- "paragraphs": [
- "By accessing or using Yumi, you agree to comply with these Terms of Service and all applicable laws."
- ]
- },
- {
- "title": "2. Eligibility",
- "paragraphs": [
- "You must be legally permitted to use the service in your jurisdiction and satisfy the minimum age requirement applicable to your market."
- ]
- },
- {
- "title": "3. Account Responsibilities",
- "bullets": [
- "You are responsible for activity under your account.",
- "You must provide accurate information where required.",
- "You must not use Yumi for unlawful, abusive, fraudulent, or platform-disruptive behavior."
- ]
- },
- {
- "title": "4. User Content and Room Activity",
- "paragraphs": [
- "You retain responsibility for content you upload, publish, stream, or otherwise make available through Yumi, including room details, text, images, chat content, and other materials.",
- "You must have the right to share the content you upload and the right to participate in or operate the room activity you initiate."
- ]
- },
- {
- "title": "5. Purchases and Virtual Items",
- "paragraphs": [
- "Certain services may involve paid content, subscriptions, in-app purchases, or virtual items. Additional purchase terms may apply through the relevant app-store provider.",
- "Except where required by law or expressly stated otherwise, virtual items and in-app balances are non-transferable and non-refundable."
- ]
- },
- {
- "title": "6. Moderation and Enforcement",
- "paragraphs": [
- "We may suspend, restrict, remove, or terminate access to content, rooms, accounts, campaigns, or features where reasonably necessary to protect the platform, respond to abuse, or comply with legal or platform requirements."
- ]
- },
- {
- "title": "7. Service Availability",
- "paragraphs": [
- "We may modify, suspend, or discontinue any part of Yumi at any time. We do not guarantee that the service will always be uninterrupted or error-free."
- ]
- },
- {
- "title": "8. Intellectual Property",
- "paragraphs": [
- "All platform branding, software, design, trademarks, operational materials, and related content remain the property of Yumi or its licensors unless otherwise stated."
- ]
- },
- {
- "title": "9. Disclaimer",
- "paragraphs": [
- "To the maximum extent allowed by law, Yumi is provided on an as-available basis without warranties of any kind, whether express or implied."
- ]
- },
- {
- "title": "10. Contact",
- "paragraphs": [
- "For service questions or legal notices, contact postmaster@haiyinet.com.cn or call +85256283162."
- ]
- }
- ]
- },
- "deleteAccount": {
- "title": "Delete Yumi Account",
- "summary": "This page explains how Yumi users can request permanent deletion of their account and associated data.",
- "sections": [
- {
- "title": "1. Who can use this page",
- "paragraphs": [
- "Use this page if you created a Yumi account and want to request permanent deletion of that account and the associated user data managed by Yumi.",
- "You can submit a deletion request even if you no longer have access to the Yumi app on your device."
- ]
- },
- {
- "title": "2. How to submit a deletion request",
- "paragraphs": [
- "Send your deletion request by email to postmaster@haiyinet.com.cn.",
- "Please use the subject line: Delete Yumi Account."
- ],
- "bullets": [
- "Your Yumi UID, if available.",
- "Your registered email address or phone number.",
- "Your Yumi nickname or profile name.",
- "A clear statement that you want your Yumi account and associated data to be deleted."
- ]
- },
- {
- "title": "3. Identity verification",
- "paragraphs": [
- "To protect account security and prevent unauthorized deletion, we may ask you to complete a reasonable identity-verification step before processing your request."
- ]
- },
- {
- "title": "4. What will be deleted",
- "paragraphs": [
- "After your request is verified and approved, we will delete your Yumi account and the associated account data that is managed in our systems, including profile information and other user data linked to that account, unless retention is required for legitimate reasons described below."
- ]
- },
- {
- "title": "5. Data that may be retained",
- "paragraphs": [
- "Certain records may be retained for a limited period where reasonably necessary for fraud prevention, abuse handling, dispute resolution, financial recordkeeping, tax, security, or legal and regulatory compliance."
- ]
- },
- {
- "title": "6. Processing time",
- "paragraphs": [
- "We aim to complete verified deletion requests within 7 business days, although certain cases may require additional time if further verification or compliance review is necessary."
- ]
- },
- {
- "title": "7. Contact",
- "paragraphs": [
- "If you have questions about account deletion or personal-data handling, contact postmaster@haiyinet.com.cn or call +85256283162."
- ]
- }
- ]
- },
- "childSafety": {
- "title": "Yumi Child Safety Standards",
- "summary": "This page publishes Yumi's standards against child sexual abuse and exploitation, including reporting and enforcement expectations for the service.",
- "sections": [
- {
- "title": "1. Scope",
- "paragraphs": [
- "This Child Safety Standards page applies to the Yumi application and related services operated by 環球互動科技有限公司 (Global Interactive Technology Co., Limited).",
- "These standards are publicly published for users, reviewers, partners, and regulators who need to understand how Yumi addresses child sexual abuse and exploitation."
- ]
- },
- {
- "title": "2. Zero-tolerance standard",
- "paragraphs": [
- "Yumi has zero tolerance for child sexual abuse and exploitation (CSAE), child sexual abuse material (CSAM), grooming, sextortion involving minors, trafficking of children for sexual purposes, or any content or behavior that sexually exploits, abuses, or endangers children."
- ]
- },
- {
- "title": "3. Prohibited content and behavior",
- "paragraphs": [
- "Users may not create, upload, publish, distribute, request, promote, facilitate, or engage in any content or conduct involving the sexual exploitation or abuse of children."
- ],
- "bullets": [
- "Child sexual abuse material (CSAM), whether real, manipulated, or computer-generated where prohibited by law or policy.",
- "Grooming, solicitation, or sexualized communication involving a minor.",
- "Sextortion, blackmail, or coercion involving a minor.",
- "Advertising, arranging, or facilitating trafficking or commercial sexual exploitation of children.",
- "Any attempt to use Yumi to endanger, exploit, or abuse a child."
- ]
- },
- {
- "title": "4. Reporting channels",
- "paragraphs": [
- "Yumi provides in-app reporting and support pathways for users to report suspected violations.",
- "Users, reviewers, or partners may also report child safety concerns by contacting postmaster@haiyinet.com.cn."
- ]
- },
- {
- "title": "5. Enforcement and response",
- "paragraphs": [
- "Yumi reviews reports and takes appropriate action when violations are identified or when the service obtains actual knowledge of prohibited child safety content or behavior."
- ],
- "bullets": [
- "Removing violating content.",
- "Restricting, suspending, or permanently terminating offending accounts.",
- "Preserving relevant records when reasonably necessary for investigation, legal compliance, or platform integrity.",
- "Escalating confirmed violations to relevant authorities or reporting organizations where required by applicable law."
- ]
- },
- {
- "title": "6. Contact information",
- "paragraphs": [
- "Developer and operator: Global Interactive Technology Co., Limited.",
- "Company email: postmaster@haiyinet.com.cn.",
- "Support phone: +85256283162.",
- "Registered address: 中国香港环球大厦A01."
- ]
- }
- ]
- }
-}
diff --git a/content/site.json b/content/site.json
deleted file mode 100644
index 385e0ee..0000000
--- a/content/site.json
+++ /dev/null
@@ -1,128 +0,0 @@
-{
- "generatedAt": "2026-04-13",
- "brand": {
- "name": "Yumi",
- "strapline": "Internet technology and information services for live social products.",
- "description": "Yumi is a live social product operated within an internet technology and information service model, combining voice rooms, direct chat, campaign H5 funnels, and community interaction tools."
- },
- "company": {
- "legalNameCn": "環球互動科技有限公司",
- "legalNameEn": "Global Interactive Technology Co., Limited",
- "address": "中国香港环球大厦A01",
- "website": "https://www.haiyihy.com",
- "h5Website": "https://h5.haiyihy.com",
- "supportEmail": "postmaster@haiyinet.com.cn",
- "privacyEmail": "postmaster@haiyinet.com.cn",
- "phone": "+85256283162",
- "industry": "Internet technology and information services"
- },
- "app": {
- "packageName": "com.org.yumi",
- "googlePlayUrl": "https://play.google.com/store/apps/details?id=com.org.yumi",
- "apiBase": "https://jvapi.haiyihy.com"
- },
- "hero": {
- "eyebrow": "Internet technology and information services",
- "title": "To Build Trusted Digital Interaction Worldwide",
- "summary": "Global Interactive Technology Co., Limited provides internet technology and information services for live social products, official web presence, and digital campaign delivery.",
- "primaryCta": {
- "label": "Open Google Play",
- "href": "https://play.google.com/store/apps/details?id=com.org.yumi"
- },
- "secondaryCta": {
- "label": "Read Privacy Policy",
- "href": "https://h5.haiyihy.com/privacy.html"
- },
- "stats": [
- {
- "value": "24/7",
- "label": "always-on room activity design"
- },
- {
- "value": "Real-time",
- "label": "voice, chat, gifting, and room state"
- },
- {
- "value": "One stack",
- "label": "app, H5 campaigns, and public presence"
- }
- ]
- },
- "pillars": [
- {
- "title": "Live Voice Rooms",
- "body": "Users can create rooms, go on mic, manage room roles, run themed sessions, and keep conversations active with lightweight social mechanics."
- },
- {
- "title": "Direct Chat and Social Graph",
- "body": "Yumi supports private chat, social follow relationships, and community discovery flows that keep users returning between live sessions."
- },
- {
- "title": "Campaign-Ready H5 Pages",
- "body": "Operational pages for hosts, agencies, invitations, rankings, and growth programs can be published quickly without rebuilding the app."
- }
- ],
- "audiences": [
- {
- "title": "Users",
- "body": "Join rooms, meet people, chat, participate in events, and unlock social progression with a mobile-first experience."
- },
- {
- "title": "Hosts",
- "body": "Run rooms, grow a following, manage member interactions, and activate campaigns from dedicated host-focused H5 funnels."
- },
- {
- "title": "Operators",
- "body": "Launch landing pages, direct users into campaigns, and keep public legal pages aligned with app review and external communication requirements."
- }
- ],
- "featureGrid": [
- {
- "kicker": "Room lifecycle",
- "title": "Create, enter, moderate, and personalize rooms.",
- "body": "Room profiles, room announcements, room themes, room roles, and room-based monetization all sit inside the same engagement model."
- },
- {
- "kicker": "Social retention",
- "title": "Keep users active after the conversation ends.",
- "body": "Private chat, follow relationships, user discovery, and event-based rewards extend participation beyond a single room session."
- },
- {
- "kicker": "Growth operations",
- "title": "Launch H5 campaigns without touching app binaries.",
- "body": "Invite funnels, ranking pages, host programs, and agency acquisition pages can be edited as JSON-driven content and republished quickly."
- }
- ],
- "operationLinks": [
- {
- "title": "Host Application",
- "href": "https://h5.haiyihy.com/apply/"
- },
- {
- "title": "Host Center",
- "href": "https://h5.haiyihy.com/host-center/"
- },
- {
- "title": "Agency Center",
- "href": "https://h5.haiyihy.com/agency-center/"
- },
- {
- "title": "Invite New User",
- "href": "https://h5.haiyihy.com/invite-new-user/"
- }
- ],
- "faq": [
- {
- "question": "What is Yumi?",
- "answer": "Yumi is a mobile social audio application focused on voice rooms, chat, community interaction, and in-app campaigns."
- },
- {
- "question": "Where can I find legal information?",
- "answer": "You can review the Privacy Policy and Terms of Service directly on this site. These pages are intended to be used both by end users and app review teams."
- },
- {
- "question": "How are H5 pages managed?",
- "answer": "The current setup uses one JSON content file per landing page. That keeps publishing fast and avoids coupling campaign updates to Flutter app releases."
- }
- ]
-}
diff --git a/h5/admin-center/index.html b/h5/admin-center/index.html
new file mode 100644
index 0000000..cff9504
--- /dev/null
+++ b/h5/admin-center/index.html
@@ -0,0 +1,88 @@
+
+
+
+
+
+ A public-facing operations handoff page for admin and campaign distribution needs. | Yumi H5
+
+
+
+
+
+
+
+
+
+
+ Operations gateway
+ A public-facing operations handoff page for admin and campaign distribution needs.
+ Use this page as a lightweight web entrance when the final system sits behind internal tools or role-based access.
+
+
+
Separates public routing and internal operations cleanly.
+
+
+
+
+
+ Controlled access
+ Keep actual admin systems private while still presenting a clear, branded public-facing handoff page when needed.
+
+
+
+
+ Simple maintenance
+ Because the content is generated from JSON, copy and target links can be revised quickly.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/h5/agency-center/index.html b/h5/agency-center/index.html
new file mode 100644
index 0000000..2c67c5d
--- /dev/null
+++ b/h5/agency-center/index.html
@@ -0,0 +1,88 @@
+
+
+
+
+
+ A clear H5 entry for agencies, channel partners, and growth collaborators. | Yumi H5
+
+
+
+
+
+
+
+
+
+
+ Agency program
+ A clear H5 entry for agencies, channel partners, and growth collaborators.
+ Use this page to explain the agency model, onboarding expectations, communication channels, and next actions.
+
+
+
Tailored for channel-driven growth programs and partner onboarding.
+
+
+
+
+
+ Program framing
+ This page can communicate eligibility, relationship structure, reward model, and operational expectations.
+
+
+
+
+ Campaign agility
+ You can run multiple variants over time while keeping the page system stable and easy to maintain.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/h5/apply/index.html b/h5/apply/index.html
new file mode 100644
index 0000000..034195f
--- /dev/null
+++ b/h5/apply/index.html
@@ -0,0 +1,88 @@
+
+
+
+
+
+ Apply to become a Yumi host and start your own voice room community. | Yumi H5
+
+
+
+
+
+
+
+
+
+
+ Host recruitment
+ Apply to become a Yumi host and start your own voice room community.
+ Designed for creators who want to host conversations, run themed rooms, and grow an audience around live social interaction.
+
+
+
Fast onboarding for hosts, room operators, and community starters.
+
+
+
+
+
+ Who this is for
+ Hosts who can bring conversation energy, build room identity, and keep users engaged through recurring activities.
+ - Run voice rooms and themed sessions
- Build your own regular audience rhythm
- Participate in campaigns and operational support
+
+
+
+ What you get
+ Yumi is built to support the host lifecycle from room setup to room growth and activity retention.
+ - Room profile and room settings support
- Mic, member, and room interaction tools
- Campaign entry points connected to H5 funnels
+
+
+
+
+
+
+
+
+
+
+
diff --git a/h5/assets/BalooDa2-Bold-ChYvdM8z-1776148661447.ttf b/h5/assets/BalooDa2-Bold-ChYvdM8z-1776148661447.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..d3facd3b3ed6df47286934ac76f74b07b3fbf8a1
GIT binary patch
literal 485864
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
&^-oJu9sD4pdPJuPi{
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
zℜ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