diff --git a/site/scripts/generate-llms-txt.mjs b/site/scripts/generate-llms-txt.mjs index 267136a..e9b4179 100644 --- a/site/scripts/generate-llms-txt.mjs +++ b/site/scripts/generate-llms-txt.mjs @@ -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) { diff --git a/site/src/app/_components/SiteFooter.tsx b/site/src/app/_components/SiteFooter.tsx new file mode 100644 index 0000000..b153562 --- /dev/null +++ b/site/src/app/_components/SiteFooter.tsx @@ -0,0 +1,47 @@ +import Link from "next/link"; + +import { GitHubIcon } from "./icons"; + +export function SiteFooter() { + return ( + + ); +} diff --git a/site/src/app/_components/SiteHeader.tsx b/site/src/app/_components/SiteHeader.tsx new file mode 100644 index 0000000..b64fc2b --- /dev/null +++ b/site/src/app/_components/SiteHeader.tsx @@ -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 ( +
+ + + + Skills + + + +
+ + + + Developer docs + + +
+
+ ); +} diff --git a/site/src/app/page.tsx b/site/src/app/page.tsx index 0828915..0aa12a3 100644 --- a/site/src/app/page.tsx +++ b/site/src/app/page.tsx @@ -1,5 +1,3 @@ -import { Badge, Logo } from "@stellar/design-system"; - import { INSTALLERS } from "@/data/installers.mjs"; import { ECOSYSTEM_CARDS, @@ -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"; @@ -97,28 +95,7 @@ export default function LandingPage() { )} -
-
- - - Skills - -
- -
- - - - Developer docs - - -
-
+
@@ -190,13 +167,17 @@ export default function LandingPage() {

Community skills

- 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. +

+

+ 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.

@@ -245,28 +226,7 @@ export default function LandingPage() {
- + ); } diff --git a/site/src/app/styles.scss b/site/src/app/styles.scss index c66100c..58d6aa4 100644 --- a/site/src/app/styles.scss +++ b/site/src/app/styles.scss @@ -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); } @@ -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); @@ -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; @@ -85,6 +96,7 @@ display: flex; align-items: center; gap: pxToRem(8px); + text-decoration: none; svg { width: pxToRem(96px); diff --git a/site/src/app/terms/page.tsx b/site/src/app/terms/page.tsx new file mode 100644 index 0000000..3ecfc05 --- /dev/null +++ b/site/src/app/terms/page.tsx @@ -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 ( +
+ + +
+

Stellar Skills Terms of Service

+

Effective Date: June 30, 2026

+ +

+ These Terms of Service (“Terms”) govern your access to and + use of skills.stellar.org (the “Site”), operated by the + Stellar Development Foundation (“SDF,” “we,” + or “us”). +

+ +

+ By accessing or using the Site, you agree to be bound by the{" "} + + Stellar.org Terms of Service + {" "} + (the “Stellar ToS”) and the{" "} + + Stellar.org Privacy Policy + + , each of which is incorporated herein by reference. +

+ +

+ 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. +

+ +

1. About Stellar Skills

+

+ The Site provides technical documentation (“Skills”) + 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. +

+ +

2. Content Licensing

+

+ Skill content hosted on this Site is made available under the{" "} + + Apache License 2.0 + + , 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 + “Intellectual property rights” section of the Stellar ToS + do not limit rights expressly granted to you by an applicable + open-source license for the underlying Skill content. +

+ +

3. No Warranty; Use at Your Own Risk

+

+ ALL SKILLS AND OTHER CONTENT ON THIS SITE ARE PROVIDED “AS + IS” AND “AS AVAILABLE” 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. +

+

+ 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. +

+ +

4. AI-Generated Output

+

+ 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. +

+ +

5. Third-Party Ecosystem Content

+

+ 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. +

+ +

6. Analytics; Privacy

+

+ 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{" "} + + Stellar.org Privacy Policy + + . We do not use cookies or client-side tracking on this Site. +

+ +

7. Changes; Contact

+

+ 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. +

+

+ Questions about these Terms may be directed to{" "} + legal@stellar.org. +

+
+ + +
+ ); +} diff --git a/site/src/app/terms/styles.scss b/site/src/app/terms/styles.scss new file mode 100644 index 0000000..e4dfbc2 --- /dev/null +++ b/site/src/app/terms/styles.scss @@ -0,0 +1,63 @@ +@use "@/styles/utils.scss" as *; + +.TermsPage { + min-height: 100vh; + display: flex; + flex-direction: column; + background-color: var(--sds-clr-gray-02); + color: var(--sds-clr-gray-12); +} + +.TermsPage__main { + max-width: pxToRem(720px); + width: 100%; + margin: 0 auto; + padding: pxToRem(48px) pxToRem(20px) pxToRem(80px); + + h1 { + font-family: "Inter", sans-serif; + font-size: pxToRem(24px); + font-weight: 600; + line-height: pxToRem(32px); + margin: 0 0 pxToRem(8px); + color: var(--sds-clr-gray-12); + } + + h2 { + font-family: "Inter", sans-serif; + font-size: pxToRem(13px); + font-weight: 600; + line-height: pxToRem(20px); + margin: pxToRem(28px) 0 pxToRem(8px); + color: var(--sds-clr-gray-12); + text-transform: uppercase; + letter-spacing: 0.04em; + } + + p { + font-family: "Inter", sans-serif; + font-size: pxToRem(14px); + font-weight: 400; + line-height: pxToRem(22px); + color: var(--sds-clr-gray-11); + margin: 0 0 pxToRem(12px); + } + + a { + color: var(--sds-clr-lilac-11); + text-decoration: underline; + transition: color var(--sds-anim-transition-default); + + @media (hover: hover) { + &:hover { + color: var(--sds-clr-lilac-09); + } + } + } +} + +.TermsPage__meta { + font-size: pxToRem(12px) !important; + color: var(--sds-clr-gray-09) !important; + margin-bottom: pxToRem(32px) !important; +}