({
...tab,
is_torn: localTabs[i]?.is_torn || tab.is_torn
}));
}
tornCount = localTabs.filter(t => t.is_torn).length;
if (flyerId) {
const stored = localStorage.getItem('tearoff_torn_' + flyerId);
if (stored) {
try {
const data = JSON.parse(stored);
hasAlreadyTorn = true;
revealedSecret = data.secret;
if (data.revealed) secretRevealed = true;
} catch(e) {}
}
}
if (flyerInteraction) flyerInteraction.refresh();
}
"
class="flyer-container relative w-full max-w-3xl mx-auto z-20 flyer-card-reveal"
style="--paper-texture: url('https://tearoff.app/images/057.webp');"
data-server-tabs='[{"id":"01kgme131jjw5jx63xgjhg5tm3","label":"Grab one","secret":"Thanks for stopping by!","is_torn":false},{"id":"01kgme131k2kq0wf0rcw6cbs7j","label":"Grab one","secret":"Yep \u2014 you just tore a digital tab.","is_torn":false},{"id":"01kgme131k2kq0wf0rcw6cbs7k","label":"Grab one","secret":"Thanks for trying Tearoff \ud83d\udc9b","is_torn":true},{"id":"01kgme131k2kq0wf0rcw6cbs7m","label":"Grab one","secret":"Congrats. Someone else wanted this tab.","is_torn":false},{"id":"01kgme131mrk051zfj6km21rym","label":"Grab one","secret":"Want to make your own flyer?","is_torn":false},{"id":"01kgme131mrk051zfj6km21ryn","label":"Grab one","secret":"Built by one person. Thanks for the support.","is_torn":false},{"id":"01kgme131mrk051zfj6km21ryp","label":"Grab one","secret":"Early version. Feedback welcome (:","is_torn":true},{"id":"01kgme131n5703xqx9s992rdxy","label":"Grab one","secret":"No ads. No tracking. Just tabs.","is_torn":false}]'
data-server-bg-color="#f67f07"
data-server-text-color="#000000"
>
Hi Hacker News!
Create a flyer, share a link, and let people tear off tabs. When someone grabs a tab, it's gone for everyone. Perfect for launches, giveaways, local services, or anything where first-come, first-served matters.