<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/">
  <author>
    <name>Mario Lurig</name>
    <uri>https://trmnl.com</uri>
  </author>
  <author>
    <name>Ryan Kulp</name>
    <uri>https://trmnl.com</uri>
  </author>
  <category term="trmnl"
    label="TRMNL"/>
  <generator uri="https://trmnl.com"
    version="0.0.0">TRMNL</generator>
  <icon>https://trmnl.com/favicon.ico</icon>
  <id>https://trmnl.com/blog</id>
  <link href="https://trmnl.com/blog"
    rel="alternate"
    type="text/html"
    title="TRMNL: Blog (web)"/>
  <link href="https://trmnl.com/feeds/blog.xml"
    rel="self"
    type="application/atom+xml"
    title="TRMNL: Blog (feed)"/>
  <logo>https://trmnl.com/images/brand/icons/icon--brand.png</logo>
  <rights>Copyright 2026</rights>
  <subtitle>The latest site news and information.</subtitle>
  <title>TRMNL: Blog</title>
  <updated>2026-09-22T00:00:00+00:00</updated>
  <entry>
    <author>
      <name>Mario Lurig</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;blockquote&gt;&lt;p&gt;&lt;i&gt;&lt;em&gt;This post is part of a series, featuring the incredible work of plugin authors who grow the TRMNL plugin ecosystem with every contribution. The TRMNL team has individually selected these plugins and authors to be featured.&lt;/em&gt;&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h1&gt;&lt;a href=&quot;https://trmnl.com/recipes/371545&quot;&gt;HubbyCal&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;Community member Oliver Cahill&lt;mark style=&quot;color:rgb(67, 67, 67);&quot;&gt; &lt;/mark&gt;(Discord: &lt;code&gt;frizzlefratz&lt;/code&gt;) created the &lt;a href=&quot;https://trmnl.com/recipes/371545&quot;&gt;HubbyCal&lt;/a&gt; plugin; here are their words on how it was created.&lt;/p&gt;&lt;h3&gt;Why did you want this plugin to exist?&lt;/h3&gt;&lt;p&gt;I normally use Apple Calendars and I have so many events it can make me crosseyed. I just wanted a simple way to for me and my husband to see our day and not have to fight different screens and apps or text each other with work schedules or plans.&lt;/p&gt;&lt;h3&gt;Why were you the person to make it?&lt;/h3&gt;&lt;p&gt;I was recently laid off from my Graphic Design job. My TRMNL X came in a few days later and inspired and pushed me to get out of my funk and get creative again. I was the person to make it because the universe said so. I had the time and a cool new toy to play with.&lt;/p&gt;&lt;h3&gt;Were you inspired by any other recipes or plugin creators?&lt;/h3&gt;&lt;p&gt;The Google Calendar. It was too busy! Also, I can’t remember the name of it but I saw a quote of the day recipe that gave me the idea for quotes when there are no events.&lt;/p&gt;&lt;h3&gt;How did you balance look vs functionality?&lt;/h3&gt;&lt;p&gt;I wanted everything to be big. And readable. And friendly. That was the main goal. Balance was hard because some days I have lots of events and figuring out how to make them all show at a size I can glance at while trying to get ready was tough. Once I got the design language down, I went extra hard on really maximizing the screen space with as many features as I could. I even had it reporting the charge level of my EV at one point. I’ll have to add that back in the future…&lt;/p&gt;&lt;h3&gt;What was your process for creating the plugin?&lt;/h3&gt;&lt;p&gt;Lots of mockups in Adobe XD and code done primarily in Claude and ChatGPT. I was very specific with what I wanted and spent hours and hours fine tuning as much as I could and drawing every screen and state our first to make sure the AI didn’t break away from my vision.&lt;/p&gt;&lt;h3&gt;What, if any, challenges did you face while creating it?&lt;/h3&gt;&lt;p&gt;Getting all the data in! I’ve been a Graphic Designer and UI/UX designer for 20+ years but I never worked with code or servers or APIs. So setting up my workspace and connecting to services and OAuth and all of that was new to me. I was familiar with it all but having to do a lot of that myself was a big jump for me.&lt;/p&gt;&lt;h3&gt;Did you learn anything that you want to apply to future or past recipes?&lt;/h3&gt;&lt;p&gt;Too much to put here! I learned a lot about architecting and planning software. Even with something as basic as this, I picked up so many workflows. Enough to where I’ve built a super charged version of this as an iOS App I’ll be launching soon.&lt;/p&gt;&lt;h3&gt;Is there a tip you would give to a new plugin developer?&lt;/h3&gt;&lt;p&gt;If you’re going to use AI to help you with the coding, be very specific. Draw out your screens. Come up with your features and all the rules and be very specific. If you let it make that all for you, you’ll never achieve your vision.Plan first. Build later.&lt;/p&gt;&lt;h3&gt;What part of the TRMNL Framework, Liquid filters, or other documentation was most helpful?&lt;/h3&gt;&lt;p&gt;The entire framework documentation was a HUUUGE help. I may have used AI, but AI is not as smart as people think. It would go rogue and write its own stuff and more often than not, I’d have to refer it to a specific page or detail a specific way things need to be done for TRMNL recipes.&lt;/p&gt;&lt;h3&gt;What is your favorite plugin that someone else created and why?&lt;/h3&gt;&lt;p&gt;TBH I haven’t used many yet! The &lt;a href=&quot;https://trmnl.com/integrations/lcars-schematics&quot;&gt;LCARS Schematics&lt;/a&gt; one is pretty great tho. We’re a big Star Trek house here.&lt;/p&gt;&lt;h3&gt;How was support?&lt;/h3&gt;&lt;p&gt;Your support staff is AMAZING. I feel so bad for &lt;a href=&quot;https://trmnl.com/about&quot;&gt;Ikraam&lt;/a&gt;! I kept sending issues on Discord and he was so quick to respond and help.&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/featured-plugin-hubbycal</id>
    <link href="https://trmnl.com/blog/featured-plugin-hubbycal"/>
    <published>2026-09-22T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Featured Community Plugin - HubbyCal</title>
    <updated>2026-09-22T00:00:00+00:00</updated>
    <dc:date>2026-09-22T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Ryan Kulp</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;p&gt;today we&#39;re thrilled to release a simple solution for organizations with bookable resources like meeting rooms, flex desks, or vehicles.&lt;/p&gt;&lt;p&gt;it&#39;s called &lt;strong&gt;TRMNL Booking&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;connect resources, set preferences, and you&#39;ll be up in running in minutes. optional QR codes make devices interactive, providing walk-up booking and easy cancelations, while keeping your origin calendars the source of truth.&lt;/p&gt;&lt;h2&gt;connect a resource&lt;/h2&gt;&lt;p&gt;we rebuilt our calendar integrations from scratch, now with enterprise support for Microsoft and Google Workspace, as well as CalDAV feeds.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTc2MzY_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--e490577440bbc6a3806c431ad9b21e00504f4596&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc2MzYsInB1ciI6ImJsb2JfaWQifX0=--1ee8227475765c711b51ecdc5ffc709ddb3f433a/trmnl-booking-connect-resources.png&quot; filename=&quot;trmnl-booking-connect-resources.png&quot; filesize=&quot;108528&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc2MzYsInB1ciI6ImJsb2JfaWQifX0=--1ee8227475765c711b51ecdc5ffc709ddb3f433a/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-booking-connect-resources.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc2MzYsInB1ciI6ImJsb2JfaWQifX0=--1ee8227475765c711b51ecdc5ffc709ddb3f433a/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-booking-connect-resources.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;TRMNL syncs existing events, location metadata, and more in 1 click.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTc2NTA_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--c49999b9e1a18372d500747210d632495af1a4a4&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc2NTAsInB1ciI6ImJsb2JfaWQifX0=--7ad56542293ac5d7f9a0343b574b7efe1dcb3b42/trmnl-booking-calendars.png&quot; filename=&quot;trmnl-booking-calendars.png&quot; filesize=&quot;115610&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc2NTAsInB1ciI6ImJsb2JfaWQifX0=--7ad56542293ac5d7f9a0343b574b7efe1dcb3b42/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-booking-calendars.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc2NTAsInB1ciI6ImJsb2JfaWQifX0=--7ad56542293ac5d7f9a0343b574b7efe1dcb3b42/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-booking-calendars.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;ignore resources you don&#39;t need connected to a display, for example a private or executive calendar.&lt;/p&gt;&lt;h2&gt;set preferences&lt;/h2&gt;&lt;p&gt;add your logo, enable walk-up booking, and rename resources as you see fit.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTc3MDA_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--9d3fa1912998edbee9cad00368e528a444e33fb4&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3MDAsInB1ciI6ImJsb2JfaWQifX0=--e392756315365ec1453e560d27572786a941f0ea/trmnl-booking-display-settings.png&quot; filename=&quot;trmnl-booking-display-settings.png&quot; filesize=&quot;158154&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3MDAsInB1ciI6ImJsb2JfaWQifX0=--e392756315365ec1453e560d27572786a941f0ea/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-booking-display-settings.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3MDAsInB1ciI6ImJsb2JfaWQifX0=--e392756315365ec1453e560d27572786a941f0ea/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-booking-display-settings.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;we&#39;re on the lookout for additional customizations and will respond quickly if you need something.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTc3MDc_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--b17b3f40e3f08b170071e45a065f6cd012c94044&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3MDcsInB1ciI6ImJsb2JfaWQifX0=--a910f311c5ccc521486eac5b3d3bce0d91dee953/trmnl-booking-calendar-settings.png&quot; filename=&quot;trmnl-booking-calendar-settings.png&quot; filesize=&quot;89191&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3MDcsInB1ciI6ImJsb2JfaWQifX0=--a910f311c5ccc521486eac5b3d3bce0d91dee953/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-booking-calendar-settings.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3MDcsInB1ciI6ImJsb2JfaWQifX0=--a910f311c5ccc521486eac5b3d3bce0d91dee953/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-booking-calendar-settings.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;h2&gt;go live&lt;/h2&gt;&lt;p&gt;connect any number of TRMNL devices to a bookable resource.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTc3MTY_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--842d8d1cff40403fc7a4211e48a041e7018fdf25&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3MTYsInB1ciI6ImJsb2JfaWQifX0=--4aa069b6a6fe5081689d25e72f62cb36871e9178/trmnl-booking-resource-configuration.png&quot; filename=&quot;trmnl-booking-resource-configuration.png&quot; filesize=&quot;126291&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3MTYsInB1ciI6ImJsb2JfaWQifX0=--4aa069b6a6fe5081689d25e72f62cb36871e9178/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-booking-resource-configuration.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3MTYsInB1ciI6ImJsb2JfaWQifX0=--4aa069b6a6fe5081689d25e72f62cb36871e9178/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-booking-resource-configuration.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;or combine resources into a single Collection, with a grid or table layout, while retaining walk-up booking capabilities.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTc3Mjg_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--41caa85820737f0a6108cee9b858b1f9f530b82b&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3MjgsInB1ciI6ImJsb2JfaWQifX0=--4bec8be2db14b4e01e4c602503e6cf460a6cffcf/trmnl-booking-collection-configuration.png&quot; filename=&quot;trmnl-booking-collection-configuration.png&quot; filesize=&quot;117379&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3MjgsInB1ciI6ImJsb2JfaWQifX0=--4bec8be2db14b4e01e4c602503e6cf460a6cffcf/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-booking-collection-configuration.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3MjgsInB1ciI6ImJsb2JfaWQifX0=--4bec8be2db14b4e01e4c602503e6cf460a6cffcf/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-booking-collection-configuration.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;h2&gt;booking resources&lt;/h2&gt;&lt;p&gt;when a resource is available, book it via the QR code.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTc4OTc_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--698bdfb40cf2419320224fd5086ed704f77294e0&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc4OTcsInB1ciI6ImJsb2JfaWQifX0=--ee7600f01392dab9879c189aa3ab12112935b115/trmnl-booking-available-resource.png&quot; filename=&quot;trmnl-booking-available-resource.png&quot; filesize=&quot;144415&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc4OTcsInB1ciI6ImJsb2JfaWQifX0=--ee7600f01392dab9879c189aa3ab12112935b115/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-booking-available-resource.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc4OTcsInB1ciI6ImJsb2JfaWQifX0=--ee7600f01392dab9879c189aa3ab12112935b115/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-booking-available-resource.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;QR codes contain unique and temporary (rotating) links like &lt;code&gt;trmnl.com/book/qwerty&lt;/code&gt;. visitors provide whatever details are needed for their booking. this event data is inserted directly to your origin calendar.&lt;/p&gt;&lt;div class=&quot;attachment-gallery attachment-gallery--4&quot;&gt;
  &lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTc3NDI_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--b5741cb60749566f166248315865b81423e37c52&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3NDIsInB1ciI6ImJsb2JfaWQifX0=--de41edecbcc990f83f859ce166d7a9914f6e9622/trmnl-booking-phone-ux-step-1-time.png&quot; filename=&quot;trmnl-booking-phone-ux-step-1-time.png&quot; filesize=&quot;339380&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3NDIsInB1ciI6ImJsb2JfaWQifX0=--de41edecbcc990f83f859ce166d7a9914f6e9622/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-booking-phone-ux-step-1-time.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3NDIsInB1ciI6ImJsb2JfaWQifX0=--de41edecbcc990f83f859ce166d7a9914f6e9622/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOls4MDAsNjAwXX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--b2fa7d90805d83fab8a31ef10540d81789b54c89/trmnl-booking-phone-ux-step-1-time.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTc3NDQ_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--c6962586b5557127bc51a51f1997495e28f2523a&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3NDQsInB1ciI6ImJsb2JfaWQifX0=--1f84fddafe0e892e29ef0f7fd95e651bb7274711/trmnl-booking-phone-ux-step-2-date.png&quot; filename=&quot;trmnl-booking-phone-ux-step-2-date.png&quot; filesize=&quot;352404&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3NDQsInB1ciI6ImJsb2JfaWQifX0=--1f84fddafe0e892e29ef0f7fd95e651bb7274711/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-booking-phone-ux-step-2-date.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3NDQsInB1ciI6ImJsb2JfaWQifX0=--1f84fddafe0e892e29ef0f7fd95e651bb7274711/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOls4MDAsNjAwXX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--b2fa7d90805d83fab8a31ef10540d81789b54c89/trmnl-booking-phone-ux-step-2-date.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTc3NDM_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--112931eccf20a9fe9f4e80698a1f2731cf6333f6&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3NDMsInB1ciI6ImJsb2JfaWQifX0=--389552d88d113cf1696f9f22863657b35f1d178e/trmnl-booking-phone-ux-step-3-view-calendar.png&quot; filename=&quot;trmnl-booking-phone-ux-step-3-view-calendar.png&quot; filesize=&quot;334755&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3NDMsInB1ciI6ImJsb2JfaWQifX0=--389552d88d113cf1696f9f22863657b35f1d178e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-booking-phone-ux-step-3-view-calendar.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3NDMsInB1ciI6ImJsb2JfaWQifX0=--389552d88d113cf1696f9f22863657b35f1d178e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOls4MDAsNjAwXX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--b2fa7d90805d83fab8a31ef10540d81789b54c89/trmnl-booking-phone-ux-step-3-view-calendar.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTc3NDE_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--2e8ce09ae1519372ad7e46412a97beb529fc29dd&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3NDEsInB1ciI6ImJsb2JfaWQifX0=--8263eec579fbec88dffff4ca7e551fcd4d372a6e/trmnl-booking-phone-ux-step-4-overlap.png&quot; filename=&quot;trmnl-booking-phone-ux-step-4-overlap.png&quot; filesize=&quot;361023&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3NDEsInB1ciI6ImJsb2JfaWQifX0=--8263eec579fbec88dffff4ca7e551fcd4d372a6e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-booking-phone-ux-step-4-overlap.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc3NDEsInB1ciI6ImJsb2JfaWQifX0=--8263eec579fbec88dffff4ca7e551fcd4d372a6e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOls4MDAsNjAwXX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--b2fa7d90805d83fab8a31ef10540d81789b54c89/trmnl-booking-phone-ux-step-4-overlap.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;
