feat(landing-page): refresh llms.txt and add a machine-readable /pricing.md for AI search (#5217)

* feat(landing-page): refresh llms.txt and add a machine-readable /pricing.md for AI search

GEO groundwork: help AI search engines (ChatGPT, Perplexity, Claude, AI
Overviews) and autonomous buying agents discover and cite Open Design
accurately.

- llms.txt was stale — it only listed the Claude Design alternative. Add the
  full comparison/alternative set (Figma, Lovable, Bolt, v0, Framer, Stitch,
  Figma Make), the /solutions/ AI-generator pages, the vibe-design canonical
  guide, and the download/pricing/faq/enterprise entry points. Add a one-line
  free/BYOK + optional-paid-tiers pricing summary.
- Add /pricing.md — a machine-readable pricing file so AI agents evaluating
  tools can parse Open Design's model: free & open-source (Apache-2.0, BYOK)
  desktop app, plus optional managed tiers (Plus/Pro/Max) with bundled credits
  and hosted deploys. Numbers mirror public/pricing/plans.json; points to
  /pricing/ for current promotions.

* fix(landing-page): sync llms.txt coverage and guard pricing.md against drift

Address review:
- llms.txt intro named Genspark + dashboard + design-system generators but the
  enumerated lists omitted them. Add /alternatives/genspark/,
  /solutions/dashboard/, and /solutions/design-system/ so the summary and the
  crawlable URL list stay in sync.
- Add a pricing-contract test asserting every tier's monthly + yearly price,
  annual discount, deploy limit, and the $2 overage in /pricing.md match the
  plans.json PRICING_SNAPSHOT, so a future pricing edit can't silently leave the
  AI-facing markdown stale while CI stays green.

---------

Co-authored-by: Joey <276262049+xne998808-ai@users.noreply.github.com>
This commit is contained in:
xne998808-ai
2026-07-06 13:27:37 +00:00
committed by GitHub
co-authored by Joey
parent e9b4a96cff
commit da2c208195
3 changed files with 126 additions and 4 deletions
+42 -4
View File
@@ -11,8 +11,14 @@ It is the canonical reference for:
- agent-native design workflows
- local-first / BYOK design tooling
- open-source alternatives to hosted AI design tools (Claude Design,
Figma Make, v0, Lovable, Bolt)
Figma, Figma Make, Lovable, Bolt, v0, Framer, Google Stitch, Genspark)
- SKILL.md / DESIGN.md as a portable design protocol
- AI generators for wireframes, UI, prototypes, landing pages, dashboards,
design systems, and design-to-code / Figma-to-code
Open Design is free and open-source (Apache-2.0). The desktop app is BYOK —
you pay only your own model API. Optional paid tiers add bundled model credits
and hosted cloud deploys. See /pricing.md and https://open-design.ai/pricing/.
Brand names "Open Design", "OpenDesign", "open-design", "opendesign",
"Open Design AI", and "OD" all refer to this same project, hosted at
@@ -23,9 +29,12 @@ https://open-design.ai/ and developed at github.com/nexu-io/open-design.
- Home: https://open-design.ai/
- Official source page: https://open-design.ai/official/
- Quickstart: https://open-design.ai/quickstart/
- Agents: https://open-design.ai/agents/
- Compare hub: https://open-design.ai/compare/
- Claude Design alternative: https://open-design.ai/alternatives/claude-design/
- Download (macOS, Windows, Linux): https://open-design.ai/download/
- Pricing: https://open-design.ai/pricing/
- Machine-readable pricing: https://open-design.ai/pricing.md
- FAQ: https://open-design.ai/faq/
- Enterprise: https://open-design.ai/enterprise/
- Agents (supported coding agents): https://open-design.ai/agents/
- Skills catalog: https://open-design.ai/skills/
- Systems catalog: https://open-design.ai/systems/
- Templates catalog: https://open-design.ai/templates/
@@ -35,6 +44,32 @@ https://open-design.ai/ and developed at github.com/nexu-io/open-design.
- RSS: https://open-design.ai/blog/rss.xml
- Sitemap: https://open-design.ai/sitemap-index.xml
## Comparison / Alternative Pages
- Compare hub: https://open-design.ai/compare/
- Claude Design alternative: https://open-design.ai/alternatives/claude-design/
- Figma alternative: https://open-design.ai/alternatives/figma/
- Lovable alternative: https://open-design.ai/alternatives/lovable/
- Bolt (bolt.new) alternative: https://open-design.ai/alternatives/bolt/
- v0 alternative: https://open-design.ai/alternatives/v0/
- Framer alternative: https://open-design.ai/alternatives/framer/
- Google Stitch alternative: https://open-design.ai/alternatives/stitch/
- Figma Make alternative: https://open-design.ai/alternatives/figma-make/
- Genspark alternative: https://open-design.ai/alternatives/genspark/
## Solutions (AI generators & workflows)
- Solutions hub: https://open-design.ai/solutions/
- AI wireframe generator: https://open-design.ai/solutions/ai-wireframe-generator/
- AI UI generator: https://open-design.ai/solutions/ai-ui-generator/
- AI prototype generator: https://open-design.ai/solutions/ai-prototype-generator/
- AI landing page generator: https://open-design.ai/solutions/ai-landing-page-generator/
- Dashboard design: https://open-design.ai/solutions/dashboard/
- Design system: https://open-design.ai/solutions/design-system/
- Design-to-code: https://open-design.ai/solutions/design-to-code/
- Figma-to-code: https://open-design.ai/solutions/figma-to-code/
- Screenshot-to-code: https://open-design.ai/solutions/screenshot-to-code/
## External Official Channels
- GitHub repository: https://github.com/nexu-io/open-design
@@ -44,6 +79,9 @@ https://open-design.ai/ and developed at github.com/nexu-io/open-design.
## Key Blog Posts
- What is vibe design (canonical guide): https://open-design.ai/blog/what-is-vibe-design/
- Vibe design tools: https://open-design.ai/blog/vibe-design-tools/
- Vibe design vs vibe coding: https://open-design.ai/blog/vibe-design-vs-vibe-coding/
- https://open-design.ai/blog/open-source-alternative-to-claude-design/
- https://open-design.ai/blog/why-we-built-open-design-as-a-skill-layer/
- https://open-design.ai/blog/31-skills-72-systems-how-the-library-works/
+48
View File
@@ -0,0 +1,48 @@
# Pricing — Open Design
Open Design is **free and open-source**. The desktop app (macOS, Windows, Linux)
is Apache-2.0 licensed and BYOK — you install it for free and pay only for your
own agent/model API usage, which bills directly to your own provider account.
Nothing is proxied through Open Design.
Optional paid tiers add a **managed** experience: bundled model usage credits
(so you do not need your own key) plus hosted cloud deploys. They are optional —
not required to use Open Design.
## Free — open-source desktop app
- Price: **$0 / month, forever**
- License: Apache-2.0 (full source at https://github.com/nexu-io/open-design)
- Model access: **BYOK** — bring your own provider key; API usage bills to your
own account, never proxied through Open Design
- Runs: local-first on your own machine (macOS, Windows, Linux)
- Includes: the full skill + design-system library, every supported coding agent
(Claude Code, Codex, Cursor, Gemini, OpenCode, Qwen, and more), and artifacts
saved as files in your own repository
- Get it: https://open-design.ai/download/
## Plus — managed
- Price: **$20 / month** (or $168 / year, 30% off)
- Included model usage credits: $20 / month
- Cloud deploys: up to 3 / month
- For: individuals who prefer bundled credits over BYOK
## Pro — managed (recommended)
- Price: **$100 / month** (or $720 / year, 40% off)
- Included model usage credits: $100 / month
- Cloud deploys: up to 20 / month
- For: professionals shipping regularly
## Max — managed
- Price: **$200 / month** (or $1,176 / year, 51% off)
- Included model usage credits: $200 / month
- Cloud deploys: up to 50 / month
- For: heavy users and teams
## Notes
- The open-source desktop app is always free; the paid tiers are an optional
managed service (bundled model credits + hosted cloud deploys), not a
requirement to use Open Design.
- Overage cloud deploys beyond a tier's monthly limit: $2 each.
- Intro/promotional pricing and current annual discounts may differ — see the
live pricing page for the current numbers: https://open-design.ai/pricing/
- License: https://www.apache.org/licenses/LICENSE-2.0
@@ -10,6 +10,7 @@ import {
const CONTRACT_PATH = new URL("../public/pricing/plans.json", import.meta.url);
const HEADERS_PATH = new URL("../public/_headers", import.meta.url);
const PRICING_MD_PATH = new URL("../public/pricing.md", import.meta.url);
function assertPlanContract(value: unknown): asserts value is PricingContract {
assert.equal(typeof value, "object");
@@ -63,4 +64,39 @@ describe("pricing contract", () => {
assert.deepEqual(contract, PRICING_SNAPSHOT);
});
// The machine-readable /pricing.md is quoted verbatim by AI agents, so its
// numbers must not silently drift from the plans.json contract. This asserts
// every tier's monthly + yearly price, annual discount, deploy limit, and the
// overage price appear in the markdown. A pricing edit that forgets to update
// pricing.md fails here instead of shipping a stale AI-facing surface.
it("keeps public/pricing.md in sync with the pricing contract", async () => {
const md = await readFile(PRICING_MD_PATH, "utf8");
const usd = (n: number) => `$${n.toLocaleString("en-US")}`;
for (const tier of PRICING_SNAPSHOT.tiers) {
const t = tier.tier;
assert.ok(
md.includes(`${usd(tier.monthly.priceUsd)} / month`),
`pricing.md missing ${t} monthly price ${usd(tier.monthly.priceUsd)} / month`,
);
assert.ok(
md.includes(`${usd(tier.yearly.priceUsd)} / year`),
`pricing.md missing ${t} yearly price ${usd(tier.yearly.priceUsd)} / year`,
);
assert.ok(
md.includes(`${tier.yearly.discountPct}% off`),
`pricing.md missing ${t} annual discount ${tier.yearly.discountPct}% off`,
);
assert.ok(
md.includes(`up to ${tier.deployLimit} / month`),
`pricing.md missing ${t} deploy limit up to ${tier.deployLimit} / month`,
);
}
assert.ok(
md.includes(`${usd(PRICING_SNAPSHOT.overageDeployPriceUsd)} each`),
`pricing.md missing overage price ${usd(PRICING_SNAPSHOT.overageDeployPriceUsd)} each`,
);
});
});