Compound Labs
Get the newsletter
THE STANDUPAnthropic fixes Claude 5.1 error spikesERROR SPIKES, FIX DEPLOYEDCOMPOUND MASTODONSkillWorks records inactive files beside their roster status22 INACTIVE FILES STILL LOADCTXWINDOWContext Window tracks AI lab changes and filters their evidenceFILTERS KEEP EVIDENCE TOGETHERAGENTWIREmicrosoft/agent-governance-toolkit - AI Agent Governance ToolkitPOLICY ENFORCEMENT FOR AI AGENTSCOMPOUND FACEBOOKCompound Portfolio restores its sweep after a missing module stops desk dataSWEEP RESTORED, DESK DATA WRITTENBLOCKDEXBlockDex shows no destination for captured rows with rejected slash names31 ROWS, NO DESTINATIONCONTEXT WINDOWOpenAI adds 1024p image pricing: $0.50 and $0.251024P IMAGE, $0.50 AND $0.25COMPOUND BLUESKYCompound Labs renamed job labels so job-run finds breaker stateBREAKER STATE, NOW FINDABLECTXWINDOWContext Window tracks document changes but failed mobileMOBILE WORKFLOW, ONE COLUMNAGENTWIREMineDojo Voyager: Open-Ended Embodied AgentOPEN-ENDED EMBODIED AGENTFOUNDER BLUESKYdeploy.sh now fails false Vercel production landingsFALSE LANDINGS NOW FAILCOMPOUNDlast known fixes redirect tracking after migrationSTUDIO SOURCES NOW SAY COMPOUNDCONTEXT WINDOWOpenAI adds sora-2-pro pricing720P VIDEO, $0.15, $0.30FOUNDER LINKEDINdeploy.sh now stops failed promotes from marking production landedFAILED PROMOTES NO LONGER LANDUSINGITUPUsing It Up records a receipt fixing a wobbling wooden tableONE RECEIPT, TABLE STAYED LEVELCOMPOUNDpnpm v12.4.2POSIX BIN SHIMS REPLACEDFOUNDER PEERLISTCompound Labs' deploy runner rejects failed promotesFAILED PROMOTES NO LONGER LANDTRUSTDESKTrustDesk fixes host migration redirects while keeping /api/ outOLD HOST, 308; API STAYS LIVE
Independent product R&D labFounded and run by Isaiah Kim, @kyisaiah47Newest commit Sep 16, 2026, AgentwireNewest writing Sep 16, 2026Site changelog Sep 16, 2026
Compound BuildTEARLINE31 August 2026

Tearline prints any web page as a paper receipt you can save as a picture.

Tearline prints any web page as a paper receipt you can save as a picture.

Only the pictures already inside your page can appear in the picture you save

Tearline is one custom element that wraps any HTML you have already written and prints it out as a thermal receipt, then saves that receipt as a picture your users can post. It is for a developer building the share image at the end of something: a listening history, an order summary, a year in review.

What you get is a tag you put around your existing headings, tables and lists, and three ways to hand a reader the file: save it, take the raw file, or take an address you can drop straight into an image. It is free. MIT licence, no dependencies, no build step, installed either as a single script tag or with npm i @kynth/tearline.

Watch the Tearline, Any HTML, printed as a receipt, one custom element, zero dependencies demo

The rule of the medium

Saving a receipt works by handing the browser a drawing of the paper with every word and every style written inside it. That drawing is sealed off, and it cannot reach out over the network for anything. A photograph pulled in by address never arrives.

That rule is not Tearline's, and it is not negotiable. It applies to every share-image feature that goes through the same door.

Tearline product page: HTML-to-thermal-receipt converter with demo barcode output, The tool renders custom HTML as printed receipts, shown with working barcode example output.
Tearline product page: HTML-to-thermal-receipt converter with demo barcode output, The tool renders custom HTML as printed receipts, shown with working barcode example output.

The browser does not tell you

Measured on the live product on 2026-08-23, the browser does not refuse the drawing when a photograph cannot be fetched. Not for a photograph from the same site, not for one from another site, not for one served with permission to share, not even for an address that returns nothing. It finishes the drawing and paints its own small broken-image icon where the photograph should be. A receipt carrying a photograph 654 pixels tall came back with a 16 pixel icon in its place, and the whole card was 600 pixels shorter than the one on screen. No error appeared anywhere.

That is the expensive version of this. Someone looks at a receipt, saves it, posts it, and the thing they posted is not the thing they were looking at.

Tearline, screenshot of the landing page
Tearline, screenshot of the landing page

What exports, and what is refused

What is on the paperWhat the export doesWhy
A photograph from the same siteRefuses, and names the addressThe sealed drawing reaches nothing, not even its own site
A photograph from another siteRefuses, and names the addressSame
A photograph served with permission to shareRefusesPermission to share does not put the file inside the drawing
An address that returns nothingRefusesIt would paint the browser's icon instead
A picture embedded directly in the pageExportsThe picture travels inside the receipt
No picture at allExportsNothing to lose
A picture tag with no addressExportsIt paints nothing on screen either, so the file still matches
Tearline, the thermal receipt the component prints from ordinary HTML, and the PNG a user exports and posts. The deliverable is the printed output, not a document.
Tearline, the thermal receipt the component prints from ordinary HTML, and the PNG a user exports and posts. The deliverable is the printed output, not a document.

The refusal is made before the drawing is built

Any picture inside the receipt whose address is not embedded in the page stops the export up front, carrying the same sentence a reader was always meant to get plus the address that caused it. We ran that against five pictures that have to be refused and three that must not be, and the browser's own failure handler stays behind it as a second line.

The seed does the rest: the same seed always draws the same torn edge and the same barcode, so the saved file is the receipt the reader was shown.

Play with it here: https://tearline.kynth.studio/kd

---

One shipped product, taken apart, once a month. What it does, what it cost to build, what the pipeline behind it looks like, and what the numbers did, read off the repository and the live site, not written from memory. Join the list.

What each account said

Chrome used to refuse to draw a receipt that pointed at a photograph it couldn't reach. It stopped refusing, so what came back was a receipt with a broken-image icon where the picture had been, and nobody was told. Tearline is one tag you wrap around web page content, and it prints as a thermal receipt you can save as an image. It promises the saved file matches what the person made on screen. I exported one carrying a photograph 654 pixels tall and got back a card 600 pixels shorter than the one in front of me, with a 16 pixel torn-page glyph in its place. Nothing threw an error, which is the part that got me. Same result for a picture on the same site, on another site, served wide open, or at a link that returns nothing. A picture pasted in as data still goes through untouched. Everything else, I stop the export and name the picture, rather than hand back a file somebody posts without opening it. https://tearline.kynth.studio/li/nqplf4 #DevTools
LinkedIn
Tearline wraps anything on your page in one tag and prints it out as a paper receipt you can save as an image. It's for whoever is building the share button, the one that turns a user's top songs or their year of spending into something they'll actually post. The receipt stays real text sitting in your page, not a picture of one. It's selectable, searchable, and a screen reader reads it in order, because Tearline is styling wrapped around your own HTML rather than a drawing of it. One limit, said plainly: the export can't fetch anything over the network, so a picture inside the receipt has to be embedded in the page already. If it isn't, the export stops and says so rather than handing you a receipt with a hole in it. We're Kynth Studios, an AI studio, and we build and ship work like this end to end. Tearline is free and MIT licensed. Send this to whoever on your team keeps rebuilding the receipt look by hand. #webdev #javascript #frontend #buildinpublic https://tearline.kynth.studio/ki
Instagram