Last updated: Sep 22, 2026
Bonsai Karte is an app developed and operated by SOLVLET, for keeping a record of each bonsai you own — the work you have done, photos of how the tree looked, and when it is next due for repotting, gathered into one record per tree.
This page describes what Bonsai Karte keeps about you, what it is used for, and where it is stored. It describes what the software actually does; nothing is collected that is not listed here.
Creating an account takes three things: an email address, a display name, and a password.
The email address is used to sign you in and to reach you — including the password-reset link we send when you ask for one; it is stored in lower case so that capitalisation cannot split one person into two accounts. The display name is what the app calls you — it does not have to be your real name. The password is stored only as a bcrypt hash. The plain text is kept nowhere, so nobody running this service can read your password.
We also ask, optionally, for your age range (six bands) and gender (three options). They are used only to understand who the app is for, so that it can be made better. Both start at “Prefer not to say”; if you leave them alone, nothing is stored for either.
Everything you write afterwards — a tree's name, its species, where you got it, your notes, work logs, reminders, and the photos you upload — is stored as you entered it. Keeping that is what the app is for.
On your first visit, and then as you sign up and use the app, the following is recorded automatically. Each one comes with the reason it is kept.
Display language — to see which of the languages we offer is actually being used.
Time zone — a rough indication of the country or region you are in. It is read from your browser once, when you sign up.
Device type — one of three values only: phone, tablet, or computer. It tells us which screen widths deserve the work.
Where your first visit came from — to see how people find the app. The referring site, the advertising parameters (UTM), and the first page you opened are each stored up to 200 characters. This is written on your very first visit only; arriving later by another route does not overwrite it.
A record of the first visit itself — at the same moment the referral above is noted in a cookie, the same details (the host name of the referring site, the UTM values, the first page opened, the display language, the device category, and the date and time) are also written as a single row that belongs to nobody. It is tied neither to signing in nor to an account, and it holds neither your IP address nor the raw User-Agent string. It is there only to count how many people arrived from where, and it is deleted 400 days after it is written.
Date last used — to see whether people sign up and leave, or keep using the app. It is updated at most once a day.
Reaching the free-plan limit — to see how many people run into the one-tree ceiling.
Records about the paid plan — that you started the sign-up flow, that the paid plan became active, the customer and subscription identifiers held at Stripe, the state of the subscription, and the end of the current billing period. These let the app show you which plan you are on and, after you cancel, how long you can keep using it.
Anything held can one day leak. The following is simply not held.
IP addresses — never stored.
Details about your browser or device — discarded the moment they are reduced to the three categories above. No device name, no OS version.
Country — there is no column to store it in.
Where a photo was taken, and what took it — uploaded photos are re-encoded before they are saved, and the data a camera embeds (EXIF: GPS coordinates, camera model) does not survive that step. What remains is the picture itself.
There are three cookies, and that is all of them. None of them are for advertising or analytics.
bk_session — keeps you signed in. It lasts 30 days, cannot be read by JavaScript (httpOnly), and is deleted the moment you sign out.
bk_src — a note of where your first visit came from. It lasts 30 days and is also httpOnly. It is written on your first visit only and never overwritten.
NEXT_LOCALE — remembers the language you chose. It is set automatically by the language-switching library (next-intl).
On your first visit we also read your browser's language preference (the Accept-Language header) to decide which language to show. It is read, not stored.
What you entrust to us is used for two things only: running the service, and deciding how to improve it.
What you entrust to us is never sold to anyone, and never handed over for advertising. There is no analytics SDK and no advertising tag, so opening a page sends nothing to an outside service.
To run the service, though, we hand data to the following companies, and only the minimum they need. Email delivery (Resend): when we send you a message such as a password reset, the recipient address and the text of that mail go to them. It goes there only so that the mail arrives; it is not used for advertising. Photo storage (Cloudflare R2): this holds the uploaded picture files themselves. Paid-plan subscriptions (Stripe): when you start the sign-up flow, your email address, display name, and your user number here are passed to Stripe, and the receipt reaches that address from Stripe. Only Stripe handles your card number; it never reaches us. All of them are used under terms that do not let them use the data for anything beyond that purpose.
Even the fonts are served from this site. Displaying a page makes no request to Google or anyone else.
All the records are kept in a database we run ourselves. The photo files themselves are stored in Cloudflare's storage (R2), and are shown only to you, while signed in — opening a photo's address as somebody else shows nothing.
The database and the servers that hold the records are in Render's Singapore data centre. The photo files themselves are in Cloudflare's storage (R2). What you entrust to us is therefore kept outside Japan.
For as long as your account exists, your records are kept. This is an app for looking back, and the oldest entries are the ones worth the most.
When you sign out, the record of that session held on the server is deleted at the same time.
Trees, work logs, and photos can be deleted from the app at any time. Deleting a photo removes the stored image file itself, not just the row in the database.
There is not yet a button that closes your account and removes everything at once — we would rather say so than let you assume otherwise. If you want it all gone, write to the address below and we will delete the account's data for you.
If you were on the paid plan, the records of what you paid — the invoices and the receipts — stay with Stripe for a period after you leave, because the law requires those books to be kept. Your card number was never held by us in the first place.
For anything on this page, for questions about your own data, or to ask for it to be deleted, write to:
If what we collect or what it is used for changes, this page is updated first and the date at the top moves forward. That date is how you can tell whether anything has changed.