Persuasive Copy Generator

Persuasive Copy Generator

Generate compelling marketing copy that converts.

Product Details

Generated Persuasive Copy

Your AI-written copy will appear here.

${copy.headline}

Opening Hook

${copy.openingHook}

Key Benefits

${benefitsHtml}

Call to Action

${copy.callToAction}

`; fullCopyText = `Headline:\n${copy.headline}\n\nOpening Hook:\n${copy.openingHook}\n\nKey Benefits:\n${copy.keyBenefits}\n\nCall to Action:\n${copy.callToAction}`; elements.resultsPlaceholder.classList.add('hidden'); elements.resultsContainer.classList.remove('hidden'); } function setLoadingState(isLoading) { elements.generateBtn.disabled = isLoading; if (isLoading) { elements.generateBtn.innerHTML = `Writing...`; elements.resultsContainer.classList.add('hidden'); elements.resultsPlaceholder.classList.remove('hidden'); elements.resultsPlaceholder.innerHTML = `

Crafting Your Copy...

`; } else { elements.generateBtn.innerHTML = `Generate Copy`; } } function displayError(message) { elements.resultsPlaceholder.innerHTML = `

Generation Failed

${message}

`; elements.resultsPlaceholder.classList.remove('hidden'); elements.resultsContainer.classList.add('hidden'); } function handleCopy() { if (!fullCopyText) return; navigator.clipboard.writeText(fullCopyText).then(() => { const originalText = elements.copyBtn.innerHTML; elements.copyBtn.innerHTML = `Copied!`; setTimeout(() => { elements.copyBtn.innerHTML = originalText; }, 2000); }).catch(err => console.error('Failed to copy: ', err)); } // --- PDF Generation --- function generatePdf() { if (!generationResult) return; const { jsPDF } = window.jspdf; const doc = new jsPDF(); doc.setFont('helvetica', 'bold'); doc.setFontSize(18); doc.text("Persuasive Copy Report", doc.internal.pageSize.getWidth() / 2, 20, { align: 'center' }); doc.setFontSize(11); doc.setTextColor(100); doc.text(`Generated on: ${new Date().toLocaleDateString('en-US')}`, 14, 30); const { details, copy } = generationResult; const criteriaBody = [ ['Product Name', details.name], ['Target Audience', details.audience], ['Description', details.description], ['Persuasion Angle', details.angle], ]; doc.autoTable({ startY: 35, head: [['Input Criteria', 'Value']], body: criteriaBody, theme: 'striped', headStyles: { fillColor: '#7c3aed' } }); const copyBody = Object.entries(copy).map(([key, value]) => [key.replace(/([A-Z])/g, ' $1').trim(), value]); doc.autoTable({ startY: doc.autoTable.previous.finalY + 10, head: [['Copy Section', 'Generated Text']], body: copyBody, theme: 'grid' }); doc.save(`persuasive-copy-report.pdf`); } initialize(); });
Scroll to Top