Welcome to Forestorers.org

This is a private, offline-first journaling app for tracking foreskin restoration progress. All your data is stored locally on your device.

Terms of Use
1. This app stores all data locally in your browser (IndexedDB and localStorage). No data is sent to our servers.
2. The optional buddy sync feature routes journal data through a relay server (forestorers-signal.onrender.com) as a 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 data may be persisted to disk for offline delivery and is automatically deleted after delivery or expiry. Forestorers.org does not access your journal content.
3. You are solely responsible for the content you enter and who you share your code with.
4. This app is intended for adults (18+) tracking their own restoration progress for personal health purposes.
5. You agree not to use screen capture, screen recording, or screen sharing technology to capture or redistribute any images or content accessed through this app, including images shared via buddy sync.
6. You agree not to copy, duplicate, download, or redistribute any images or content belonging to another user that you access through the buddy sync feature. Such content is shared in trust for personal viewing only.
7. All photos and images you upload must depict only yourself and only from a point in time at which you were an adult (18 years of age or older). By uploading any image you affirm that you were 18 or older at the time the image was created.
8. By using this app you agree to all of the above terms and confirm you are 18 years of age or older.
I confirm that I am 18 years of age or older and agree to the Terms of Use above.
Confirm

Webcam Capture
Show sizing guide Ghost previous photo
Adjust Photo
Show sizing guide
Zoom 100%
Rotate
0°
Move X 0
Move Y 0
Drag canvas · scroll/pinch to zoom
🌿
Forestorers

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.

🔒

## Protect your journal

Set a password to encrypt your data on this device. If you forget it, your data cannot be recovered. There is no reset.

I understand: if I forget this password, my data cannot be recovered

🔐

## Encrypt your journal

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.

✓ Encryption complete! Your data is now protected.
🔑

## Change Password

Enter your current password, then choose a new one.

📱

## Add Another Device

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.

🔗

## Enter Pairing Code

Paste the code from your other device. Valid for 5 minutes after being generated.

⚠ This will replace your identity on this device and merge your journal with the other device's data.
Any existing buddy connections on this device will stop working.
Only do this if you own both devices.

Are you sure? This cannot be undone.

# Dashboard

# Journal

Entries
Comments
◳

Select an entry or create a new one

# Activity

Chats
✉

Pick a conversation

# Buddies

# Compare

Highlight differences
⇔

Pick two entries above to compare

# Timeline

# Data

# Settings

New gallery
Title
Share with
Individual contacts

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.

Edit Lineup
Name
Photos (drag with arrows to reorder)
Add Photos to Lineup

Tap a photo to add it. Photos already in the lineup show a check mark.

Photo
Title
Note
Leave a comment
Buddy Match!
🌿 Buddy
Coverage Index reference
Match the picture, not the words. Tap a card to select that level while editing an entry.
Help

## Your data lives on your device

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.

## Encryption

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 cannot be recovered. There is no reset option. This is intentional: genuine privacy requires no back door.

Your encryption key exists in memory only while you are actively using the app. It is cleared when you lock the app, close the tab, or leave it idle.

## Buddy sync

The buddy system lets you share your journal with trusted people on the same journey. 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 is 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 (chat and journal updates are persisted to disk; snapshots are held in memory only) and is automatically deleted after delivery or expiry. 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.

## Buddy chat

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, after which you are notified and can resend. Chat history lives only on your device and purges automatically after 30 days.

## Buddy snapshots

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. This gives a sense of connection even without both being online at the same time. Snapshots are encrypted per buddy and held in memory on the relay for up to 24 hours. They are not written to disk and are lost if the server restarts. The relay cannot read them.

## Multi-device sync

Pair two of your own devices and they will 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

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 cannot stop screenshots; see the terms on shared content). Buddy photos are watermarked with their display name. Photos are withheld from buddies who have not set up encryption on their device.

## Backups

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.

## Offline use

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.

## What Forestorers.org can see

Essentially nothing. No accounts, no names, no journal content, no photos. If you use buddy sync, your public identity code passes through the relay to match you with your buddy. It is not logged. Some encrypted relay queues (chat, journal updates) are persisted to disk so they survive server restarts. Snapshots are held in memory only. The server cannot decrypt any of it. IP addresses are seen at the network level (unavoidable with any server connection) and are not logged.

