diff --git a/apps/site/src/components/features.astro b/apps/site/src/components/features.astro
index 7779e142..26cbf117 100644
--- a/apps/site/src/components/features.astro
+++ b/apps/site/src/components/features.astro
@@ -25,10 +25,6 @@ const featureArt = [
icon: "bx:bx-shield-quarter",
accent: "secure",
},
- {
- icon: "bx:bx-group",
- accent: "accounts",
- },
];
const features = featureCopy.items.map((item, index) => ({ ...item, ...featureArt[index] }));
@@ -39,7 +35,7 @@ const features = featureCopy.items.map((item, index) => ({ ...item, ...featureAr
-
+
@@ -75,7 +71,7 @@ const features = featureCopy.items.map((item, index) => ({ ...item, ...featureAr
-
+
{feature.accent === "storage" && (
@@ -177,8 +173,8 @@ const features = featureCopy.items.map((item, index) => ({ ...item, ...featureAr
- EdgeEver ZIP
- v1
+ JSON
+ {"{ }"}
@@ -186,9 +182,9 @@ const features = featureCopy.items.map((item, index) => ({ ...item, ...featureAr
- Markdown
- Files
- History
+ API
+ MCP
+ CLI
)}
@@ -226,37 +222,6 @@ const features = featureCopy.items.map((item, index) => ({ ...item, ...featureAr
)}
-
- {feature.accent === "accounts" && (
-
-
-
- One instance
-
-
-
-
-
-
- Owner
- Private workspace
-
-
-
- Member
- Private workspace
-
-
-
- Member
- Private workspace
-
-
-
- Isolated MCP tokens
-
-
- )}
@@ -296,8 +261,7 @@ const features = featureCopy.items.map((item, index) => ({ ...item, ...featureAr
.agent-scene,
.workspace-scene,
.open-scene,
- .secure-scene,
- .accounts-scene {
+ .secure-scene {
width: min(88%, 460px);
aspect-ratio: 1.28;
}
@@ -324,16 +288,6 @@ const features = featureCopy.items.map((item, index) => ({ ...item, ...featureAr
backdrop-filter: blur(12px);
}
- .accounts-instance,
- .account-card,
- .accounts-token {
- position: absolute;
- border: 1px solid rgb(203 213 225 / 0.72);
- background: rgb(255 255 255 / 0.9);
- box-shadow: 0 18px 60px -42px rgb(15 23 42 / 0.8);
- backdrop-filter: blur(12px);
- }
-
.storage-scene {
transform: rotate(-2deg);
transition: transform 300ms ease;
@@ -343,8 +297,7 @@ const features = featureCopy.items.map((item, index) => ({ ...item, ...featureAr
.group:hover .agent-scene,
.group:hover .workspace-window,
.group:hover .open-scene,
- .group:hover .secure-scene,
- .group:hover .accounts-scene {
+ .group:hover .secure-scene {
transform: translateY(-4px);
}
@@ -853,118 +806,6 @@ const features = featureCopy.items.map((item, index) => ({ ...item, ...featureAr
font-weight: 800;
}
- .accounts-scene {
- transition: transform 300ms ease;
- }
-
- .accounts-instance {
- top: 5%;
- left: 50%;
- z-index: 2;
- display: flex;
- width: 176px;
- height: 76px;
- align-items: center;
- justify-content: center;
- gap: 10px;
- translate: -50% 0;
- border-radius: 24px;
- color: var(--edgeever-brand-text);
- }
-
- .accounts-instance span,
- .accounts-token span {
- font-size: 12px;
- font-weight: 800;
- }
-
- .accounts-link {
- position: absolute;
- top: 27%;
- z-index: 0;
- width: 2px;
- height: 92px;
- transform-origin: top;
- background: repeating-linear-gradient(
- 180deg,
- rgb(var(--edgeever-brand-rgb) / 0.42) 0 9px,
- transparent 9px 16px
- );
- }
-
- .accounts-link-owner {
- left: 50%;
- }
-
- .accounts-link-member-one {
- left: 50%;
- rotate: 48deg;
- }
-
- .accounts-link-member-two {
- left: 50%;
- rotate: -48deg;
- }
-
- .account-card {
- bottom: 15%;
- z-index: 1;
- display: grid;
- width: 132px;
- min-height: 132px;
- place-items: center;
- align-content: center;
- gap: 7px;
- padding: 14px;
- border-radius: 24px;
- text-align: center;
- }
-
- .account-owner {
- left: 50%;
- translate: -50% 0;
- }
-
- .account-member-one {
- left: 0;
- }
-
- .account-member-two {
- right: 0;
- }
-
- .account-avatar {
- display: grid;
- width: 44px;
- height: 44px;
- place-items: center;
- border-radius: 16px;
- background: rgb(var(--edgeever-brand-rgb) / 0.12);
- color: var(--edgeever-brand-text);
- }
-
- .account-card strong {
- font-size: 13px;
- color: #0f172a;
- }
-
- .account-card small {
- font-size: 10px;
- color: #64748b;
- }
-
- .accounts-token {
- right: 4%;
- bottom: 0;
- z-index: 3;
- display: flex;
- align-items: center;
- gap: 8px;
- padding: 11px 14px;
- border-radius: 999px;
- color: var(--edgeever-brand-text);
- }
-
@media (max-width: 767px) {
.feature-art {
padding: 22px;
@@ -974,8 +815,7 @@ const features = featureCopy.items.map((item, index) => ({ ...item, ...featureAr
.agent-scene,
.workspace-scene,
.open-scene,
- .secure-scene,
- .accounts-scene {
+ .secure-scene {
width: min(94%, 360px);
}
@@ -1065,28 +905,5 @@ const features = featureCopy.items.map((item, index) => ({ ...item, ...featureAr
right: 0;
top: 6%;
}
-
- .account-card {
- width: 108px;
- min-height: 118px;
- padding: 10px;
- }
-
- .accounts-instance {
- width: 156px;
- }
-
- .accounts-link-member-one {
- rotate: 43deg;
- }
-
- .accounts-link-member-two {
- rotate: -43deg;
- }
-
- .accounts-token {
- right: 0;
- padding: 9px 11px;
- }
}
diff --git a/apps/site/src/components/guides.astro b/apps/site/src/components/guides.astro
index a0408083..a7a7e282 100644
--- a/apps/site/src/components/guides.astro
+++ b/apps/site/src/components/guides.astro
@@ -16,7 +16,7 @@ const copy = siteCopy[locale].guides;
-
+
-
-
- {copy.proofs.map((proof) => (
- -
-
-
-
- {proof}
-
- ))}
-
diff --git a/apps/site/src/i18n.ts b/apps/site/src/i18n.ts
index 03a5e129..baeb4f2f 100644
--- a/apps/site/src/i18n.ts
+++ b/apps/site/src/i18n.ts
@@ -28,7 +28,7 @@ export const siteCopy = {
"zh-CN": {
layout: {
defaultDescription:
- "EdgeEver 是一个部署在自己 Cloudflare 账号中的开源笔记工作区,提供经典三栏体验、富文本与 Markdown 编辑、完整备份恢复、多账户隔离,以及 REST API、OpenAPI 和 MCP。",
+ "EdgeEver 是一个开源、自托管、Cloudflare-native 的现代笔记工作区。保留经典印象笔记的三栏体验,支持富文本、无限嵌套,对 AI Agent 极度友好。采用无服务器架构,日常使用完全免费且无需服务器。",
defaultTitle: `EdgeEver - ${siteTaglines["zh-CN"]}`,
imageAlt: "EdgeEver 笔记应用截图",
ogLocale: "zh_CN",
@@ -58,19 +58,18 @@ export const siteCopy = {
demo: "在线演示",
agentInstall: "通过AI Agent部署",
imageAlt: "EdgeEver product preview",
- badgeText: "数据在自己的 Cloudflare,随时可以完整导出与恢复",
- proofs: ["经典三栏", "EdgeEver ZIP", "REST API 与 MCP", "多账户隔离"],
+ badgeText: "💡 支持印象笔记、Notion、Memos 零成本平替,双 MCP 自动搬家",
},
features: {
heading: "重新定义个人笔记体验",
items: [
{
- title: "无需服务器,日常使用零运维",
- summary: "运行在 Cloudflare Workers、D1 与 R2 上,不需要购买和维护传统云服务器。",
+ title: "零服务器,零运维,终身完全免费",
+ summary: "彻底告别购买云服务器月租与繁琐维护。利用 Cloudflare 卓越的无服务器架构,个人使用终身免费。",
points: [
- "无需配置 Docker、Nginx 或 SSL 证书,可以通过 AI Agent 协助完成首次部署。",
- "个人日常使用通常可由 Cloudflare 免费额度覆盖;按当前估算,可容纳约 15 万条短笔记或 5 万张 200KB 图片。",
- "笔记数据库和附件资源都保存在你自己的 Cloudflare 账号中。",
+ "完全免服务器:无需配置 Docker、Nginx 或证书,一句话即可直接部署至 Cloudflare。",
+ "日常使用完全免费:充分利用 Cloudflare Workers、D1 与 R2 免费级配额(可存 15 万条笔记 + 5 万张图片)。",
+ "数据安全尽在掌握:虽然免服务器,但数据并非存在第三方,而是保存在你自己的 Cloudflare 账号中。",
],
},
{
@@ -78,46 +77,36 @@ export const siteCopy = {
summary: "内置 REST API、OpenAPI schema 与 Remote MCP endpoint,让 AI 助手安全地读取、创建和整理笔记。",
points: [
"在应用内生成 MCP Token,就能把 EdgeEver 接入 Codex、Claude Code、Antigravity 等工具。",
- "Agent 可以通过明确授权读取、创建、修改笔记,并查看或恢复笔记历史版本。",
- "基于这些开放接口,可以进一步实现标签整理、知识地图和跨笔记检索等工作流。",
- "还可以联动 Notion Database、飞书多维表格等工具,把零散信息整理成结构化数据。",
+ "适合做灵感归纳、自动打标签、知识图谱整理和跨笔记检索。",
+ "还可以联动 Notion Database、飞书多维表格等工具,把日常笔记中的零散信息沉淀为结构化数据。",
+ "API 与 Agent 能力围绕你的私有实例工作,不依赖封闭笔记平台。",
],
},
{
- title: "经典三栏,写作和整理都顺手",
- summary: "保留笔记本树、笔记列表和主编辑区,同时补齐长期知识库需要的编辑与整理能力。",
+ title: "经典三栏,熟悉但更轻快",
+ summary: "保留印象笔记式的笔记本树、笔记列表和主编辑区,减少迁移后的学习成本。",
points: [
"支持无限级嵌套笔记本,适合长期沉淀的大型知识库。",
- "桌面端可在富文本与 Markdown 源码之间切换,笔记历史版本支持对比和恢复。",
- "笔记本可以拖拽排序和调整层级,笔记支持批量移动与批量合并。",
- "Chrome/Edge 网页剪藏扩展已完成,目前等待商店上架。",
+ "笔记本可以拖拽排序和调整层级,笔记支持多选移动与多选合并。",
+ "基于 TipTap 的富文本编辑器支持查看笔记历史版本,兼顾流畅写作与内容回溯。",
],
},
{
- title: "开放数据,也能完整恢复",
- summary: "一份 EdgeEver ZIP 同时兼顾直接阅读与完整恢复,不把你的知识库锁在某个产品里。",
+ title: "数据开放,迁移和导出不被绑架",
+ summary: "笔记内容以结构化 JSON、Markdown 与纯文本多形态保存,便于编辑器、API、搜索和 Agent 分别使用。",
points: [
- "导出包包含 Markdown、Front Matter、嵌套笔记本目录和相对路径附件,可以直接打开阅读。",
- "版本化结构数据同时保留笔记关系与历史版本,可在 EdgeEver 实例之间完整恢复。",
- "底层使用基于标准 SQLite 的 Cloudflare D1,也可通过 API、MCP 或 CLI 按需管理。",
+ "内容存放在基于标准 SQLite 的 Cloudflare D1 中,可通过 API、MCP 或 CLI 按需读取。",
+ "支持印象笔记数据导入能力,降低从旧笔记库迁移过来的成本。",
+ "Markdown 面向导入导出和 Agent 使用,降低未来再次迁移的成本。",
],
},
{
title: "多端无缝同步,不限设备数",
summary: "电脑、手机、平板都能直接同步,自建实例让你彻底摆脱商业笔记平台的登录设备数限制。",
points: [
- "自建 API 不限制登录设备数量,可以在电脑、手机和平板间同步。",
+ "不限登录设备数:个人独享自建 API,再也不受商业笔记平台的“只允许登录 2 台设备”等限制。",
"支持 PC 与移动端网页访问,也可以安装成 PWA,随手打开就能记。",
- "已有笔记支持离线草稿与本地同步队列;上传图片前还可在浏览器本地压缩。",
- ],
- },
- {
- title: "一个实例,多账户独立空间",
- summary: "为家人或小团队成员创建账号,每个人都拥有完全隔离的私人笔记工作区。",
- points: [
- "实例管理员可以创建、停用成员账号或重置密码,实例不开放公众注册。",
- "每个成员的笔记本、笔记、附件、回收站和导入导出数据彼此隔离。",
- "MCP Token 也按成员空间隔离,Agent 只能访问被明确授权的数据。",
+ "已有笔记支持离线编辑草稿和本地同步队列,弱网时也能先写后同步。",
],
},
],
@@ -125,7 +114,7 @@ export const siteCopy = {
guides: {
eyebrow: "EdgeEver Guides",
heading: "从部署、迁移到 AI Agent 玩法",
- description: "先部署自己的实例,再把旧笔记迁过来,最后用 MCP 接入 AI Agent;每一步都有对应的操作指引。",
+ description: "把最关键的上手路径放到显眼位置:先部署自己的实例,再把旧笔记迁过来,最后用 MCP 接入 AI Agent 整理长期知识库。",
items: [
{
title: "AI Agent 一句话部署",
@@ -139,12 +128,6 @@ export const siteCopy = {
href: "/blog/evernote-migration-guide",
cta: "查看迁移指南",
},
- {
- title: "从 Notion 或 Memos 迁移",
- summary: "让 AI Agent 同时连接来源与 EdgeEver MCP,把已有内容分批搬进自己的实例。",
- href: "/blog?tag=migration",
- cta: "查看迁移方式",
- },
{
title: "AI Agent 进阶玩法",
summary: "用 MCP 读取真实笔记,生成知识地图、标签建议和个人资料整理工作流。",
@@ -157,7 +140,7 @@ export const siteCopy = {
"en-US": {
layout: {
defaultDescription:
- "EdgeEver is an open-source notes workspace on your own Cloudflare account, with a classic three-pane workflow, rich text and Markdown editing, complete backup and restore, isolated accounts, REST API, OpenAPI, and MCP.",
+ "EdgeEver is an open-source, serverless, 100% free notes workspace with a classic three-pane workflow, rich text, nested notebooks, and remote MCP endpoint.",
defaultTitle: `EdgeEver - ${siteTaglines["en-US"]}`,
imageAlt: "EdgeEver notes app screenshot",
ogLocale: "en_US",
@@ -187,19 +170,18 @@ export const siteCopy = {
demo: "Live demo",
agentInstall: "Install with AI Agent",
imageAlt: "EdgeEver product preview",
- badgeText: "Your data stays in your Cloudflare account and remains fully portable",
- proofs: ["Three-pane workflow", "EdgeEver ZIP", "REST API & MCP", "Isolated accounts"],
+ badgeText: "💡 Serverless: Migrate from Evernote, Notion & Memos via Dual-MCP",
},
features: {
heading: "A personal notes workspace rebuilt for self-hosting",
items: [
{
- title: "No server to maintain",
- summary: "EdgeEver runs on Cloudflare Workers, D1, and R2 without a traditional server to buy or manage.",
+ title: "No Server, Zero Maintenance, 100% Free",
+ summary: "Say goodbye to server rental fees and complex system management. EdgeEver runs entirely within Cloudflare's free tiers.",
points: [
- "No Docker, Nginx, or SSL configuration is required, and an AI Agent can help complete the first deployment.",
- "Typical personal use can fit within Cloudflare's free quotas; current estimates are about 150k short notes or 50k images at 200 KB each.",
- "The notes database and attachments remain in your own Cloudflare account.",
+ "No Server Required: No need for Docker, Nginx, or SSL configuration. Deploy directly to Cloudflare with one simple tool.",
+ "100% Free Forever: Take full advantage of free tiers for Cloudflare Workers, D1, and R2 (supports up to 150k notes and 50k images).",
+ "Full Data Ownership: Serverless doesn't mean third-party storage. All your notes live securely within your own Cloudflare account.",
],
},
{
@@ -207,28 +189,27 @@ export const siteCopy = {
summary: "Built-in REST API, OpenAPI schema, and Remote MCP endpoint let AI assistants read, create, and organize notes safely.",
points: [
"Generate an MCP token in the app to connect EdgeEver with Codex, Claude Code, Antigravity, and similar tools.",
- "With explicit authorization, agents can read, create, and update notes, and inspect or restore revision history.",
- "The open interfaces support workflows such as tag cleanup, knowledge maps, and cross-note retrieval.",
- "Agents can also connect notes with tools such as Notion databases and Feishu Bitable to create structured data.",
+ "Useful for idea summaries, automatic tagging, knowledge graph cleanup, and cross-note retrieval.",
+ "It can also connect to tools such as Notion databases and Feishu Bitable, turning scattered information from everyday notes into structured data.",
+ "Agent workflows operate on your private instance instead of a closed notes platform.",
],
},
{
- title: "A familiar three-pane workspace",
- summary: "Notebook tree, note list, and editor stay familiar while adding the tools needed for a long-lived knowledge base.",
+ title: "Classic three-pane workflow",
+ summary: "Notebook tree, note list, and editor stay familiar for Evernote-style migrations.",
points: [
"Unlimited nested notebooks support long-lived personal knowledge bases.",
- "On desktop, switch between rich text and Markdown source, then compare or restore earlier revisions.",
"Drag notebooks to reorder or change hierarchy, and move or merge notes in batches.",
- "The Chrome/Edge web clipper is complete and pending store publication.",
+ "A TipTap-based rich text editor includes note version history for reviewing earlier content.",
],
},
{
- title: "Open data with complete recovery",
- summary: "A single EdgeEver ZIP stays directly readable while preserving everything needed for a complete restore.",
+ title: "Open data, easier migration",
+ summary: "Notes are stored as structured JSON, Markdown, and plain text for editors, APIs, search, and agents.",
points: [
- "Exports include Markdown, Front Matter, nested notebook folders, and relative-path attachments for direct access.",
- "Versioned structured data preserves note relationships and revision history for recovery between EdgeEver instances.",
- "Content lives in Cloudflare D1, based on standard SQLite, and can also be managed via API, MCP, or CLI.",
+ "Content lives in Cloudflare D1, based on standard SQLite, and can be read via API, MCP, or CLI.",
+ "Evernote import support lowers the cost of moving from an existing notes library.",
+ "Markdown keeps import, export, and agent workflows portable.",
],
},
{
@@ -237,16 +218,7 @@ export const siteCopy = {
points: [
"No device limits: self-hosted API means no commercial restrictions on the number of active login devices.",
"Open it in the browser or install it as a PWA for quick capture.",
- "Existing notes support offline drafts and a local sync queue, while images can be compressed locally before upload.",
- ],
- },
- {
- title: "One instance, isolated accounts",
- summary: "Create accounts for family or a small team while giving each person a completely private notes workspace.",
- points: [
- "The owner can create or disable member accounts and reset passwords; public registration stays closed.",
- "Each member has isolated notebooks, notes, attachments, Trash, and import/export data.",
- "MCP tokens are isolated by workspace, so agents only access explicitly authorized data.",
+ "Existing notes support offline drafts and a local sync queue for weak network conditions.",
],
},
],
@@ -254,7 +226,7 @@ export const siteCopy = {
guides: {
eyebrow: "EdgeEver Guides",
heading: "Deploy, migrate, and put AI agents to work",
- description: "Deploy your own instance, bring over an existing notes library, then connect MCP-powered AI workflows with a guide for every step.",
+ description: "The fastest paths into EdgeEver: deploy your own instance, move an existing Evernote archive, then connect MCP-powered AI workflows.",
items: [
{
title: "Deploy with an AI Agent",
@@ -268,12 +240,6 @@ export const siteCopy = {
href: "/blog/evernote-migration-guide",
cta: "Read migration guide",
},
- {
- title: "Migrate from Notion or Memos",
- summary: "Let an AI Agent connect the source and EdgeEver MCP endpoints to move existing content into your own instance in batches.",
- href: "/blog?tag=migration",
- cta: "Explore migration paths",
- },
{
title: "AI Agent advanced play",
summary: "Turn real notes into knowledge maps, tag cleanup plans, and higher-level personal knowledge workflows through MCP.",
diff --git a/apps/site/src/pages/en/index.astro b/apps/site/src/pages/en/index.astro
index 17c54cf7..292b0cad 100644
--- a/apps/site/src/pages/en/index.astro
+++ b/apps/site/src/pages/en/index.astro
@@ -15,7 +15,7 @@ const homeJsonLd = [
name: "EdgeEver",
url: siteUrl,
inLanguage: "en-US",
- description: "EdgeEver is an open-source notes workspace on your own Cloudflare account, with complete backup and restore, isolated accounts, and AI Agent access.",
+ description: "EdgeEver is an open-source, self-hosted, Cloudflare-native notes workspace.",
},
{
"@context": "https://schema.org",
@@ -27,7 +27,7 @@ const homeJsonLd = [
operatingSystem: "Web",
isAccessibleForFree: true,
description:
- "EdgeEver combines a classic three-pane workflow, rich text and Markdown editing, complete EdgeEver ZIP recovery, isolated accounts, REST API, OpenAPI, and MCP.",
+ "EdgeEver is an open-source, self-hosted, Cloudflare-native notes workspace with a classic three-pane workflow, REST API, OpenAPI schema, and MCP endpoint.",
},
];
---
diff --git a/apps/site/src/pages/index.astro b/apps/site/src/pages/index.astro
index a216e763..b1622ed8 100644
--- a/apps/site/src/pages/index.astro
+++ b/apps/site/src/pages/index.astro
@@ -16,7 +16,7 @@ const homeJsonLd = [
url: siteUrl,
inLanguage: "zh-CN",
description:
- "EdgeEver 是一个部署在自己 Cloudflare 账号中的开源笔记工作区,支持完整备份恢复、多账户隔离和 AI Agent 接入。",
+ "EdgeEver 是一个开源、自托管、Cloudflare-native 的现代笔记工作区。",
},
{
"@context": "https://schema.org",
@@ -28,7 +28,7 @@ const homeJsonLd = [
operatingSystem: "Web",
isAccessibleForFree: true,
description:
- "EdgeEver 提供经典三栏体验、富文本与 Markdown 编辑、EdgeEver ZIP 完整恢复、多账户隔离,以及 REST API、OpenAPI 和 MCP。",
+ "EdgeEver 是一个开源、自托管、Cloudflare-native 的现代笔记工作区,保留经典印象笔记三栏体验,并提供 REST API、OpenAPI schema 和 MCP endpoint。",
},
];
---