(function () {
try {
// AQ-r2 (2026-06-09): respect the explicit-denial sentinel
// written by cookie-consent-harden.js writeATR() on any
// marketing-axis denial (payload.marketing === false; cycle-3 F1).
// Without this gate, the next page navigation re-creates
// gmx_first_touch from the current URL+referrer+utm_*+click_ids,
// silently undoing the reject-all deletion (sweep finding #1).
// The sentinel is cleared the moment the visitor grants
// marketing in the banner (analytics-only grant does NOT
// clear), restoring the writer path on the very next
// page load. Page-cache-safe: the sentinel is a
// browser-resident cookie checked in the inline script, so
// varnish/breeze-served HTML still hits this gate.
if (/(?:^|;\s*)gmx_consent_denied=1(?:;|$)/.test(document.cookie || '')) return;
var CLICK_IDS = ['gclid','fbclid','msclkid','ttclid','wbraid','gbraid','li_fat_id'];
var qs = new URLSearchParams(window.location.search);
var urlClickIdKey = null;
for (var i = 0; i < CLICK_IDS.length; i++) {
if (qs.get(CLICK_IDS[i])) { urlClickIdKey = CLICK_IDS[i]; break; }
}// Parse existing cookie.
var existing = null;
var match = document.cookie.match(/(?:^|;\s*)gmx_first_touch=([^;]+)/);
if (match) {
try { existing = JSON.parse(decodeURIComponent(match[1])); } catch (e) { existing = null; }
}// GWP-273 — referrer-enrichment branch.
// Keep existing unless either (a) URL carries a new click id
// the stored payload lacks (paid click is a higher-value
// signal and upgrades direct/organic), OR (b) the stored
// payload has empty referrer AND the current document.referrer
// is non-empty + external (Safari/ITP/policy-quirk catch:
// first-hit may have missed the referrer; later same-session
// page-loads can recover it).
var existingHasRef = !!(existing && existing.referrer && existing.referrer !== '');
var docRef = document.referrer || '';
var refHost = '';
if (docRef) {
try {
refHost = new URL(docRef).hostname.replace(/^www\./, '').toLowerCase();
} catch (e) { refHost = ''; }
}
var ownHost = (location.host || '').replace(/^www\./, '').toLowerCase();
var currentExternalRef = !!(refHost && refHost !== ownHost);
var canEnrichRef = !!existing && !existingHasRef && currentExternalRef;if (existing) {
if (!urlClickIdKey && !canEnrichRef) return;
if (urlClickIdKey && existing[urlClickIdKey] && !canEnrichRef) return;
}var utm_keys = [
'utm_source','utm_medium','utm_campaign','utm_content','utm_term',
'utm_adgroup','utm_matchtype','utm_network','utm_device','utm_placement'
];
// GWP-273 — merge-preserving base. When enriching an existing
// payload, retain its landing_url + ts + prior click ids /
// utms; only overlay referrer (and any click id appended below
// via the forEach). Branches with/without urlClickIdKey were
// collapsed — both produced the identical Object.assign — the
// click id is added uniformly later.
//
// GWP-273 design choice: "latest external referrer wins" —
// accepted edge case where a user opens a new external tab
// post-empty-first-touch and returns; low-volume, simple, no
// sentinel flag needed.
var data;
if (existing && canEnrichRef) {
data = Object.assign({}, existing, { referrer: docRef });
} else {
data = { landing_url: window.location.href, referrer: docRef, ts: Date.now() };
}
utm_keys.concat(CLICK_IDS).forEach(function (k) {
var v = qs.get(k);
if (v) data[k] = v;
});
// GWP-208 — carry Meta's first-party click-linker cookies (_fbc
// = fb.1.<ts>.<fbclid>, _fbp) into the captured payload so they
// ride the persistent gmx_first_touch cookie cross-page (LP X →
// LP Y) the same way the URL click-ids do. The CF7 hidden-field
// populator copies the whole payload verbatim, so fbc/fbp reach
// the lead even when the form lives on a page without ?fbclid.
var fbcMatch = document.cookie.match(/(?:^|;\s*)_fbc=([^;]+)/);
if (fbcMatch && fbcMatch[1]) data.fbc = decodeURIComponent(fbcMatch[1]);
var fbpMatch = document.cookie.match(/(?:^|;\s*)_fbp=([^;]+)/);
if (fbpMatch && fbpMatch[1]) data.fbp = decodeURIComponent(fbpMatch[1]);
var encoded = encodeURIComponent(JSON.stringify(data));
if (encoded.length > 3800) return;
var expires = new Date(Date.now() + 90 * 864e5).toUTCString(); // GWP-143 C1: match Google Ads 90-day attribution window
var secure = window.location.protocol === 'https:' ? '; Secure' : '';
document.cookie = 'gmx_first_touch=' + encoded + '; Path=/; Expires=' + expires + '; SameSite=Lax' + secure;
} catch (e) {}
})();
/* Meta Pixel base — inline in wp_head so Breeze Delay-All-JS does not defer it; fbevents.js is async-injected (optimizer-invisible). */
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,document,'script',
'https://connect.facebook.net/en_US/fbevents.js');/* Symmetric with server GMX_Consent: revoke BEFORE init; cookies/sends held until grant. */
fbq('consent', 'revoke');
fbq('init', '1857131551802431');
fbq('track', 'PageView'); /* queued; flushed to Meta only after consent grant *//* Grant bridge — reads the SAME ATR marketing signal as GMX_Consent.applyConsent(). */
(function () {
function read(name){var m=document.cookie.match('(?:^|; )'+name.replace(/([.*+?^${}()|[\]\\])/g,'\\$1')+'=([^;]*)');return m?decodeURIComponent(m[1]):'';}
function marketingGranted(){
try {
var given = read('atr_cookie_notice_consent_given');
if (!given) return false; // undecided -> stay revoked
var c = JSON.parse(read('atr_cookie_notice_consent') || '{}');
return !!(c.marketing || c.ad_storage === 'granted');
} catch (e) { return false; } // NO-SILENT-OK: parse/read failure degrades gracefully to revoked (consent stays held; no marketing send) — not an error to report.
}
function apply(){ if (marketingGranted()) fbq('consent', 'grant'); }
apply();
document.addEventListener('click', function(ev){
if (ev.target && ev.target.closest && ev.target.closest('[class*="atr-cookie"], #atr-cookie-notice')) setTimeout(apply, 50);
}, true);
window.addEventListener('storage', apply);
})();
var breeze_prefetch = {"local_url":"https://gomixapp.com","ignore_remote_prefetch":"1","ignore_list":["/cart/","/checkout/","/my-account/","https://gomixapp.co.il/(.)/u05d4u05d8u05d5u05e4u05e1-u05e0u05e9u05dcu05d7-u05d1u05d4u05e6u05dcu05d7u05d4/","wp-admin","wp-login.php"]};
//# sourceURL=breeze-prefetch-js-extra
Digital Signage for Synagogue – Smart Designed Screen
Digital signage for synagogue displaying prayer times, the weekly Torah portion, memorials and gabbai announcements – automatically, with no manual work. Everything on one smart screen by GoMixApp.
Upgrade the congregant experience with digital signage for synagogue by GoMixApp A system that updates automatically and displays essential information tailored to your synagogue.
Content: daily times, candle lighting, holidays, weekly Torah portion, clock, Omer counter, announcements, event timer and digital Hanukkiah.
Smart screens for synagogue – innovation within tradition.
✓ E2E end-to-end|✓ 300+ customers|★★★★★ Google 5.0
E2E
End-to-end
+500
Screens
+15
Years of experience
+1,000
Projects
LIVE
✡
LOGO
Shabbat Shalom
LIVE
✡
LOGO
Shabbat Shalom
Candle lighting18:45
Shabbat entry19:00
Mincha prayer18:30
Arvit prayer19:15
Weekly Torah portionBereshit
Why GoMixApp? Because in a synagogue, time is sacred.
Dear gabbais, the smart screen for managing the synagogue is your responsibility – and we are here to make it easier. GoMixApp provides full automation, atomic clock synchronization and maximum accuracy in every update of the digital signage for the synagogue. You are not alone – our support team is always available.
When someone offers you a one-time, offline system, it sounds tempting. But there is a hidden cost that no one tells you about: time. Computers that are not connected to a network suffer from a technical problem we call ‘Clock Drift’. The meaning? The clock on your board may drift by minutes or even hours. When it comes to the end of the time for Shema, this drift is critical. Are you ready to take the risk?
With GoMixApp you get peace of mind and beyond: a network connection ensures atomic clock synchronization, automatic transition to daylight saving time and absolute accuracy at every prayer time. The AI engines automatically generate videos, designed halachot and holiday backgrounds – so your board always looks lively and professional. If the internet goes down, our Native App technology keeps the data in memory and the screen continues to operate. More than 300 communities and synagogues across Israel are already using the system – join us too.
Variety of Designed Templates for Electronic Noticeboard for Synagogue
Choose the template that matches the character and design of your synagogue – each template is tailored to a religious environment and conveys respect and tradition.
1. Blue and Gold Template
Digital signage for synagogue in a modern, radiant style, designed in shades of blue and gold that convey luxury and splendor.
2. Roots and Light Template
Digital signage for synagogue in a warm, traditional style, characterized by a rich design of dark wood that blends with a classic synagogue atmosphere.
3. Stone Anchor Template
Elegant and timeless, in a marble stone design
4. Temple Pillars Template
Digital signage for synagogue in a regal-temple style, characterized by white marble columns in the spirit of the pillars Yachin and Boaz on a sky background in elegant blue and gold tones.
Synagogue signage – watch the screen in front of you 👇
Choose the style that best describes the spirituality and tradition of your synagogue!
Variety of Screens with Designed Wood Frames
The LED screen for synagogue comes with a built-in classic wood frame – gold, dark or light – and blends naturally into any presentable space. The screen arrives as a single unit with the frame, is easy to install and offers especially high brightness in 4K quality, suitable for continuous 24/7 operation. The board provides a unique viewing experience combining innovation with a traditional atmosphere – perfect for batei midrash, yeshivas and religious community centers.
What can the digital display in a synagogue include?
Hebrew date and time
Prayer times – including timer to start of prayer
Weekly Torah portion
Times of sunrise, sunset and starlight
Announcements and updates for congregants
Shabbat entry and exit times
Holidays and festivals
Counting of the Omer
Memorial dates
Donor names and memorialization
Why choose a smart screen for synagogues?
Daily times and prayer times update automatically according to the geographic location of each synagogue. The smart screen displays sunrise, sunset, Shabbat and holiday entry and exit times, and accurate prayer times – with no need for repeated manual configuration.
Regarding daily times, the system updates in real time and displays sunrise, sunset, and Shabbat and holiday entry and exit times, with perfect adjustment to the synagogue location.
As for prayer times, these are updated automatically and displayed on the screens, so congregants know exactly when to start the prayers. Additionally, there is an advanced countdown timer to the next prayer time, allowing congregants to prepare accordingly.
Through our advanced content editor, content can be edited and adapted quickly and easily, keeping the displayed information current and relevant. Whether it is routine announcements to congregants or any other content, changes can be made from anywhere at any time, ensuring flexible and efficient management of smart signage for synagogues and a TV screen for the synagogue. All this contributes to simple, convenient management tailored to the changing needs of the community.
A wide variety of designed templates
Our designed templates for digital signage for synagogue are tailored to the needs of every community, whether Sephardic, Ashkenazi or Hasidic. Among the available templates you will find designs in both traditional and modern styles.
Prayer times, intended for displaying the daily prayer schedule such as Shacharit, Mincha and Maariv. The template includes an automatic update option as well as a timer tailored to each prayer time, creating a dignified and attractive appearance that encourages congregants and makes their lives easier.
Schedule, displaying Shabbat or holiday entry time, candle lighting and Shabbat exit. The template also includes special times such as Hanukkah candle lighting time and the days of the Omer count. The result is promoting the synagogue image through accurate, current information at all times in an attractive design.
Holidays and festivals board, with holiday times as well as mitzvot and customs, the weekly Torah portion, and information on fasts. You choose the information and the display that your audience prefers.
Announcements and updates display, creating communication with your audience. Delivering messages and updates to congregants, including donor details, reminders about Torah lessons and community events.
“The new content editor really gives the gabbai convenient control on the phone – thank you!”
Ariana Nagar
Business owner
Service:
★★★★★
Product:
★★★★★
Recommendation:
★★★★★
“Reliability, service, courtesy, professionalism, understanding. One of the best I have ever known”
Gil Oz
Customer
Service:
★★★★★
Product:
★★★★★
Recommendation:
★★★★★
“Real champs!”
Upgrade the congregant experience with GoMixApp digital signage for synagogues.
Our platform offers an LED screen for synagogue and an electronic board for the synagogue with a variety of unique templates and prayer times that update automatically by location, including countdown timers and holiday-tailored information. Through our easy-to-use content editor, you can remotely control the content and ensure that the displayed information is always current and relevant to congregants. With the ability to send announcements and updates in real time, GoMixApp ensures efficient and flexible management of digital signage at your synagogue.
Regular digital signage not enough for you? Interested in a touch screen to display more information with a better user experience? Click here about interactive kiosks
Join the digital revolution – smart clock for synagogue and digital signage for synagogue – and give your community the most advanced technology. Start today with GoMixApp!
Already Collaborating With Us
What does the smart signage system for the community include?
The smart signage system for the Jewish community enables full management of current, relevant content for congregants – all through a simple-to-use content editor (CMS), with no technical knowledge required. As of 2026, hundreds of communities manage their screens remotely with just a few clicks.
Prayer-times board that updates automatically by geographic location
Hebrew digital clock with simultaneous Hebrew and Gregorian dates
Interactive information kiosk for questions and community info
Donor board with memorial names and yahrzeit dates
Synagogue app for managing content from mobile
Full compatibility with the Jewish calendar and Israeli holidays
Smart signage for synagogues with designed wood frames
For pricing and setup details, contact our team and we will be happy to tailor a solution for your community.
Automatic prayer times, accurate for your community
We support all types of prayer times and all the halachic calculation methods accepted in the Jewish world. Alot HaShachar, Hanetz HaChama, end of time for Shema, Mincha Gedola and Mincha Ketana, Tzeit HaKochavim, Rabbeinu Tam and more… All times are calculated automatically by the geographic location and elevation of the synagogue’s city, and are updated daily without manual intervention.
The gabbai does not need to deal with charts, calculations or updates. The system knows on its own when Shabbat enters in your city, when the end of time for Shema is in summer and winter, and when to update times as the month changes.
Full flexibility and personalized adaptation to community customs
At GoMixApp we adapt ourselves to every unique request of your community: specific calculation methods that match the rulings of your local rabbi, custom times you observe, time offsets for local customs (such as 40 minutes for candle lighting in Jerusalem), and the customs of different communities (Ashkenaz, Sephard, Yemen, Chabad, Hasidic). Contact us with your request and our team will ensure that your screen fits exactly with your community’s customs.
Digital screen in a synagogue, central display above the bimah
Shabbat and holidays, automatic scheduling for all dates of the year
The system automatically identifies the entry of Shabbat and holidays, calculates candle-lighting and havdalah times by the synagogue’s geographic location, and displays smart page scheduling throughout the year. All holidays and dates are supported: religious holidays (Pesach, Shavuot, Sukkot, Rosh Hashanah, Yom Kippur, Hanukkah, Purim, and more), Israeli national holidays (Independence Day, Memorial Day, Holocaust Remembrance Day, Jerusalem Day, Herzl Day), fasts, memorial days, and special days on the Hebrew calendar.
Key features: automatic identification of Israel vs. the Diaspora (for the double holidays of the Diaspora, Yom Tov Sheni), separate exclusion of Yom Tov and Yom Kippur, Gregorian or Jewish scheduling (by midnight or sunset/Tzeit), and flexible offsets for the entry and exit of each holiday. For every page you can configure whether it is shown or hidden on Shabbat and holidays, and the system applies the rules automatically.
Daily study programs, connecting to all of Israel
Daily study programs unite all of Israel in shared learning, with every Jew in the world studying the same passage on the same day. The system automatically displays the daily passage of all popular study programs, without manual intervention. The gabbai does not need to search every morning for the daf of the day or which mishna to learn – everything is displayed directly on the screen.
Daily halacha, halachic knowledge for all congregants
“Daily halacha” is a new practical halacha for every day of the year, in a fixed cycle of 365 halachot. The content is compiled from classical halachic sources: Kitzur Shulchan Aruch, Shulchan Aruch Orach Chaim, Chafetz Chaim, Shmirat HaLashon, and Pirkei Avot. Many of the halachot are identical or very close to the rulings of Maran Rabbi Ovadia Yosef zt”l, who himself relied on the same classical sources.
You can choose the display style that suits your synagogue:
Summarized halacha (a short, clear summary, suitable for most screens)
Summarized halacha with nikud (for traditional Torah display)
Original halacha (the full text, for large screens and communities that emphasize tradition)
Torah scroll and digital screen alongside it in the synagogue
Weekly Torah portion, haftarah and special Shabbats
On every Shabbat the system displays the name of the current parashah, the breakdown of the 7 Torah aliyot (including chapter and verse), the haftarah (a passage from the Prophets read after the Torah reading), and the name of the previous week’s parashah (useful on Sunday-Tuesday when people still talk about “Parashat…”).
Special Shabbats are identified automatically: Shekalim, Zachor, Parah, HaChodesh, HaGadol, Shirah, Chazon, Nachamu, and more. In addition, the system identifies Rosh Chodesh (one or two days) and gives special treatment to Shabbat Rosh Chodesh (when it falls on Shabbat, with a special haftarah and additions to the prayers). For more information see the complete guide to the weekly parashah.
Special visual capabilities for the synagogue
Animated Hanukkiah: automatic display of a Hanukkiah for the Hanukkah holiday. The candles are lit by date and location (first night = one candle, and so on up to 8). The Hanukkiah and candle images can be customized to your community’s design.
Counting the Omer: the count of the 49 days between Pesach and Shavuot, displayed automatically only during the relevant period. Supports both versions: Ashkenaz and Edot HaMizrach. Learn more in the Omer counting guide.
Flexible countdown clock: a countdown to any time you choose – a prayer time (Vatikin, Shacharit, Mincha, Maariv), Shabbat or holiday entry, Shabbat exit, or any special community event. It can be displayed in various formats, from days and hours through days only or weeks until the event.
Hebrew date: displayed in all formats – full (“25 Adar II 5786”), abbreviated, numeric, or in Latin letters for visitors from abroad. A smart combination of Hebrew and Gregorian dates simultaneously, for the convenience of all congregants.
The GoMixApp scheduling engine rotates pages automatically and knows all the holidays, Shabbats, yamim tovim and prayer times. At any given moment it decides in real time which pages to show and which to hide, without manual intervention by the gabbai. You can configure daily, weekly, monthly, yearly, or one-time scheduling. Each page can be tailored to display only on Shabbat, only on holidays, only on weekdays, or any combination you choose.
The system automatically respects the rules of Shabbat and Yom Tov and hides pages that are not suitable for Shabbat and holidays. For example, you can configure a “Weekly Torah Portion” page that starts appearing 30 minutes before Shabbat entry and disappears at the end of Shabbat. The gabbai gets a synagogue that manages itself.
Smart display screens streamline community communication and significantly reduce printing costs.
Electronic noticeboards are updated remotely in real time, with no need for physical presence.
Combining prayer times, the weekly Torah portion and events – all on one central screen.
Digital display systems for synagogues support simple content management even without technical knowledge.
Choose a digital signage solution with full warranty, technical support and ongoing software updates.
Customer case studies, synagogues
Notable projects in synagogues
Interactive digital signage for prayer times, the weekly Torah portion, yizkor, dedications, study classes and community announcements, installed in 6 synagogues across Israel and abroad.
“Mayim Chaim” Synagogue, Elad
“Mayim Chaim” Synagogue in Elad underwent a technological upgrade with the installation of a smart digital information board. The screen displays prayer times, the weekly Torah portion, a mourning board and personal blessings in real time. The community enjoys a contemporary Torah experience, without A4 sheets and without manual maintenance of boards.
Tzrifin base, Chatza 108
Tradition meets technology: at Chatza 108 base in Tzrifin a digital noticeboard was installed in the synagogue. The soldiers and squad commanders receive prayer times, the weekly Torah portion, Torah quotes and commander announcements in real time.
“Ohel Shimon” Synagogue, Tiberias
“Ohel Shimon and Hannah” Synagogue in Tiberias adopted a Torah-oriented digital signage solution. The board displays prayer times by the Hebrew calendar, the weekly Torah portion, gabbai announcements and a mourning board.
“Ohel Avraham” Synagogue, Shilo
Innovation at the heart of the beit midrash: “Ohel Avraham” Synagogue in the community of Shilo installed a digital signage screen that displays Torah classes, prayer times, the weekly Torah portion and a daily-times map.
Synagogue, Moshav Regba
Tradition meets progress: the synagogue in Moshav Regba installed a digital information board that serves the agricultural community in the north. The screen displays prayer times, the weekly Torah portion, moshav committee announcements and a mourning board. The solution suited the local character of the community and lets the moshav committee easily update content from a personal computer.
“Shaarei Ovadia”, Vienna
An international project: “Shaarei Ovadia” Synagogue in Vienna ordered a digital signage system with dual display in Hebrew and German. The screens display prayer times by the community calendar, the weekly Torah portion, rabbi’s announcements and security instructions.
Frequently asked questions
What is digital signage for a synagogue?
Digital signage for a synagogue is a smart LED screen that displays prayer times, the weekly Torah portion, a donor board, memorials and community updates – all updated automatically by location and by the Jewish calendar, with no need for manual operation.
How much does digital signage for a synagogue cost?
The price depends on the size of the synagogue and the number of screens. GoMixApp offers a free trial package, followed by flexible monthly subscriptions. You can get a personalized quote by contacting the sales team.
Can I get digital signage for a synagogue for free?
Yes, GoMixApp offers a no-cost trial period during which you can evaluate the full system. In addition, there are subsidized packages for small communities – contact us to check eligibility.
What can be displayed on digital signage for synagogues?
You can display prayer times, a Hebrew digital clock, the weekly Torah portion, Shabbat entry and exit times, Omer counting, holidays and festivals, gabbai announcements, a donor board, memorials and more – all updated automatically.
Does the system work even when there is no internet?
Yes. GoMixApp’s Native App technology stores information in the screen’s memory, so the board continues to operate and display accurate times even in case of a temporary internet outage.
Does the system support different halachic calculation methods?
Absolutely. We support all the halachic calculation methods accepted in the Jewish world, and know how to adapt the system to the local rabbi’s rulings for every community. Time offsets in minutes can be added to any time, for unique local customs. Contact us and our team will ensure full adaptation to your community.
How are double holidays in the Diaspora handled?
The system automatically identifies the synagogue’s geographic location. For synagogues in the Diaspora, the system automatically displays the second day of double holidays (Yom Tov Sheni shel Galuyot), including the appropriate haftarah and prayers.
Can Daf Yomi or daily halacha be displayed automatically?
Yes. The system supports all popular daily study programs that update automatically every day: Daf Yomi (Babylonian and Jerusalem Talmud), Daily Mishna, Rambam, Chafetz Chaim, Pirkei Avot, and more. In addition, “Daily halacha” is available in several display modes (summarized halacha, summarized with nikud, or original), to choose according to the screen size and the synagogue’s style.
Comparison: smart digital signage vs. traditional noticeboard
Feature
Digital signage – GoMixApp
Traditional noticeboard
Updating prayer times
✓Automatic update by location and Hebrew calendar
✗Requires manual updating by the gabbai every week
Clock accuracy
✓Atomic clock synchronization and automatic switch to daylight saving time
✗Depends on the biological clock of the updater
Displaying donor board and memorials
✓Digital management with automatic reminders
✗A manual list that requires ongoing maintenance
Design adapted to a religious environment
✓Unique templates with wood frames for synagogues
✗A generic look without unique adaptation
Remote management
✓Update content from mobile any time and from anywhere
✗Requires physical presence in the synagogue
Operation without internet
✓Native App technology stores information in memory
Not relevant – no dependency on network connection
Summary – upgrade your community with a smart solution
Digital signage for a synagogue is much more than technology – it is a tool for strengthening the community, for accuracy in prayer times and for ongoing communication between the gabbai and the congregants. The GoMixApp system offers digital signage for synagogues with a traditional design, full automatic updates and AI support – with no complex technical requirements.
Whether you are looking for a digital screen for a synagogue, a digital clock for a synagogue, an electronic noticeboard, or an interactive information kiosk – our solution covers everything on a single screen. Hundreds of communities have already adopted the system and report a significant improvement in the congregant experience and in gabbai management. Last update: July 2026.
Want to see the system in action? Contact us now and an expert representative will be happy to give you a free demo tailored to your synagogue.
var gmxCf7LegacyUxI18n = {"errName":"Please enter a full name","errPhone":"Please enter a valid phone number","errEmail":"Please enter a valid email address","errRequired":"Required field"};
//# sourceURL=gmx-cf7-legacy-ux-js-extra
var gmxCf7UxI18n = {"progressTemplate":"{N} field(s) remaining","allSet":"All set to send!","sending":"Sending\u2026","successTitle":"Thank you! Your inquiry has been received","successBody":"A representative will get back to you within 24 hours with a tailored quote.","successCtaLabel":"See our areas of expertise","successCtaHref":"/expertise/","errorTitle":"Submission failed","errorBody":"Please try again, or call us directly"};
//# sourceURL=gmx-cf7-ux-js-extra
var atrCookieNoticeSettings = {"cookieName":"atr_cookie_notice_consent","decisionCookieName":"atr_cookie_notice_consent_given","expiryDays":"365","autoHideDelay":"0","enableDebug":"","siteName":"GoMixApp","isPrivacyPage":"","privacyPolicyUrl":"https://gomixapp.com/privacy-policy/","privacyNoteText":"\ud83d\udca1 You can read this page while deciding about cookies","mode":"simple"};
//# sourceURL=atr-cookie-notice-simple-js-extra
(function(){
function cleanUrl(url) {
// Strip query params embedded mid-path: /ID?params/file -> /ID/file
return url.replace(/\?[^\/]+\//g, '/');
}
function addWebPFallback(pic) {
if (pic.getAttribute('data-webp-fb')) return;
pic.setAttribute('data-webp-fb', '1');
var img = pic.querySelector('img');
if (!img) return;
img.onerror = function() {
this.onerror = null;
this.src = cleanUrl(this.src).replace('vi_webp','vi').replace('.webp','.jpg');
var sources = this.parentElement.querySelectorAll('source');
for (var i = 0; i < sources.length; i++) {
sources[i].srcset = cleanUrl(sources[i].srcset).replace('vi_webp','vi').replace('.webp','.jpg');
}
};
}
var observer = new MutationObserver(function() {
var pics = document.querySelectorAll('.video-seo-youtube-picture');
for (var i = 0; i < pics.length; i++) addWebPFallback(pics[i]);
});
observer.observe(document.documentElement, { childList: true, subtree: true });
})();
(function(){
var siteKey = "6Ldnu_gsAAAAAGpkh7vCd_h3L9BA193yFU59I4Do";
var action = "submit_lead_form";
var loaderUrl = "https:\/\/www.google.com\/recaptcha\/enterprise.js?render=6Ldnu_gsAAAAAGpkh7vCd_h3L9BA193yFU59I4Do";
// GWP-506 (perf): the reCAPTCHA Enterprise runtime costs ~900ms of main-thread
// work (PSI contactus TBT 660ms, perf 69). It was loaded eagerly on every page
// carrying a CF7 form. It now loads on the FIRST real page interaction
// (scroll/pointer/key/touch) — warming the runtime well before the user can
// reach submit — and never loads on a no-interaction (lab) page view, so the
// perf win holds. The token is still stamped on form focusin and refreshed at
// submit. IMPORTANT: the server gate is fail-CLOSED by default (GWP-412
// require_token) — a missing token at submit is treated as spam — so the
// runtime MUST be warm before submit; that is exactly why the warm trigger is
// first-page-interaction, NOT focusin-only (focusin-only left a race where a
// fast focus→submit could POST before the ~900ms download finished and drop a
// legit lead). The eager <script src> is gone.
var greReady = false, greWaiters = [], greLoadStarted = false;
function pollGre(attempts) {
if (typeof grecaptcha !== 'undefined' && grecaptcha.enterprise) {
greReady = true;
var queued = greWaiters;
greWaiters = [];
queued.forEach(function (fn) { try { fn(); } catch (e) {} });
return;
}
if (attempts > 200) {
// no-silent-failures: enterprise.js never became ready (network-blocked,
// consent/privacy blocker, or a Google outage). Surface it — a missing
// token fails CLOSED server-side (GWP-412) and drops the lead.
if (window.console && console.warn) {
console.warn('[GMX recaptcha] enterprise.js not ready after ~10s; token will be missing (submit fails closed).');
}
return; // give up after ~10s (200 * 50ms)
}
setTimeout(function () { pollGre(attempts + 1); }, 50);
}
function loadGre() {
if (greLoadStarted) return;
greLoadStarted = true;
var s = document.createElement('script');
s.src = loaderUrl;
s.async = true;
document.head.appendChild(s);
pollGre(0); // begin polling only once the runtime is actually loading
}
function whenGreReady(cb) {
if (greReady) return cb();
greWaiters.push(cb);
}
function stampToken(form) {
if (!form.querySelector('.wpcf7-form-control-wrap input[type="submit"], .wpcf7-submit')) return;
loadGre(); // lazy: kick off enterprise.js on demand (idempotent)
whenGreReady(function () {
grecaptcha.enterprise.ready(function () {
grecaptcha.enterprise.execute(siteKey, { action: action }).then(function (token) {
var hidden = form.querySelector('input[name="gmx_recaptcha_token"]');
if (!hidden) {
hidden = document.createElement('input');
hidden.type = 'hidden';
hidden.name = 'gmx_recaptcha_token';
form.appendChild(hidden);
}
hidden.value = token;
}).catch(function () {
// no-silent-failures: token generation failed; the server gate is
// fail-CLOSED (GWP-412), so this submit will be rejected as spam.
if (window.console && console.warn) {
console.warn('[GMX recaptcha] token execute failed; submit will fail closed.');
}
});
});
});
}
document.addEventListener('wpcf7submit', function (e) { stampToken(e.target); });
// Also stamp on first focus into any CF7 form (so token ready before submit).
// `whenGreReady()` queues the stamp until grecaptcha loads, so the once-
// listener stays safe even if grecaptcha isn't ready at focus-in time.
document.querySelectorAll('form.wpcf7-form').forEach(function (form) {
form.addEventListener('focusin', function once() {
form.removeEventListener('focusin', once);
stampToken(form);
});
});
// GWP-506: warm enterprise.js on the FIRST real page interaction so the ~900ms
// runtime is ready before the user reaches submit (closes the focusin-only race
// against the fail-CLOSED server gate, and covers AJAX/popup-injected forms that
// missed the focusin binding above). Never fires on a no-interaction (lab) view,
// so the perf win holds. Idempotent via loadGre()'s greLoadStarted guard.
var warmOpts = { passive: true, capture: true };
var warmEvents = ['pointerdown', 'keydown', 'touchstart', 'scroll'];
function warmGre() {
loadGre();
warmEvents.forEach(function (e) { window.removeEventListener(e, warmGre, warmOpts); });
}
warmEvents.forEach(function (e) { window.addEventListener(e, warmGre, warmOpts); });// GWP-507 (CONFIRMED LIVE: 19 real leads dropped in 8 days): capture-phase
// submit GATE. The warm/focusin logic above only *helps* the token be ready;
// it is NOT a guarantee. The race: a user whose FIRST interaction is clicking
// submit on an autofilled form (no prior scroll/field-touch to warm the
// ~900ms enterprise.js), or who submits before the runtime readies, serializes
// the AJAX POST with an EMPTY gmx_recaptcha_token → the fail-CLOSED server gate
// (GWP-412 require_token) drops the lead as spam. CF7's `wpcf7submit` fires
// AFTER the AJAX POST (too late), and CF7 exposes no documented pre-POST JS
// hook (verified: contactform7.com/dom-events). So the ONLY seam is to
// intercept the native DOM submit/click in CAPTURE phase, HOLD it until
// greReady + token stamped, then re-dispatch. grecaptcha token lifetime is
// 2 minutes, so holding briefly is safe.
//
// TIMEOUT-FALLBACK CHOICE (a): if enterprise.js never readies within the
// ~10s ceiling (network-blocked / consent-blocker / Google outage), we
// RE-ENABLE the button and let the submit proceed WITHOUT a token rather than
// hard-blocking the user. It will fail-CLOSED server-side (GWP-412), but the
// console.warn fires loudly (no-silent-failures) — we never trap a real user
// behind a spinner they can't escape.
var GATE_TIMEOUT_MS = 10000; // matches pollGre ceiling (200 * 50ms).
function gmxFormHasToken(form) {
var hidden = form.querySelector('input[name="gmx_recaptcha_token"]');
return !!(hidden && hidden.value);
}
function gmxSetVerifying(form, on) {
var btn = form.querySelector('.wpcf7-submit, input[type="submit"], button[type="submit"]');
if (!btn) return;
if (on) {
btn.disabled = true;
btn.setAttribute('data-gmx-verifying', '1');
} else {
btn.disabled = false;
btn.removeAttribute('data-gmx-verifying');
}
}
function gmxReleaseSubmit(form) {
// Mark released so the re-dispatched submit passes straight through the
// capture gate (no re-gate loop), re-enable UX, then re-trigger.
form.__gmxGateReleased = true;
gmxSetVerifying(form, false);
if (typeof form.requestSubmit === 'function') {
form.requestSubmit();
} else {
form.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));
}
// GWP-507 finding-1 (BLOCKER fix): reset the release flag on the NEXT tick
// so any FUTURE user submit (user edits a field + resubmits) is re-gated and
// stamps a FRESH token. reCAPTCHA tokens are single-use with a ~2-min
// lifetime — without this reset, __gmxGateReleased stayed true forever after
// the first release, letting a second submit bypass the gate and POST a
// stale/used token. The setTimeout(0) lets the synchronous re-dispatch above
// complete (which short-circuits on the still-true flag) before we re-arm.
setTimeout(function () { form.__gmxGateReleased = false; }, 0);
}
function gmxSubmitGate(e) {
var form = e.currentTarget;
if (form.tagName !== 'FORM') { form = form.form || form.closest('form.wpcf7-form'); }
if (!form) return;
// Idempotent: a programmatic re-submit we already released proceeds. This is
// the ONLY pass-through — it lets the freshly-stamped re-dispatch reach CF7.
// (The flag is reset on the next tick in gmxReleaseSubmit, so the NEXT user
// submit is re-gated.)
if (form.__gmxGateReleased) return;
// GWP-507 finding-2 (stale/used token fix): every USER submit HOLDS + stamps
// a FRESH token — we do NOT early-return on an already-present token. A token
// already sitting in the hidden input may be stale or already used (single-
// use, ~2-min lifetime); proceeding on it would POST a dead token. enterprise.js
// is warm by submit time, so grecaptcha.enterprise.execute() resolves in
// ~100-300ms — the per-submit hold is brief. stampToken() OVERWRITES the
// hidden input value (hidden.value = token), so no stale token lingers.
// HOLD: block CF7's submit handler before the AJAX POST.
e.preventDefault();
e.stopImmediatePropagation();
if (form.__gmxGateWaiting) return; // a click + submit may both fire; hold once.
form.__gmxGateWaiting = true;
loadGre(); // kick the warm if not started.
gmxSetVerifying(form, true);
var released = false;
function release(missing) {
if (released) return;
released = true;
form.__gmxGateWaiting = false;
if (missing && window.console && console.warn) {
console.warn('[GMX recaptcha] submit gate timed out (~10s); releasing without token (submit fails closed).');
}
gmxReleaseSubmit(form);
}
var timer = setTimeout(function () { release(true); }, GATE_TIMEOUT_MS);
whenGreReady(function () {
stampToken(form);
// stampToken resolves the token asynchronously (enterprise.execute
// promise); poll briefly for the stamp, then release. Bounded by the
// same overall timer above.
(function awaitStamp(n) {
if (released) return;
if (gmxFormHasToken(form)) { clearTimeout(timer); release(false); return; }
if (n > 200) { clearTimeout(timer); release(true); return; } // ~10s (200*50ms)
setTimeout(function () { awaitStamp(n + 1); }, 50);
})(0);
});
}
// GWP-507 finding-4 (CF7 phase): WHY capture phase works. Our gate listener is
// registered in CAPTURE phase (3rd arg `true`), so it runs BEFORE CF7's own
// bubble-phase 'submit' handler on the same form. When we call
// e.stopImmediatePropagation() in the capture listener, the DOM spec stops ALL
// further listeners for that event on the target — including the later
// bubble-phase CF7 handler — so CF7's AJAX POST never fires until we re-dispatch
// with a fresh token. This capture-phase interception is the only documented
// pre-POST seam: CF7 exposes no pre-POST JS hook (wpcf7submit fires AFTER the
// AJAX POST). See contactform7.com/dom-events.
document.querySelectorAll('form.wpcf7-form').forEach(function (form) {
form.addEventListener('submit', gmxSubmitGate, true);
var btn = form.querySelector('.wpcf7-submit, input[type="submit"], button[type="submit"]');
if (btn) { btn.addEventListener('click', gmxSubmitGate, true); }
});
})();
(function(){
var loaded = false;
function loadUserWay() {
if (loaded) return;
loaded = true;
var el = document.createElement('script');
el.setAttribute('data-account', "UX40fo0Ctw");
el.setAttribute('data-language', "en");
el.setAttribute('src', 'https://cdn.userway.org/widget.js');
document.body.appendChild(el);
events.forEach(function(e){ window.removeEventListener(e, loadUserWay, {passive: true}); });
}
var events = ['scroll', 'mousemove', 'touchstart', 'click', 'keydown'];
events.forEach(function(e){ window.addEventListener(e, loadUserWay, {passive: true}); });
})();