Terms of Service

## 1. About this app

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.

## 2. Age requirement

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.

## 3. Data storage

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.

## 4. Buddy sync

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. Some encrypted queues (chat up to 24 hours, journal updates up to 48 hours, other signals up to 7 days) are persisted to disk for offline delivery. Buddy snapshots are held in memory only and are lost on server restart. All queued data is automatically 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.

## 5. Buddy chat

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 for up to 24 hours and persists them to disk so they survive server restarts. They are permanently deleted on delivery or expiry. The relay cannot decrypt them. If a message is not delivered within 24 hours you will be notified and may resend. 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. The chat feature is limited to existing buddy pairs; you cannot be contacted by strangers.

## 6. Your responsibility

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.

## 7. No medical advice

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.

## 8. Content standards

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.

## 9. Prohibition on screen capture and duplication of shared content

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; the real protection is choosing buddies you trust, and honoring that trust yourself. Be aware that sharing another person's intimate images without their consent is a criminal offence in many jurisdictions.

## 10. No warranty

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.

## 11. Limitation of liability

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.

## 12. Changes to these terms

These terms may be updated from time to time. Continued use of the app constitutes acceptance of the current terms.

## 13. Governing law

These terms are governed by the laws of the jurisdiction in which the operator is based. Any disputes shall be resolved in that jurisdiction.

Privacy

## The short version

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.

## Who we are / data controller

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.

## What data we collect and where it lives

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:

- Journal entries and all associated measurements
- Photos you capture or upload
- Your display name and profile settings
- Your cryptographic identity keypair (used for end-to-end encryption)
- Contact list (buddy public keys)
- Buddy chat history (purged automatically after 30 days)

## What the relay server briefly handles

If you use the buddy sync feature, your browser connects to our relay server at `forestorers-signal.onrender.com`. The relay sees:

- Your IP address, unavoidable for any internet connection; it is not logged or stored.
- Your public identity code, a pseudonymous cryptographic routing address; it is not logged or stored.
- Encrypted data passing between you and your buddy, which is end-to-end encrypted and cannot be read by the relay.

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.

Some encrypted relay queues (undelivered chat messages, journal updates, and other signals) are persisted to disk so they survive server restarts. Buddy snapshots are held in memory only and are lost if the server restarts. All entries auto-expire per their TTL (24 hours for chat and snapshots, up to 48 hours for journal updates, up to 7 days for some other signals) and are permanently deleted on delivery or expiry. All queued data is end-to-end encrypted and cannot be read by the relay.

## Cookies and tracking

None. The app uses no cookies, no tracking pixels, no fingerprinting, no analytics scripts, and no behavioural advertising. We have no interest in knowing who you are.

## Your photos

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.

## How we protect your data

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.

## Data retention

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.

## Your rights

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:

- Access: your data is already on your device; you can read it at any time.
- Export / portability: use the Export function in Settings to download a full JSON backup.
- Deletion: clear your browser data for this origin, or delete individual entries in the app.
- Rectification: edit any entry directly in the app.

If you have a privacy concern that cannot be addressed by the above, contact us via the Forestorers.org website.

## Third-party services

The app uses the following external services in limited, defined roles:

- Google Fonts: serves typeface files for display. Subject to Google's privacy policy. No journal data is sent to Google.
- Render: hosts the signal relay server. Subject to Render's terms of service and privacy policy. No personal data is transmitted to or stored by this service.

## International transfers

Because we do not store your data, there are no international transfers of personal data from our side. Google Fonts may be operated in various jurisdictions; Google's privacy policy applies to their own processing.

## Children

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.

## Changes to this policy

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.

## Contact

Privacy questions can be directed to the project maintainer via the Forestorers.org website.

Legal

## Disclaimer of warranties

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.

## Limitation of liability

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.

## No medical advice

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.

## User content

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.

## Age restriction

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.

## Third-party services

This app uses the following third-party service in a limited, defined role:

- Render: hosts the signal relay server. Subject to Render's terms of service and privacy policy.

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.

## Free and open-source software

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. Inspecting how the app handles your data is not just permitted, it is encouraged.

## Jurisdiction

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.

## Severability

If any provision of these terms is found to be unenforceable, the remaining provisions will continue in full force and effect.