···9191 <section>
9292 <h2 class="text-2xl font-semibold text-brown-900 mb-4">Why This Matters</h2>
9393 <div class="grid md:grid-cols-2 gap-4">
9494- <div class="bg-green-50 border border-green-200 p-4 rounded-lg">
9595- <h4 class="font-semibold text-green-900 mb-2">Data Ownership</h4>
9696- <p class="text-green-800 text-sm">
9494+ <div class="card p-4">
9595+ <h4 class="font-semibold text-brown-900 mb-2">Data Ownership</h4>
9696+ <p class="text-brown-700 text-sm">
9797 Your coffee data is yours. If Arabica shuts down, your data remains safe in your PDS.
9898 </p>
9999 </div>
100100- <div class="bg-green-50 border border-green-200 p-4 rounded-lg">
101101- <h4 class="font-semibold text-green-900 mb-2">Portability</h4>
102102- <p class="text-green-800 text-sm">
100100+ <div class="card p-4">
101101+ <h4 class="font-semibold text-brown-900 mb-2">Portability</h4>
102102+ <p class="text-brown-700 text-sm">
103103 Switch PDS providers without losing anything. Your identity and data move with you.
104104 </p>
105105 </div>
106106- <div class="bg-green-50 border border-green-200 p-4 rounded-lg">
107107- <h4 class="font-semibold text-green-900 mb-2">Interoperability</h4>
108108- <p class="text-green-800 text-sm">
106106+ <div class="card p-4">
107107+ <h4 class="font-semibold text-brown-900 mb-2">Interoperability</h4>
108108+ <p class="text-brown-700 text-sm">
109109 Other apps can build on the same data. Future coffee apps could read your Arabica brews.
110110 </p>
111111 </div>
112112- <div class="bg-green-50 border border-green-200 p-4 rounded-lg">
113113- <h4 class="font-semibold text-green-900 mb-2">Transparency</h4>
114114- <p class="text-green-800 text-sm">
112112+ <div class="card p-4">
113113+ <h4 class="font-semibold text-brown-900 mb-2">Transparency</h4>
114114+ <p class="text-brown-700 text-sm">
115115 Open protocol means no hidden algorithms. You can see exactly how your data is handled.
116116 </p>
117117 </div>
+22-22
internal/web/pages/terms.templ
···1515 <h1 class="text-4xl font-bold text-brown-800">Terms of Service</h1>
1616 </div>
1717 <div class="prose prose-lg max-w-none space-y-6">
1818- <section class="bg-green-50 border border-green-200 p-6 rounded-lg mb-8">
1919- <h2 class="text-2xl font-semibold text-green-900 mb-4">The Simple Truth</h2>
2020- <p class="text-gray-800 text-lg leading-relaxed">
1818+ <section class="card p-6 mb-8">
1919+ <h2 class="text-2xl font-semibold text-brown-900 mb-4">The Simple Truth</h2>
2020+ <p class="text-brown-800 text-lg leading-relaxed">
2121 <strong>You own all of your data.</strong> Period. Your brew logs, coffee beans, equipment information,
2222 and any other data you create in Arabica belongs to you and is stored in your Personal Data Server (PDS),
2323 not on our servers.
···2525 </section>
2626 <section>
2727 <h2 class="text-2xl font-semibold text-brown-800 mb-4">1. Your Data Ownership</h2>
2828- <p class="text-gray-700 leading-relaxed">
2828+ <p class="text-brown-700 leading-relaxed">
2929 All data you create through Arabica is stored in your AT Protocol Personal Data Server (PDS).
3030 Arabica acts as an interface to your PDS but does not own, claim rights to, or permanently store your data.
3131 </p>
3232- <ul class="list-disc list-inside space-y-2 text-gray-700 mt-3">
3232+ <ul class="list-disc list-inside space-y-2 text-brown-700 mt-3">
3333 <li>You retain full ownership and control of your data</li>
3434 <li>You can delete your data at any time</li>
3535 <li>You can switch PDS providers without losing your data</li>
···3838 </section>
3939 <section>
4040 <h2 class="text-2xl font-semibold text-brown-800 mb-4">2. What We Store</h2>
4141- <p class="text-gray-700 leading-relaxed mb-3">
4141+ <p class="text-brown-700 leading-relaxed mb-3">
4242 Arabica's servers store minimal data necessary for the application to function:
4343 </p>
4444- <ul class="list-disc list-inside space-y-2 text-gray-700">
4444+ <ul class="list-disc list-inside space-y-2 text-brown-700">
4545 <li><strong>Session information</strong> - Authentication tokens to keep you logged in</li>
4646 <li><strong>Feed registry</strong> - List of users who've opted into the community feed</li>
4747 <li><strong>Temporary cache</strong> - Short-lived cache of your data to improve performance</li>
4848 </ul>
4949 // NOTE: this may change in the future for witness caching purposes and user settings, so commenting out
5050- // <p class="text-gray-700 leading-relaxed mt-3">
5050+ // <p class="text-brown-700 leading-relaxed mt-3">
5151 // We do <strong>not</strong> store your brew logs, beans, equipment, or any other user-generated content
5252 // on our servers. That data lives exclusively in your PDS.
5353 // </p>
5454 </section>
5555 <section>
5656 <h2 class="text-2xl font-semibold text-brown-800 mb-4">3. Authentication</h2>
5757- <p class="text-gray-700 leading-relaxed">
5757+ <p class="text-brown-700 leading-relaxed">
5858 Arabica uses OAuth to authenticate with your PDS. We never see or store your PDS password.
5959 Authentication is handled between your browser and your PDS, with Arabica receiving only
6060 temporary access tokens to read and write data on your behalf.
···6262 </section>
6363 <section>
6464 <h2 class="text-2xl font-semibold text-brown-800 mb-4">4. Community Feed</h2>
6565- <p class="text-gray-700 leading-relaxed">
6565+ <p class="text-brown-700 leading-relaxed">
6666 If you opt into the community feed, Arabica will periodically read your public brew records
6767 from your PDS to display them to other users. This is done by:
6868 </p>
6969- <ul class="list-disc list-inside space-y-2 text-gray-700 mt-3">
6969+ <ul class="list-disc list-inside space-y-2 text-brown-700 mt-3">
7070 <li>Making public API calls to your PDS</li>
7171 <li>Temporarily caching brew data for feed display</li>
7272 </ul>
7373 // TODO: this hasn't been implemented yet
7474- // <p class="text-gray-700 leading-relaxed mt-3">
7474+ // <p class="text-brown-700 leading-relaxed mt-3">
7575 // You can opt out of the community feed at any time, and we'll stop reading your brews.
7676 // </p>
7777 </section>
7878 <section>
7979 <h2 class="text-2xl font-semibold text-brown-800 mb-4">5. Service Availability</h2>
8080- <p class="text-gray-700 leading-relaxed">
8080+ <p class="text-brown-700 leading-relaxed">
8181 Arabica is provided "as is" without warranties of any kind. We make reasonable efforts to keep
8282 the service running but do not guarantee uptime or availability. Since your data is stored in
8383 your PDS (not our servers), you won't lose your data if Arabica goes offline.
···8585 </section>
8686 <section>
8787 <h2 class="text-2xl font-semibold text-brown-800 mb-4">6. Privacy</h2>
8888- <p class="text-gray-700 leading-relaxed">
8888+ <p class="text-brown-700 leading-relaxed">
8989 We respect your privacy and follow these principles:
9090 </p>
9191- <ul class="list-disc list-inside space-y-2 text-gray-700 mt-3">
9191+ <ul class="list-disc list-inside space-y-2 text-brown-700 mt-3">
9292 <li>We don't sell your data</li>
9393 <li>We don't track you across websites</li>
9494 <li>We use minimal analytics to understand service usage</li>
···9797 </section>
9898 <section>
9999 <h2 class="text-2xl font-semibold text-brown-800 mb-4">7. Open Source</h2>
100100- <p class="text-gray-700 leading-relaxed">
100100+ <p class="text-brown-700 leading-relaxed">
101101 Arabica is open source software. You can review the code, run your own instance, or contribute
102102 improvements. The transparency of open source means you can verify that we're handling your data
103103 as described in these terms.
···105105 </section>
106106 <section>
107107 <h2 class="text-2xl font-semibold text-brown-800 mb-4">8. Changes to Terms</h2>
108108- <p class="text-gray-700 leading-relaxed">
108108+ <p class="text-brown-700 leading-relaxed">
109109 We may update these terms occasionally. If we make significant changes, we'll notify users through
110110 the application. Continued use of Arabica after changes constitutes acceptance of the new terms.
111111 </p>
112112 </section>
113113 <section>
114114 <h2 class="text-2xl font-semibold text-brown-800 mb-4">9. Acceptable Use</h2>
115115- <p class="text-gray-700 leading-relaxed">
115115+ <p class="text-brown-700 leading-relaxed">
116116 Please use Arabica responsibly:
117117 </p>
118118- <ul class="list-disc list-inside space-y-2 text-gray-700 mt-3">
118118+ <ul class="list-disc list-inside space-y-2 text-brown-700 mt-3">
119119 <li>Don't abuse the service with excessive API requests</li>
120120 <li>Don't use Arabica for illegal purposes</li>
121121 <li>Be respectful in community interactions</li>
···123123 </section>
124124 <section>
125125 <h2 class="text-2xl font-semibold text-brown-800 mb-4">10. Contact</h2>
126126- <p class="text-gray-700 leading-relaxed">
126126+ <p class="text-brown-700 leading-relaxed">
127127 Questions about these terms? You can reach us through our GitHub repository or by email at
128128 <a href="mailto:mail@arabica.systems" class="link-bold">mail@arabica.systems</a>.
129129 </p>
130130 </section>
131131- <section class="bg-gray-100 p-6 rounded-lg mt-8">
132132- <p class="text-sm text-gray-600">
131131+ <section class="card p-6 mt-8">
132132+ <p class="text-sm text-brown-700">
133133 <strong>Last Updated:</strong> January 2026
134134 <br/>
135135 <strong>Effective Date:</strong> January 2026