Skip to content

Commit 921c065

Browse files
committed
Moves Terms of Service to be backed by a markdown file, easier to read/edit/diff
1 parent b839bcd commit 921c065

File tree

4 files changed

+156
-322
lines changed

4 files changed

+156
-322
lines changed

apps/web-roo-code/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@
3131
"react-cookie-consent": "^9.0.0",
3232
"react-dom": "^18.3.1",
3333
"react-icons": "^5.5.0",
34+
"react-markdown": "^9.0.3",
3435
"recharts": "^2.15.3",
36+
"remark-gfm": "^4.0.1",
3537
"tailwind-merge": "^3.3.0",
3638
"tailwindcss-animate": "^1.0.7",
3739
"tldts": "^6.1.86",
Lines changed: 45 additions & 304 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
import type { Metadata } from "next"
22
import { SEO } from "@/lib/seo"
3+
import fs from "fs"
4+
import path from "path"
5+
import ReactMarkdown from "react-markdown"
6+
import remarkGfm from "remark-gfm"
37

48
const TITLE = "Terms of Service"
59
const DESCRIPTION =
@@ -38,315 +42,52 @@ export const metadata: Metadata = {
3842
keywords: [...SEO.keywords, "terms of service", "legal", "agreement", "subscription"],
3943
}
4044

