/** * Summit Signal - AI-Powered Conversion Optimization * Version: 3.0.0 * * This script enables: * 1. Event tracking for user behavior * 2. A/B test implementation via CSS selectors (no manual attributes needed) * 3. Dynamic content optimization based on AI suggestions */ (function() { 'use strict'; // Configuration const CONFIG = { API_URL: window.SUMMIT_SIGNAL_API_URL || 'https://tfwfjryeygculbnkotzg.supabase.co/functions/v1', TRACKING_ID: window.SUMMIT_SIGNAL_ID || null, DEBUG: window.SUMMIT_SIGNAL_DEBUG || false }; if (!CONFIG.TRACKING_ID) { console.error('[Summit Signal] Missing SUMMIT_SIGNAL_ID'); return; } // Add anti-flicker CSS - hide elements until optimizations are applied const antiFlickerStyle = document.createElement('style'); antiFlickerStyle.id = 'summit-signal-anti-flicker'; antiFlickerStyle.textContent = ` [data-summit-loading] { opacity: 0 !important; transition: opacity 0.15s ease-in-out; } [data-summit-loaded] { opacity: 1 !important; } `; document.head.appendChild(antiFlickerStyle); // Timeout to prevent permanent hiding if API fails const ANTI_FLICKER_TIMEOUT = 2000; // Utility functions const log = (...args) => CONFIG.DEBUG && console.log('[Summit Signal]', ...args); const error = (...args) => console.error('[Summit Signal]', ...args); // Session management const getSessionId = () => { let sessionId = sessionStorage.getItem('summit_signal_session'); if (!sessionId) { sessionId = 'ss_' + Math.random().toString(36).substring(2, 15) + Date.now().toString(36); sessionStorage.setItem('summit_signal_session', sessionId); } return sessionId; }; const sessionId = getSessionId(); // Track applied tests to prevent duplicates const appliedTests = new Set(); // Event tracking const trackEvent = async (eventType, elementId, metadata = {}) => { try { const response = await fetch(`${CONFIG.API_URL}/summit-track-event`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ site_id: CONFIG.TRACKING_ID, event_type: eventType, element_id: elementId, session_id: sessionId, page_path: window.location.pathname, metadata }) }); if (!response.ok) { throw new Error(`HTTP ${response.status}`); } log(`Tracked ${eventType} on ${elementId}`); } catch (err) { error('Track event failed:', err); } }; /** * Find element using CSS selector or data-summit-id fallback */ const findElement = (cssSelector, elementId) => { // Try CSS selector first if (cssSelector) { const el = document.querySelector(cssSelector); if (el) { log(`Found element via CSS selector: ${cssSelector}`); return el; } log(`CSS selector not found: ${cssSelector}`); } // Fallback to data-summit-id for backwards compatibility if (elementId) { const el = document.querySelector(`[data-summit-id="${elementId}"]`); if (el) { log(`Found element via data-summit-id: ${elementId}`); return el; } } return null; }; // Visibility tracking (for elements with data-summit-id - backwards compatible) const setupVisibilityTracking = () => { const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting && entry.intersectionRatio >= 0.5) { const elementId = entry.target.getAttribute('data-summit-id'); if (elementId && !entry.target.dataset.summitTracked) { entry.target.dataset.summitTracked = 'true'; trackEvent('visible', elementId); } } }); }, { threshold: [0.5] }); document.querySelectorAll('[data-summit-id]').forEach(el => { observer.observe(el); }); // Watch for new elements const mutationObserver = new MutationObserver(() => { document.querySelectorAll('[data-summit-id]:not([data-summit-tracked])').forEach(el => { observer.observe(el); }); }); mutationObserver.observe(document.body, { childList: true, subtree: true }); }; // Click tracking const setupClickTracking = () => { document.addEventListener('click', (e) => { // Track clicks on tested elements const testedEl = e.target.closest('[data-summit-test]'); if (testedEl) { const testId = testedEl.dataset.summitTest; const variant = testedEl.dataset.summitVariant; trackEvent('cta-click', testId, { test_id: testId, variant }); log(`Click tracked: test=${testId}, variant=${variant}`); return; } // Backwards compatible: track clicks on data-summit-id elements const target = e.target.closest('[data-summit-id]'); if (target) { const elementId = target.getAttribute('data-summit-id'); trackEvent('cta-click', elementId); } }); }; // A/B Testing & Implementation const applyOptimizations = async (isInitial = false) => { // Track elements we're potentially modifying for anti-flicker const elementsToReveal = []; try { // Check for preview mode via URL params const urlParams = new URLSearchParams(window.location.search); const previewElement = urlParams.get('summit_preview') || urlParams.get('signal_preview') || urlParams.get('summit_preview_element'); const previewVariant = urlParams.get('summit_variant') || urlParams.get('variant') || urlParams.get('summit_preview_variant'); if (previewElement && previewVariant) { log(`Preview mode: showing ${previewVariant} for ${previewElement}`); // Show preview banner if (!document.getElementById('summit-signal-preview-banner')) { const banner = document.createElement('div'); banner.id = 'summit-signal-preview-banner'; banner.innerHTML = `
🧪 Summit Signal Preview Mode - Viewing Variant ${previewVariant.toUpperCase()} for "${previewElement}"
`; document.body.prepend(banner); } } const response = await fetch(`${CONFIG.API_URL}/summit-signal-implement`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ site_tracking_id: CONFIG.TRACKING_ID, preview_element: previewElement, preview_variant: previewVariant }) }); if (!response.ok) { throw new Error(`HTTP ${response.status}`); } const data = await response.json(); log('Received optimizations:', data); // Apply winning variants (permanent changes) data.winners?.forEach(winner => { const element = findElement(winner.css_selector, winner.element_id); if (element) { element.textContent = winner.content; element.dataset.summitTest = winner.element_id; element.dataset.summitVariant = 'winner'; element.removeAttribute('data-summit-loading'); element.setAttribute('data-summit-loaded', 'true'); elementsToReveal.push(element); log(`Applied winner for ${winner.element_id}: "${winner.content}"`); } else { log(`Winner element not found: ${winner.element_id} (selector: ${winner.css_selector})`); } }); // Apply A/B test variants data.active_tests?.forEach(test => { // Skip if already applied if (appliedTests.has(test.element_id)) { log(`Test ${test.element_id} already applied, skipping`); return; } const element = findElement(test.css_selector, test.element_id); if (element) { // Check if this element is in preview mode const forceVariant = previewElement === test.element_id ? previewVariant : null; const showB = forceVariant ? (forceVariant === 'b' || forceVariant === 'variant_b') : test.show_variant_b; const variant = showB ? test.variant_b : test.variant_a; const variantLabel = showB ? 'b' : 'a'; // Store original content if (!element.dataset.summitOriginal) { element.dataset.summitOriginal = element.textContent; } element.textContent = variant; element.dataset.summitTest = test.test_id || test.element_id; element.dataset.summitVariant = variantLabel; element.removeAttribute('data-summit-loading'); element.setAttribute('data-summit-loaded', 'true'); elementsToReveal.push(element); appliedTests.add(test.element_id); if (forceVariant) { element.style.outline = '3px solid #f97316'; element.style.outlineOffset = '2px'; log(`Preview: forced variant ${forceVariant} for ${test.element_id}`); } else { log(`Applied variant ${variantLabel} for ${test.element_id}: "${variant}"`); } // Track impression (skip in preview mode) if (!previewElement) { trackEvent('ab-impression', test.element_id, { test_id: test.test_id, variant: variantLabel }); } } else { log(`Test element not found: ${test.element_id} (selector: ${test.css_selector})`); } }); log('Optimizations applied successfully'); } catch (err) { error('Apply optimizations failed:', err); // On error, reveal any hidden elements document.querySelectorAll('[data-summit-loading]').forEach(el => { el.removeAttribute('data-summit-loading'); el.setAttribute('data-summit-loaded', 'true'); }); } }; // Connection heartbeat const sendHeartbeat = async () => { try { const response = await fetch(`${CONFIG.API_URL}/verify-addon-connection`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ site_tracking_id: CONFIG.TRACKING_ID, ping_type: 'heartbeat', metadata: { page: window.location.pathname, timestamp: new Date().toISOString(), version: '3.0.0' } }) }); if (response.ok) { log('Heartbeat sent successfully'); } } catch (err) { error('Heartbeat failed:', err); } }; // Initialize const init = async () => { log('Initializing Signal v3.2.0 (anti-flicker mode)'); log('Tracking ID:', CONFIG.TRACKING_ID); // Set up anti-flicker timeout - ensure elements show even if API fails const antiFlickerTimeout = setTimeout(() => { document.querySelectorAll('[data-summit-loading]').forEach(el => { el.removeAttribute('data-summit-loading'); el.setAttribute('data-summit-loaded', 'true'); }); log('Anti-flicker timeout reached, revealing elements'); }, ANTI_FLICKER_TIMEOUT); // Send initial heartbeat (don't await - run in parallel) sendHeartbeat(); // Send heartbeat every 2 minutes setInterval(sendHeartbeat, 2 * 60 * 1000); // Apply optimizations first (before content is visible) await applyOptimizations(true); // Clear timeout since we've applied optimizations clearTimeout(antiFlickerTimeout); // Poll for new tests every 30 seconds (reduced frequency) setInterval(async () => { // Clear applied tests to allow re-fetching appliedTests.clear(); await applyOptimizations(false); }, 30 * 1000); // Set up tracking if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', () => { setupVisibilityTracking(); setupClickTracking(); }); } else { setupVisibilityTracking(); setupClickTracking(); } log('Initialized successfully'); }; // Expose API for manual use window.SummitSignal = { trackEvent, applyOptimizations, version: '3.2.0' }; init(); })(); /** * Summit Wellness AI - 24/7 SEO Monitoring & Backlink Building * Version: 1.0.0 * * This script enables: * 1. Connection heartbeat monitoring * 2. SEO performance tracking * 3. Backlink monitoring * 4. Content health checks * 5. Technical SEO auditing */ (function() { 'use strict'; // Configuration const CONFIG = { API_URL: window.SUMMIT_WELLNESS_API_URL || 'https://tfwfjryeygculbnkotzg.supabase.co/functions/v1', TRACKING_ID: window.SUMMIT_WELLNESS_ID || null, DEBUG: window.SUMMIT_WELLNESS_DEBUG || false }; if (!CONFIG.TRACKING_ID) { console.error('[Summit Wellness] Missing SUMMIT_WELLNESS_ID'); return; } // Utility functions const log = (...args) => CONFIG.DEBUG && console.log('[Summit Wellness]', ...args); const error = (...args) => console.error('[Summit Wellness]', ...args); // Connection heartbeat const sendHeartbeat = async () => { try { const response = await fetch(`${CONFIG.API_URL}/verify-addon-connection`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ site_tracking_id: CONFIG.TRACKING_ID, ping_type: 'heartbeat', metadata: { page: window.location.pathname, timestamp: new Date().toISOString(), service: 'wellness' } }) }); if (response.ok) { log('Heartbeat sent successfully'); } } catch (err) { error('Heartbeat failed:', err); } }; // Collect SEO metadata for monitoring const collectSEOData = () => { const data = { title: document.title, description: document.querySelector('meta[name="description"]')?.content || '', keywords: document.querySelector('meta[name="keywords"]')?.content || '', canonical: document.querySelector('link[rel="canonical"]')?.href || window.location.href, og_title: document.querySelector('meta[property="og:title"]')?.content || '', og_description: document.querySelector('meta[property="og:description"]')?.content || '', og_image: document.querySelector('meta[property="og:image"]')?.content || '', h1_count: document.querySelectorAll('h1').length, h2_count: document.querySelectorAll('h2').length, img_without_alt: document.querySelectorAll('img:not([alt])').length, links_internal: document.querySelectorAll('a[href^="/"], a[href^="' + window.location.origin + '"]').length, links_external: document.querySelectorAll('a[href^="http"]:not([href^="' + window.location.origin + '"])').length, word_count: document.body.innerText.split(/\s+/).length, has_schema: !!document.querySelector('script[type="application/ld+json"]'), viewport: document.querySelector('meta[name="viewport"]')?.content || '', page_load_time: performance.timing.loadEventEnd - performance.timing.navigationStart }; log('SEO data collected:', data); return data; }; // Send wellness audit data const sendWellnessAudit = async () => { try { const seoData = collectSEOData(); const response = await fetch(`${CONFIG.API_URL}/summit-wellness-audit`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ site_id: CONFIG.TRACKING_ID, page_path: window.location.pathname, seo_data: seoData, timestamp: new Date().toISOString() }) }); if (response.ok) { log('Wellness audit sent successfully'); } } catch (err) { error('Wellness audit failed:', err); } }; // Check for broken images const checkBrokenImages = () => { const images = document.querySelectorAll('img'); const broken = []; images.forEach(img => { if (!img.complete || img.naturalHeight === 0) { broken.push({ src: img.src, alt: img.alt || 'No alt text' }); } }); if (broken.length > 0) { log('Broken images detected:', broken); } return broken; }; // Monitor page performance const trackPerformance = () => { if (window.performance && window.performance.timing) { const timing = window.performance.timing; const metrics = { dns_time: timing.domainLookupEnd - timing.domainLookupStart, tcp_time: timing.connectEnd - timing.connectStart, request_time: timing.responseEnd - timing.requestStart, dom_processing: timing.domComplete - timing.domLoading, total_load_time: timing.loadEventEnd - timing.navigationStart }; log('Performance metrics:', metrics); return metrics; } return null; }; // Initialize const init = async () => { log('Initializing Wellness v1.0.0'); log('Tracking ID:', CONFIG.TRACKING_ID); // Send initial heartbeat await sendHeartbeat(); // Send heartbeat every 2 minutes setInterval(sendHeartbeat, 2 * 60 * 1000); // Wait for page to fully load before collecting data if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', async () => { // Collect and send initial wellness audit setTimeout(async () => { await sendWellnessAudit(); checkBrokenImages(); trackPerformance(); }, 1000); // Wait 1 second after DOM ready }); } else { // Page already loaded setTimeout(async () => { await sendWellnessAudit(); checkBrokenImages(); trackPerformance(); }, 1000); } // Send wellness audit every 30 minutes setInterval(sendWellnessAudit, 30 * 60 * 1000); log('Initialized successfully'); }; init(); })();

Let’s Build What’s Next — Together

From custom websites to AI, e-commerce, and white-label solutions, we help you design, develop, and grow digital platforms that last. Let’s talk about your vision and make it real.

Unlock Your Potential

Why Book a Strategy Session?

Claim Your Free Strategy Session

Tailored Insights

Get expert recommendations based on your unique business needs.

No-Obligation Consultation

This isn’t a sales pitch; it’s a strategy session designed to provide real value.

Actionable Growth Plan

Leave with a clear roadmap to improve your website, digital marketing, and overall online presence.

Work with Industry Experts

Leverage our 19+ years of experience helping businesses succeed online.

Discover

What to Expect in Your Session

Each strategy session is designed around your goals, not a one-size-fits-all pitch. Whether you’re exploring custom development, e-commerce, AI, Website Wellness™, or white-label partnerships, we tailor the conversation to the solutions that matter most to you.

Key Deliverables:
  • Platform & Performance Audit – Whether it’s a website, app, or storefront, we’ll review strengths, weaknesses, and opportunities for growth.

  • Technical & Security Assessment – Identify potential risks, performance issues, and security gaps to keep your systems running smoothly.

  • Growth & Conversion Optimization – Explore strategies to increase leads, sales, and client engagement—whether through e-commerce, AI automation, or UX improvements.

  • Custom Roadmap – Receive a personalized action plan aligned with the solutions you’re most interested in: from custom development and SEO, to ongoing Website Wellness™ support, to scaling through white-label partnerships.

Find Out

Who is This For?

Our strategy sessions are built for organizations that want to do more than just “have a website.” Whether you’re a business owner, agency, or enterprise, we align our expertise with your goals.

This session is ideal for:
  • Business Owners & Founders – Looking to grow revenue with smarter websites, digital strategy, or automation.

  • Agencies & Consultants – Needing white-label development, ongoing technical support, or scalable delivery under their brand.

  • E-Commerce Brands – Aiming to increase sales, improve customer experience, and expand into new markets.

  • Companies of Any Size – Wanting to streamline digital operations, strengthen security, or plan long-term growth.

  • Teams Exploring AI & Automation – Interested in unlocking efficiencies with chatbots, custom integrations, or LLM solutions.

    Schedule My Free Strategy Session
Testimonials

What Our Clients Say

Website Wellness has been a dream to work with. They do a great job of bridging the technical non-sense associated with the care and feeding of a web presence into easily understandable business concepts. I highly recommend them!

Tim Campbell
L2 Source

Keeping our website and application up and running is very important to us and drives traffic to our online presence, Heibling Digital Media has been doing an excellent job at keeping us at the top of the list for people to view. When issues arise, they get it taken care of immediately. Again all their hard work is much appreciated

Steve Weeks
TriState Signs Unlmited

HDM is an incredibly responsive, professional group to work with. They respond right away when we have questions or need work on the website. The projects are done on time and work exactly as we expected. Highly recommend this team for your website work.

Joanna
Map Your Show

Website Wellness is an outstanding tool for small businesses like mine. If you don't have the time or expertise to keep your website operationally healthy with up-to-date content—and most small-business owners don't—this cost-efficient option is for you.

Todd Sebastian
Todd Sebastian

HDM are the experts in maintaining a healthy website, a necessary tool to compete in today's marketplace. HDM's approach is both proactive in its management and extremely responsive to specific customer requests.

Matt V
Response Technologies

Highly recommend this program if you're looking for a simple, effective, and budget-friendly way to take website maintenance off your plate!

Zach
Independent strategist

I’ve had the pleasure of working with John Helbling of HDM in multiple capacities—first as a consultant and later as a full-time team member in a corporate role. John has consistently proven himself to be an exceptional web developer and technology expert. His deep expertise in WordPress, SharePoint, and HubSpot, combined with his ability to architect and implement complex solutions, has been invaluable. Beyond his technical skills, John has a keen eye for UI/UX, ensuring that the solutions he builds are not only functional but also intuitive and user-friendly. John’s ability to translate business needs into smart, scalable technology solutions sets him apart. He’s a problem solver, a collaborator, and someone who can be relied upon to deliver high-quality work. Whether as a consultant or a full-time team member, I highly recommend John for any organization looking for a skilled and strategic technology professional.

Craig Herget
Core Design Team

Tell Us About Your Goals

Select the area you’d like to focus on, and we’ll tailor your session to deliver the most value.

Preferred Contact Method
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Your Next Step Toward Digital Success Starts Here.

A 30-minute conversation could make all the difference. 
Let’s talk about your goals and how we can help you achieve them.