Dashboard
Journal
Entries
Comments
Select an entry or create a new one
Activity
Pick a conversation
Buddies
Compare
Pick two entries above to compare
This is a private, offline-first journaling app for tracking foreskin restoration progress. All your data is stored locally on your device.
Your data cannot be recovered without your password. You can clear all app data and start fresh, or restore from a backup if you have one.
Set a password to encrypt your data on this device. If you forget it, your data cannot be recovered. There is no reset.
Your existing data will be encrypted with your password. This cannot be undone without your password.
Step 1: Download a plaintext backup. If anything goes wrong, you can restore from it.
Enter your current password, then choose a new one.
On your other device, open Settings → "I have a pairing code" and paste the code below. Expires in 5m.
🔒 Enter your encryption password to generate the pairing code
This code contains your private identity key. Treat it like a password. Keep this screen visible until the other device confirms.
Paste the code from your other device. Valid for 5 minutes after being generated.
Are you sure? This cannot be undone.
Select an entry or create a new one
Pick a conversation
Pick two entries above to compare
Pick a target and the dashboard tracks your progress right by the timer buttons, and nudges you when you hit it.
Leave a field blank to skip that one. Both can be set.
Shared images are watermarked and cached on your buddies' devices, where they remain until the auto-delete period expires without syncing. Removing a buddy's access sends a delete request, but offline devices retain copies until they next come online.
Tap a photo to add it. Photos already in the lineup show a check mark.
Forestorers.org is a local-first app. Your journal entries, photos, and settings are stored directly in your browser, on your own device. There is no Forestorers.org server storing your data. Nobody at Forestorers.org can read your journal.
Setting a password encrypts everything stored on your device. The password never leaves your device and is never transmitted anywhere. If you forget it, your data can't be recovered. There's no reset option. That's on purpose. If we could reset it, we could read it.
Your encryption key exists in memory only while you're actively using the app. It is cleared when you lock the app, close the tab, or leave it idle.
The buddy system lets you share your journal with people you trust who are also restoring. To add a buddy, you exchange identity codes (strings beginning with FR1:) through any channel you choose: Signal, email, a forum.
Before any data leaves your device it's encrypted specifically for that buddy using a shared secret that only the two of you can compute. The relay server that helps match buddies online sees only scrambled data it cannot read. Encrypted data may be held briefly on the relay for offline delivery. It is kept in memory only, never written to disk, and is deleted on delivery or after 24 hours at most. The relay cannot decrypt any of it.
You can restrict what each buddy sees, set a vanish period (their copy of your journal deletes automatically after a period of inactivity), or disconnect quietly at any time.
You can send direct messages to any buddy using the chat button on their profile. Messages are end-to-end encrypted. If your buddy is offline, messages are held on the relay server for up to 24 hours, and your app keeps re-sending until it's delivered. Chat history lives only on your device and purges automatically after 30 days.
While you're Public, other Public restorers can send you a message request from the Restorer Network, and you can send them one. Requests are text only, end-to-end encrypted, and share nothing else. They can send one message until you reply. Ignore or block anyone you don't want to hear from.
When you open the app, you may see a snapshot of each buddy who was active in the last 24 hours: their profile info, tugging status, latest entry summary, and latest photo. So you can see what they've been up to even if you're never online at the same time. Snapshots are encrypted per buddy and held in memory on the relay for up to 24 hours. They aren't written to disk and are lost if the server restarts. The relay cannot read them.
Pair two of your own devices and they'll silently sync your journal between themselves when both are online. The same end-to-end encryption applies. The relay is a transit channel only.
Photos are stored as encrypted data in your browser. They are displayed on a canvas rather than a standard image element, which deters casual right-click saving (it can't stop screenshots; see the terms on shared content). Buddy photos are watermarked with their display name. Photos are withheld from buddies who haven't set up encryption on their device.
Because your data is local, backing up is your responsibility. Use Export Backup from the sidebar menu regularly. The encrypted .forestorers format is recommended. Store your backup file somewhere safe. To restore, use Import Backup from the same menu.
The app works fully offline. The relay server is only needed for buddy sync and multi-device sync. Download the app files to use it with zero server involvement.
Almost nothing. There are no accounts, and we never get your name, journal content or photos. If you use buddy sync, your public identity code passes through the relay to match you with your buddy. It isn't logged. Messages waiting for an offline buddy are held encrypted in memory for up to 24 hours and are never written to disk. The only things the relay keeps on disk are encrypted "forget me" signals (so removing a buddy still reaches them if they are offline), the public directory if you choose to be listed (your emoji, name, public key, the public profile details you switched on, and when you were last online, kept for 3 months after you were last online), block lists, and, only if you turn on notifications for when the app is closed, the push address your browser gives that device (deleted when you turn it off or after 60 days without use). The server cannot decrypt any of it. IP addresses are seen at the network level (unavoidable with any server connection) and are not logged.
Forestorers.org is a personal journaling tool for tracking foreskin restoration progress. It is provided free of charge, without warranty, and without any guarantee of continued availability.
You must be 18 years of age or older to use this app. By using it you confirm that you are. The app deals with adult anatomy and is not suitable for minors.
All journal data is stored locally in your browser (IndexedDB and localStorage). Forestorers.org does not operate a database of user content. No journal entries, photos, or personal information are stored on our servers.
The optional buddy sync feature uses a relay server (forestorers-signal.onrender.com) as a transit broker. All data is encrypted end-to-end on your device before transmission using ECDH-derived AES-256-GCM. The relay sees only opaque ciphertext. Encrypted messages waiting for offline delivery (chat, journal updates, buddy snapshots, KOTs and comments) are held in memory only, for up to 24 hours, and are lost if the relay restarts. Encrypted deletion signals are kept on disk for up to 30 days so that removing a buddy still reaches them if they are offline. All queued data is deleted after delivery or expiry. The relay cannot decrypt any of it. Forestorers.org does not access, monitor, or store plaintext journal content shared between users.
The app includes an optional end-to-end encrypted direct-message feature for communication between existing buddies. Messages are encrypted on your device before transmission using the same ECDH-derived AES-256-GCM keys as buddy sync. The relay server holds undelivered encrypted messages in memory for up to 24 hours. They are never written to disk, are lost if the relay restarts, and are deleted on delivery or expiry. The relay cannot decrypt them. If it is not delivered in that time, your app sends it again automatically until it arrives. Message history is stored only on your own device and is automatically purged after 30 days. You may delete your side of any conversation at any time. Chat is limited to existing buddy pairs, with one exception: while you are Public, other Public restorers can send you a message request. Message requests are text only (no photos or links), use the same end-to-end encryption, share nothing else about you, and are held in relay memory for up to 24 hours if you are offline. The sender can send one message until you reply. You can ignore or block anyone, and going Private stops new requests.
You are solely responsible for the content you enter into the app and for who you choose to share your identity code with. Do not share your identity code with people you do not trust. Once a buddy relationship is established, that person can see the journal data you have permitted them to access.
This app is a personal tracking tool only. Nothing in it constitutes medical advice, diagnosis, or treatment. Consult a qualified healthcare professional for medical guidance.
This app is intended for personal restoration tracking only. You must not use the buddy sync feature to transmit content that is illegal in your jurisdiction, or to harass or harm other users. All uploaded images must depict only yourself and only from a point in time at which you were a legal adult (18 years of age or older). By uploading any image you represent and warrant that you were 18 or older at the time the image was created. There are no accounts and no central moderation; if a buddy violates these standards, remove and block them.
You agree not to screen-capture, record, copy, store externally, or redistribute in any form any images or content belonging to another user that you access through buddy sync or chat. Content shared between buddies is shared in personal trust and is not licensed for any further use. The app watermarks shared photos and deters casual saving, but no software can make capture impossible, so only share with people you trust. Be aware that sharing another person's intimate images without their consent is a criminal offence in many jurisdictions.
This software is provided "as is" without warranty of any kind, express or implied. The operator makes no guarantees regarding availability, accuracy, or fitness for any particular purpose.
To the fullest extent permitted by law, the operator shall not be liable for any loss of data, loss of privacy, or any other damage arising from use of this app. You use it at your own risk.
These terms may be updated from time to time. Continued use of the app constitutes acceptance of the current terms.
These terms are governed by the laws of the jurisdiction in which the operator is based. Any disputes shall be resolved in that jurisdiction.
Your journal stays on your device. We do not collect it, store it, or have access to it. There is no account, no server-side profile, and no analytics.
Forestorers.org is a personal journaling tool for foreskin restoration. The operator of this website and relay service can be contacted via the Forestorers.org website. Your journal data is processed on your own device; our servers relay only end-to-end encrypted content that we cannot read.
We collect nothing on our servers. All journal entries, photos, measurements, and device settings are stored exclusively in your browser's local storage and IndexedDB. They never leave your device unless you explicitly export them or use buddy sync.
The following data exists only on your device:
If you use the buddy sync feature, your browser connects to our relay server at forestorers-signal.onrender.com. The relay sees:
The relay holds no user records and no connection logs. It cannot link your identity code to your real identity or IP address across sessions.
Undelivered messages (chat, journal updates, buddy snapshots, KOTs and comments) are held encrypted in memory only and expire after 24 hours at most, or 12 hours for photos. They are lost if the relay restarts. The only relay data kept on disk is encrypted deletion signals (up to 30 days), the public directory for people who choose to be listed (their emoji, name, public key and any public profile details they switched on, kept until 3 months after they were last online), block lists, and push addresses for devices that turned on notifications for when the app is closed (deleted when turned off or after 60 days without use). Everything is deleted on delivery or expiry. All queued data is end-to-end encrypted and cannot be read by the relay.
None. The app uses no cookies, tracking pixels, fingerprinting, analytics scripts or behavioural advertising.
Photos you take or upload are stored in your browser's private IndexedDB. If at-rest encryption is enabled, they are encrypted with AES-256-GCM before storage. They are never uploaded to any server in plaintext. When shared with a buddy via the sync feature, they travel end-to-end encrypted. Snapshot photos (compressed thumbnails) may be held encrypted in memory on the relay for up to 24 hours for offline delivery. They are not written to disk. The relay cannot decrypt them.
All sensitive data stored on your device can be protected with AES-256-GCM encryption, derived from a password you choose. Data shared between buddies is encrypted end-to-end with a key derived from ECDH (Elliptic Curve Diffie-Hellman). The shared secret is never transmitted. The relay cannot decrypt any data in transit.
The relay server persists encrypted relay queues to disk for offline delivery. All entries auto-expire per their TTL and are deleted on delivery or expiry. No plaintext content is ever stored on the server. Your data on your device persists until you delete it, either by clearing browser data for this site or by using the app's built-in delete functions. There is no account or cloud backup to request deletion of.
Because no personal data is processed on our servers, most statutory data-subject rights (access, rectification, erasure, portability) are exercised directly on your own device. Specifically:
If you have a privacy concern that cannot be addressed by the above, contact us via the Forestorers.org website.
The app uses the following external services in limited, defined roles:
Because we do not store your data, there are no international transfers of personal data from our side.
This app is for adults aged 18 or older only. We do not knowingly collect information from anyone under 18. If you believe a minor has used this service, contact us and we will investigate, though we have no server-side data to delete.
Material changes to this privacy policy will be noted in the app release notes. Continued use of the app after a policy change constitutes acceptance of the updated policy. Because we collect no contact information, we cannot proactively notify you of changes.
Privacy questions can be directed to the project maintainer via the Forestorers.org website.
This software is provided "as is" and "as available" without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability, fitness for a particular purpose, and non-infringement. The operator does not warrant that the app will be uninterrupted, error-free, or free of harmful components.
To the fullest extent permitted by applicable law, in no event shall the operator, contributors, or affiliates be liable for any indirect, incidental, special, exemplary, or consequential damages (including but not limited to loss of data, loss of privacy, loss of profits, or business interruption) arising out of or in connection with the use or inability to use this app, even if advised of the possibility of such damages.
Nothing in this app, its documentation, or any related communications constitutes medical advice, medical diagnosis, or recommended treatment. The app is a personal data tracking tool only. Users should consult a qualified and licensed healthcare professional before making any decisions related to their health.
The operator has no access to, and bears no responsibility for, any content entered into the app or shared between users via the buddy sync feature. Users are solely responsible for ensuring their use of the app and any content shared through it complies with all applicable laws in their jurisdiction.
This app is intended for use by adults 18 years of age or older only. Users under 18 are not permitted to use this app. By using the app, you represent and warrant that you are at least 18 years old.
This app uses the following third-party service in a limited, defined role:
Typefaces are bundled with the app itself. No font files are fetched from any third party.
The operator is not responsible for the practices of these third-party services.
This app is free software, released under the GNU Affero General Public License v3.0 (AGPL-3.0). You may inspect, copy, modify, and redistribute it under the terms of that licence. The app ships as readable, unminified source code, so what your browser downloads is the source, and a copy of the licence is included with the app. Go ahead and read it to see how the app handles your data.
These terms and any dispute arising from use of this app shall be governed by the laws of the jurisdiction in which the operator is based, without regard to conflict of law provisions.
If any provision of these terms is found to be unenforceable, the remaining provisions will continue in full force and effect.