41-
export default function Terms() {
42-
return (
43-
<>
44-
<div className="container mx-auto px-4 py-12 sm:px-6 lg:px-8">
45-
<div className="prose prose-lg mx-auto max-w-4xl dark:prose-invert">
46-
<h1 className="text-3xl font-bold tracking-tight sm:text-4xl md:text-5xl">
47-
Roo Code Cloud Terms of Service
48-
</h1>
49-
<p className="text-muted-foreground">
50-
<em>(Version 1.0 – Effective June 19, 2025)</em>
51-
</p>
52-
53-
<p className="lead">
54-
These Terms of Service (&quot;<strong>TOS</strong>&quot;) govern access to and use of the Roo
55-
Code Cloud service (the &quot;<strong>Service</strong>&quot;). They apply to:
56-
</p>
57-
<ul className="lead">
58-
<li>
59-
<strong>(a)</strong> every <strong>Sales Order Form</strong> or similar document mutually
60-
executed by Roo Code and the customer that references these TOS; <strong>and</strong>
61-
</li>
62-
<li>
63-
<strong>(b)</strong> any{" "}
64-
<strong>online plan-selection, self-service sign-up, or in-app purchase flow</strong>{" "}
65-
through which a customer clicks an &quot;I Agree&quot; (or equivalent) button to accept
66-
these TOS — such flow also being an <strong>&quot;Order Form.&quot;</strong>
67-
</li>
68-
</ul>
69-
70-
<p>
71-
By <strong>creating an account, clicking to accept, or using the Service</strong>, the person or
72-
entity doing so (&quot;<strong>Customer</strong>&quot;) agrees to be bound by these TOS, even if
73-
no separate Order Form is signed.
74-
</p>
45+
function getTermsContent() {
46+
const filePath = path.join(process.cwd(), "src/app/terms/terms.md")
47+
return fs.readFileSync(filePath, "utf8")
48+
}
7549

76-
<p>
77-
If Roo Code and Customer later execute a Master Subscription Agreement (&quot;
78-
<strong>MSA</strong>&quot;), the MSA governs; otherwise, these TOS and the applicable Order Form
79-
together form the entire agreement (the &quot;<strong>Agreement</strong>&quot;).
80-
</p>
50+
export default function Terms() {
51+
const content = getTermsContent()
8152

82-
<h2 className="mt-12 text-2xl font-bold">1. Agreement Framework</h2>
83-
<ol>
84-
<li>
85-
<strong>Incorporation of Standard Terms.</strong>
86-
<br />
87-
The{" "}
53+
return (
54+
<div className="container mx-auto px-4 py-12 sm:px-6 lg:px-8">
55+
<div className="prose prose-lg mx-auto max-w-4xl dark:prose-invert">
56+
<ReactMarkdown
57+
remarkPlugins={[remarkGfm]}
58+
components={{
59+
h1: ({ ...props }) => (
60+
<h1 className="text-3xl font-bold tracking-tight sm:text-4xl md:text-5xl" {...props} />
61+
),
62+
h2: ({ ...props }) => <h2 className="mt-12 text-2xl font-bold" {...props} />,
63+
a: ({ ...props }) => (
8864
<a
89-
href="https://commonpaper.com/standards/cloud-service-agreement/2.0/"
65+
className="text-primary hover:underline"
9066
target="_blank"
9167
rel="noopener noreferrer"
92-
className="text-primary hover:underline">
93-
<em>Common Paper Cloud Service Standard Terms v 2.0</em>
94-
</a>{" "}
95-
(the &quot;<strong>Standard Terms</strong>&quot;) are incorporated by reference. If these
96-
TOS conflict with the Standard Terms, these TOS control.
97-
</li>
98-
<li>
99-
<strong>Order of Precedence.</strong>
100-
<br />
101-
(a) Order Form (b) these TOS (c) Standard Terms.
102-
</li>
103-
</ol>
104-
105-
<h2 className="mt-12 text-2xl font-bold">2. Key Commercial Terms</h2>
106-
107-
<div className="overflow-x-auto">
108-
<table className="min-w-full border-collapse border border-border">
109-
<thead>
110-
<tr className="bg-muted/50">
111-
<th className="border border-border px-4 py-2 text-left font-semibold">Term</th>
112-
<th className="border border-border px-4 py-2 text-left font-semibold">Value</th>
113-
</tr>
114-
</thead>
115-
<tbody>
116-
<tr>
117-
<td className="border border-border px-4 py-2 font-medium">
118-
Governing Law / Forum
119-
</td>
120-
<td className="border border-border px-4 py-2">
121-
Delaware law; exclusive jurisdiction and venue in the state or federal courts
122-
located in Delaware
123-
</td>
124-
</tr>
125-
<tr className="bg-muted/25">
126-
<td className="border border-border px-4 py-2 font-medium">
127-
Plans & Subscription Periods
128-
</td>
129-
<td className="border border-border px-4 py-2">
130-
<em>Free Plan:</em> month-to-month.
131-
<br />
132-
<em>Paid Plans:</em> Monthly <strong>or</strong> Annual, as selected in an Order
133-
Form or the online flow.
134-
</td>
135-
</tr>
136-
<tr>
137-
<td className="border border-border px-4 py-2 font-medium">
138-
Auto-Renewal & Non-Renewal Notice
139-
</td>
140-
<td className="border border-border px-4 py-2">
141-
<em>Free Plan:</em> renews continuously until cancelled in the dashboard.
142-
<br />
143-
<em>Paid Plans:</em> renew for the same period unless either party gives 30
144-
days&apos; written notice before the current period ends.
145-
</td>
146-
</tr>
147-
<tr className="bg-muted/25">
148-
<td className="border border-border px-4 py-2 font-medium">Fees & Usage</td>
149-
<td className="border border-border px-4 py-2">
150-
<em>Free Plan:</em> Subscription Fee = $0.
151-
<br />
152-
<em>Paid Plans:</em> Fees stated in the Order Form or online checkout{" "}
153-
<strong>plus</strong> usage-based fees, calculated and invoiced monthly.
154-
</td>
155-
</tr>
156-
<tr>
157-
<td className="border border-border px-4 py-2 font-medium">Payment Terms</td>
158-
<td className="border border-border px-4 py-2">
159-
<em>Monthly paid plans:</em> credit-card charge on the billing date.
160-
<br />
161-
<em>Annual paid plans:</em> invoiced Net 30 (credit card optional).
162-
</td>
163-
</tr>
164-
<tr className="bg-muted/25">
165-
<td className="border border-border px-4 py-2 font-medium">
166-
General Liability Cap
167-
</td>
168-
<td className="border border-border px-4 py-2">
169-
The greater of (i) USD 100 and (ii) 1 × Fees paid or payable in the 12 months
170-
before the event giving rise to liability.
171-
</td>
172-
</tr>
173-
<tr>
174-
<td className="border border-border px-4 py-2 font-medium">
175-
Increased Cap / Unlimited Claims
176-
</td>
177-
<td className="border border-border px-4 py-2">None</td>
178-
</tr>
179-
<tr className="bg-muted/25">
180-
<td className="border border-border px-4 py-2 font-medium">Trial / Pilot</td>
181-
<td className="border border-border px-4 py-2">Not offered</td>
182-
</tr>
183-
<tr>
184-
<td className="border border-border px-4 py-2 font-medium">Beta Features</td>
185-
<td className="border border-border px-4 py-2">
186-
None – only generally available features are provided
187-
</td>
188-
</tr>
189-
<tr className="bg-muted/25">
190-
<td className="border border-border px-4 py-2 font-medium">Security Standard</td>
191-
<td className="border border-border px-4 py-2">
192-
Roo Code maintains commercially reasonable administrative, physical, and
193-
technical safeguards
194-
</td>
195-
</tr>
196-
<tr>
197-
<td className="border border-border px-4 py-2 font-medium">Machine-Learning Use</td>
198-
<td className="border border-border px-4 py-2">
199-
Roo Code <strong>does not</strong> use Customer Content to train, fine-tune, or
200-
improve any ML or AI models
201-
</td>
202-
</tr>
203-
<tr className="bg-muted/25">
204-
<td className="border border-border px-4 py-2 font-medium">
205-
Data Processing Addendum (DPA)
206-
</td>
207-
<td className="border border-border px-4 py-2">
208-
GDPR/CCPA-ready DPA available upon written request
209-
</td>
210-
</tr>
211-
<tr>
212-
<td className="border border-border px-4 py-2 font-medium">
213-
Publicity / Logo Rights
214-
</td>
215-
<td className="border border-border px-4 py-2">
216-
Roo Code may identify Customer (name & logo) in marketing materials unless
217-
Customer opts out in writing
218-
</td>
219-
</tr>
220-
</tbody>
221-
</table>
222-
</div>
223-
224-
<h2 className="mt-12 text-2xl font-bold">3. Modifications to the Standard Terms</h2>
225-
<ol>
226-
<li>
227-
<strong>Section 1.6 (Machine Learning).</strong>
228-
<br />
229-
&quot;Provider will not use Customer Content or Usage Data to train, fine-tune, or improve
230-
any machine-learning or AI model, except with Customer&apos;s prior written consent.&quot;
231-
</li>
232-
<li>
233-
<strong>Section 3 (Security).</strong>
234-
<br />
235-
Replace &quot;reasonable&quot; with &quot;commercially reasonable.&quot;
236-
</li>
237-
<li>
238-
<strong>Section 4 (Fees & Payment).</strong>
239-
<br />
240-
Add usage-billing language above and delete any provision allowing unilateral fee increases.
241-
</li>
242-
<li>
243-
<strong>Section 5 (Term & Termination).</strong>
244-
<br />
245-
Insert auto-renewal and free-plan language above.
246-
</li>
247-
<li>
248-
<strong>Sections 7 (Trials / Betas) and any SLA references.</strong>
249-
<br />
250-
Deleted – Roo Code offers no trials, pilots, betas, or SLA credits under these TOS.
251-
</li>
252-
<li>
253-
<strong>Section 12.12 (Publicity).</strong>
254-
<br />
255-
As reflected in the &quot;Publicity / Logo Rights&quot; row above.
256-
</li>
257-
</ol>
258-
259-
<h2 className="mt-12 text-2xl font-bold">4. Use of the Service</h2>
260-
<p>
261-
Customer may access and use the Service solely for its internal business purposes and subject to
262-
the Acceptable Use Policy in the Standard Terms.
263-
</p>
264-
265-
<h2 className="mt-12 text-2xl font-bold">5. Account Management & Termination</h2>
266-
<ul>
267-
<li>
268-
<strong>Self-service cancellation or downgrade.</strong>
269-
<br />
270-
Customer may cancel a Free Plan immediately, or cancel/downgrade a Paid Plan effective at
271-
the end of the current billing cycle, via the web dashboard.
272-
</li>
273-
<li>
274-
Either party may otherwise terminate the Agreement as allowed under Section 5 of the
275-
Standard Terms.
276-
</li>
277-
</ul>
278-
279-
<h2 className="mt-12 text-2xl font-bold">6. Privacy & Data</h2>
280-
<p>
281-
Roo Code&apos;s Privacy Notice (
282-
<a
283-
href="https://roocode.com/privacy"
284-
rel="noopener noreferrer"
285-
className="text-primary hover:underline">
286-
https://roocode.com/privacy
287-
</a>
288-
) explains how Roo Code collects and handles personal information. If Customer requires a DPA,
289-
email{" "}
290-
<a href="mailto:[email protected]" className="text-primary hover:underline">
291-
292-
</a>
293-
.
294-
</p>
295-
296-
<h2 className="mt-12 text-2xl font-bold">7. Warranty Disclaimer</h2>
297-
<p>
298-
Except as expressly stated in the Agreement, the Service is provided{" "}
299-
<strong>&quot;as is,&quot;</strong> and all implied warranties are disclaimed to the maximum
300-
extent allowed by law.
301-
</p>
302-
303-
<h2 className="mt-12 text-2xl font-bold">8. Limitation of Liability</h2>
304-
<p>
305-
The caps in Section 2 apply to all claims under the Agreement, whether in contract, tort, or
306-
otherwise, except for Excluded Claims defined in the Standard Terms.
307-
</p>
308-
309-
<h2 className="mt-12 text-2xl font-bold">9. Miscellaneous</h2>
310-
<ol>
311-
<li>
312-
<strong>Assignment.</strong>
313-
<br />
314-
Customer may not assign the Agreement without Roo Code&apos;s prior written consent, except
315-
to a successor in a merger or sale of substantially all assets.
316-
</li>
317-
<li>
318-
<strong>Export Compliance.</strong>
319-
<br />
320-
Each party will comply with all applicable export-control laws and regulations and will not
321-
export or re-export any software or technical data without the required government licences.
322-
</li>
323-
<li>
324-
<strong>Entire Agreement.</strong>
325-
<br />
326-
The Agreement supersedes all prior or contemporaneous agreements for the Service.
327-
</li>
328-
<li>
329-
<strong>Amendments.</strong>
330-
<br />
331-
Roo Code may update these TOS by posting a revised version at the same URL and emailing or
332-
in-app notifying Customer at least 30 days before changes take effect. Continued use after
333-
the effective date constitutes acceptance.
334-
</li>
335-
</ol>
336-
337-
<h2 className="mt-12 text-2xl font-bold">10. Contact</h2>
338-
<p>
339-
<strong>Roo Code, Inc.</strong>
340-
<br />
341-
98 Graceland Dr, San Rafael, CA 94901 USA
342-
<br />
343-
Email:{" "}
344-
<a href="mailto:[email protected]" className="text-primary hover:underline">
345-
346-
</a>
347-
</p>
348-
</div>
68+
{...props}
69+
/>
70+
),
71+
table: ({ ...props }) => (
72+
<div className="overflow-x-auto">
73+
<table className="min-w-full border-collapse border border-border" {...props} />
74+
</div>
75+
),
76+
th: ({ ...props }) => (
77+
<th className="border border-border px-4 py-2 text-left font-semibold" {...props} />
78+
),
79+
td: ({ node: _node, ...props }) => {
80+
// Check if this is the first column (Term column)
81+
const isTermColumn = _node?.position?.start.column === 1
82+
if (isTermColumn) {
83+
return <td className="border border-border px-4 py-2 font-medium" {...props} />
84+
}
85+
return <td className="border border-border px-4 py-2" {...props} />
86+
},
87+
}}>
88+
{content}
89+
</ReactMarkdown>
34990
</div>
350-
</>
91+
</div>
35192
)
35293
}

0 commit comments

Comments
 (0)