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 .env.example
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# BeatAPI Workspace
# BeatDesign
# Copy to .env.development for local use.

VITE_APP_URL=http://localhost:3020
VITE_APP_NAME=BeatAPI Workspace
VITE_APP_DESCRIPTION=Open-source canvas and studio for AI image and video generation
VITE_APP_NAME=BeatDesign
VITE_APP_DESCRIPTION=The open-source, local-first AI canvas for image and video creation.
VITE_APP_LOGO=/logo.png
VITE_DEFAULT_LOCALE=en
VITE_GENERATION_PROVIDER=beatapi
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# BeatAPI Workspace agent guide
# BeatDesign agent guide

This repository is the open-source workbench. The sibling `../BeatAPI SaaS Template` is a separate product and must not be mixed into this codebase.

Expand Down
2 changes: 1 addition & 1 deletion ARCHITECTURE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Architecture

BeatAPI Workspace is a single-user creative application. It has no account boundary and no SaaS commerce layer.
BeatDesign is a single-user creative application. It has no account boundary and no SaaS commerce layer.

## Product boundary

Expand Down
2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Code of conduct

We want BeatAPI Workspace to be a welcoming, constructive open-source project.
We want BeatDesign to be a welcoming, constructive open-source project.

Contributors and maintainers must communicate respectfully, focus criticism on the work, accept good-faith feedback, and avoid harassment, discrimination, threats, doxxing, or publishing private information without permission.

Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing

Thanks for helping improve BeatAPI Workspace.
Thanks for helping improve BeatDesign.

## Before opening a change

Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# BeatAPI Workspace
# BeatDesign

An open-source, local-first creative workbench for AI image and video generation. It opens on a real Home surface and keeps the product focused: Projects, a guided Studio, a node-based Canvas, shared assets, generation history, configurable storage, and an official BeatAPI connection.
**Beat complexity. Design freely.**

The open-source, local-first AI canvas for image and video creation. BeatDesign brings Projects, a guided Studio, a node-based Canvas, shared assets, generation history, configurable storage, and an official BeatAPI connection into one focused workspace.

There is no login, account system, payment flow, subscription, local credit ledger, admin panel, or API-key issuing service in this repository.

Expand Down
6 changes: 4 additions & 2 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# BeatAPI Workspace
# BeatDesign

一个开源、本地优先的 AI 图片与视频创作工作台。应用默认打开真正的 Home 首页,产品范围聚焦于项目、Studio、Canvas、共享素材、生成历史、可配置存储,以及 BeatAPI 官方 Provider。
**化繁为简,自由创作。**

开源、本地优先的 AI 图片与视频创作画布。BeatDesign 将项目、Studio、节点式 Canvas、共享素材、生成历史、可配置存储和 BeatAPI 官方连接整合在一个专注的工作台中。

本仓库不包含登录、账号、支付、订阅、本地积分、后台管理、RBAC 或 API Key 发放系统。

Expand Down
2 changes: 1 addition & 1 deletion RELEASE_SCOPE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Open-source release scope

This repository contains the BeatAPI Workspace only. The separate BeatAPI SaaS Template is not part of this codebase.
This repository contains BeatDesign only. The separate BeatAPI SaaS Template is not part of this codebase.

Included: homepage, projects, Studio, Canvas, provider configuration, supported model registry, generation lifecycle, uploads, assets, local history, i18n, SQLite/D1 persistence, tests, and deployment examples.

Expand Down
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ Include the affected route or component, reproduction steps, impact, and any sug

## Deployment responsibility

BeatAPI Workspace is a single-user, local-first application and does not include authentication. The development server binds to localhost. Operators who expose it to a network must add access control in front of the application and provide provider and storage credentials through deployment secrets.
BeatDesign is a single-user, local-first application and does not include authentication. The development server binds to localhost. Operators who expose it to a network must add access control in front of the application and provide provider and storage credentials through deployment secrets.

The maintainers support the latest released `0.1.x` version. Security fixes are published in the next patch release when possible.
4 changes: 2 additions & 2 deletions TRADEMARKS.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Trademarks

