Skip to content
Jithendar.com
ContentsShow or hide

Guide · Site settings

Advanced settings

Lower-level options for operators.

For: adminsPage 55 of 71

Overview

Advanced settings holds lower-level site options. Change these only when you know what a setting does; each page section explains its options.

Where to find it

This page of the admin: /admin/advanced. Only admins (and read-only demo accounts) can open it.

Settings on this page

What each setting does and its default. Defaults only: the manual never shows the values saved on a site.

Search engine verification

Proves ownership of jithendar.com in Google Search Console and Bing Webmaster Tools (rendered as <meta> tags). Several tokens: separate with commas. An empty field uses the deployment's environment variable of the same name.

SettingWhat it doesDefault
Google Search Console tokenGOOGLE_SITE_VERIFICATION—from the environment
Bing Webmaster tokenBING_SITE_VERIFICATION—from the environment

Analytics, ads and consent

Google Analytics 4 and AdSense load only in production, only on public pages, and only after consent where the law requires it. An empty field uses the deployment's environment variable of the same name.

SettingWhat it doesDefault
GA4 measurement IDGA4_MEASUREMENT_ID—from the environment
AdSense publisher IDADSENSE_CLIENT_IDEmpty: ca-pub-2479369059565142 (jithendar.com's account). "off" disables ads.from the environment
Ad slot: end of articleADSENSE_SLOT_ARTICLE_END—from the environment
Ad slot: listingsADSENSE_SLOT_LISTING—from the environment
Show Google test ads outside productionADSENSE_TEST_MODE—off
Consent defaultCONSENT_DEFAULTOptions: Regional: ask in EEA, UK and Switzerland; allowed elsewhere, Strict: ask everyone before analytics or ads.from the environment
ads.txtADS_TXTExactly the line(s) your AdSense account gives you; served at /ads.txt. Empty: /ads.txt returns 404.from the environment

Human verification (Cloudflare Turnstile)

Protects sign-in, sign-up, comments and the contact form. Cloudflare dashboard → Turnstile → your widget. Wrong keys block sign-in: test in a private window after saving. An empty field uses the deployment's environment variable of the same name.

SettingWhat it doesDefault
Site keyTURNSTILE_SITE_KEY—from the environment
Secret keyTURNSTILE_SECRET_KEYSecret: encrypted, never shown again.from the environment

Cal.com bookings

Bookings, reschedules and cancellations from Cal.com appear in Admin → Bookings. In Cal.com: Settings → Developer → Webhooks → New: subscriber URL https://jithendar.com/api/cal/webhook, events Booking created, rescheduled, cancelled, requested and rejected, and a secret. Paste the same secret here; requests without a valid signature are refused. An empty field uses the deployment's environment variable of the same name.

SettingWhat it doesDefault
Webhook secretCAL_WEBHOOK_SECRETAt least 16 characters; any printable characters without spaces. Secret: encrypted, never shown again.from the environment

Razorpay payments (paid calls)

Paid calls on /hire-me (Admin → Appearance → Hire me → Paid calls). Razorpay Dashboard → Account & Settings → API keys: Key ID and Key secret (use rzp_test_ keys first). Then Webhooks → Add: URL https://jithendar.com/api/razorpay/webhook, events payment.captured, payment.failed and order.paid, and a secret; paste the same secret here. Payments in USD need International payments enabled on the Razorpay account. An empty field uses the deployment's environment variable of the same name.

SettingWhat it doesDefault
Key IDRAZORPAY_KEY_IDPublic: sent to the visitor's browser to open Checkout.from the environment
Key secretRAZORPAY_KEY_SECRETSecret: encrypted, never shown again.from the environment
Webhook secretRAZORPAY_WEBHOOK_SECRETAt least 12 printable characters, no spaces. Secret: encrypted, never shown again.from the environment

Image generation limits

Caps on Gemini usage (each image costs money). The key and model are in Integrations. An empty field uses the deployment's environment variable of the same name.

SettingWhat it doesDefault
Images per author per hourGEMINI_IMAGE_USER_HOURLY_LIMIT—from the environment
Images per day (whole site)GEMINI_IMAGE_DAILY_LIMIT—from the environment
Parallel generations per authorGEMINI_IMAGE_USER_CONCURRENCY—from the environment
Timeout (milliseconds)GEMINI_IMAGE_TIMEOUT_MS—from the environment

Video generation

Short AI clips for articles (editor → Generate → Video), made with a Veo model through the Gemini API using the Gemini key from Integrations. Off until a model is set. Each clip costs far more than an image, so the limits are low. An empty field uses the deployment's environment variable of the same name.

SettingWhat it doesDefault
Video modelGEMINI_VIDEO_MODELThe model code from ai.google.dev (Veo). Empty turns video generation off.from the environment
Resolution (optional)GEMINI_VIDEO_RESOLUTIONSent only when set; not every model accepts every value.from the environment
Clip length in seconds (optional)GEMINI_VIDEO_SECONDS—from the environment
Videos per author per hourGEMINI_VIDEO_USER_HOURLY_LIMIT—from the environment
Videos per day (whole site)GEMINI_VIDEO_DAILY_LIMIT—from the environment
Give up after (milliseconds)GEMINI_VIDEO_TIMEOUT_MS—from the environment

Members-only articles

A post marked “Members only” in the editor shows signed-out readers the first part of the article and a prompt to sign in or create an account. This is how much they see by default; a single post can set its own percentage in the editor. An empty field uses the deployment's environment variable of the same name.

SettingWhat it doesDefault
Public preview (% of the article)MEMBERS_PREVIEW_PERCENTThe cut is made between paragraphs, so the real share is the nearest whole block at or above this.from the environment

Video destinations

Where a generated video can go when an author inserts it. The editor offers only destinations that are switched on here and fully filled in. This site's own media library (R2) plays the file directly; Cloudflare Stream, Mux and Bunny Stream encode it for adaptive streaming and the article embeds their player (the video then lives in that service's account, not in Admin → Media). An empty field uses the deployment's environment variable of the same name.

SettingWhat it doesDefault
Turn OFF this site's own media library (R2) as a destinationVIDEO_DEST_R2_DISABLEDIt is on unless this is ticked.off
Cloudflare StreamCF_STREAM_ENABLED—off
Cloudflare account IDCF_STREAM_ACCOUNT_ID—from the environment
Cloudflare API tokenCF_STREAM_API_TOKENA token with the Stream: Edit permission only. Secret: encrypted, never shown again.from the environment
Stream customer codeCF_STREAM_CUSTOMER_CODEShown in any Stream embed code in the Cloudflare dashboard.from the environment
MuxMUX_ENABLED—off
Mux token IDMUX_TOKEN_ID—from the environment
Mux token secretMUX_TOKEN_SECRETAn access token with Mux Video read and write. Secret: encrypted, never shown again.from the environment
Bunny StreamBUNNY_STREAM_ENABLED—off
Bunny video library IDBUNNY_STREAM_LIBRARY_ID—from the environment
Bunny library API keyBUNNY_STREAM_API_KEYThe Stream library's own key (Stream → library → API), not the account key. Secret: encrypted, never shown again.from the environment

Profile pictures

Limits for pictures readers upload on their account page (always re-encoded to 512 px WebP). An empty field uses the deployment's environment variable of the same name.

SettingWhat it doesDefault
Largest upload (bytes)AVATAR_MAX_BYTES2097152 = 2 MBfrom the environment
Largest side (px)AVATAR_MAX_DIMENSION—from the environment
Smallest side (px)AVATAR_MIN_DIMENSION—from the environment