12Plainly
Three columns: what works, what needs a connection before it counts, and what is later. The first column is not a public launch.
Arabic is the default, with RTL layout. English is a full public path.
Each service shows outcome, deliverables, limits, and stages. A public price appears only after an explicit approval.
Validation, a honeypot, and consent. Success means a Firestore document. Spark has no per-address rate limit.
The reference plus the key shows status and the public note. It does not show the name, contact, or request text.
Templates are marked unpublished. There is no client, result, or organization logo.
Starter articles for review, labeled as drafts and kept out of the public sitemap until deliberately published.
A Firebase Auth panel for requests, statuses, coupons, and CSV export. Public copy lives in seed files, not in a content editor.
Names live in one file. The current mark and colors are interim until original assets arrive. Templates are generated rather than hand-copied.
No testimonials, awards, client counts, or price list. That absence is intentional.
Titles, descriptions, a sitemap, language alternates, and structured data for the provisional name and the known channel. Public pages can be indexed. The operator panel is not.
The measurement script loads only after consent and only if NEXT_PUBLIC_GA_ID is set. With no id, nothing is sent and no visitor numbers are shown.
A purchase request is always refused. There is no public buy button.
Items are reviewed and stored with a number and an access key. Status stays unpaid. Another device cannot open the order with the reference alone.
Two public links that loaded, with an embed and a direct link. Submitting them does not create a local order. Their identity is older than the provisional name.
Choosing a package and an add-on shows a count only. The money cell stays “request a quote”.
Five questions and a score in the browser. It is not a security certificate or an audit.
A service worker keeps a few pages when the network drops. Saving and admin still need a connection.
The panel opens with the Firebase account that matches the email in the rules. The relay key is visible in the bundle because it is a public setting. No secrets are committed.
The intended publish path is a static export on Firebase Hosting with Firestore. No persistent disk is required. The owner creates the project and deploys it.
After a request is stored, the browser calls Apps Script if its URL is set. Mail is not described as delivered before the relay answers.
The slot is optional. Without an id, Google Analytics is not loaded even if consent is accepted.
When files arrive, the interim mark is replaced from config. The current drawing is not claimed as a historical logo.
The proposed Latin name is waiting on conflict and domain checks. This project registers neither a domain nor a mark.
The text is a draft for the owner. It is not legal advice and not a binding policy.
The six links are shown as an option. Setup was incomplete and the trial was near expiry. No invented slots.
The Apps Script posts only to the studio mailbox after a shared secret and an hourly cap. The script was not deployed from here and no mail was sent.
No launch is claimed before tests pass and a host exists that does not buy a domain or change Zoho mail records.
A later preference. A receiving account is not a card gateway. No account details are shown and no fake checkout is built.
It is not a proposed path. There is no button and no logo.
It stays “later” until the owner approves a provider and terms. There is no synthetic identity workaround.
The current panel is one verified email in the rules. It is not a team system.
No verified public URL. The short note on this site is a first-party record only.
The model has no “published for a client” state. That waits until work can be attributed honestly.