Last updated: 16 October 2026
This is a translation for convenience. The Arabic version of this page is the binding one; if the two differ, the Arabic text prevails.
You open pages, read, print, download a copy, and play the audio, and we link none of that to your name. Visit measurement does not run until you consent to it — the detail is under “Visit measurement” below.
The only thing counted is the story’s read counter: a single number on the story itself that goes up by one. Nothing is stored with it about who read, or when, or from where, and it cannot be traced back to a person. Your browser stores a temporary marker so that one story is not counted twice in a session — that marker is in your browser, not with us, and it disappears when you close the tab.
Accounts are managed by Firebase Authentication from Google. If you register with an email address and a password, the password goes to them directly, hashed; it does not pass through us and we cannot read it. If you sign in with a Google account, there is no password here at all: we receive your email address and your display name from Google.
Facebook sign-in will be added, and it works the same way as Google: we receive your email address and display name from the provider and nothing else. We do not ask for your friend list, your posts, or your photos, and we write nothing to your account there.
In the Mulhm database we keep one row for you: your Firebase identifier, your display name, your role (reader or editor), and the date the row was created. That row holds no email address, no password, and no photo.
None of this is gathered automatically: every item is something you do by hand and see on the screen.
Liking is now an account feature rather than a visitor action, and the key that prevents duplicates is your account identifier. So we store nothing in your browser for it, and we do not touch your network address.
It was open to visitors in an earlier version, and a random token was stored in the browser alongside a hashed fingerprint of the network address. Both are gone: no token remains in your browser, and no network address is counted in a new like. The older like rows remain, because they are counts readers see on the stories, and they are attributed to no one.
The text of a review is read by an editor before it appears to people, and so is your rating if you send them together. The reason is that many of our stories are religious or historical, and a text published unread may attribute to the faith what is not sound.
You always see your review and its status on the story page, and you may edit it or delete it. Deleting it removes its row from the database and takes your rating out of the story average.
A submission requires an account, and its author is read from the session rather than from a form field. We keep its row with its status — under review, accepted, or rejected — because your page cannot tell you “rejected, and here is why” about a row that has been removed. The row stays so that you can see it, not so that we can.
The attachment is kept in a private store that can only be read through a short-lived signed link the server issues when it is opened in the editing panel — so it has no permanent link, and it does not reach anyone without permission.
We tell you the decision on your submission by email: accepted, or rejected with its reason, and likewise the outcome of a withdrawal request.
Subscription is immediate: whoever enters an email address in the newsletter form is subscribed at that moment, with no confirmation email. Every message carries an unsubscribe link of your own that works at once and without signing in.
Unsubscribing deletes your row rather than merely flagging it: keeping an address in our table after its owner asked for it to be removed cannot be justified.
The subscription form does not disclose the state of an address: its reply is the same whether you are subscribed or not — so that it cannot become a tool for finding out who subscribed.
We want to know which stories are read and where readers arrive from, so that we write more of what helps. For that we use Google Analytics — with your consent alone.
Before you consent, nothing of it is loaded at all: no script, no cookie, and no network request to Google. That is stricter than the “consent mode” many sites run in a denied state, where the script still runs on the page of someone who declined.
If you do consent, what reaches Google is:
What does not reach it is your name, your email address, your saved stories, or anything you wrote , and we do not link what it measures to your account with us. We ask it to mask the last part of your network address ( `anonymize_ip`). We do not use it for advertising and we do not sell what is in it.
And you may withdraw your consent whenever you wish — from here, or by clearing this site’s data from your browser. Declining takes nothing away from the site: reading, accounts, saved stories, and the newsletter are unchanged.
The story read counter you see on the page has nothing to do with this: it is counted on our own server, and it works whether you consented or declined — and it is a number that traces back to no one.
The Mulhm Android app uses Meta's (Facebook) SDK to measure the performance of our ads on Facebook and Instagram. It collects your device's advertising ID and general events such as opening the app and creating an account; we do not send it your name or email. You can opt out of ad personalization or reset your advertising ID in your device settings (Google → Ads).
The Mulhm website may show ads from Google AdSense. As a third-party vendor, Google uses cookies (including the DoubleClick cookie) to serve ads, and may base its ads on your previous visits to this site and to other sites on the internet.
Your measurement answer is kept in local storage, not in a cookie: a cookie is sent to the server with every request, while local storage never leaves your device. Everything in this list is removed by clearing the site’s data.
Your language choice, however, has to be a cookie: our server reads it before any JavaScript loads, so that it knows which language to serve, and local storage never leaves your device so it cannot be read there. It is sent only to our own domains ( `mulhm.com` and its subdomains), never to a third party, and it carries nothing but the two letters of the language — no identifier, no tracking token, and nothing about you.
The database and server run on Railway in the Western Europe — Netherlands, European Union region. Files (covers, audio, clips and submission attachments) are stored on Cloudflare R2 in Western Europe and delivered through Cloudflare's network. Account data (the email address and the hashed password) is held by Google through Firebase Authentication.
The database has no public address on the internet: only our own server connects to it, over an internal network, so no one reaches it from the network even holding the password. A daily backup is taken and kept in private storage that can only be read with authorization.
Email is sent through Resend, so the address and the message text pass through them for the purpose of sending alone.
Search runs over the stories’ texts, titles, and keywords inside our own database. We index nothing from reader data, and we do not keep what you searched for nor link it to your account.
Deleting your account removes your row from our database, along with your saved stories, your likes, your ratings, your reviews, and the submissions that were not published, and it removes your account from Firebase.
It is in your hands, from the “Delete account” card on your account page , and it happens at once. The steps and exactly what is removed are set out on the data deletion page .
Published stories remain, along with the author name stored on them — separated from an account that is gone. A published story was edited by an editor, attributed to its source, and is read by people; deleting it would break published links and erase someone else’s work.
To make a request, write to us from the contact page . We reply within a reasonable time.
Mulhm has a section of children’s stories, and reading it needs no account — so your child can read without creating anything. Accounts are for adults, or under a guardian’s supervision.
We do not knowingly collect data from children. If you learn that an account was created in your child’s name, tell us and we will delete it.
The connection to the site is encrypted throughout, editing permissions are verified on the server on every request rather than in the browser, and your role is read from the database every time — so revoking a permission takes effect at once. We do not promise absolute security: no one can promise that honestly.
If we change what we collect or where we store it, we change this page and update its date above. A substantial change is announced to newsletter subscribers.
A question about this page? Contact us.