The Apache License 2.0 applies to the source code in this repository. It does not grant permission to use BeatAPI names, logos, domain names, or other brand identifiers to imply endorsement, sponsorship, or an official hosted service.
The Apache License 2.0 applies to the source code in this repository. It does not grant permission to use BeatDesign or BeatAPI names, logos, domain names, or other brand identifiers to imply endorsement, sponsorship, or an official hosted service.

You may make factual references required to describe compatibility with BeatAPI. Forks and redistributed products should use their own product name and visual identity unless separate written permission is granted.
You may make factual references required to describe the origin of BeatDesign or compatibility with BeatAPI. Forks and redistributed products should use their own product name and visual identity unless separate written permission is granted.

Third-party model and company names belong to their respective owners.
2 changes: 1 addition & 1 deletion drizzle.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ loadEnvFiles();
const provider = process.env.DATABASE_PROVIDER || 'sqlite';

if (provider !== 'sqlite' && provider !== 'd1') {
throw new Error('BeatAPI Workspace supports DATABASE_PROVIDER=sqlite or d1');
throw new Error('BeatDesign supports DATABASE_PROVIDER=sqlite or d1');
}

export default defineConfig({
Expand Down
19 changes: 9 additions & 10 deletions messages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,11 @@
"product.shell.chinese": "Chinese",
"product.shell.terms": "Terms",
"product.shell.privacy": "Privacy",
"product.shell.builtFor": "Built for AI creators",
"product.home.eyebrow": "OPEN-SOURCE AI CREATIVE WORKSPACE",
"product.home.metaTitle": "BeatAPI Workspace — Studio and Canvas for AI creation",
"product.home.metaDescription": "An open-source Studio and Canvas for generating, organizing, and connecting AI images and videos with your own BeatAPI API key.",
"product.home.title": "Your imagination. Now in motion.",
"product.home.subtitle": "Generate images and videos in Studio, then connect every result into a reusable Canvas workflow.",
"product.home.eyebrow": "OPEN SOURCE · LOCAL FIRST",
"product.home.metaTitle": "BeatDesign — Open-source AI canvas for image and video creation",
"product.home.metaDescription": "The open-source, local-first AI canvas for image and video creation.",
"product.home.titleLine1": "Beat complexity.",
"product.home.titleLine2": "Design freely.",
"product.home.prompt": "Describe the image or video you want to create...",
"product.home.createInStudio": "Create in Studio",
"product.home.sectionTitle": "Choose your workspace",
Expand Down Expand Up @@ -54,7 +53,7 @@
"product.pricing.titleLead": "Pay less for the same ",
"product.pricing.titleAccent": "models.",
"product.pricing.descriptionLead": "Pay only for what you generate.",
"product.pricing.descriptionRest": "Same models, same specs — no subscription, no idle fees.",
"product.pricing.descriptionRest": "BeatDesign is powered by BeatAPI. One balance, every workflow.",
"product.pricing.statCheaperHint": "cheaper than competitor",
"product.pricing.statSavingsHint": "average savings",
"product.pricing.filterAll": "All models",
Expand All @@ -67,7 +66,7 @@
"product.pricing.colHiggsfield": "Competitor H",
"product.pricing.colDiscount": "Discount",
"product.pricing.ctaPrimary": "Start creating",
"common.metadata.title": "BeatAPI",
"common.metadata.title": "BeatDesign",
"common.metadata.description": "AI design workspace for ecommerce teams",
"common.search.placeholder": "Search...",
"common.table.no_data": "No data",
Expand Down Expand Up @@ -118,7 +117,7 @@
"AppShell": {
"studio": {
"intro": {
"title": "Canvas-first BeatAPI workspace",
"title": "Canvas-first BeatDesign workspace",
"description": "Select an image, video, or prompt node, then branch the next generation directly from the canvas."
},
"toolbar": {
Expand Down Expand Up @@ -525,7 +524,7 @@
"workspaceNameLabel": "Workspace name",
"projects": "Projects",
"projectsLabel": "Open projects",
"githubRepository": "Open BeatAPI Workspace on GitHub",
"githubRepository": "Open BeatDesign on GitHub",
"projectAssets": {
"triggerLabel": "Project assets",
"title": "Project assets",
Expand Down
19 changes: 9 additions & 10 deletions messages/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,11 @@
"product.shell.chinese": "中文",
"product.shell.terms": "服务条款",
"product.shell.privacy": "隐私政策",
"product.shell.builtFor": "为 AI 创作者打造",
"product.home.eyebrow": "开源 AI 创作工作台",
"product.home.metaTitle": "BeatAPI Workspace — AI 创作 Studio 与 Canvas",
"product.home.metaDescription": "开源的 AI 图片与视频创作工作台,使用你自己的 BeatAPI API Key 在 Studio 中生成,并在 Canvas 中组织和连接素材。",
"product.home.title": "让想象,开始流动。",
"product.home.subtitle": "在 Studio 中生成图片和视频,再把每个结果连接成可复用的 Canvas 工作流。",
"product.home.eyebrow": "开源 · 本地优先",
"product.home.metaTitle": "BeatDesign — 开源 AI 图像与视频创作画布",
"product.home.metaDescription": "开源、本地优先的 AI 图像与视频创作画布。",
"product.home.titleLine1": "化繁为简,",
"product.home.titleLine2": "自由创作。",
"product.home.prompt": "描述你想创作的图片或视频...",
"product.home.createInStudio": "在 Studio 中创作",
"product.home.sectionTitle": "选择你的工作空间",
Expand Down Expand Up @@ -55,7 +54,7 @@
"product.pricing.titleLead": "同样的模型,更低的",
"product.pricing.titleAccent": "价格。",
"product.pricing.descriptionLead": "只为生成的内容付费。",
"product.pricing.descriptionRest": "同样的模型、同样的规格——没有订阅,没有闲置费用。",
"product.pricing.descriptionRest": "BeatDesign 由 BeatAPI 驱动。一个余额,贯穿每个工作流。",
"product.pricing.statCheaperHint": "对比竞品最高优惠",
"product.pricing.statSavingsHint": "平均节省",
"product.pricing.filterAll": "所有模型",
Expand All @@ -68,7 +67,7 @@
"product.pricing.colHiggsfield": "竞品 H",
"product.pricing.colDiscount": "优惠",
"product.pricing.ctaPrimary": "开始创作",
"common.metadata.title": "BeatAPI",
"common.metadata.title": "BeatDesign",
"common.metadata.description": "面向电商团队的 AI 设计工作台",
"common.search.placeholder": "搜索...",
"common.table.no_data": "暂无数据",
Expand Down Expand Up @@ -119,7 +118,7 @@
"AppShell": {
"studio": {
"intro": {
"title": "以画布为中心的 BeatAPI 工作区",
"title": "以画布为中心的 BeatDesign 工作区",
"description": "选中图片、视频或提示节点后,就能直接从画布继续分支生成。"
},
"toolbar": {
Expand Down Expand Up @@ -526,7 +525,7 @@
"workspaceNameLabel": "空间名称",
"projects": "项目",
"projectsLabel": "打开项目列表",
"githubRepository": "在 GitHub 打开 BeatAPI Workspace",
"githubRepository": "在 GitHub 打开 BeatDesign",
"projectAssets": {
"triggerLabel": "项目素材",
"title": "项目素材",
Expand Down
10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"name": "beatapi-workspace",
"name": "beatdesign",
"version": "0.1.0",
"private": true,
"description": "Open-source canvas and studio for AI image and video generation with BeatAPI",
"description": "The open-source, local-first AI canvas for image and video creation",
"license": "Apache-2.0",
"homepage": "https://github.com/BeatAPI/beatapi-workspace#readme",
"homepage": "https://github.com/BeatAPI/BeatDesign#readme",
"repository": {
"type": "git",
"url": "git+https://github.com/BeatAPI/beatapi-workspace.git"
"url": "git+https://github.com/BeatAPI/BeatDesign.git"
},
"bugs": {
"url": "https://github.com/BeatAPI/beatapi-workspace/issues"
"url": "https://github.com/BeatAPI/BeatDesign/issues"
},
"engines": {
"node": ">=22",
Expand Down
2 changes: 1 addition & 1 deletion src/components/app/product-page-shell.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ test('workspace header keeps mode switching, shared assets, and API configuratio
assert.match(shellSource, /GitHubIcon/);
assert.match(
shellSource,
/https:\/\/github\.com\/BeatAPI\/beatapi-workspace/
/https:\/\/github\.com\/BeatAPI\/BeatDesign/
);
assert.match(shellSource, /target="_blank"/);
assert.match(shellSource, /rel="noreferrer"/);
Expand Down
2 changes: 1 addition & 1 deletion src/components/app/product-page-shell.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ export function ProductPageShell({
providerId={envConfigs.generation_provider}
/>
<a
href="https://github.com/BeatAPI/beatapi-workspace"
href="https://github.com/BeatAPI/BeatDesign"
target="_blank"
rel="noreferrer"
aria-label={t('header.githubRepository')}
Expand Down
11 changes: 3 additions & 8 deletions src/components/marketing/beatapi-product-home.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ function getCopy(locale: string) {
const messageLocale = locale === 'zh' ? 'zh' : 'en';
return {
eyebrow: m['product.home.eyebrow']({}, { locale: messageLocale }),
title: m['product.home.title']({}, { locale: messageLocale }),
subtitle: m['product.home.subtitle']({}, { locale: messageLocale }),
titleLine1: m['product.home.titleLine1']({}, { locale: messageLocale }),
titleLine2: m['product.home.titleLine2']({}, { locale: messageLocale }),
prompt: m['product.home.prompt']({}, { locale: messageLocale }),
sectionTitle: m['product.home.sectionTitle']({}, { locale: messageLocale }),
projects: m['product.home.viewProjects']({}, { locale: messageLocale }),
Expand Down Expand Up @@ -140,9 +140,7 @@ function PromptComposer({ copy }: { copy: HomeCopy }) {

export function BeatApiProductHome({ locale }: { locale: string }) {
const copy = getCopy(locale);
const titleLines = copy.title
.split('. ')
.map((part, index, all) => (index < all.length - 1 ? `${part}.` : part));
const titleLines = [copy.titleLine1, copy.titleLine2];

return (
<BeatApiProductShell active="home" locale={locale}>
Expand All @@ -159,9 +157,6 @@ export function BeatApiProductHome({ locale }: { locale: string }) {
</span>
))}
</h1>
<p className="mx-auto mt-5 w-full max-w-[720px] text-pretty text-[15px] leading-6 text-[var(--beat-text-2)]">
{copy.subtitle}
</p>
<PromptComposer copy={copy} />
</section>

Expand Down
2 changes: 0 additions & 2 deletions src/components/marketing/beatapi-product-shell.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ function getShellCopy(locale: string) {
chinese: m['product.shell.chinese']({}, { locale: messageLocale }),
terms: m['product.shell.terms']({}, { locale: messageLocale }),
privacy: m['product.shell.privacy']({}, { locale: messageLocale }),
builtFor: m['product.shell.builtFor']({}, { locale: messageLocale }),
};
}

Expand Down Expand Up @@ -255,7 +254,6 @@ export function BeatApiProductShell({
<Link href="/privacy-policy" className="transition hover:text-[#b6b6bb]">
{copy.privacy}
</Link>
<span>{copy.builtFor}</span>
</div>
</footer>
</div>
Expand Down
2 changes: 1 addition & 1 deletion src/config/db/schema.sqlite.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* Single-user BeatAPI Workspace schema for local SQLite and Cloudflare D1.
* Single-user BeatDesign schema for local SQLite and Cloudflare D1.
* The workspace deliberately has no auth, billing, credits, or RBAC tables.
*/

Expand Down
4 changes: 2 additions & 2 deletions src/config/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ const publicEnv = (key: string) => metaEnv[key] ?? procEnv[key];

export const envConfigs: Record<string, string> = {
app_url: publicEnv('VITE_APP_URL') ?? 'http://localhost:3020',
app_name: publicEnv('VITE_APP_NAME') ?? 'BeatAPI Workspace',
app_name: publicEnv('VITE_APP_NAME') ?? 'BeatDesign',
app_description:
publicEnv('VITE_APP_DESCRIPTION') ??
'Open-source canvas and studio for AI image and video generation',
'The open-source, local-first AI canvas for image and video creation.',
app_logo: publicEnv('VITE_APP_LOGO') ?? '/logo.png',
generation_provider: publicEnv('VITE_GENERATION_PROVIDER') ?? 'beatapi',

Expand Down
Loading
Loading