Voor uitgevers
Geef je site een levendige AI-hoek
Een gratis blok dat zichzelf vult: de nieuwste AI-tools, een prompt om te proberen, een vers verhaal en gidsen per doel van trendhub. Plak de code één keer; daarna blijft het vanzelf actueel.
Live voorbeeld, zoals je bezoekers het zien

Fictieve animefilmposter met titeltypografieKopieer de prompt →Van de blog
Apple Finally Added Touch to the MacBook Pro. Now What?6 min. leestijd →Nieuwe tools, prompts en verhalen wisselen elke 10 minuten. Je hoeft er nooit meer iets aan te doen.
Drie kaarten op brede pagina’s, compacte rijen in zijbalken en op telefoons. Licht en donker thema volgen je bezoeker.
Gewone HTML met één klein stylesheet. Geen cookies, geen trackers, geen scripts van derden.
Code ophalen
Kies de taal van het blok en plak de code waar het moet verschijnen. PHP-sites krijgen echte HTML in de pagina, het beste voor lezers en zoekmachines.
Englishhttps://trendhub.net/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-en.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Türkçehttps://trendhub.net/tr/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-tr.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/tr/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/tr/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Deutschhttps://trendhub.net/de/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-de.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/de/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/de/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Españolhttps://trendhub.net/es/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-es.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/es/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/es/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Françaishttps://trendhub.net/fr/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-fr.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/fr/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/fr/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Italianohttps://trendhub.net/it/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-it.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/it/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/it/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Nederlandshttps://trendhub.net/nl/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-nl.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/nl/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/nl/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Ελληνικάhttps://trendhub.net/el/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-el.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/el/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/el/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Русскийhttps://trendhub.net/ru/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-ru.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/ru/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/ru/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Laat het blok alsjeblieft zoals het is, met de naam en links van trendhub. Vragen of een eigen versie? Neem contact met ons op.
Vragen
Is het gratis?
Ja. Het blok is gratis voor elke site. We vragen alleen dat je het laat zoals het is, met de naam en links van trendhub.
Wordt mijn site er trager van?
Nee. De PHP-code bewaart een kopie op je server en ververst die elke 10 minuten, dus bezoekers wachten nooit op trendhub. Het blok bevat geen trackingscripts.
Plaatst het cookies?
Nee. Het blok plaatst geen cookies en laadt geen scripts van derden. Het is gewone HTML met één klein stylesheet.
Kan ik de taal en het thema kiezen?
Ja. Kies hieronder een van de 9 talen. Het blok volgt de lichte of donkere modus van je bezoeker, of je legt er een vast door ?theme=light of ?theme=dark aan het adres toe te voegen.
Past het in mijn lay-out?
Ja. Het blok meet de ruimte die het krijgt: drie kaarten naast elkaar op brede plekken, compacte rijen in smalle kolommen en op telefoons.