Skip to content

Commit 16e8296

Browse files
committed
fix: privacy & terms
1 parent 9f3dc03 commit 16e8296

2 files changed

Lines changed: 303 additions & 282 deletions

File tree

src/Privacy.vue

Lines changed: 106 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -8,174 +8,172 @@
88
>
99
Privacy Policy
1010
</p>
11+
1112
<p class="text-base text-gray-800 dark:text-white py-4">
12-
Effective Date: Aug 14 2025
13+
Effective Date: December 29, 2025
1314
</p>
15+
1416
<p class="text-base text-gray-800 dark:text-white py-4">
15-
At Beaver Notes, we take your privacy seriously and are committed to
16-
protecting your personal information. This Privacy Policy outlines how
17-
we collect, use, and safeguard your data when you interact with the
18-
Beaver Notes applications, services and website.
17+
<b>Privacy Summary:</b> Beaver Notes is built to work without
18+
collecting your personal data. Notes and media are stored locally on
19+
your device and are never uploaded to Beaver servers. We do not use
20+
in-app trackers, advertising SDKs, or built-in synchronization.
21+
Limited personal data is processed only where strictly necessary, such
22+
as for Android closed beta access or accounts on our translation
23+
platform. Our website uses anonymized analytics with no cookies or
24+
personal identifiers. We follow GDPR-aligned data protection
25+
principles, including data minimization and transparency.
1926
</p>
27+
2028
<p
2129
class="text-xl font-bold text-gray-800 dark:text-white"
2230
style="font-family: 'Arimo', sans-serif"
2331
>
24-
Information We Collect
32+
Information We Process
2533
</p>
34+
2635
<p class="text-base text-gray-800 dark:text-white py-4">
27-
<b>Desktop App Data:</b> Beaver Notes is designed with your privacy in
28-
mind, and we do not collect any personal information from you within
29-
the app. All data, media, and notes you create within the app are
30-
stored locally on your device only. We do not perform any data sync or
31-
store your information on our servers.
36+
<b>Desktop App (Beaver Notes):</b> Beaver Notes does not require user
37+
accounts and does not collect personal information through the app.
38+
All notes, media, and related data are stored locally on your device.
39+
The app does not include built-in synchronization, analytics, or data
40+
transmission to Beaver servers.
3241
</p>
33-
<p></p>
42+
3443
<p class="text-base text-gray-800 dark:text-white py-4">
35-
<b>Mobile App Data:</b> Beaver Pocket prioritizes your privacy. We do
36-
not collect any personal information within the app. All data, media,
37-
and notes you create are stored locally on your device only. We do not
38-
perform data synchronization or store your information on our servers.
39-
Any analytics data collected is managed by platforms like the App
40-
Store and Google Play Store, following your country's laws and
41-
regulations. If you decide to sync your data using a cloud provider,
42-
we strongly advise reviewing their privacy policy. Your data will be
43-
uploaded to their servers and handled in accordance with both your
44-
country's laws and the cloud provider's privacy policy.
45-
</p>
46-
<p></p>
44+
<b>Mobile App (Beaver Pocket):</b> Beaver Pocket follows the same
45+
local-first approach. The app does not collect personal information,
46+
does not include analytics SDKs, and does not transmit user data to
47+
Beaver servers. All content is stored locally on your device.
48+
</p>
49+
4750
<p class="text-base text-gray-800 dark:text-white py-4">
48-
<b>Translation Platform:</b> Beaver utilizes Traduora to translate its
49-
apps and services. By signing up for our Traduora instance at
50-
translate-beaver.duckdns.org, you knowingly share your email with us
51-
to access the translation platform and manage your account. Your email
52-
and other data, such as passwords and logins, are all stored in a
53-
MySQL database on Beaver servers encrypted using industry-standard
54-
encryption. Upon permanently deleting your account, all your data will
55-
be handled in accordance with GDPR regulations, even outside the EU.
56-
</p>
57-
<p></p>
51+
Any file synchronization occurs only through operating system–level or
52+
user-configured third-party cloud services (such as device backups or
53+
folder syncing). These services are not provided or controlled by
54+
Beaver, and any data processed by them is governed by the respective
55+
provider’s privacy policy.
56+
</p>
57+
5858
<p class="text-base text-gray-800 dark:text-white py-4">
59-
<b>Website Analytics:</b> We use Umami analytics on our website to
60-
better understand user interactions and improve our services. Umami
61-
collects anonymized data, such as page views and visit durations, to
62-
help us analyze user behavior. This data is not linked to any specific
63-
individual and is used solely for analytical purposes.
59+
Crash reports, if generated, are handled by the operating system or
60+
app distribution platform and are not sent directly to Beaver servers.
6461
</p>
62+
63+
<p class="text-base text-gray-800 dark:text-white py-4">
64+
<b>App Store & Platform Analytics:</b> We may receive aggregated and
65+
anonymized statistics from app distribution platforms such as Google
66+
Play or the Apple App Store (for example, install counts or crash
67+
summaries). This data does not identify individual users and is
68+
subject to the respective platform’s privacy policy.
69+
</p>
70+
71+
<p class="text-base text-gray-800 dark:text-white py-4">
72+
<b>Website Analytics:</b> Our website uses Umami Analytics, operated
73+
by Umami. Umami does not use cookies and collects only anonymized,
74+
aggregate data such as page views and visit duration. No personally
75+
identifiable information is collected through website analytics.
76+
</p>
77+
78+
<p class="text-base text-gray-800 dark:text-white py-4">
79+
<b>Translation Platform (Beaver Traduora):</b> We operate a
80+
self-hosted instance of the Traduora translation platform for managing
81+
translations of Beaver apps and services. When you create an account,
82+
we process your email address and authentication credentials. Account
83+
data is stored on Beaver-controlled servers. Password handling and
84+
security follow Traduora’s standard implementation.
85+
</p>
86+
87+
<p class="text-base text-gray-800 dark:text-white py-4">
88+
This platform is intended for contributors and collaborators. Account
89+
data is retained for as long as the account remains active and is
90+
deleted upon account removal.
91+
</p>
92+
6593
<p id="emails" class="text-base text-gray-800 dark:text-white py-4">
66-
<b>Emails:</b> We collect your email upon signup on the download page
67-
to join the Android closed beta. The backend is open source and can be
68-
audited on
94+
<b>Android Closed Beta Emails:</b> We collect email addresses solely
95+
to manage access to the Android closed beta via Google Play. Emails
96+
are not used for marketing or communications. They are exported once
97+
to the Google Play Console and then deleted from our backend. No email
98+
data is retained once the project exits closed beta. The backend
99+
handling this process is open source and publicly auditable on
69100
<a
101+
class="text-amber-500"
70102
href="https://github.com/Beaver-Notes/beaver-website/tree/main/backend"
71103
>GitHub</a
72-
>. Emails are stored in an encrypted database and provided to the
73-
Google Play Console, where Google's privacy policy applies. Emails are
74-
deleted after being exported and will also be deleted once the project
75-
moves to open beta.
104+
>.
76105
</p>
106+
77107
<p
78108
class="text-xl font-bold text-gray-800 dark:text-white"
79109
style="font-family: 'Arimo', sans-serif"
80110
>
81-
Children's Privacy
111+
Childrens Privacy
82112
</p>
113+
83114
<p class="text-base text-gray-800 dark:text-white py-4">
84-
Beaver Notes, Beaver Pocket and Beaver Traduora are not intended for
85-
use by children under the age of 13. We do not knowingly collect
86-
personal information from children. If you are a parent or guardian
87-
and believe that your child has provided us with personal information,
88-
please contact us, and we will promptly delete such information.
115+
Beaver Notes, Beaver Pocket, and Beaver Traduora are not intended for
116+
children under the age of 13. We do not knowingly collect personal
117+
information from children. If such information is identified, it will
118+
be deleted promptly.
89119
</p>
120+
90121
<p
91122
class="text-xl font-bold text-gray-800 dark:text-white"
92123
style="font-family: 'Arimo', sans-serif"
93124
>
94125
Data Security
95126
</p>
127+
96128
<p class="text-base text-gray-800 dark:text-white py-4">
97-
We take strong measures to ensure the security of your data. Beaver
98-
Notes, Beaver Pocket and Beaver Traduora employ industry-standard
99-
encryption and security protocols to safeguard your information from
100-
unauthorized access or disclosure. Any crash logs collected are
101-
anonymized and used solely for identifying and resolving technical
102-
issues.
129+
We apply reasonable technical and organizational measures to protect
130+
systems under our control. Since Beaver Notes and Beaver Pocket store
131+
data locally on your device, you retain full control over your
132+
content. No user note data is stored on Beaver servers.
103133
</p>
134+
104135
<p
105136
class="text-xl font-bold text-gray-800 dark:text-white"
106137
style="font-family: 'Arimo', sans-serif"
107138
>
108-
Your Choices
139+
Your Rights and Choices
109140
</p>
141+
110142
<p class="text-base text-gray-800 dark:text-white py-4">
111-
As Beaver Notes and Beaver Pocket do not collect any personal
112-
information or transmit data externally, you have full control over
113-
your data. You can manage, export, or delete your notes and media
114-
directly within the app.
143+
You have full control over your local data within Beaver Notes and
144+
Beaver Pocket. For services where we process personal data (such as
145+
beta access emails or translation platform accounts), you may request
146+
access, correction, or deletion by contacting us.
115147
</p>
148+
116149
<p
117150
class="text-xl font-bold text-gray-800 dark:text-white"
118151
style="font-family: 'Arimo', sans-serif"
119152
>
120153
Changes to This Policy
121154
</p>
155+
122156
<p class="text-base text-gray-800 dark:text-white py-4">
123-
We may update this Privacy Policy from time to time to reflect changes
124-
in our practices or for other operational, legal, or regulatory
125-
reasons. Any updates will be provided within the app or on our
126-
website.
157+
We may update this Privacy Policy to reflect changes in functionality
158+
or legal requirements. Updates will be published on our website or
159+
within our applications with a revised effective date.
127160
</p>
161+
128162
<p
129163
class="text-xl font-bold text-gray-800 dark:text-white"
130164
style="font-family: 'Arimo', sans-serif"
131165
>
132-
Contact Us
166+
Contact
133167
</p>
168+
134169
<p class="text-base text-gray-800 dark:text-white py-4">
135-
If you have any questions, concerns, or requests regarding this
136-
Privacy Policy or your data privacy, please contact us at
137-
<a class="text-base text-amber-500 py-4" href="danielerolli@proton.me"
170+
If you have questions or requests regarding this Privacy Policy, you
171+
may contact us at
172+
<a class="text-amber-500" href="mailto:danielerolli@proton.me"
138173
>danielerolli@proton.me</a
139174
>.
140175
</p>
141176
</div>
142177
</div>
143178
</div>
144179
</template>
145-
<script>
146-
import { onMounted, nextTick } from "vue";
147-
import { useRoute } from "vue-router";
148-
149-
export default {
150-
setup() {
151-
const route = useRoute();
152-
153-
const highlightElement = (hash) => {
154-
const el = document.querySelector(hash);
155-
if (el) {
156-
el.scrollIntoView({ behavior: "smooth" });
157-
el.classList.add("highlight");
158-
159-
// Remove highlight after 3 seconds for smoother fade
160-
setTimeout(() => el.classList.remove("highlight"), 3000);
161-
}
162-
};
163-
164-
onMounted(() => {
165-
if (route.hash) {
166-
// wait for DOM to be ready
167-
nextTick(() => highlightElement(route.hash));
168-
}
169-
});
170-
171-
return { highlightElement };
172-
},
173-
};
174-
</script>
175-
<style>
176-
.highlight {
177-
color: #f5c856 !important;
178-
179-
transition: color 2s ease-out;
180-
}
181-
</style>

0 commit comments

Comments
 (0)