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
2 changes: 1 addition & 1 deletion site/scripts/generate-llms-txt.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ if (realEcosystem.length > 0) {
lines.push("## Community Built");
lines.push("");
lines.push(
"Other community-built skills that may be helpful for your build. These aren't installed via the methods above; each project has its own setup, so follow the link on each entry. Not endorsed by the Stellar Foundation; do your own research. To get a skill listed here, open a pull request adding it to ECOSYSTEM_CARDS in site/src/data/skills.ts of https://github.com/stellar/stellar-dev-skill.",
"Community-built skills maintained by their respective authors, not by SDF. Each project has its own setup; follow the link on each entry. These skills are not reviewed, endorsed, or warranted by the Stellar Development Foundation. Evaluate each skill independently before use.",
);
lines.push("");
for (const c of realEcosystem) {
Expand Down
47 changes: 47 additions & 0 deletions site/src/app/_components/SiteFooter.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import Link from "next/link";

import { GitHubIcon } from "./icons";

export function SiteFooter() {
return (
<footer className="SkillsLanding__footer">
<span className="SkillsLanding__footerText">
Powered by{" "}
<a
href="https://stellar.org"
target="_blank"
rel="noopener noreferrer"
className="SkillsLanding__footerLink"
>
Stellar
</a>
</span>
<a
href="https://github.com/stellar/stellar-dev-skill"
target="_blank"
rel="noopener noreferrer"
aria-label="View source on GitHub"
className="SkillsLanding__footerGithub"
>
<GitHubIcon />
</a>
<span className="SkillsLanding__footerSep" aria-hidden="true">
·
</span>
<Link href="/terms" className="SkillsLanding__footerLink">
Terms of Service
</Link>
<span className="SkillsLanding__footerSep" aria-hidden="true">
·
</span>
<a
href="https://stellar.org/privacy-policy"
target="_blank"
rel="noopener noreferrer"
className="SkillsLanding__footerLink"
>
Privacy Policy
</a>
</footer>
);
}
33 changes: 33 additions & 0 deletions site/src/app/_components/SiteHeader.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import Link from "next/link";

import { Badge, Logo } from "@stellar/design-system";

import { LinkExternal01Icon } from "./icons";
import { ThemeSwitchIsland } from "./ThemeSwitchIsland";

export function SiteHeader() {
return (
<header className="SkillsLanding__header">
<Link href="/" className="SkillsLanding__logo" aria-label="Stellar Skills home">
<Logo.Stellar />
<Badge variant="secondary" size="md">
Skills
</Badge>
</Link>

<div className="SkillsLanding__headerActions">
<ThemeSwitchIsland />

<a
href="https://developers.stellar.org/docs"
target="_blank"
rel="noopener noreferrer"
className="SkillsLanding__headerLink"
>
Developer docs
<LinkExternal01Icon />
</a>
</div>
</header>
);
}
70 changes: 15 additions & 55 deletions site/src/app/page.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import { Badge, Logo } from "@stellar/design-system";

import { INSTALLERS } from "@/data/installers.mjs";
import {
ECOSYSTEM_CARDS,
Expand All @@ -10,10 +8,10 @@ import { readSkillMeta } from "@/lib/skill-meta.mjs";

import { CommunitySearch } from "./_components/CommunitySearch";
import { CopyButton } from "./_components/CopyButton";
import { GitHubIcon, LinkExternal01Icon } from "./_components/icons";
import { SkillCard } from "./_components/SkillCard";
import { SkillsFilter } from "./_components/SkillsFilter";
import { ThemeSwitchIsland } from "./_components/ThemeSwitchIsland";
import { SiteFooter } from "./_components/SiteFooter";
import { SiteHeader } from "./_components/SiteHeader";

import "./styles.scss";

Expand Down Expand Up @@ -97,28 +95,7 @@ export default function LandingPage() {
</div>
)}

<header className="SkillsLanding__header">
<div className="SkillsLanding__logo">
<Logo.Stellar />
<Badge variant="secondary" size="md">
Skills
</Badge>
</div>

<div className="SkillsLanding__headerActions">
<ThemeSwitchIsland />

<a
href="https://developers.stellar.org/docs"
target="_blank"
rel="noopener noreferrer"
className="SkillsLanding__headerLink"
>
Developer docs
<LinkExternal01Icon />
</a>
</div>
</header>
<SiteHeader />

<main className="SkillsLanding__main">
<section className="SkillsLanding__hero">
Expand Down Expand Up @@ -190,13 +167,17 @@ export default function LandingPage() {
<section className="SkillsLanding__ecosystem" aria-label="Community">
<h2 className="SkillsLanding__sectionTitle">Community skills</h2>
<p className="SkillsLanding__sectionDescription">
Skills built and maintained by the Stellar community. Each project
has its own install instructions, so follow the link on a card to
set it up with your agent. The resources listed here are
community-contributed and are not endorsed by the Stellar
Foundation. Always do your own research (DYOR) before using any
tool or resource. Inclusion in this list does not imply any
warranty, security audit, or official recommendation.
Skills built and maintained by members of the Stellar community.
Each project has its own install instructions; follow the link on a
card to set it up with your agent.
</p>
<p className="SkillsLanding__sectionDescription">
Community skills are independently developed and are not reviewed,
endorsed, or maintained by the Stellar Development Foundation.
Inclusion in this directory does not imply any warranty, security
audit, or recommendation by SDF. You are solely responsible for
evaluating any community skill before use, including reviewing its
code, license, and security practices.
</p>
<CommunitySearch
searchTexts={ECOSYSTEM_CARDS.map((c) =>
Expand Down Expand Up @@ -245,28 +226,7 @@ export default function LandingPage() {
</section>
</main>

<footer className="SkillsLanding__footer">
<span className="SkillsLanding__footerText">
Powered by{" "}
<a
href="https://stellar.org"
target="_blank"
rel="noopener noreferrer"
className="SkillsLanding__footerLink"
>
Stellar
</a>
</span>
<a
href="https://github.com/stellar/stellar-dev-skill"
target="_blank"
rel="noopener noreferrer"
aria-label="View source on GitHub"
className="SkillsLanding__footerGithub"
>
<GitHubIcon />
</a>
</footer>
<SiteFooter />
</div>
);
}
16 changes: 14 additions & 2 deletions site/src/app/styles.scss
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
gap: pxToRem(12px);
width: 100%;
height: pxToRem(60px);
padding: 0 pxToRem(24px);
min-height: pxToRem(60px);
padding: pxToRem(10px) pxToRem(24px);
margin-top: auto;
border-top: 1px solid var(--sds-clr-gray-06);
}
Expand All @@ -33,6 +34,9 @@
}

.SkillsLanding__footerLink {
font-family: "Inter", sans-serif;
font-size: pxToRem(14px);
font-weight: 500;
color: var(--sds-clr-lilac-11);
text-decoration: none;
transition: color var(--sds-anim-transition-default);
Expand All @@ -44,6 +48,13 @@
}
}

.SkillsLanding__footerSep {
font-family: "Inter", sans-serif;
font-size: pxToRem(14px);
color: var(--sds-clr-gray-06);
user-select: none;
}

.SkillsLanding__footerGithub {
display: inline-flex;
align-items: center;
Expand Down Expand Up @@ -85,6 +96,7 @@
display: flex;
align-items: center;
gap: pxToRem(8px);
text-decoration: none;

svg {
width: pxToRem(96px);
Expand Down
153 changes: 153 additions & 0 deletions site/src/app/terms/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
import type { Metadata } from "next";

import { SiteFooter } from "../_components/SiteFooter";
import { SiteHeader } from "../_components/SiteHeader";
import "../styles.scss";
import "./styles.scss";

export const metadata: Metadata = {
title: "Terms of Service | Stellar Skills",
description: "Stellar Skills Terms of Service — skills.stellar.org",
};

export default function TermsPage() {
return (
<div className="TermsPage">
<SiteHeader />

<main className="TermsPage__main">
<h1>Stellar Skills Terms of Service</h1>
<p className="TermsPage__meta">Effective Date: June 30, 2026</p>

<p>
These Terms of Service (&ldquo;Terms&rdquo;) govern your access to and
use of skills.stellar.org (the &ldquo;Site&rdquo;), operated by the
Stellar Development Foundation (&ldquo;SDF,&rdquo; &ldquo;we,&rdquo;
or &ldquo;us&rdquo;).
</p>

<p>
By accessing or using the Site, you agree to be bound by the{" "}
<a
href="https://stellar.org/terms-of-service"
target="_blank"
rel="noopener noreferrer"
>
Stellar.org Terms of Service
</a>{" "}
(the &ldquo;Stellar ToS&rdquo;) and the{" "}
<a
href="https://stellar.org/privacy-policy"
target="_blank"
rel="noopener noreferrer"
>
Stellar.org Privacy Policy
</a>
, each of which is incorporated herein by reference.
</p>

<p>
To the extent these Terms address a topic not covered by the Stellar
ToS, these Terms apply. To the extent of any direct conflict between
these Terms and the Stellar ToS, these Terms control with respect to
your use of this Site.
</p>

<h2>1. About Stellar Skills</h2>
<p>
The Site provides technical documentation (&ldquo;Skills&rdquo;)
designed to help AI coding assistants and developers produce more
accurate code when building on Stellar. Skills are served as
plain-text markdown files at predictable URLs. The Site does not
require authentication, does not create user accounts, and does not
process any financial transactions.
</p>

<h2>2. Content Licensing</h2>
<p>
Skill content hosted on this Site is made available under the{" "}
<a
href="https://www.apache.org/licenses/LICENSE-2.0"
target="_blank"
rel="noopener noreferrer"
>
Apache License 2.0
</a>
, or such other open-source license as may be indicated in the
applicable source repository. You may use, copy, modify, and
distribute that content in accordance with the applicable license
terms. For clarity, the intellectual property restrictions in the
&ldquo;Intellectual property rights&rdquo; section of the Stellar ToS
do not limit rights expressly granted to you by an applicable
open-source license for the underlying Skill content.
</p>

<h2>3. No Warranty; Use at Your Own Risk</h2>
<p>
ALL SKILLS AND OTHER CONTENT ON THIS SITE ARE PROVIDED &ldquo;AS
IS&rdquo; AND &ldquo;AS AVAILABLE&rdquo; WITHOUT ANY WARRANTY OF ANY
KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING WARRANTIES OF
ACCURACY, COMPLETENESS, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, OR NON-INFRINGEMENT.
</p>
<p>
Skill content may be incomplete, outdated, or incorrect. You are
solely responsible for evaluating, testing, and independently
verifying any content obtained from this Site before relying on it,
including any code derived from or informed by Skill content. SDF is
not responsible for any harm, loss, or damage resulting from your
reliance on content provided through this Site.
</p>

<h2>4. AI-Generated Output</h2>
<p>
Skills are designed to be consumed by AI coding assistants. Any code
or other output produced by an AI assistant after loading Skill
content is AI-generated output, not SDF output. You are solely
responsible for reviewing, testing, and securing any such output
before use or deployment. The AI Tools provisions of the Stellar ToS
apply to your use of AI-generated output informed by Skill content.
</p>

<h2>5. Third-Party Ecosystem Content</h2>
<p>
The Site may link to skill files maintained by third-party projects in
the Stellar ecosystem. SDF does not host, control, or endorse
third-party content. Third-party skill files are subject to their own
licenses and terms. SDF makes no representation or warranty regarding
the accuracy, completeness, security, or legality of any third-party
content. Your use of third-party content is at your own risk.
</p>

<h2>6. Analytics; Privacy</h2>
<p>
We collect limited server-side analytics data when you or an AI agent
fetches content from this Site, including the skill requested, user
agent, referrer, and timestamp. This data is processed in accordance
with the{" "}
<a
href="https://stellar.org/privacy-policy"
target="_blank"
rel="noopener noreferrer"
>
Stellar.org Privacy Policy
</a>
. We do not use cookies or client-side tracking on this Site.
</p>

<h2>7. Changes; Contact</h2>
<p>
We may modify these Terms or the Site at any time without prior
notice. Your continued use of the Site after any modification
constitutes acceptance of the revised Terms.
</p>
<p>
Questions about these Terms may be directed to{" "}
<a href="mailto:legal@stellar.org">legal@stellar.org</a>.
</p>
</main>

<SiteFooter />
</div>
);
}
Loading