✝ Free for Churches

Sermon Outline Generator

Loading...

Pick a theme, enter a verse, and get a complete sermon outline — with illustrations, scripture references, and social media hooks — in seconds.

1. Choose a Theme
2. Customize Your Sermon
15 min
30 min
45 min

Click any title to copy it. Your full outline is below.

Sermon Titles (choose one)
📱 Social Media Hooks

Use these to promote your sermon on Facebook, WhatsApp, and Instagram.

Facebook

Need help with church communications?
Email newsletters, social media content, event announcements — NOETRON.ai has free tools built for ministry leaders.

More Free Church Tools at NOETRON.ai →
Copied to clipboard!

AI-generated content. Results are for informational purposes only and should not be considered professional advice. Always verify important decisions with a qualified professional. NOETRON.ai

* * TRIGGER (call this after your results are shown): * NoetronFeedback.trigger('your-tool-name'); * * TOOL NAME OVERRIDE (optional — set before the script runs): * * * * AUTO-TRIGGER: * The widget also listens for a custom event you can fire anywhere: * document.dispatchEvent(new CustomEvent('noetron:result_viewed', { detail: { tool_name: 'my-tool' } })); * * PostHog events emitted: * - feedback_submitted { rating, feedback_text, tool_name } * - share_clicked { platform, tool_name } * - feature_request { request_text, tool_name } * - email_captured { email, source: 'feedback_flow', tool_name } * - feedback_widget_dismissed { step, tool_name } */ (function () { 'use strict'; // ── CONFIG ────────────────────────────────────────────────────────────────── var PH_KEY = 'phc_KNSY44h9aRfz00hX5nWW2sRhy3katBcpSEDLEYQDyO6'; var PH_HOST = 'https://app.posthog.com'; var DELAY_MS = 3000; // 3 seconds after trigger var LS_KEY = 'noetron_feedback_done'; // ── POSTHOG BOOTSTRAP (safe — skips if already loaded) ──────────────────── function initPostHog() { if (typeof posthog !== 'undefined' && posthog.__SV) return; /* eslint-disable */ !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+" (stub)"},o="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys onSessionId".split(" "),n=0;n/g, '>') .replace(/"/g, '"'); } function getToolName(override) { return override || window.NOETRON_TOOL_NAME || (document.title || 'unknown').replace(/[^a-z0-9-]/gi, '-').toLowerCase().slice(0, 40); } function getPageUrl() { return window.location.href.split('?')[0]; } function alreadyDone() { try { return !!sessionStorage.getItem(LS_KEY); } catch (e) { return false; } } function markDone() { try { sessionStorage.setItem(LS_KEY, '1'); } catch (e) {} } // ── STYLES ────────────────────────────────────────────────────────────────── function injectStyles() { if (document.getElementById('nfb-styles')) return; var style = document.createElement('style'); style.id = 'nfb-styles'; style.textContent = [ '/* NOETRON Feedback Widget */', '#nfb-overlay{', ' position:fixed;inset:0;z-index:9999;', ' display:flex;align-items:center;justify-content:center;', ' background:rgba(0,0,0,0.55);backdrop-filter:blur(3px);', ' padding:16px;', ' opacity:0;transition:opacity 0.25s ease;', '}', '#nfb-overlay.nfb-visible{opacity:1;}', '#nfb-modal{', ' background:#0F1621;', ' border:1px solid rgba(91,140,255,0.22);', ' border-radius:16px;', ' padding:28px 28px 24px;', ' width:100%;max-width:440px;', ' position:relative;', ' box-shadow:0 24px 64px rgba(0,0,0,0.6);', ' font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;', ' color:#E6EDF6;', ' transform:translateY(12px);', ' transition:transform 0.25s ease;', '}', '#nfb-overlay.nfb-visible #nfb-modal{transform:translateY(0);}', /* close button */ '#nfb-close{', ' position:absolute;top:14px;right:16px;', ' background:none;border:none;cursor:pointer;', ' color:#8888aa;font-size:20px;line-height:1;', ' padding:4px 6px;border-radius:6px;', ' transition:color 0.15s,background 0.15s;', '}', '#nfb-close:hover{color:#E6EDF6;background:rgba(255,255,255,0.07);}', /* headline */ '.nfb-headline{font-size:15px;font-weight:600;line-height:1.5;margin-bottom:18px;padding-right:24px;}', '.nfb-sub{font-size:13px;color:#8888aa;margin-top:4px;font-weight:400;}', /* rating buttons */ '.nfb-ratings{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px;}', '.nfb-rating-btn{', ' flex:1;min-width:90px;', ' padding:10px 12px;', ' background:rgba(91,140,255,0.08);', ' border:1px solid rgba(91,140,255,0.2);', ' border-radius:10px;', ' color:#E6EDF6;font-size:13px;font-weight:500;', ' cursor:pointer;text-align:center;', ' transition:background 0.15s,border-color 0.15s,transform 0.1s;', '}', '.nfb-rating-btn:hover{background:rgba(91,140,255,0.18);border-color:rgba(91,140,255,0.5);transform:translateY(-1px);}', '.nfb-rating-btn.nfb-selected{background:rgba(91,140,255,0.25);border-color:#5B8CFF;color:#7AA3FF;}', /* textarea */ '.nfb-textarea{', ' width:100%;box-sizing:border-box;', ' background:#0B0F14;', ' border:1px solid rgba(91,140,255,0.2);', ' border-radius:10px;', ' padding:12px 14px;', ' color:#E6EDF6;font-size:13px;font-family:inherit;', ' resize:none;outline:none;', ' transition:border-color 0.15s;', ' margin-top:14px;', '}', '.nfb-textarea:focus{border-color:#5B8CFF;}', '.nfb-textarea::placeholder{color:#8888aa;}', /* input */ '.nfb-input{', ' width:100%;box-sizing:border-box;', ' background:#0B0F14;', ' border:1px solid rgba(91,140,255,0.2);', ' border-radius:10px;', ' padding:11px 14px;', ' color:#E6EDF6;font-size:13px;font-family:inherit;', ' outline:none;', ' transition:border-color 0.15s;', ' margin-top:10px;', '}', '.nfb-input:focus{border-color:#5B8CFF;}', '.nfb-input::placeholder{color:#8888aa;}', /* primary CTA */ '.nfb-btn{', ' width:100%;margin-top:16px;', ' padding:12px 16px;', ' background:#5B8CFF;', ' border:none;border-radius:10px;', ' color:#fff;font-size:14px;font-weight:600;', ' cursor:pointer;', ' transition:background 0.15s,transform 0.1s;', '}', '.nfb-btn:hover{background:#3A6FFF;transform:translateY(-1px);}', '.nfb-btn:active{transform:translateY(0);}', '.nfb-btn:disabled{opacity:0.45;cursor:default;transform:none;}', /* share buttons */ '.nfb-share-row{display:flex;flex-direction:column;gap:8px;margin-top:14px;}', '.nfb-share-btn{', ' display:flex;align-items:center;gap:10px;', ' padding:11px 16px;', ' border-radius:10px;', ' border:1px solid rgba(91,140,255,0.18);', ' background:rgba(91,140,255,0.06);', ' color:#E6EDF6;font-size:13px;font-weight:500;', ' cursor:pointer;text-decoration:none;', ' transition:background 0.15s,border-color 0.15s;', '}', '.nfb-share-btn:hover{background:rgba(91,140,255,0.15);border-color:rgba(91,140,255,0.4);}', '.nfb-share-btn svg{flex-shrink:0;}', '.nfb-skip{', ' width:100%;margin-top:10px;', ' background:none;border:none;', ' color:#8888aa;font-size:12px;cursor:pointer;', ' padding:6px;', ' transition:color 0.15s;', '}', '.nfb-skip:hover{color:#E6EDF6;}', /* step progress dots */ '.nfb-dots{display:flex;gap:6px;justify-content:center;margin-bottom:20px;}', '.nfb-dot{width:6px;height:6px;border-radius:50%;background:rgba(91,140,255,0.2);transition:background 0.2s;}', '.nfb-dot.nfb-dot-active{background:#5B8CFF;}', '.nfb-dot.nfb-dot-done{background:rgba(91,140,255,0.45);}', /* success */ '.nfb-success{text-align:center;padding:12px 0 4px;}', '.nfb-success-icon{font-size:36px;margin-bottom:12px;}', '.nfb-success-title{font-size:16px;font-weight:700;margin-bottom:8px;}', '.nfb-success-sub{font-size:13px;color:#8888aa;line-height:1.5;}', /* mobile: bottom sheet */ '@media(max-width:480px){', ' #nfb-overlay{align-items:flex-end;padding:0;}', ' #nfb-modal{', ' border-radius:16px 16px 0 0;', ' max-width:100%;', ' transform:translateY(40px);', ' }', '}', ].join('\n'); document.head.appendChild(style); } // ── SVG ICONS ──────────────────────────────────────────────────────────────── var ICONS = { twitter: '', linkedin: '', link: '', }; // ── DOM BUILDER ────────────────────────────────────────────────────────────── function buildModal() { var overlay = document.createElement('div'); overlay.id = 'nfb-overlay'; overlay.setAttribute('role', 'dialog'); overlay.setAttribute('aria-modal', 'true'); overlay.setAttribute('aria-label', 'Feedback'); overlay.innerHTML = [ '
', '', '
', '
', '
', '
', '
', '
', '
', '
', ].join(''); document.body.appendChild(overlay); return overlay; } // ── STEP RENDERER ──────────────────────────────────────────────────────────── function setDots(active) { for (var i = 1; i <= 4; i++) { var dot = document.getElementById('nfb-dot-' + i); if (!dot) continue; dot.className = 'nfb-dot'; if (i < active) dot.classList.add('nfb-dot-done'); else if (i === active) dot.classList.add('nfb-dot-active'); } } var state = {}; function showStep1() { setDots(1); document.getElementById('nfb-body').innerHTML = [ '
', 'Built this while learning AI \u2014 your honest feedback helps improve it for everyone.', '
Quick question: Was this helpful?
', '
', '
', '', '', '', '
', ].join(''); document.querySelectorAll('.nfb-rating-btn').forEach(function (btn) { btn.addEventListener('click', function () { document.querySelectorAll('.nfb-rating-btn').forEach(function (b) { b.classList.remove('nfb-selected'); }); btn.classList.add('nfb-selected'); state.rating = btn.getAttribute('data-rating'); setTimeout(function () { showStep2(state.rating); }, 300); }); }); } function showStep2(rating) { setDots(2); var isPositive = (rating === 'yes' || rating === 'okay'); var question = isPositive ? 'Amazing! What would make it even better?' : 'Sorry about that! What were you hoping for?'; var placeholder = isPositive ? 'Even a tiny tweak would help\u2026' : 'Tell me what you were looking for\u2026'; document.getElementById('nfb-body').innerHTML = [ '
' + esc(question) + '
', '', '', ].join(''); document.getElementById('nfb-submit-feedback').addEventListener('click', function () { var text = (document.getElementById('nfb-feedback').value || '').trim(); state.feedback_text = text; ph('feedback_submitted', { rating: state.rating, feedback_text: text, tool_name: state.tool_name, }); showStep3(); }); } function showStep3() { setDots(3); var url = getPageUrl(); var shareUrl = url + '?ref=share'; var toolLabel = (state.tool_name || 'tool').replace(/-/g, ' '); var twitterText = encodeURIComponent( 'Just used this ' + toolLabel + ' \u2014 actually useful. Built by an indie AI experimenter. ' + shareUrl ); var linkedinUrl = encodeURIComponent(shareUrl); var linkedinText = encodeURIComponent( 'Found an AI ' + toolLabel + ' that actually works. Built by someone experimenting with AI tools. Worth checking out: ' + shareUrl ); document.getElementById('nfb-body').innerHTML = [ '
', 'Thank you! If this helped, would you share it with someone who\u2019d find it useful?', '
', '
', '', ICONS.twitter, 'Share on X\u00A0/ Twitter', '', '', ICONS.linkedin, 'Share on LinkedIn', '', '', '
', '', ].join(''); // Twitter document.getElementById('nfb-share-twitter').addEventListener('click', function () { ph('share_clicked', { platform: 'twitter', tool_name: state.tool_name }); setTimeout(function () { showStep4(); }, 600); }); // LinkedIn document.getElementById('nfb-share-linkedin').addEventListener('click', function () { ph('share_clicked', { platform: 'linkedin', tool_name: state.tool_name }); setTimeout(function () { showStep4(); }, 600); }); // Copy link document.getElementById('nfb-copy-link').addEventListener('click', function () { ph('share_clicked', { platform: 'copy_link', tool_name: state.tool_name }); navigator.clipboard.writeText(shareUrl).then(function () { document.getElementById('nfb-copy-label').textContent = '\u2713 Copied!'; setTimeout(function () { document.getElementById('nfb-copy-label').textContent = 'Copy Link'; }, 2000); }).catch(function () { // fallback for older browsers var ta = document.createElement('textarea'); ta.value = shareUrl; ta.style.position = 'fixed'; ta.style.left = '-9999px'; document.body.appendChild(ta); ta.select(); document.execCommand('copy'); document.body.removeChild(ta); document.getElementById('nfb-copy-label').textContent = '\u2713 Copied!'; setTimeout(function () { document.getElementById('nfb-copy-label').textContent = 'Copy Link'; }, 2000); }); setTimeout(function () { showStep4(); }, 1200); }); // Skip document.getElementById('nfb-skip-share').addEventListener('click', function () { ph('share_clicked', { platform: 'skipped', tool_name: state.tool_name }); showStep4(); }); } function showStep4() { setDots(4); document.getElementById('nfb-body').innerHTML = [ '
', 'One more thing \u2014 what AI tool or use case would be most helpful to you?', '
', '', '
Quick vibe check \u2014 which look do you prefer?
', '
', '
', '
', '
', '
', '
', '
', '', '', ].join(''); // Theme swatch click handlers document.querySelectorAll('.nfb-swatch').forEach(function(swatch) { swatch.addEventListener('click', function() { document.querySelectorAll('.nfb-swatch').forEach(function(s) { s.classList.remove('nfb-selected'); s.style.borderColor = '#333'; }); this.classList.add('nfb-selected'); this.style.borderColor = '#5B8CFF'; }); }); document.getElementById('nfb-submit-final').addEventListener('click', function () { var request = (document.getElementById('nfb-request').value || '').trim(); var email = (document.getElementById('nfb-email').value || '').trim(); var btn = document.getElementById('nfb-submit-final'); btn.disabled = true; // Capture theme preference if selected var selectedTheme = document.querySelector('.nfb-swatch.nfb-selected'); if (selectedTheme) { ph('theme_preference', { theme: selectedTheme.dataset.theme, tool_name: state.tool_name }); } if (request) { ph('feature_request', { request_text: request, tool_name: state.tool_name }); } if (email) { ph('email_captured', { email: email, source: 'feedback_flow', tool_name: state.tool_name }); if (typeof posthog !== 'undefined') { posthog.identify(email, { email: email }); } } showSuccess(); }); } function showSuccess() { setDots(5); // all dots done // Mark all dots done for (var i = 1; i <= 4; i++) { var dot = document.getElementById('nfb-dot-' + i); if (dot) { dot.className = 'nfb-dot nfb-dot-done'; } } document.getElementById('nfb-body').innerHTML = [ '
', '
\uD83D\uDE4F
', '
Thank you so much!
', '
', 'Every piece of feedback helps me build better tools.
', 'This is what keeps indie building alive.', '
', '
', ].join(''); markDone(); setTimeout(function () { close(); }, 2800); } // ── OPEN / CLOSE ───────────────────────────────────────────────────────────── var overlayEl = null; function open(toolName) { if (alreadyDone()) return; if (overlayEl) return; // already open state = { tool_name: getToolName(toolName) }; injectStyles(); overlayEl = buildModal(); // Close button document.getElementById('nfb-close').addEventListener('click', function () { ph('feedback_widget_dismissed', { step: currentStep(), tool_name: state.tool_name }); close(); }); // Click outside overlayEl.addEventListener('click', function (e) { if (e.target === overlayEl) { ph('feedback_widget_dismissed', { step: currentStep(), tool_name: state.tool_name }); close(); } }); // Escape key document.addEventListener('keydown', escHandler); showStep1(); // Trigger animation next frame requestAnimationFrame(function () { requestAnimationFrame(function () { overlayEl.classList.add('nfb-visible'); }); }); } function close() { if (!overlayEl) return; overlayEl.classList.remove('nfb-visible'); document.removeEventListener('keydown', escHandler); var el = overlayEl; overlayEl = null; setTimeout(function () { if (el && el.parentNode) { el.parentNode.removeChild(el); } }, 280); } function escHandler(e) { if (e.key === 'Escape') { ph('feedback_widget_dismissed', { step: currentStep(), tool_name: state.tool_name }); close(); } } function currentStep() { for (var i = 4; i >= 1; i--) { var dot = document.getElementById('nfb-dot-' + i); if (dot && dot.classList.contains('nfb-dot-active')) return i; } return 1; } // ── PUBLIC API ─────────────────────────────────────────────────────────────── function trigger(toolName) { if (alreadyDone()) return; initPostHog(); setTimeout(function () { open(toolName); }, DELAY_MS); } // Listen for the custom event document.addEventListener('noetron:result_viewed', function (e) { var name = (e && e.detail && e.detail.tool_name) ? e.detail.tool_name : null; trigger(name); }); // Expose public API window.NoetronFeedback = { trigger: trigger, open: open, close: close, }; })();