&lt;/div&gt;&lt;p&gt;displays sync at a much faster rate than regular TRMNL devices (1-5 minutes) to maintain freshness for changing schedules.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTc5MDE_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--0b2d3e9b79eca2fffa25d2cdac7e432238e3d332&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc5MDEsInB1ciI6ImJsb2JfaWQifX0=--9c2e6c954d4502eb5bc88515e597ea559a93be9b/trmnl-booking-resource-in-use.png&quot; filename=&quot;trmnl-booking-resource-in-use.png&quot; filesize=&quot;133980&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc5MDEsInB1ciI6ImJsb2JfaWQifX0=--9c2e6c954d4502eb5bc88515e597ea559a93be9b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-booking-resource-in-use.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc5MDEsInB1ciI6ImJsb2JfaWQifX0=--9c2e6c954d4502eb5bc88515e597ea559a93be9b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-booking-resource-in-use.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;Collections make it easy to spot available resources at a glance, supporting up to a ~dozen resources in 1 view (&lt;a href=&quot;https://trmnl.com/framework/inverse&quot;&gt;more examples&lt;/a&gt;).&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTc5MTI_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--8858530b0c54f9ca294b429faea39a0fd7a10997&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc5MTIsInB1ciI6ImJsb2JfaWQifX0=--6cf08d63f4f43b539b0afbfa79a825d2505494ff/trmnl-booking-collections-example.png&quot; filename=&quot;trmnl-booking-collections-example.png&quot; filesize=&quot;215340&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc5MTIsInB1ciI6ImJsb2JfaWQifX0=--6cf08d63f4f43b539b0afbfa79a825d2505494ff/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-booking-collections-example.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc5MTIsInB1ciI6ImJsb2JfaWQifX0=--6cf08d63f4f43b539b0afbfa79a825d2505494ff/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-booking-collections-example.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;bookings created via TRMNL Booking may also be canceled directly via the QR codes, and Collections support 1-to-many booking with a top level splash screen.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTc5MjI_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--f05c87855b2d65fb0070fddfb433ce0b097bf54b&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc5MjIsInB1ciI6ImJsb2JfaWQifX0=--a1b1c8b07b541b487f8382c405c84694c2e1badf/trmnl-booking-collection-splash.png&quot; filename=&quot;trmnl-booking-collection-splash.png&quot; filesize=&quot;301953&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc5MjIsInB1ciI6ImJsb2JfaWQifX0=--a1b1c8b07b541b487f8382c405c84694c2e1badf/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-booking-collection-splash.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc5MjIsInB1ciI6ImJsb2JfaWQifX0=--a1b1c8b07b541b487f8382c405c84694c2e1badf/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-booking-collection-splash.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;all together it works like this:&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTc5Njg_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--4adff59021f160fc638e7c9ce0e287be5a70cb79&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc5NjgsInB1ciI6ImJsb2JfaWQifX0=--4940f1fed4ae497bde31469e45f7e29d1b76d08a/trmnl-booking-architecture.png&quot; filename=&quot;trmnl-booking-architecture.png&quot; filesize=&quot;244465&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc5NjgsInB1ciI6ImJsb2JfaWQifX0=--4940f1fed4ae497bde31469e45f7e29d1b76d08a/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-booking-architecture.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc5NjgsInB1ciI6ImJsb2JfaWQifX0=--4940f1fed4ae497bde31469e45f7e29d1b76d08a/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-booking-architecture.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;h2&gt;what customers are saying&lt;/h2&gt;&lt;p&gt;over the past couple months we welcomed 60+ private beta testers who helped improve Booking for everyone. here is just one of their comments.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;I think it took me 10 minutes to set everything up without looking at the docs. It was super easy and very straightforward. Collections made sense, and are awesome.&lt;br&gt;&lt;br&gt;The&amp;nbsp;possibilities are crazy for us here. I gotta get more TRMNLs. I&#39;m 100% replacing my current hacked-together ESP32 and BLE epaper tag system.&amp;nbsp;&lt;/p&gt;&lt;p&gt;You all constantly release absolute bangers. I love it.&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;want more context? check out &lt;a href=&quot;https://trmnl.com/case-studies/code-orange&quot;&gt;our first case study&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;pricing&lt;/h2&gt;&lt;p&gt;we&#39;re not the first group to offer a reservation solution. respected, competing products exist. our approach is being contract-free, simple to set up, with annual savings and &lt;a href=&quot;https://trmnl.com/b2b#pricing&quot;&gt;discounted hardware pricing&lt;/a&gt;.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTc4MDM_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--817b2d9fcd892d16743eac3f7a57067188dd0bf7&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc4MDMsInB1ciI6ImJsb2JfaWQifX0=--ce89b656be9ba9f51ce7fdbf1414a1e6d5a0d67e/trmnl-booking-billing.png&quot; filename=&quot;trmnl-booking-billing.png&quot; filesize=&quot;158837&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc4MDMsInB1ciI6ImJsb2JfaWQifX0=--ce89b656be9ba9f51ce7fdbf1414a1e6d5a0d67e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-booking-billing.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTc4MDMsInB1ciI6ImJsb2JfaWQifX0=--ce89b656be9ba9f51ce7fdbf1414a1e6d5a0d67e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-booking-billing.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;as of this writing, &lt;strong&gt;TRMNL Booking costs $8 /month (or $80 /year) per displayed bookable resource&lt;/strong&gt;. not per device, and not for duplicated resources shown on multiple devices.&lt;/p&gt;&lt;h2&gt;get started&lt;/h2&gt;&lt;p&gt;check out the docs (&lt;a href=&quot;https://trmnl.com/booking/docs&quot;&gt;trmnl.com/booking/docs&lt;/a&gt;) or jump in directly at &lt;a href=&quot;https://trmnl.com/apps&quot;&gt;trmnl.com/apps&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;if you don&#39;t have an account, create a free virtual device at &lt;a href=&quot;https://trmnl.com/byod-trial&quot;&gt;trmnl.com/byod-trial&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/introducing-booking</id>
    <link href="https://trmnl.com/blog/introducing-booking"/>
    <published>2026-09-18T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Introducing Booking</title>
    <updated>2026-09-18T00:00:00+00:00</updated>
    <dc:date>2026-09-18T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Mario Lurig</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;p&gt;Many plugins show one of many, whether it be quotes, jokes, totes, or photes [sic]. The freshness of the data depends on randomly selecting one of the possibilities, either from an API or from a set of data stored in a JSON array or object. Thus, early on we added a help document to inform developers how to get a random number with Liquid, the markup language for our plugins.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;Hypothesis&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;When a playlist item is on a regular interval, it creates a pattern in a randomization based on server time.&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;We were wrong, both methods are sufficiently random across a sample of 1,000 data points. Human bias towards patterns was to blame.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;After creating a plugin with ~120 questions in a static array, the plugin was set to randomly select one question using the nanoseconds value of the current time, with Liquid&#39;s &lt;a href=&quot;https://help.trmnl.com/en/articles/10693981-advanced-liquid#h_7e25b4c812&quot;&gt;date filter&lt;/a&gt;:&lt;/p&gt;&lt;pre data-language=&quot;javascript&quot;&gt;{% assign random_number = &quot;now&quot; | date: &quot;%N&quot; | modulo: 120 %}&lt;/pre&gt;&lt;p&gt;After a week of watching the questions come up, there were some questions that seemed to never appear and some that appeared much more frequently than others. Obviously it could have just been luck based on when I was looking, but to be sure there wasn&#39;t a flaw in the system, a test was created.&lt;/p&gt;&lt;h3&gt;Storing the Number&lt;/h3&gt;&lt;p&gt;Using an old trick called a &lt;i&gt;&lt;em&gt;tracking pixel&lt;/em&gt;&lt;/i&gt;, much like email and websites have previously used to register that a page or email was loaded, a small script was setup that would accomplish 3 tasks:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Return a transparent 1x1 pixel image&lt;/li&gt;&lt;li&gt;Capture the random value passed in a query string parameter&lt;/li&gt;&lt;li&gt;Store the value, timestamp, and IP address in a CSV file&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;By adding this script link to the test plugin&#39;s Shared code as an &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tag, we could capture and display the random number generated not only on the screen of the test TRMNL OG, but also transmit that value to the script on an external site.&lt;/p&gt;&lt;h3&gt;Running the Test... Twice&lt;/h3&gt;&lt;p&gt;Setting the test plugin to run every 5 minutes as the only item on the playlist on a single TRMNL OG, meant that within 4 days we would have 1,000+ data points, enough to do a cursory analysis of the randomization.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMDY3OTM_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--9086bce4938eec9a5e2c8182331173e57fed8568&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY3OTMsInB1ciI6ImJsb2JfaWQifX0=--783f4d08d012e30de44fcd26cdf2030698a472ee/random-date-bar-graph.png&quot; filename=&quot;random-date-bar-graph.png&quot; filesize=&quot;34867&quot; width=&quot;1146&quot; height=&quot;645&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY3OTMsInB1ciI6ImJsb2JfaWQifX0=--783f4d08d012e30de44fcd26cdf2030698a472ee/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/random-date-bar-graph.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY3OTMsInB1ciI6ImJsb2JfaWQifX0=--783f4d08d012e30de44fcd26cdf2030698a472ee/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/random-date-bar-graph.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;Since I didn&#39;t want to write a bunch of Python code myself, AI was used to spit out a few more charts:&lt;/p&gt;&lt;p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMDY3OTU_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--2087f6a41ed118fb71eecae87a30fafc191c3298&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY3OTUsInB1ciI6ImJsb2JfaWQifX0=--fd3ba161432fbfdd428f9013f661d016d2ca07e6/distribution_stability_dashboard_n1000.png&quot; filename=&quot;distribution_stability_dashboard_n1000.png&quot; filesize=&quot;183741&quot; width=&quot;1931&quot; height=&quot;1330&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;/action-text-attachment&gt;&lt;/p&gt;&lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY3OTUsInB1ciI6ImJsb2JfaWQifX0=--fd3ba161432fbfdd428f9013f661d016d2ca07e6/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/distribution_stability_dashboard_n1000.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY3OTUsInB1ciI6ImJsb2JfaWQifX0=--fd3ba161432fbfdd428f9013f661d016d2ca07e6/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/distribution_stability_dashboard_n1000.png&quot;&gt;

  &lt;/figure&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMDY3OTY_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--3ed397e14c32632ef959d304ff3c51d50a2227df&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY3OTYsInB1ciI6ImJsb2JfaWQifX0=--17d801619f5d674343fe5aecbe1f2f5e4920701b/lag1_scatter_n1000.png&quot; filename=&quot;lag1_scatter_n1000.png&quot; filesize=&quot;161174&quot; width=&quot;1033&quot; height=&quot;960&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY3OTYsInB1ciI6ImJsb2JfaWQifX0=--17d801619f5d674343fe5aecbe1f2f5e4920701b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/lag1_scatter_n1000.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY3OTYsInB1ciI6ImJsb2JfaWQifX0=--17d801619f5d674343fe5aecbe1f2f5e4920701b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/lag1_scatter_n1000.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;(This last one is a favorite because it leans into human pattern recognition. It&#39;s a statistical &quot;Where&#39;s Waldo&quot; for finding a problem.)&lt;/p&gt;&lt;figure class=&quot;lexxy-content__table-wrapper&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;Diagnostic&lt;/p&gt;&lt;/th&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;Result&lt;/p&gt;&lt;/th&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;Interpretation&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Mean&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;50.572&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Very close to the uniform expectation of 50.5; &lt;i&gt;&lt;em&gt;p&lt;/em&gt;&lt;/i&gt; = 0.937&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Median&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;50.5&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Exactly centered between the two middle values&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Sample standard deviation&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;29.161&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Close to the uniform expectation of 28.866&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Ten value bands&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;81–118 per band&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;No significant deviation; &lt;i&gt;&lt;em&gt;p&lt;/em&gt;&lt;/i&gt; = 0.573&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Twenty value bands&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;—&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;No significant deviation; &lt;i&gt;&lt;em&gt;p&lt;/em&gt;&lt;/i&gt; = 0.470&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Last digits 0–9&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;88–110 per digit&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;No significant deviation; &lt;i&gt;&lt;em&gt;p&lt;/em&gt;&lt;/i&gt; = 0.864&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Even versus odd&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;520 versus 480&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;No significant deviation; &lt;i&gt;&lt;em&gt;p&lt;/em&gt;&lt;/i&gt; = 0.217&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Values 51–100 versus 1–50&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;500 versus 500&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Perfect balance in this sample&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;&lt;h4&gt;Meanwhile...&lt;/h4&gt;&lt;p&gt;Ryan, TRMNL&#39;s founder, took a customer focused look at the problem and thought, &quot;This method sucks.&quot; A short while later, &lt;a href=&quot;https://help.trmnl.com/en/articles/10347358-custom-plugin-filters#h_5bcb72a9e7&quot;&gt;random_number&lt;/a&gt; was born as a Liquid filter, built on Ruby&#39;s own randomization.&lt;/p&gt;&lt;p&gt;This took a chunk of code:&lt;/p&gt;&lt;pre data-language=&quot;javascript&quot;&gt;{%liquid&lt;br&gt;  assign rand_index = &quot;now&quot; | date: &quot;%N&quot; | modulo: my_collection.size&lt;br&gt;  assign rand_item = my_collection[rand_index]&lt;br&gt;%}&lt;/pre&gt;&lt;p&gt;and turned it into this:&lt;/p&gt;&lt;pre data-language=&quot;js&quot;&gt;{%liquid&lt;br&gt;assign rand_index = &quot;&quot; | random_number: my_collection.size&lt;br&gt;assign rand_item = my_collection[rand_index]&lt;br&gt;%}&lt;/pre&gt;&lt;p&gt;You&#39;re thinking, that&#39;s not that different. Except... this is what it looks like when calling an API and wanted to just get a random_number in a range:&lt;/p&gt;&lt;pre data-language=&quot;js&quot;&gt;https://some-api.com/jokes/{{ &quot;&quot; | random_number: 1, 1000 }}&lt;/pre&gt;&lt;h4&gt;Back to Testing&lt;/h4&gt;&lt;p&gt;With a new method in hand, it was time to update the test plugin and repeat the test. Other than a bug fix discovered because of this test, not much to report other that the results.&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;b&gt;&lt;strong&gt;Narrator:&lt;/strong&gt;&lt;/b&gt;&lt;/i&gt;&lt;i&gt;&lt;em&gt; They were very normal and boring.&lt;/em&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMDY4MDE_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--6ef15ff671634e7679da31134b4485d7668c7fe0&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY4MDEsInB1ciI6ImJsb2JfaWQifX0=--0e467df58626b0178597882d1bada7015afee307/random-filter-bar-graph.png&quot; filename=&quot;random-filter-bar-graph.png&quot; filesize=&quot;54511&quot; width=&quot;1146&quot; height=&quot;645&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;/action-text-attachment&gt;&lt;/p&gt;&lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY4MDEsInB1ciI6ImJsb2JfaWQifX0=--0e467df58626b0178597882d1bada7015afee307/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/random-filter-bar-graph.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY4MDEsInB1ciI6ImJsb2JfaWQifX0=--0e467df58626b0178597882d1bada7015afee307/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/random-filter-bar-graph.png&quot;&gt;

  &lt;/figure&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMDY4MDI_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--df781e51c3139e46d79efc6d029c8325c4a46ed2&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY4MDIsInB1ciI6ImJsb2JfaWQifX0=--4c1c99d943f7929236bd1265418ec6cb7a330cbf/distribution_stability_dashboard_n1000.png&quot; filename=&quot;distribution_stability_dashboard_n1000.png&quot; filesize=&quot;189286&quot; width=&quot;1931&quot; height=&quot;1330&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY4MDIsInB1ciI6ImJsb2JfaWQifX0=--4c1c99d943f7929236bd1265418ec6cb7a330cbf/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/distribution_stability_dashboard_n1000.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY4MDIsInB1ciI6ImJsb2JfaWQifX0=--4c1c99d943f7929236bd1265418ec6cb7a330cbf/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/distribution_stability_dashboard_n1000.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMDY4MTY_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--80accd408e75736d53bc1833a4ff17fb2fa007bd&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY4MTYsInB1ciI6ImJsb2JfaWQifX0=--596465cc2f0f30ed312d87739c84b62c99e6b0aa/lag1_scatter_n1000.png&quot; filename=&quot;lag1_scatter_n1000.png&quot; filesize=&quot;159832&quot; width=&quot;1033&quot; height=&quot;960&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY4MTYsInB1ciI6ImJsb2JfaWQifX0=--596465cc2f0f30ed312d87739c84b62c99e6b0aa/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/lag1_scatter_n1000.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMDY4MTYsInB1ciI6ImJsb2JfaWQifX0=--596465cc2f0f30ed312d87739c84b62c99e6b0aa/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/lag1_scatter_n1000.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;&lt;/p&gt;&lt;figure class=&quot;lexxy-content__table-wrapper&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;Diagnostic&lt;/p&gt;&lt;/th&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;New dataset, first 1,000&lt;/p&gt;&lt;/th&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;Interpretation&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Mean&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;49.051&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Somewhat below 50.5, but not significant; &lt;i&gt;&lt;em&gt;p&lt;/em&gt;&lt;/i&gt; = 0.112&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Median&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;49.5&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Near the center&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Sample standard deviation&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;28.831&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Very close to the uniform expectation of 28.866&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Values 1–50 versus 51–100&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;506 versus 494&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;No significant imbalance; &lt;i&gt;&lt;em&gt;p&lt;/em&gt;&lt;/i&gt; = 0.728&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Even versus odd&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;493 versus 507&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;No significant imbalance; &lt;i&gt;&lt;em&gt;p&lt;/em&gt;&lt;/i&gt; = 0.681&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Ten value bands&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;81–115 per band&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Compatible with uniformity; &lt;i&gt;&lt;em&gt;p&lt;/em&gt;&lt;/i&gt; = 0.241&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Twenty value bands&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;—&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Compatible with uniformity; &lt;i&gt;&lt;em&gt;p&lt;/em&gt;&lt;/i&gt; = 0.539&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Last digits&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;75–111 per digit&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Compatible with uniformity; &lt;i&gt;&lt;em&gt;p&lt;/em&gt;&lt;/i&gt; = 0.163&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Distinct values&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;100 of 100&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;All possible values appeared&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;&lt;h3&gt;Conclusion&lt;/h3&gt;&lt;p&gt;We had an assumption, we tested that assumption, and in the end it improved the quality of life for our plugin developers. It&#39;s not a groundbreaking result, but hopefully an interesting detour.&lt;/p&gt;&lt;p&gt;Also, we learned that Mario was wrong, which was valuable, but not very reassuring.&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/random-number-analysis</id>
    <link href="https://trmnl.com/blog/random-number-analysis"/>
    <published>2026-09-16T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Is it Random Enough?</title>
    <updated>2026-09-16T00:00:00+00:00</updated>
    <dc:date>2026-09-16T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Ryan Kulp</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;p&gt;for more context see the &lt;a href=&quot;https://trmnl.com/blog/creator-fund&quot;&gt;Creator Fund announcement&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;our 11th payout recognizes community contributions between August 7, 2026 and September 4, 2026.&lt;/p&gt;&lt;h2&gt;source of funds&lt;/h2&gt;&lt;p&gt;each payout period, a portion of developer-specific revenue goes directly to creators.&lt;/p&gt;&lt;figure class=&quot;lexxy-content__table-wrapper&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;source&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;/th&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;revenue&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;/th&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;share&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;/th&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;amount&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;Stripe&lt;/p&gt;&lt;p&gt;Developer Edition&lt;br&gt;BYOD&lt;br&gt;TRMNL+&lt;/p&gt;&lt;p&gt;Shopify&lt;/p&gt;&lt;p&gt;Developer Edition&lt;br&gt;Clarity Kit (X)&lt;br&gt;Clarity Kit (OG)&lt;br&gt;BYOD&lt;/p&gt;&lt;/th&gt;&lt;td&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;$4,400&lt;br&gt;$2,940&lt;br&gt;$525&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;$283.85&lt;br&gt;$12,570.02&lt;br&gt;$15,029.80&lt;br&gt;$9,075.57&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;15%&lt;br&gt;15%&lt;br&gt;80%&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;15%&lt;br&gt;10%&lt;br&gt;10%&lt;br&gt;15%&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;$660&lt;br&gt;$441&lt;br&gt;$420&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;$42.58&lt;br&gt;$1,257&lt;br&gt;$1,502.98&lt;br&gt;$1,361.34&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/th&gt;&lt;td&gt;&lt;p&gt;$44,824.24&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;mark style=&quot;background-color:var(--highlight-bg-7);&quot;&gt;$5,684.90&lt;/mark&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;&lt;h2&gt;by the numbers&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;total payout: $5,684.90&lt;/li&gt;&lt;li&gt;plugin author share: $3,979.43 (70% of base total)&lt;/li&gt;&lt;li&gt;strategic contributors share: $1,705.47 (30% of base total)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;plugin author&lt;/strong&gt;&lt;/b&gt;&amp;nbsp;earnouts are calculated automatically by a collection of factors including a plugin&#39;s age (on live playlists), presence (by % dominance on playlists), and impressions (times displayed on device), relative to all other community plugins. there is a minimum threshold of 50 total connections (installs + forks) to qualify for monthly payouts.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;strategic contributors&lt;/strong&gt;&lt;/b&gt;&amp;nbsp;are those who contribute to&amp;nbsp;&lt;a href=&quot;https://github.com/usetrmnl&quot;&gt;TRMNL open source projects&lt;/a&gt;. these earnouts are calculated with a mix of automation + human touch. relative to the funding available, below are allocations by category:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Firmware, 0%&lt;/li&gt;&lt;li&gt;3D Models, 0%&lt;/li&gt;&lt;li&gt;BYOS, 40%&lt;/li&gt;&lt;li&gt;Localizations, 2%&lt;/li&gt;&lt;li&gt;BYOD, 55%&lt;/li&gt;&lt;li&gt;Documentation/Resources, 0%&lt;/li&gt;&lt;li&gt;Tooling, 3%&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;note: these allocations change monthly based on contributions by category.&lt;/p&gt;&lt;h2&gt;algorithm?&lt;/h2&gt;&lt;p&gt;see the algorithm in action &lt;a href=&quot;https://www.youtube.com/watch?v=FJA_tOYcMbI&quot;&gt;here&lt;/a&gt;. over time the above weights, revenue share percentages, and minimum thresholds may change.&lt;/p&gt;&lt;p&gt;candid feedback is welcome, email&amp;nbsp;&lt;a href=&quot;mailto:team@trmnl.com&quot;&gt;team@trmnl.com&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/creator-fund-08-2026</id>
    <link href="https://trmnl.com/blog/creator-fund-08-2026"/>
    <published>2026-09-09T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Creator Fund - August 2026</title>
    <updated>2026-09-09T00:00:00+00:00</updated>
    <dc:date>2026-09-09T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Mario Lurig</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;blockquote&gt;&lt;p&gt;&lt;i&gt;&lt;em&gt;This post is part of a series, featuring the incredible work of plugin authors who grow the TRMNL plugin ecosystem with every contribution. The TRMNL team has individually selected these plugins and authors to be featured.&lt;/em&gt;&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h2&gt;&lt;a href=&quot;https://trmnl.com/recipes/353457&quot;&gt;Buienradar&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Community member &lt;a href=&quot;https://doeken.org/&quot;&gt;Doeke&lt;/a&gt; (Discord: &lt;code&gt;doekenorg&lt;/code&gt;) created the &lt;a href=&quot;https://trmnl.com/recipes/353457&quot;&gt;Buienradar&lt;/a&gt; plugin; here are their words on how it was created.&lt;/p&gt;&lt;h3&gt;Why did you want this plugin to exist?&lt;/h3&gt;&lt;p&gt;I&#39;ve tried a few of the other weather plugins, but their accuracy for The Netherlands was not that great. Not that weather apps are often right... but I figured using a Dutch service, would have more accuracy overall.&lt;/p&gt;&lt;h3&gt;Why were you the person to make it?&lt;/h3&gt;&lt;p&gt;I&#39;m a software developer, with &lt;i&gt;&lt;em&gt;some&lt;/em&gt;&lt;/i&gt; sense of proper design. Not that I&#39;m a designer at all, but I know what looks and works well. So I keep at it, making it suck less, until it looks good.&lt;/p&gt;&lt;h3&gt;Were you inspired by any other recipes or plugin creators?&lt;/h3&gt;&lt;p&gt;Yes, since I&#39;ve been using other plugins; I&#39;ve been biased to their designs, of course. But also by other plugins that were way too crowded and cramped a lot of info in a small window.&lt;/p&gt;&lt;h3&gt;How did you balance look vs functionality?&lt;/h3&gt;&lt;p&gt;In this case, design was slightly more important. Functionality is of course: making the weather information available. But design drives how easy it is to absorb that information. Visual hierarchy is very important there. I also wanted to make the plugin feel native to the TRMNL platform, as well as to users familiar with Buienradar. So I reused their iconography.&lt;/p&gt;&lt;h3&gt;What was your process for creating the plugin?&lt;/h3&gt;&lt;p&gt;First I read the API and figured out what information would be good to use on the screens. Then I used a combination of Claude and my JetBrains IDE to design every step. I also used the TRMNL local dev server to test the plugin on various screens. Lastly, I created a proper git repo for the plugin, using the GitHub actions to quickly be able to release new features and updates.&lt;/p&gt;&lt;h3&gt;What, if any, challenges did you face while creating it?&lt;/h3&gt;&lt;p&gt;The data is limited to a 5-day forecast (today + 4 days). This meant that the design needed to include or exclude information based on the screen size. Sometimes that meant including something only on portrait mode, but not on portrait mode of another screen size. This meant testing and retesting every screen on OG and X a lot. I also missed some leading tools to increase the line-height of larger and longer texts. I mentioned this to the team, and they responded very positive on the idea.&lt;/p&gt;&lt;h3&gt;Did you learn anything that you want to apply to future or past recipes?&lt;/h3&gt;&lt;p&gt;I created an AGENTS.md file to let AI agents use the correct best practices, as well as the appropriate helper classes. This meant that changes would always use the framework, making the change automatically work on light/dark mode. And the shared template is a great way to set up re-usable template parts. Having a single place to change classes across pages has been a great timesaver.&lt;/p&gt;&lt;h3&gt;Is there a tip you would give to a new plugin developer?&lt;/h3&gt;&lt;p&gt;As always, first, RTFM. That is very extensive. It would be great to have those docs as markdown files for LLM&#39;s. Or even as an MCP server (&lt;b&gt;&lt;strong&gt;Editor&lt;/strong&gt;&lt;/b&gt;: We do!). For now I just pulled to my local memory. But definitely test your plugin on multiple screens using the local dev server.&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/featured-plugin-buienradar</id>
    <link href="https://trmnl.com/blog/featured-plugin-buienradar"/>
    <published>2026-09-08T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Featured Community Plugin - Buienradar</title>
    <updated>2026-09-08T00:00:00+00:00</updated>
    <dc:date>2026-09-08T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Mario Lurig</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;blockquote&gt;This post is part of a series, featuring the incredible work of plugin authors who grow the TRMNL plugin ecosystem with every contribution. The TRMNL team has individually selected these plugins and authors to be featured.&lt;/blockquote&gt;&lt;h2&gt;&lt;a href=&quot;https://trmnl.com/recipes/336231&quot;&gt;This Week in Videogames&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Community member Martin Rapavý (Discord: &lt;code&gt;martin2097&lt;/code&gt;) created the &lt;a href=&quot;https://trmnl.com/recipes/336231&quot;&gt;This Week in Videogames&lt;/a&gt; plugin; here are their words on how it was created.&lt;/p&gt;&lt;h3&gt;Why did you want this plugin to exist?&lt;/h3&gt;&lt;p&gt;What I love the most about TRMNL is the emphasis on slowing down. Every day, we are bombarded with all sorts of news, and most of it is pure fluff. I also love following gaming news, which also suffers from low-quality, clickbaity, ad-filled content. So it was like a revelation for me when This Week in Videogames came into existence—curated, ad-free, and written by actual humans. From there, it seemed like a perfect match to bring this content to TRMNL.&lt;/p&gt;&lt;h3&gt;Why were you the person to make it?&lt;/h3&gt;&lt;p&gt;I have followed TWIV since its beginnings, and it has been my main source of gaming news, so I think that made this choice so obvious for me.&lt;/p&gt;&lt;h3&gt;What was your process for creating the plugin?&lt;/h3&gt;&lt;p&gt;My daily job is in the AI field, but I work in a bank, so I don&#39;t have many opportunities to try AI agents in an unconstrained environment. Because of that, I wanted to try Claude Code&#39;s current capabilities enhanced by the TRMNL MCP server. In the end, it did some of the rough work for me. For the backend and data transformations, it&#39;s really great, but when it comes to visuals, it really struggles with creating &quot;beautiful&quot; stuff. So in the end, I spent most of my time in the Visual Editor, tuning every parameter to get the best look.&lt;/p&gt;&lt;h3&gt;What, if any, challenges did you face while creating it?&lt;/h3&gt;&lt;p&gt;Crafting a beautiful layout for landscape OG and landscape/portrait X means 12 layouts you have to take care of. And that is... a lot of layouts! 😅 But I hope I got the best out of every screen size, and no matter if you own a TRMNL OG or a TRMNL X, you&#39;ll enjoy the most beautiful display!&lt;/p&gt;&lt;h3&gt;Did you learn anything that you want to apply to future or past recipes?&lt;/h3&gt;&lt;p&gt;&lt;code&gt;gap--auto&lt;/code&gt; and &lt;code&gt;gap--distribute&lt;/code&gt; can save you a lot of tinkering when the length of the content varies.&lt;/p&gt;&lt;h3&gt;Is there a tip you would give to a new plugin developer?&lt;/h3&gt;&lt;p&gt;I have 2 tips:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;The look of the plugin matters. Show it to your wife, kids, mum, dad, or neighbours. Do they understand what they&#39;re seeing? Do they like it? Most of us programmers feel that if it works and has super sophisticated code behind it, we&#39;ve done a great job. But presentation is equally important, if not even more important.&lt;/li&gt;&lt;li&gt;Don&#39;t forget that some TRMNL users are not programmers or even tech people at all. It&#39;s great to give users a ton of room for customization. But what&#39;s even better for most users is when it&#39;s already beautiful out of the box! Choosing what looks best is a hard decision, but trust me—it will push you forward and make your plugin better.&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;What part of the TRMNL Framework, Liquid filters, or other documentation was most helpful?&lt;/h3&gt;&lt;p&gt;Don&#39;t underestimate the &lt;a href=&quot;https://trmnl.com/framework/docs/&quot;&gt;TRMNL Framework&lt;/a&gt;. It looks really great, and knowing all of its capabilities gives you much more freedom to imagine what you can build. 100% of my plugin&#39;s look is made using TRMNL Framework components, and I really love it. Working within meaningful constraints can be really beneficial.&lt;/p&gt;&lt;h3&gt;What is your favorite plugin that someone else created and why?&lt;/h3&gt;&lt;p&gt;As you&#39;ve probably figured out by now, I&#39;m naturally drawn toward the visual side of things. &lt;a href=&quot;https://trmnl.com/recipes/181200&quot;&gt;Weather Glance&lt;/a&gt;, &lt;a href=&quot;https://trmnl.com/recipes/251959&quot;&gt;Formula 1 – Race and Standings&lt;/a&gt;, and &lt;a href=&quot;https://trmnl.com/recipes/174854&quot;&gt;Flip Clock&lt;/a&gt; are all really beautiful plugins that I admire.&lt;/p&gt;&lt;h3&gt;What was your biggest enemy?&lt;/h3&gt;&lt;p&gt;Off-by-one pixels.&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/featured-plugin-this-week-in-videogames</id>
    <link href="https://trmnl.com/blog/featured-plugin-this-week-in-videogames"/>
    <published>2026-08-25T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Featured Community Plugin - This Week in Videogames</title>
    <updated>2026-08-25T00:00:00+00:00</updated>
    <dc:date>2026-08-25T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Ryan Kulp</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;p&gt;we started with an 800x480, 1-bit display. it didn&#39;t take long to realize: designing for low resolution ePaper panels is tricky. thus Framework was born:&lt;br&gt;&lt;a href=&quot;https://trmnl.com/framework&quot;&gt;https://trmnl.com/framework&lt;/a&gt;&lt;/p&gt;&lt;p&gt;fast forward a few years, today we host 93,108 private plugins delivering 281,872 instances to 10s of thousands of devices around the world every 5-15 minutes.&lt;/p&gt;&lt;p&gt;which is why i&#39;m thrilled to announce that our entire design system is now open source.&lt;br&gt;&lt;a href=&quot;https://github.com/usetrmnl/trmnl-framework&quot;&gt;https://github.com/usetrmnl/trmnl-framework&lt;/a&gt;&lt;/p&gt;&lt;p&gt;after thousands of iterations, here are a few things it can do.&lt;/p&gt;&lt;h2&gt;Components&lt;/h2&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTgzNjk3OTk_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--d0296b0e0921f44f79c42f7d5a5e64bf798b6b27&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTgzNjk3OTksInB1ciI6ImJsb2JfaWQifX0=--c78d5cf750f37ac92ab86f4e608f538518d9a629/framework-open-source-components.png&quot; filename=&quot;framework-open-source-components.png&quot; filesize=&quot;39512&quot; width=&quot;1600&quot; height=&quot;960&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTgzNjk3OTksInB1ciI6ImJsb2JfaWQifX0=--c78d5cf750f37ac92ab86f4e608f538518d9a629/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/framework-open-source-components.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTgzNjk3OTksInB1ciI6ImJsb2JfaWQifX0=--c78d5cf750f37ac92ab86f4e608f538518d9a629/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/framework-open-source-components.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;nobody wants to reinvent a table, label, or stat widget.&lt;/p&gt;&lt;p&gt;Framework components provide device-aware markup that looks great on your computer screen or ePaper display. charting is powered by &lt;a href=&quot;https://www.highcharts.com/?gad_source=1&amp;amp;gad_campaignid=22994297277&amp;amp;gbraid=0AAAAAo4v_Ovo1lO2eDETR56dG1Mdyy0xN&amp;amp;gclid=CjwKCAjw1vXTBhB-EiwAEKr_k0XLWolI0sFUp9OkEMZwV4aT7Pcpimvtzy5YirU16zPQQ3FT45CxEhoC7BoQAvD_BwE&quot;&gt;Highcharts&lt;/a&gt; under the hood, with theme overrides to account for hardware limitations.&lt;/p&gt;&lt;p&gt;speaking of hardware...&lt;/p&gt;&lt;h2&gt;Hardware&lt;/h2&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTgzNzAyNzE_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--d7b5bbcdb80e1a2727b46957dd6c882261c9908e&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTgzNzAyNzEsInB1ciI6ImJsb2JfaWQifX0=--326763ca73394aaa5269b63755a0bbdf5d98ff19/framework-open-source-hardware.png&quot; filename=&quot;framework-open-source-hardware.png&quot; filesize=&quot;702773&quot; width=&quot;1600&quot; height=&quot;960&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTgzNzAyNzEsInB1ciI6ImJsb2JfaWQifX0=--326763ca73394aaa5269b63755a0bbdf5d98ff19/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/framework-open-source-hardware.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTgzNzAyNzEsInB1ciI6ImJsb2JfaWQifX0=--326763ca73394aaa5269b63755a0bbdf5d98ff19/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/framework-open-source-hardware.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;as our device model library grows, your work should Just Work on different display sizes and resolutions.&lt;/p&gt;&lt;p&gt;the &lt;a href=&quot;https://github.com/usetrmnl/trmnl-picker&quot;&gt;model picker&lt;/a&gt; reads from the &lt;a href=&quot;https://trmnl.com/api/models&quot;&gt;Model API&lt;/a&gt; to inject dimensions, colors, and other capabilities of a given device directly into the web based markup editor or your local dev tooling with &lt;a href=&quot;https://github.com/usetrmnl/trmnlp&quot;&gt;trmnlp&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;try changing parameters in the top-right dropdown in &lt;a href=&quot;https://trmnl.com/framework/docs/3.2/background&quot;&gt;our docs&lt;/a&gt; to see how it works:&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTg0ODgwMDE_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--4ce18206e7ceefdf02759b6119890301db442274&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTg0ODgwMDEsInB1ciI6ImJsb2JfaWQifX0=--1ac5498cbfc9e428ee43e8fe665255dd29de3b84/TRMNL-framework-hardware-picker.png&quot; filename=&quot;TRMNL-framework-hardware-picker.png&quot; filesize=&quot;19034&quot; width=&quot;256&quot; height=&quot;278&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTg0ODgwMDEsInB1ciI6ImJsb2JfaWQifX0=--1ac5498cbfc9e428ee43e8fe665255dd29de3b84/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/TRMNL-framework-hardware-picker.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTg0ODgwMDEsInB1ciI6ImJsb2JfaWQifX0=--1ac5498cbfc9e428ee43e8fe665255dd29de3b84/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/TRMNL-framework-hardware-picker.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;Framework is even compatible with &lt;a href=&quot;https://trmnl.com/blog/trmnl-for-apple-tv&quot;&gt;televisions&lt;/a&gt;, &lt;a href=&quot;https://help.trmnl.com/en/articles/11647499-trmnl-for-android&quot;&gt;tablets&lt;/a&gt;, &lt;a href=&quot;https://help.trmnl.com/en/articles/11647459-trmnl-for-ipad&quot;&gt;iPads&lt;/a&gt;, and &lt;a href=&quot;https://trmnl.com/byod&quot;&gt;beyond&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;Legibility&lt;/h2&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTgzNzA1MTY_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--683ae7fcb02bd4005d7b7ba5f283e74e3fcfee9c&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTgzNzA1MTYsInB1ciI6ImJsb2JfaWQifX0=--27b975460d9546660653037aebbc186a06aa601d/image-1786497163723.png&quot; filename=&quot;image-1786497163723.png&quot; filesize=&quot;92849&quot; width=&quot;1600&quot; height=&quot;960&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTgzNzA1MTYsInB1ciI6ImJsb2JfaWQifX0=--27b975460d9546660653037aebbc186a06aa601d/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/image-1786497163723.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTgzNzA1MTYsInB1ciI6ImJsb2JfaWQifX0=--27b975460d9546660653037aebbc186a06aa601d/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/image-1786497163723.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;perfect vision is wasted on the youth. we created &lt;a href=&quot;https://trmnl.com/blog/introducing-typography&quot;&gt;our own font&lt;/a&gt; from scratch, and now it&#39;s yours. for everything else there&#39;s Inter.&lt;/p&gt;&lt;p&gt;whether you want small type, large graphics, serifs or sans, Framework lets you scope typography on a per element basis.&lt;/p&gt;&lt;h2&gt;Magic (JavaScript)&lt;/h2&gt;&lt;p&gt;tying together many of the above elements is a &lt;a href=&quot;https://trmnl.com/framework/docs/3.2/framework_runtime&quot;&gt;JS runtime&lt;/a&gt;, &lt;code&gt;terminalize()&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;this lets you scale text, adhere to cultural or regional formatting, truncate big values, and more.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTg0ODg0ODA_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--fbae63778e9212c725c837863cff9165bf77d1da&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTg0ODg0ODAsInB1ciI6ImJsb2JfaWQifX0=--8630e864527e3478621e56d5d6747626d0b94909/trmnl-framework-value-formatting.png&quot; filename=&quot;trmnl-framework-value-formatting.png&quot; filesize=&quot;88644&quot; width=&quot;794&quot; height=&quot;477&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Value Formatting&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTg0ODg0ODAsInB1ciI6ImJsb2JfaWQifX0=--8630e864527e3478621e56d5d6747626d0b94909/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-framework-value-formatting.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTg0ODg0ODAsInB1ciI6ImJsb2JfaWQifX0=--8630e864527e3478621e56d5d6747626d0b94909/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-framework-value-formatting.png&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Value Formatting
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;if you&#39;re wondering why this matters, it&#39;s because TRMNL is designed for arbitrary content. the value of &lt;code&gt;{{ some_variable }}&lt;/code&gt; should never break your markup.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTg0ODg0Mjc_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--c58a2cda5b8571da88234c82bced14f9f8bd2ca5&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTg0ODg0MjcsInB1ciI6ImJsb2JfaWQifX0=--bef8c97714cae19028a54a7b13fd91e7dfde52f8/trmnl-framework-fit-value.png&quot; filename=&quot;trmnl-framework-fit-value.png&quot; filesize=&quot;38023&quot; width=&quot;800&quot; height=&quot;480&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Fit Value&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTg0ODg0MjcsInB1ciI6ImJsb2JfaWQifX0=--bef8c97714cae19028a54a7b13fd91e7dfde52f8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-framework-fit-value.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTg0ODg0MjcsInB1ciI6ImJsb2JfaWQifX0=--bef8c97714cae19028a54a7b13fd91e7dfde52f8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-framework-fit-value.png&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Fit Value
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;the Framework Runtime even solves for fixed display heights, check out &lt;a href=&quot;https://trmnl.com/framework/docs/3.2/table_overflow&quot;&gt;Table Overflow&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;what&#39;s next&lt;/h2&gt;&lt;p&gt;if you&#39;re just getting started, check out &lt;a href=&quot;https://trmnl.com/framework/docs/3.2&quot;&gt;the docs&lt;/a&gt; and &lt;a href=&quot;https://trmnl.com/framework/examples&quot;&gt;examples&lt;/a&gt;. if you&#39;ve been with us awhile, skim the &lt;a href=&quot;https://trmnl.com/framework/docs/3.2/v3_overview&quot;&gt;v3 overview&amp;nbsp;guide&lt;/a&gt; for the latest features.&lt;/p&gt;&lt;p&gt;to report an issue or contribute new features, visit the source code:&lt;br&gt;&lt;a href=&quot;https://github.com/usetrmnl/trmnl-framework&quot;&gt;https://github.com/usetrmnl/trmnl-framework&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/framework-design-system</id>
    <link href="https://trmnl.com/blog/framework-design-system"/>
    <published>2026-08-13T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Framework is now Open Source</title>
    <updated>2026-08-13T00:00:00+00:00</updated>
    <dc:date>2026-08-13T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Ryan Kulp</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;p&gt;We &lt;a href=&quot;https://usetrmnl.com/blog/introducing-trmnl-x&quot;&gt;introduced X&lt;/a&gt; on July 30, 2025. We began assembly + fulfillment on March 18, 2026.&lt;/p&gt;&lt;p&gt;To see your live spot in the order queue, go here:&lt;br&gt;&lt;a href=&quot;https://trmnl.com/order-tracker&quot;&gt;https://trmnl.com/order-tracker&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Here&#39;s our per-warehouse queue as of September 17, 2026:&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTkyMTIyMDI_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--e0e04219048d37b63cc4e822128efb9ed65be331&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTIyMDIsInB1ciI6ImJsb2JfaWQifX0=--3b0cd81af1261d1dc116abe049a53558a7c3a38d/trmnl-x-queue-sep-17-2026.png&quot; filename=&quot;trmnl-x-queue-sep-17-2026.png&quot; filesize=&quot;22842&quot; width=&quot;578&quot; height=&quot;280&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTIyMDIsInB1ciI6ImJsb2JfaWQifX0=--3b0cd81af1261d1dc116abe049a53558a7c3a38d/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-x-queue-sep-17-2026.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTkyMTIyMDIsInB1ciI6ImJsb2JfaWQifX0=--3b0cd81af1261d1dc116abe049a53558a7c3a38d/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-x-queue-sep-17-2026.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;For &lt;strong&gt;more frequent and detailed updates&lt;/strong&gt; over time, see below.&lt;/p&gt;&lt;h3&gt;When will I receive my TRMNL X?&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Live in USA, Canada, India, Mexico, or Australia?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Your TRMNL will ship from our USA warehouse. See chronological updates below for the latest availability.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Live in Europe, Asia, Africa, South America, etc?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Your TRMNL will ship from our Berlin warehouse. Due to Customs issues and supplier theft, this warehouse is moving slower through their queue than the USA. See chronological updates below for the latest availability.&lt;/p&gt;&lt;h3&gt;Tech Specs&lt;/h3&gt;&lt;p&gt;Highlights below, or see everything &lt;a href=&quot;https://trmnl.com/products/x/spec-sheet&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;ul&gt;&lt;li value=&quot;1&quot;&gt;10.3&quot; 1872x1404 EPD resolution with 16 shades of gray&lt;/li&gt;&lt;li value=&quot;2&quot;&gt;Dust and basic waterproofing with a hacker-friendly enclosure&lt;/li&gt;&lt;li value=&quot;3&quot;&gt;ESP32-S3 with 16MB of flash and 8MB of PSRAM as a core processor with fallback 2.4GHz WiFi&lt;/li&gt;&lt;li value=&quot;4&quot;&gt;5GHz WiFi support via ESP32-C5 as a modem (external antenna)&lt;/li&gt;&lt;li value=&quot;5&quot;&gt;Support up to 2x 6000mAh 3.8V LiPo batteries with automatic detection&lt;/li&gt;&lt;li value=&quot;6&quot;&gt;Battery gas gauge from TI for battery SOC/SOH/capacity tracking&lt;/li&gt;&lt;li value=&quot;7&quot;&gt;Bosch accelerometer for portrait/landscape orientation&lt;/li&gt;&lt;li value=&quot;8&quot;&gt;Gesture touch-bar based on Azotech IC&lt;/li&gt;&lt;li value=&quot;9&quot;&gt;Magnetic pogo pin-based mount for charging and accessories (Coming 2026)&lt;/li&gt;&lt;li value=&quot;10&quot;&gt;OTG support with 5V 2A output&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Dimensions&lt;/h3&gt;&lt;p&gt;These values may change as we scale production. last updated December 15, 2025.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY2MzIxMjU_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--afd8df5339ded2d0dbc6f0a9c022b8a90db3d452&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://usetrmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY2MzIxMjUsInB1ciI6ImJsb2JfaWQifX0=--4fe9bcea7ce6f5b07810b792a3e4769bd9b3ec05/TRMNL-X-dimensions-2025-12-15.jpg&quot; filename=&quot;TRMNL-X-dimensions-2025-12-15.jpg&quot; filesize=&quot;40897&quot; width=&quot;1278&quot; height=&quot;832&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;X enclosure dimensions (mm)&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpg&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY2MzIxMjUsInB1ciI6ImJsb2JfaWQifX0=--4fe9bcea7ce6f5b07810b792a3e4769bd9b3ec05/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--dca01e04df3bbc72f37a667e31be1efca2488daa/TRMNL-X-dimensions-2025-12-15.jpg&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY2MzIxMjUsInB1ciI6ImJsb2JfaWQifX0=--4fe9bcea7ce6f5b07810b792a3e4769bd9b3ec05/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--d5e667c0137ab726f37f5f3b8ccaf980246e425b/TRMNL-X-dimensions-2025-12-15.jpg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          X enclosure dimensions (mm)
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;Weight (device only, no attachments)&lt;/p&gt;&lt;p&gt;1 battery - 362 grams&lt;br&gt;2 batteries - 448 grams&lt;/p&gt;&lt;h3&gt;&lt;strong&gt;August 2025&lt;/strong&gt;&lt;/h3&gt;&lt;ol&gt;&lt;li value=&quot;1&quot;&gt;Multiple boards and controllers support touch gestures, battery charging, and 5ghz WiFi&lt;/li&gt;&lt;li value=&quot;2&quot;&gt;The circular area interfaces with a waterproof &quot;puck&quot; shaped charging connector, and several test points on the motherboard&#39;s bottom will let us build a QA jig for our warehouse&lt;/li&gt;&lt;li value=&quot;3&quot;&gt;Prior to release we&#39;ll prototypes to your favorite creators for first-look reviews&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;September 2025&lt;/h3&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY0Njk4MDc_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--e65fee844581cfc51ea6b1464022c1afb0ca026c&quot; content-type=&quot;image/png&quot; url=&quot;https://usetrmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY0Njk4MDcsInB1ciI6ImJsb2JfaWQifX0=--3848d7bc1ccc9b3f6dbae3f418cdc08223198ba7/trmnl-x-board-preview.png&quot; filename=&quot;trmnl-x-board-preview.png&quot; filesize=&quot;187997&quot; width=&quot;2636&quot; height=&quot;2066&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;PCB preview&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY0Njk4MDcsInB1ciI6ImJsb2JfaWQifX0=--3848d7bc1ccc9b3f6dbae3f418cdc08223198ba7/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-x-board-preview.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY0Njk4MDcsInB1ciI6ImJsb2JfaWQifX0=--3848d7bc1ccc9b3f6dbae3f418cdc08223198ba7/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-x-board-preview.png&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          PCB preview
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;ol&gt;&lt;li value=&quot;1&quot;&gt;We ordered 50x more prototypes with stronger magnets so devices can attach directly to a surface (e.g. refrigerator) without&amp;nbsp;&lt;a href=&quot;https://github.com/usetrmnl/mounts&quot;&gt;mounts&lt;/a&gt;&lt;/li&gt;&lt;li value=&quot;2&quot;&gt;Dual band WiFi will be powered by the ESP32-C5 and we&#39;ve benchmarked faster speeds + better range with custom modem firmware&lt;/li&gt;&lt;li value=&quot;3&quot;&gt;Orders with the Battery Upgrade (or Clarity Kit) will now enjoy 10,000mAh versus the announced 7,000mAh variant&lt;/li&gt;&lt;li value=&quot;4&quot;&gt;Our &quot;charging puck&quot; (name TBD) now has a universal connector for kickstands and other peripheral accessories that will debut in 2026&lt;/li&gt;&lt;li value=&quot;5&quot;&gt;The same firmware that runs all OG + BYOD devices has&amp;nbsp;&lt;a href=&quot;https://github.com/usetrmnl/trmnl-firmware/tree/trmnl_x_alpha&quot;&gt;been extended&lt;/a&gt;&amp;nbsp;and is already running my own X prototype, &lt;a href=&quot;https://x.com/useTRMNL/status/1979637211412017281&quot;&gt;preview here&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;October 2025&lt;/h3&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY0ODQyMzM_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--a5a50e0b90ef76e5acdf6beea3f046c57655527b&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://usetrmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY0ODQyMzMsInB1ciI6ImJsb2JfaWQifX0=--11ea7b6379735e1dea6bf5387f6192ba4adb2b2b/TRMNL-X-robin-williams-test.jpeg&quot; filename=&quot;TRMNL-X-robin-williams-test.jpeg&quot; filesize=&quot;265844&quot; width=&quot;960&quot; height=&quot;1280&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Grayscale testing with a GOAT&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY0ODQyMzMsInB1ciI6ImJsb2JfaWQifX0=--11ea7b6379735e1dea6bf5387f6192ba4adb2b2b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMjU2MCwyNTYwXX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--83a50e5021e7f6e19e2ee2fa117bfcf2b44b7743/TRMNL-X-robin-williams-test.jpeg&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY0ODQyMzMsInB1ciI6ImJsb2JfaWQifX0=--11ea7b6379735e1dea6bf5387f6192ba4adb2b2b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/TRMNL-X-robin-williams-test.jpeg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Grayscale testing with a GOAT
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;ol&gt;&lt;li value=&quot;1&quot;&gt;The first batch of screens arrived at our USA warehouse, more en route to our &lt;a href=&quot;https://usetrmnl.com/blog/slashing-postage-rates-again&quot;&gt;Berlin warehouse&lt;/a&gt;&lt;/li&gt;&lt;li value=&quot;2&quot;&gt;Gesture bar + charging pucks are in small batch production&lt;/li&gt;&lt;li value=&quot;3&quot;&gt;Received and approved packaging samples. Model X packaging will be more premium and protective than OG packaging.&lt;/li&gt;&lt;li value=&quot;4&quot;&gt;Consolidating WiFi antennas (2.4 + 5gh) to a single component&lt;/li&gt;&lt;li value=&quot;5&quot;&gt;Added 3 angle options (degrees) to the kickstand&lt;/li&gt;&lt;li value=&quot;6&quot;&gt;[Work in progress] battery options may grow another 20% to 6000/12000mAh variants pending more testing&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;November 2025&lt;/h3&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY1MTg1ODA_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--d8a89686dba4f4b04bc16dcb136c95eab525f0bd&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://usetrmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY1MTg1ODAsInB1ciI6ImJsb2JfaWQifX0=--c1477124c066c9bfa66b9ccd6f09cb176c30b9d9/TRMNL-X-assembly.jpeg&quot; filename=&quot;TRMNL-X-assembly.jpeg&quot; filesize=&quot;296326&quot; width=&quot;1280&quot; height=&quot;960&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Full assembly (3D printed parts, not final)&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY1MTg1ODAsInB1ciI6ImJsb2JfaWQifX0=--c1477124c066c9bfa66b9ccd6f09cb176c30b9d9/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMjU2MCwyNTYwXX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--83a50e5021e7f6e19e2ee2fa117bfcf2b44b7743/TRMNL-X-assembly.jpeg&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY1MTg1ODAsInB1ciI6ImJsb2JfaWQifX0=--c1477124c066c9bfa66b9ccd6f09cb176c30b9d9/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/TRMNL-X-assembly.jpeg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Full assembly (3D printed parts, not final)
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY1MTc0OTY_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--824732486c8578547d16075875d06a33df483cc4&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://usetrmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY1MTc0OTYsInB1ciI6ImJsb2JfaWQifX0=--74089f2a8c4c8b2d415181e16336639c0fca35f4/TRMNL-X-prototype-back.jpeg&quot; filename=&quot;TRMNL-X-prototype-back.jpeg&quot; filesize=&quot;173771&quot; width=&quot;1280&quot; height=&quot;674&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Fully functional prototype (3D printed case, non-branded silicone pads)&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY1MTc0OTYsInB1ciI6ImJsb2JfaWQifX0=--74089f2a8c4c8b2d415181e16336639c0fca35f4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMjU2MCwyNTYwXX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--83a50e5021e7f6e19e2ee2fa117bfcf2b44b7743/TRMNL-X-prototype-back.jpeg&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY1MTc0OTYsInB1ciI6ImJsb2JfaWQifX0=--74089f2a8c4c8b2d415181e16336639c0fca35f4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/TRMNL-X-prototype-back.jpeg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Fully functional prototype (3D printed case, non-branded silicone pads)
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY1MTc0OTc_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--3cf5cb7b951505b570349e23af70950eec7fd0cd&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://usetrmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY1MTc0OTcsInB1ciI6ImJsb2JfaWQifX0=--aaf5c4631331eaf1ee4fbc0f8b97cab4cdc71593/TRMNL-X-prototype-front.jpeg&quot; filename=&quot;TRMNL-X-prototype-front.jpeg&quot; filesize=&quot;238857&quot; width=&quot;1280&quot; height=&quot;960&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Prototype running latest (public) firmware release&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY1MTc0OTcsInB1ciI6ImJsb2JfaWQifX0=--aaf5c4631331eaf1ee4fbc0f8b97cab4cdc71593/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMjU2MCwyNTYwXX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--83a50e5021e7f6e19e2ee2fa117bfcf2b44b7743/TRMNL-X-prototype-front.jpeg&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY1MTc0OTcsInB1ciI6ImJsb2JfaWQifX0=--aaf5c4631331eaf1ee4fbc0f8b97cab4cdc71593/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/TRMNL-X-prototype-front.jpeg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Prototype running latest (public) firmware release
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;ol&gt;&lt;li value=&quot;1&quot;&gt;Added extra reset buttons to S3 and C5 MCUs for hacker friendliness, board design is final&lt;/li&gt;&lt;li value=&quot;2&quot;&gt;Batteries are in production and we can confirm the improved 6k / 12kmAh sizing (announced size: 5k / 7k)&amp;nbsp;&lt;/li&gt;&lt;li value=&quot;3&quot;&gt;Enclosure injection molds are in production, purchase order placed for thousands of cases in different colors&lt;/li&gt;&lt;li value=&quot;4&quot;&gt;Magnet deliveries from Chinese factories have been delayed due to recent&amp;nbsp;&lt;a href=&quot;https://www.cnbc.com/2025/11/10/china-suspends-some-critical-mineral-export-curbs-to-the-us-as-trade-truce-takes-hold.html&quot;&gt;Critical Mineral Export Bans&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;December 2025&lt;/h3&gt;&lt;ol&gt;&lt;li value=&quot;1&quot;&gt;Battery production complete, shipping to our warehouses next week&lt;/li&gt;&lt;li value=&quot;2&quot;&gt;EC licenses underway at testing facilities&lt;/li&gt;&lt;li value=&quot;3&quot;&gt;Packaging in mass production&lt;/li&gt;&lt;li value=&quot;4&quot;&gt;Magnets in mass production&lt;/li&gt;&lt;li value=&quot;5&quot;&gt;[New] OTG functionality - power other devices from your TRMNL&#39;s charging puck&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;January 2026&lt;/h3&gt;&lt;p&gt;From my desk to yours, a &lt;a href=&quot;https://www.youtube.com/watch?v=LNcoAZJP3hk&quot;&gt;video update&lt;/a&gt;.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY3NTYyNDE_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--ff980753fe59bd5c1d900042c94b672cb7df22bd&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY3NTYyNDEsInB1ciI6ImJsb2JfaWQifX0=--4a9e8b1d8020df4a822132b47790326a0e899297/trmnl-x-fulfillment-update-jan-2026.jpg&quot; filename=&quot;trmnl-x-fulfillment-update-jan-2026.jpg&quot; filesize=&quot;102241&quot; width=&quot;1280&quot; height=&quot;720&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpg&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY3NTYyNDEsInB1ciI6ImJsb2JfaWQifX0=--4a9e8b1d8020df4a822132b47790326a0e899297/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--dca01e04df3bbc72f37a667e31be1efca2488daa/trmnl-x-fulfillment-update-jan-2026.jpg&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY3NTYyNDEsInB1ciI6ImJsb2JfaWQifX0=--4a9e8b1d8020df4a822132b47790326a0e899297/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--d5e667c0137ab726f37f5f3b8ccaf980246e425b/trmnl-x-fulfillment-update-jan-2026.jpg&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;h3&gt;February 2026&lt;/h3&gt;&lt;p&gt;From our warehouse to your desk, a &lt;a href=&quot;https://www.youtube.com/watch?v=hiUiWCy93kg&quot;&gt;video update&lt;/a&gt;.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY4MDMzNzA_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--552e5837128e6639a6a9fcb2642fef5ad103b626&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY4MDMzNzAsInB1ciI6ImJsb2JfaWQifX0=--8d3563708b4c2953b5f4e0585a21d05396a8fbe9/model-x-fulfillment-update-2.jpeg&quot; filename=&quot;model-x-fulfillment-update-2.jpeg&quot; filesize=&quot;227933&quot; width=&quot;1280&quot; height=&quot;720&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY4MDMzNzAsInB1ciI6ImJsb2JfaWQifX0=--8d3563708b4c2953b5f4e0585a21d05396a8fbe9/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMjU2MCwyNTYwXX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--83a50e5021e7f6e19e2ee2fa117bfcf2b44b7743/model-x-fulfillment-update-2.jpeg&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY4MDMzNzAsInB1ciI6ImJsb2JfaWQifX0=--8d3563708b4c2953b5f4e0585a21d05396a8fbe9/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/model-x-fulfillment-update-2.jpeg&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;h3&gt;March 2026&lt;/h3&gt;&lt;p&gt;From my desk to yours, a &lt;a href=&quot;https://www.youtube.com/watch?v=TVSFlB5-ldk&quot;&gt;video update&lt;/a&gt;.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY5MDQ5NjM_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--871782b71aa9639d525d2c027127dc00c01ca445&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY5MDQ5NjMsInB1ciI6ImJsb2JfaWQifX0=--e75e94298c78b2288a20d9f90d48226ddd589d1f/trmnl-x-now-shipping-video-update.jpg&quot; filename=&quot;trmnl-x-now-shipping-video-update.jpg&quot; filesize=&quot;184157&quot; width=&quot;1280&quot; height=&quot;720&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpg&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY5MDQ5NjMsInB1ciI6ImJsb2JfaWQifX0=--e75e94298c78b2288a20d9f90d48226ddd589d1f/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--dca01e04df3bbc72f37a667e31be1efca2488daa/trmnl-x-now-shipping-video-update.jpg&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTY5MDQ5NjMsInB1ciI6ImJsb2JfaWQifX0=--e75e94298c78b2288a20d9f90d48226ddd589d1f/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--d5e667c0137ab726f37f5f3b8ccaf980246e425b/trmnl-x-now-shipping-video-update.jpg&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;If you prefer not to watch the video, in summary we&#39;re shipping single-battery devices only from our USA warehouse because our magnet supplier ripped us off and sent thousands of weak magnets, following multiple sample shipments with the correct (strong) magnets.&lt;/p&gt;&lt;p&gt;As of Wednesday, March 18:&lt;/p&gt;&lt;ul&gt;&lt;li value=&quot;1&quot;&gt;Berlin warehouse has all 3 types of PCBs&lt;/li&gt;&lt;li value=&quot;2&quot;&gt;Berlin warehouse should receive device enclosures in 1-2 weeks&lt;/li&gt;&lt;li value=&quot;3&quot;&gt;USA warehouse has everything and has begun assembly + fulfillment&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;To check your place in the queue go here:&lt;br&gt;&lt;a href=&quot;https://trmnl.com/order-tracker&quot;&gt;https://trmnl.com/order-tracker&lt;/a&gt;&lt;/p&gt;&lt;p&gt;If you already have a TRMNL, install the Order Tracker plugin to stay up to date:&lt;br&gt;&lt;a href=&quot;https://trmnl.com/recipes/260817&quot;&gt;https://trmnl.com/recipes/260817&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;How can I estimate the time it will take to receive mine?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Devices will be shipped in the order they were purchased and we intend to scale to 100s of fulfillments per day, as we have done for past releases and back-in-stock periods.&lt;/p&gt;&lt;p&gt;Our 2x warehouses have trained 15+ individuals to flash, assemble, and ship devices. We do not outsource to 3rd party logistics companies. You can learn more about our end to end philosophy and technology &lt;a href=&quot;https://trmnl.com/blog/in-house-fulfillment&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;https://trmnl.com/blog/logistics-tech&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;April 2026&lt;/h3&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTcwMzQ3NzA_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--67bc3d1334c8268ecdb70e1f782f074bf1d264b6&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTcwMzQ3NzAsInB1ciI6ImJsb2JfaWQifX0=--4cfe457627cf9aeecbf3fd623d1ecbe4ccb149ab/trmnl-x-magnet-performance.jpeg&quot; filename=&quot;trmnl-x-magnet-performance.jpeg&quot; filesize=&quot;122001&quot; width=&quot;1280&quot; height=&quot;720&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTcwMzQ3NzAsInB1ciI6ImJsb2JfaWQifX0=--4cfe457627cf9aeecbf3fd623d1ecbe4ccb149ab/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMjU2MCwyNTYwXX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--83a50e5021e7f6e19e2ee2fa117bfcf2b44b7743/trmnl-x-magnet-performance.jpeg&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTcwMzQ3NzAsInB1ciI6ImJsb2JfaWQifX0=--4cfe457627cf9aeecbf3fd623d1ecbe4ccb149ab/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/trmnl-x-magnet-performance.jpeg&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;See a live demonstration of strong, N52 grade magnets on various refrigerator surfaces in &lt;a href=&quot;https://youtu.be/_0_XQ63_Hf0&quot;&gt;this video update&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;On April 26, &lt;a href=&quot;https://www.reddit.com/r/trmnl/s/niT6hBdSUT&quot;&gt;N52 magnets arrived&lt;/a&gt; at our USA warehouse and assembly/fulfillment pace will increase dramatically beginning Monday, April 27.&lt;/p&gt;&lt;p&gt;On April 27, white + gray cases arrived at our Berlin warehouse and they are building half-assemblies (docks, kickstands) as they await N52 magnets.&lt;/p&gt;&lt;h3&gt;May 2026&lt;/h3&gt;&lt;p&gt;Between May 2-6th the USA warehouse was out of stock of charging docks for several colors due to a supplier mistake. To mitigate we assembled devices of all colors, but only fulfilled in-stock (charging dock) orders, some of which may sequentially be &lt;a href=&quot;https://trmnl.com/order-tracker&quot;&gt;behind yours&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;May 7 - black and sage charging docks arrived, allowing us to mostly ship in sequential order. This ensures the highest throughput overall, as punishing later orders with in-stock colors does not increase the speed of out-of-stock colors arriving&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;May 19 - USA warehouse is still awaiting white + gray docks and cannot ship those colors, despite having the other parts. They were lost in transit and a new batch is on the way.&lt;/p&gt;&lt;p&gt;May 21 - Berlin, Germany warehouse received a batch of N52 magnets. They are now shipping black, sage, clear.&lt;/p&gt;&lt;p&gt;May 27 - Berlin, Germany warehouse received white u-mounts and is now able to ship white devices.&lt;/p&gt;&lt;p&gt;May 29 - USA warehouse received missing white charging docks and is finally shipping white devices.&lt;/p&gt;&lt;p&gt;May 31 - USA warehouse ran out of Clear enclosures and sage wall mounts. Black running very low. New shipment (full refresh) expected within a week.&lt;/p&gt;&lt;h3&gt;June 2026&lt;/h3&gt;&lt;p&gt;June 1 - USA warehouse received missing gray charging docks (sent/lost by UPS on April 7).&lt;/p&gt;&lt;p&gt;June 4 - Berlin, Germany warehouse received gray enclosures.&lt;/p&gt;&lt;p&gt;June 5 - Berlin, Germany warehouse received wood enclosures. Berlin is now able to ship all colors.&lt;/p&gt;&lt;p&gt;June 9 - USA warehouse only has inventory to ship white and gray X devices. More of every color arrive Thursday, June 11.&lt;/p&gt;&lt;p&gt;June 11 - USA warehouse received more inventory of every color and is fully in stock, shipping all X combinations.&lt;/p&gt;&lt;p&gt;June 21 - USA warehouse ran out of clear enclosures; affected customers have been emailed the option to change colors and not experience further delays.&lt;/p&gt;&lt;p&gt;June 24 - USA ran out of sage docks + kickstands, as FedEx lost this package (1 of 42 in our latest freight shipment) in May and is still looking for it. An extra set of components has been ordered (via air express) from our injection mold supplier.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc1NjY2NzI_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--0cf21c00b65aeebe45b9082885da76fe1e8276f3&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc1NjY2NzIsInB1ciI6ImJsb2JfaWQifX0=--99cfb40ae2d8684b799a4f3885d58d7a6499983c/trmnl-sage-freight-missing.png&quot; filename=&quot;trmnl-sage-freight-missing.png&quot; filesize=&quot;65979&quot; width=&quot;965&quot; height=&quot;665&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Sage components lost by FedEx&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTc1NjY2NzIsInB1ciI6ImJsb2JfaWQifX0=--99cfb40ae2d8684b799a4f3885d58d7a6499983c/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/trmnl-sage-freight-missing.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTc1NjY2NzIsInB1ciI6ImJsb2JfaWQifX0=--99cfb40ae2d8684b799a4f3885d58d7a6499983c/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-sage-freight-missing.png&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Sage components lost by FedEx
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;June 29 - Berlin, Germany warehouse ran out of branded packaging. A rush order is en route. The team is still assembling devices to minimize delays.&lt;/p&gt;&lt;h3&gt;July 2026&lt;/h3&gt;&lt;p&gt;July 3 - USA warehouse received missing Sage docks + kickstands, along with Clear cases. Clear kickstands + docks are still en rout, but the remaining 300+ on-hold Sage orders will be shipped by end of Monday, July 6.&lt;/p&gt;&lt;p&gt;July 7 - Berlin, Germany warehouse received X packaging. Foam should arrive within 24 hours and then shipping will resume.&lt;/p&gt;&lt;p&gt;July 13 - Berlin, Germany warehouse continues experiencing delays in receiving X packaging foam. As of today, 3 of 5 pallets have arrived at BER airport and are still processing through Customs. They have been stuck elsewhere in Europe for 7 days.&lt;/p&gt;&lt;p&gt;July 15 - Berlin, Germany warehouse finally received packaging foam and is resuming shipments of assembled devices.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc3OTQ5Nzk_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--c4138da8ab20618bcb007314237c1f5cbaad6acf&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3OTQ5NzksInB1ciI6ImJsb2JfaWQifX0=--871c7a31096c3960ab3564ae7ccce941766e5f90/TRMNL-berlin-packing-foam-arrival-july-2026.jpeg&quot; filename=&quot;TRMNL-berlin-packing-foam-arrival-july-2026.jpeg&quot; filesize=&quot;98753&quot; width=&quot;640&quot; height=&quot;625&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Die-cut packing foam&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTc3OTQ5NzksInB1ciI6ImJsb2JfaWQifX0=--871c7a31096c3960ab3564ae7ccce941766e5f90/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMjU2MCwyNTYwXX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--83a50e5021e7f6e19e2ee2fa117bfcf2b44b7743/TRMNL-berlin-packing-foam-arrival-july-2026.jpeg&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTc3OTQ5NzksInB1ciI6ImJsb2JfaWQifX0=--871c7a31096c3960ab3564ae7ccce941766e5f90/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/TRMNL-berlin-packing-foam-arrival-july-2026.jpeg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Die-cut packing foam
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;July 23 - Berlin, Germany is down to their last ~150 devices and awaiting a new shipment of PCBs, ordered on May 6 but with long lead times. USA warehouse is expecting missing Clear kickstands / docks / u-mounts next Monday, then its queue will be zero&#39;d out.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTgwNzE3MDA_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--78ae814f91e21aeabbabe4a8192081aef07ddd87&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTgwNzE3MDAsInB1ciI6ImJsb2JfaWQifX0=--405e415d7e8367f5a2206e96f788c6fdec4b866a/TRMNL-Berlin-X-packaging-v2-arrival.jpeg&quot; filename=&quot;TRMNL-Berlin-X-packaging-v2-arrival.jpeg&quot; filesize=&quot;322704&quot; width=&quot;1280&quot; height=&quot;762&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTgwNzE3MDAsInB1ciI6ImJsb2JfaWQifX0=--405e415d7e8367f5a2206e96f788c6fdec4b866a/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMjU2MCwyNTYwXX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--83a50e5021e7f6e19e2ee2fa117bfcf2b44b7743/TRMNL-Berlin-X-packaging-v2-arrival.jpeg&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTgwNzE3MDAsInB1ciI6ImJsb2JfaWQifX0=--405e415d7e8367f5a2206e96f788c6fdec4b866a/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/TRMNL-Berlin-X-packaging-v2-arrival.jpeg&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;July 27 - Berlin, Germany received new packaging and is expecting more PCBs tomorrow.&lt;/p&gt;&lt;p&gt;July 30 - Berlin, Germany PCBA are stuck in-country but stuck at Customs. A new batch of PCBA were shipped to USA warehouse and should arrive on August 5th.&lt;/p&gt;&lt;h3&gt;August 2026&lt;/h3&gt;&lt;p&gt;August 3 - Berlin, Germany received a new batch of PCBA following a week of being stuck in Customs. Shipping resumed today. Incoming USA batch of PCBA cleared Customs last night and arrive on Wednesday.&lt;/p&gt;&lt;p&gt;August 12 - USA warehouse PCBA have cleared Customs, then put on hold, back and forth a few times. We got in touch with courier (DHL) and they don&#39;t have more information. As of this morning the freight has again &quot;cleared&quot; Customs.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTgzOTU1ODQ_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--84615f38db5fe17922ef3f6edab4e5e0c28091a8&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTgzOTU1ODQsInB1ciI6ImJsb2JfaWQifX0=--ce71038797465459c480006263c20937cd69f10c/TRMNL-X-PCBA-clearance-august-2026.png&quot; filename=&quot;TRMNL-X-PCBA-clearance-august-2026.png&quot; filesize=&quot;14660&quot; width=&quot;374&quot; height=&quot;185&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTgzOTU1ODQsInB1ciI6ImJsb2JfaWQifX0=--ce71038797465459c480006263c20937cd69f10c/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/TRMNL-X-PCBA-clearance-august-2026.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTgzOTU1ODQsInB1ciI6ImJsb2JfaWQifX0=--ce71038797465459c480006263c20937cd69f10c/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/TRMNL-X-PCBA-clearance-august-2026.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;August 18 - I (Ryan) visited the ATL airport cargo facilities to check on our PCBA freight, which continues to post &quot;Clearance&quot; events, followed by &quot;On Hold&quot; notifications, multiple times per day since early August.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTg2MTc5NjI_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--b69631d2968b3ab060a2bf500283d5fed88a58d6&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTg2MTc5NjIsInB1ciI6ImJsb2JfaWQifX0=--559eb331e3fafefaf006f271588211c4a39c601c/ATL-DHL-visit-August-18-2026.jpeg&quot; filename=&quot;ATL-DHL-visit-August-18-2026.jpeg&quot; filesize=&quot;191352&quot; width=&quot;1280&quot; height=&quot;666&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Visiting DHL &lt;&gt; Customs&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTg2MTc5NjIsInB1ciI6ImJsb2JfaWQifX0=--559eb331e3fafefaf006f271588211c4a39c601c/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMjU2MCwyNTYwXX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--83a50e5021e7f6e19e2ee2fa117bfcf2b44b7743/ATL-DHL-visit-August-18-2026.jpeg&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTg2MTc5NjIsInB1ciI6ImJsb2JfaWQifX0=--559eb331e3fafefaf006f271588211c4a39c601c/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/ATL-DHL-visit-August-18-2026.jpeg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Visiting DHL &amp;lt;&amp;gt; Customs
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;Unfortunately the assigned CBP agent was not in office, so we left our information with a request to expedite clearance. The DHL team claims we will receive a phone call update within 24 hours.&lt;/p&gt;&lt;p&gt;August 24 - The USA warehouse received a response to our support ticket with DHL / Customs. At this point, our next shipment of PCBA may arrive sooner than the batch that has been in the States since July.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTg3NTg2NTc_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--799f07f3209a80c3dd9c944cdc2110f4213d594b&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTg3NTg2NTcsInB1ciI6ImJsb2JfaWQifX0=--cc09fa3b04f31274d01a7c173e81756163e92623/TRMNL-X-PCBA-DHL-delay.png&quot; filename=&quot;TRMNL-X-PCBA-DHL-delay.png&quot; filesize=&quot;121774&quot; width=&quot;1468&quot; height=&quot;672&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img data-image-lightbox-src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTg3NTg2NTcsInB1ciI6ImJsb2JfaWQifX0=--cc09fa3b04f31274d01a7c173e81756163e92623/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsyNTYwLDI1NjBdfSwicHVyIjoidmFyaWF0aW9uIn19--916f83e17a3f8c707d48735747fadce268546db3/TRMNL-X-PCBA-DHL-delay.png&quot; src=&quot;/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTg3NTg2NTcsInB1ciI6ImJsb2JfaWQifX0=--cc09fa3b04f31274d01a7c173e81756163e92623/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/TRMNL-X-PCBA-DHL-delay.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;h3&gt;September 2026&lt;/h3&gt;&lt;p&gt;September 2 - The USA warehouse still has no update from DHL or the Customs agent assigned to our case (inbound PCBA). Once this shipment arrives, we need just 4-5 days to clear our entire queue and resume same-day X shipping.&lt;/p&gt;&lt;p&gt;September 9 - The USA warehouse received an update from DHL&#39;s customer service team, alleging customs will be completed within 3 days.&lt;/p&gt;&lt;p&gt;September 17 - The USA warehouse received a small batch of X PCBA -- our main batch is still stuck in DHL / Customs at the Atlanta airport, this is a followup rush order. X shipping resumed temporarily but we are now awaiting new magnets, set to arrive by sea tomorrow (September 18) and then put on a truck.&lt;/p&gt;&lt;p&gt;September 18 - Berlin, Germany ran out of X screens, but a new shipment is departing our supplier&#39;s warehouse (via air express freight) on Monday, September 21.&lt;/p&gt;&lt;p&gt;September 27 - Magnets (USA) and screens (Berlin, Germany) are still en route. Magnets arrived at a port, but no truck tracking is available. For screens we used our fastest boutique broker (not a major courier) who also do not provide last mile tracking.&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/model-x-progress</id>
    <link href="https://trmnl.com/blog/model-x-progress"/>
    <published>2026-08-12T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Model X Progress Report</title>
    <updated>2026-08-12T00:00:00+00:00</updated>
    <dc:date>2026-08-12T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Mario Lurig</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;blockquote&gt;This post is part of a series, featuring the incredible work of plugin authors who grow the TRMNL plugin ecosystem with every contribution. The TRMNL team has individually selected these plugins and authors to be featured.&lt;/blockquote&gt;&lt;h2&gt;&lt;a href=&quot;https://trmnl.com/recipes/336671&quot;&gt;Jenkins CI/CD&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Community member Stephen Yeargin (Discord: &lt;code&gt;stephenyeargin&lt;/code&gt;) created the &lt;a href=&quot;https://trmnl.com/recipes/336671&quot;&gt;Jenkins CI/CD&lt;/a&gt; plugin; here are their words on how it was created.&lt;/p&gt;&lt;h3&gt;Why did you want this plugin to exist?&lt;/h3&gt;&lt;p&gt;I&#39;ve used Jenkins at various jobs for a rather long time, and decided a few years ago to start using it to orchestrate personal projects. I had a scheduled build fail and didn&#39;t get the notification, so I thought it would be nice to keep up with it on the TRMNL near my desk.&lt;/p&gt;&lt;h3&gt;Were you inspired by any other recipes or plugin creators?&lt;/h3&gt;&lt;p&gt;There are a handful of great plugins that monitor GitHub Actions workflows. I looked through those to understand the different ways to present the data.&lt;/p&gt;&lt;h3&gt;How did you balance look vs functionality?&lt;/h3&gt;&lt;p&gt;I lean into the Framework components to make most of the harder UI decisions for me so that I can focus more on making sure the data is timely and accurate. I tend to lean into function first, and improve the design through iteration.&lt;/p&gt;&lt;h3&gt;What was your process for creating the plugin?&lt;/h3&gt;&lt;p&gt;I have a GitHub &lt;a href=&quot;https://github.com/stephenyeargin/template-trmnl-plugin/&quot;&gt;repository template&lt;/a&gt; that I used as the base of it. From there, I read through the REST documentation for Jenkins and tested a few of the calls with Postman. I stuck to the general Job list in Jenkins to decide what was important. The &lt;a href=&quot;https://github.com/usetrmnl/trmnlp&quot;&gt;TRMNLP&lt;/a&gt; application is indispensable for developing plugins.&lt;/p&gt;&lt;h3&gt;What, if any, challenges did you face while creating it?&lt;/h3&gt;&lt;p&gt;Jenkins uses weather icons to quickly identify the health of your builds. I needed to find SVG icons for each, and to make sure the logic picked the right one. From there, the next challenge was getting the JSON payload under the limit with the sandbox runtime. I also knew I wanted to let the user see either all jobs, or builds from a specific job, so I needed to work out the logic for that.&lt;/p&gt;&lt;h3&gt;Did you learn anything that you want to apply to future or past recipes?&lt;/h3&gt;&lt;p&gt;Using conditionals and assignments in the &lt;code&gt;polling_url&lt;/code&gt; setting. It makes managing the data flow a bit easier and prevents unnecessary requests.&lt;/p&gt;&lt;pre data-language=&quot;plain&quot;&gt;polling_url: |&lt;br&gt;  {%- if my_setting_value -%}&lt;br&gt;  https://example.org/api/endpoint_1?q={ my_setting_value }&lt;br&gt;  {%- else %}&lt;br&gt;  https://example.org/api/endpoint_2&lt;br&gt;  {%- endif %}&lt;/pre&gt;&lt;h3&gt;Is there a tip you would give to a new plugin developer?&lt;/h3&gt;&lt;p&gt;Follow the blog for new features and join the Discord server. Also, &lt;code&gt;shared.liquid&lt;/code&gt; is your friend for not repeating a ton of markup for all four views.&lt;/p&gt;&lt;h3&gt;What part of the TRMNL Framework, Liquid filters, or other documentation was most helpful?&lt;/h3&gt;&lt;p&gt;Table Overflow is really useful to ensure the data fills the screen, but doesn&#39;t break the layout.&lt;/p&gt;&lt;h3&gt;What is your favorite plugin that someone else created and why?&lt;/h3&gt;&lt;p&gt;&lt;a href=&quot;https://trmnl.com/recipes/152705&quot;&gt;Paperboy&lt;/a&gt; is solid. It immediately reminded me of Freedom Forum&#39;s &quot;&lt;a href=&quot;https://frontpages.freedomforum.org/gallery&quot;&gt;Today&#39;s Front Pages&lt;/a&gt;&quot; site, which I had bookmarked from when I worked for a newspaper.&lt;/p&gt;&lt;h3&gt;What might you improve about the plugin in the future?&lt;/h3&gt;&lt;p&gt;Not everyone has a dozen Jenkins Jobs, so I probably would come up with another view that showed them as cards in a grid.&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/featured-plugin-jenkins-ci-cd</id>
    <link href="https://trmnl.com/blog/featured-plugin-jenkins-ci-cd"/>
    <published>2026-08-11T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Featured Community Plugin - Jenkins CI/CD</title>
    <updated>2026-08-11T00:00:00+00:00</updated>
    <dc:date>2026-08-11T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Ryan Kulp</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;p&gt;for more context see the &lt;a href=&quot;https://trmnl.com/blog/creator-fund&quot;&gt;Creator Fund announcement&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;our 10th payout recognizes community contributions between July 6, 2026 and August 6, 2026.&lt;/p&gt;&lt;h2&gt;source of funds&lt;/h2&gt;&lt;p&gt;each payout period, a portion of developer-specific revenue goes directly to creators.&lt;/p&gt;&lt;figure class=&quot;lexxy-content__table-wrapper&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;source&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;/th&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;revenue&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;/th&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;share&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;/th&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;amount&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;Stripe&lt;/p&gt;&lt;p&gt;Developer Edition&lt;br&gt;BYOD&lt;br&gt;TRMNL+&lt;/p&gt;&lt;p&gt;Shopify&lt;/p&gt;&lt;p&gt;Developer Edition&lt;br&gt;Clarity Kit (X)&lt;br&gt;Clarity Kit (OG)&lt;br&gt;BYOD&lt;/p&gt;&lt;/th&gt;&lt;td&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;$4,660&lt;br&gt;$2,900&lt;br&gt;$535&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;$398.73&lt;br&gt;$12,664.41&lt;br&gt;$16,977.77&lt;br&gt;$8,818.39&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;15%&lt;br&gt;15%&lt;br&gt;80%&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;15%&lt;br&gt;10%&lt;br&gt;10%&lt;br&gt;15%&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;$699&lt;br&gt;$435&lt;br&gt;$428&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;$59.81&lt;br&gt;$1,266.44&lt;br&gt;$1,697.78&lt;br&gt;$1,322.76&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/th&gt;&lt;td&gt;&lt;p&gt;$46,954.30&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;mark style=&quot;background-color:var(--highlight-bg-7);&quot;&gt;$5,908.79&lt;/mark&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;&lt;h2&gt;by the numbers&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;total payout: $5,908.79&lt;/li&gt;&lt;li&gt;plugin author share: $4,136.15 (70% of base total)&lt;/li&gt;&lt;li&gt;strategic contributors share: $1,772.64 (30% of base total)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;plugin author&lt;/strong&gt;&lt;/b&gt;&amp;nbsp;earnouts are calculated automatically by a collection of factors including a plugin&#39;s age (on live playlists), presence (by % dominance on playlists), and impressions (times displayed on device), relative to all other community plugins. there is a minimum threshold of 50 total connections (installs + forks) to qualify for monthly payouts.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;strategic contributors&lt;/strong&gt;&lt;/b&gt;&amp;nbsp;are those who contribute to&amp;nbsp;&lt;a href=&quot;https://github.com/usetrmnl&quot;&gt;TRMNL open source projects&lt;/a&gt;. these earnouts are calculated with a mix of automation + human touch. relative to the funding available, below are allocations by category:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Firmware, 25%&lt;/li&gt;&lt;li&gt;3D Models, 0%&lt;/li&gt;&lt;li&gt;BYOS, 66%&lt;/li&gt;&lt;li&gt;Localizations, 2%&lt;/li&gt;&lt;li&gt;BYOD, 5%&lt;/li&gt;&lt;li&gt;Documentation/Resources, 0%&lt;/li&gt;&lt;li&gt;Tooling, 2%&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;note: these allocations change monthly based on contributions by category.&lt;/p&gt;&lt;h2&gt;algorithm?&lt;/h2&gt;&lt;p&gt;see the algorithm in action &lt;a href=&quot;https://www.youtube.com/watch?v=FJA_tOYcMbI&quot;&gt;here&lt;/a&gt;. over time the above weights, revenue share percentages, and minimum thresholds may change.&lt;/p&gt;&lt;p&gt;candid feedback is welcome, email&amp;nbsp;&lt;a href=&quot;mailto:team@trmnl.com&quot;&gt;team@trmnl.com&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/creator-fund-07-2026</id>
    <link href="https://trmnl.com/blog/creator-fund-07-2026"/>
    <published>2026-08-07T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Creator Fund - July 2026</title>
    <updated>2026-08-07T00:00:00+00:00</updated>
    <dc:date>2026-08-07T00:00:00+00:00</dc:date>
  </entry>
  <dc:date>2026-09-22T00:00:00+00:00</dc:date>
</feed>