Coffee journaling on ATProto (alpha) alpha.arabica.social
coffee
17
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: fix dark mode styling of terms and atproto pages

+34 -34
+12 -12
internal/web/pages/atproto.templ
··· 91 91 <section> 92 92 <h2 class="text-2xl font-semibold text-brown-900 mb-4">Why This Matters</h2> 93 93 <div class="grid md:grid-cols-2 gap-4"> 94 - <div class="bg-green-50 border border-green-200 p-4 rounded-lg"> 95 - <h4 class="font-semibold text-green-900 mb-2">Data Ownership</h4> 96 - <p class="text-green-800 text-sm"> 94 + <div class="card p-4"> 95 + <h4 class="font-semibold text-brown-900 mb-2">Data Ownership</h4> 96 + <p class="text-brown-700 text-sm"> 97 97 Your coffee data is yours. If Arabica shuts down, your data remains safe in your PDS. 98 98 </p> 99 99 </div> 100 - <div class="bg-green-50 border border-green-200 p-4 rounded-lg"> 101 - <h4 class="font-semibold text-green-900 mb-2">Portability</h4> 102 - <p class="text-green-800 text-sm"> 100 + <div class="card p-4"> 101 + <h4 class="font-semibold text-brown-900 mb-2">Portability</h4> 102 + <p class="text-brown-700 text-sm"> 103 103 Switch PDS providers without losing anything. Your identity and data move with you. 104 104 </p> 105 105 </div> 106 - <div class="bg-green-50 border border-green-200 p-4 rounded-lg"> 107 - <h4 class="font-semibold text-green-900 mb-2">Interoperability</h4> 108 - <p class="text-green-800 text-sm"> 106 + <div class="card p-4"> 107 + <h4 class="font-semibold text-brown-900 mb-2">Interoperability</h4> 108 + <p class="text-brown-700 text-sm"> 109 109 Other apps can build on the same data. Future coffee apps could read your Arabica brews. 110 110 </p> 111 111 </div> 112 - <div class="bg-green-50 border border-green-200 p-4 rounded-lg"> 113 - <h4 class="font-semibold text-green-900 mb-2">Transparency</h4> 114 - <p class="text-green-800 text-sm"> 112 + <div class="card p-4"> 113 + <h4 class="font-semibold text-brown-900 mb-2">Transparency</h4> 114 + <p class="text-brown-700 text-sm"> 115 115 Open protocol means no hidden algorithms. You can see exactly how your data is handled. 116 116 </p> 117 117 </div>
+22 -22
internal/web/pages/terms.templ
··· 15 15 <h1 class="text-4xl font-bold text-brown-800">Terms of Service</h1> 16 16 </div> 17 17 <div class="prose prose-lg max-w-none space-y-6"> 18 - <section class="bg-green-50 border border-green-200 p-6 rounded-lg mb-8"> 19 - <h2 class="text-2xl font-semibold text-green-900 mb-4">The Simple Truth</h2> 20 - <p class="text-gray-800 text-lg leading-relaxed"> 18 + <section class="card p-6 mb-8"> 19 + <h2 class="text-2xl font-semibold text-brown-900 mb-4">The Simple Truth</h2> 20 + <p class="text-brown-800 text-lg leading-relaxed"> 21 21 <strong>You own all of your data.</strong> Period. Your brew logs, coffee beans, equipment information, 22 22 and any other data you create in Arabica belongs to you and is stored in your Personal Data Server (PDS), 23 23 not on our servers. ··· 25 25 </section> 26 26 <section> 27 27 <h2 class="text-2xl font-semibold text-brown-800 mb-4">1. Your Data Ownership</h2> 28 - <p class="text-gray-700 leading-relaxed"> 28 + <p class="text-brown-700 leading-relaxed"> 29 29 All data you create through Arabica is stored in your AT Protocol Personal Data Server (PDS). 30 30 Arabica acts as an interface to your PDS but does not own, claim rights to, or permanently store your data. 31 31 </p> 32 - <ul class="list-disc list-inside space-y-2 text-gray-700 mt-3"> 32 + <ul class="list-disc list-inside space-y-2 text-brown-700 mt-3"> 33 33 <li>You retain full ownership and control of your data</li> 34 34 <li>You can delete your data at any time</li> 35 35 <li>You can switch PDS providers without losing your data</li> ··· 38 38 </section> 39 39 <section> 40 40 <h2 class="text-2xl font-semibold text-brown-800 mb-4">2. What We Store</h2> 41 - <p class="text-gray-700 leading-relaxed mb-3"> 41 + <p class="text-brown-700 leading-relaxed mb-3"> 42 42 Arabica's servers store minimal data necessary for the application to function: 43 43 </p> 44 - <ul class="list-disc list-inside space-y-2 text-gray-700"> 44 + <ul class="list-disc list-inside space-y-2 text-brown-700"> 45 45 <li><strong>Session information</strong> - Authentication tokens to keep you logged in</li> 46 46 <li><strong>Feed registry</strong> - List of users who've opted into the community feed</li> 47 47 <li><strong>Temporary cache</strong> - Short-lived cache of your data to improve performance</li> 48 48 </ul> 49 49 // NOTE: this may change in the future for witness caching purposes and user settings, so commenting out 50 - // <p class="text-gray-700 leading-relaxed mt-3"> 50 + // <p class="text-brown-700 leading-relaxed mt-3"> 51 51 // We do <strong>not</strong> store your brew logs, beans, equipment, or any other user-generated content 52 52 // on our servers. That data lives exclusively in your PDS. 53 53 // </p> 54 54 </section> 55 55 <section> 56 56 <h2 class="text-2xl font-semibold text-brown-800 mb-4">3. Authentication</h2> 57 - <p class="text-gray-700 leading-relaxed"> 57 + <p class="text-brown-700 leading-relaxed"> 58 58 Arabica uses OAuth to authenticate with your PDS. We never see or store your PDS password. 59 59 Authentication is handled between your browser and your PDS, with Arabica receiving only 60 60 temporary access tokens to read and write data on your behalf. ··· 62 62 </section> 63 63 <section> 64 64 <h2 class="text-2xl font-semibold text-brown-800 mb-4">4. Community Feed</h2> 65 - <p class="text-gray-700 leading-relaxed"> 65 + <p class="text-brown-700 leading-relaxed"> 66 66 If you opt into the community feed, Arabica will periodically read your public brew records 67 67 from your PDS to display them to other users. This is done by: 68 68 </p> 69 - <ul class="list-disc list-inside space-y-2 text-gray-700 mt-3"> 69 + <ul class="list-disc list-inside space-y-2 text-brown-700 mt-3"> 70 70 <li>Making public API calls to your PDS</li> 71 71 <li>Temporarily caching brew data for feed display</li> 72 72 </ul> 73 73 // TODO: this hasn't been implemented yet 74 - // <p class="text-gray-700 leading-relaxed mt-3"> 74 + // <p class="text-brown-700 leading-relaxed mt-3"> 75 75 // You can opt out of the community feed at any time, and we'll stop reading your brews. 76 76 // </p> 77 77 </section> 78 78 <section> 79 79 <h2 class="text-2xl font-semibold text-brown-800 mb-4">5. Service Availability</h2> 80 - <p class="text-gray-700 leading-relaxed"> 80 + <p class="text-brown-700 leading-relaxed"> 81 81 Arabica is provided "as is" without warranties of any kind. We make reasonable efforts to keep 82 82 the service running but do not guarantee uptime or availability. Since your data is stored in 83 83 your PDS (not our servers), you won't lose your data if Arabica goes offline. ··· 85 85 </section> 86 86 <section> 87 87 <h2 class="text-2xl font-semibold text-brown-800 mb-4">6. Privacy</h2> 88 - <p class="text-gray-700 leading-relaxed"> 88 + <p class="text-brown-700 leading-relaxed"> 89 89 We respect your privacy and follow these principles: 90 90 </p> 91 - <ul class="list-disc list-inside space-y-2 text-gray-700 mt-3"> 91 + <ul class="list-disc list-inside space-y-2 text-brown-700 mt-3"> 92 92 <li>We don't sell your data</li> 93 93 <li>We don't track you across websites</li> 94 94 <li>We use minimal analytics to understand service usage</li> ··· 97 97 </section> 98 98 <section> 99 99 <h2 class="text-2xl font-semibold text-brown-800 mb-4">7. Open Source</h2> 100 - <p class="text-gray-700 leading-relaxed"> 100 + <p class="text-brown-700 leading-relaxed"> 101 101 Arabica is open source software. You can review the code, run your own instance, or contribute 102 102 improvements. The transparency of open source means you can verify that we're handling your data 103 103 as described in these terms. ··· 105 105 </section> 106 106 <section> 107 107 <h2 class="text-2xl font-semibold text-brown-800 mb-4">8. Changes to Terms</h2> 108 - <p class="text-gray-700 leading-relaxed"> 108 + <p class="text-brown-700 leading-relaxed"> 109 109 We may update these terms occasionally. If we make significant changes, we'll notify users through 110 110 the application. Continued use of Arabica after changes constitutes acceptance of the new terms. 111 111 </p> 112 112 </section> 113 113 <section> 114 114 <h2 class="text-2xl font-semibold text-brown-800 mb-4">9. Acceptable Use</h2> 115 - <p class="text-gray-700 leading-relaxed"> 115 + <p class="text-brown-700 leading-relaxed"> 116 116 Please use Arabica responsibly: 117 117 </p> 118 - <ul class="list-disc list-inside space-y-2 text-gray-700 mt-3"> 118 + <ul class="list-disc list-inside space-y-2 text-brown-700 mt-3"> 119 119 <li>Don't abuse the service with excessive API requests</li> 120 120 <li>Don't use Arabica for illegal purposes</li> 121 121 <li>Be respectful in community interactions</li> ··· 123 123 </section> 124 124 <section> 125 125 <h2 class="text-2xl font-semibold text-brown-800 mb-4">10. Contact</h2> 126 - <p class="text-gray-700 leading-relaxed"> 126 + <p class="text-brown-700 leading-relaxed"> 127 127 Questions about these terms? You can reach us through our GitHub repository or by email at 128 128 <a href="mailto:mail@arabica.systems" class="link-bold">mail@arabica.systems</a>. 129 129 </p> 130 130 </section> 131 - <section class="bg-gray-100 p-6 rounded-lg mt-8"> 132 - <p class="text-sm text-gray-600"> 131 + <section class="card p-6 mt-8"> 132 + <p class="text-sm text-brown-700"> 133 133 <strong>Last Updated:</strong> January 2026 134 134 <br/> 135 135 <strong>Effective Date:</strong> January 2026