{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Words, colors, and shapes",
  "description": "Home of Denis Moulin",
  "home_page_url": "https://denismoulin.com",
  "feed_url": "https://denismoulin.com/feeds/all.json",
  "language": "en",
  "items": [
    {
      "id": "https://denismoulin.com/posts/cactus-time-limits",
      "url": "https://denismoulin.com/posts/cactus-time-limits",
      "title": "Time limits, baking",
      "content_html": "<p>I&#39;m working on a fourth kind of rule: <strong>time limits</strong>. You give an app thirty minutes a day, and when they&#39;re spent, the shield comes down until midnight. It&#39;s only on my phone for now. Counting minutes reliably on iOS is trickier than I expected, and I&#39;d rather let it bake.</p>\n",
      "date_published": "2026-08-13T00:00:00.000Z",
      "summary": "A fourth kind of rule is in the oven: block an app after N minutes of use.",
      "tags": [
        "cactus"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/mhm-minute",
      "url": "https://denismoulin.com/posts/mhm-minute",
      "title": "A minute to speak",
      "content_html": "<p>Thirty seconds turned out to be shorter than people&#39;s thoughts. Clips can now run a full minute, and rooms keep thirty of them instead of ten.</p>\n<p>While the mic is open, the room number steps aside for a countdown, 00:44 in red, the same red as the button under your finger. When it hits zero, the clip sends instead of vanishing.</p>\n",
      "date_published": "2026-08-13T00:00:00.000Z",
      "summary": "Clips in mhm can now run a full minute, and the room counts it down for you.",
      "tags": [
        "mhm"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/mhm-emoji",
      "url": "https://denismoulin.com/posts/mhm-emoji",
      "title": "Every emoji",
      "content_html": "<p>In mhm your emoji is your name, and I gave you forty to choose from. The picker now has all 1,953 of them, with a search field on top. Type &quot;pizza&quot; and the one you meant is the only thing left.</p>\n",
      "date_published": "2026-08-07T00:00:00.000Z",
      "summary": "In mhm your emoji is your name, so forty options was never going to be enough.",
      "tags": [
        "mhm"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/mhm-sounds",
      "url": "https://denismoulin.com/posts/mhm-sounds",
      "title": "A sound for every moment",
      "content_html": "<p>mhm makes sounds now, which felt overdue for an app made with as little text as possible.</p>\n<p>The mic clicks in and out around a clip. Arriving in a room plays a small chord. Clips that aren&#39;t yours get their own note, and the three ways things can fail all share one falling tone.</p>\n",
      "date_published": "2026-08-07T00:00:00.000Z",
      "summary": "mhm has a voice of its own now.",
      "tags": [
        "mhm"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/mhm-wave",
      "url": "https://denismoulin.com/posts/mhm-wave",
      "title": "Opening with a wave",
      "content_html": "<p>New rooms don&#39;t start empty anymore. There&#39;s a clip already waiting, a short 👋 from me explaining the basics.</p>\n<p>It behaves like any other clip. People talk over it, it sinks, and eventually it gets pruned with everything else.</p>\n",
      "date_published": "2026-08-07T00:00:00.000Z",
      "summary": "Every new mhm room now opens with one clip already in it.",
      "tags": [
        "mhm"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/cactus-quotes",
      "url": "https://denismoulin.com/posts/cactus-quotes",
      "title": "Borrowed quotes",
      "content_html": "<p>When Cactus asks you to type a quote to unlock a rule, the words used to be mine. They aren&#39;t anymore.</p>\n<p>I swapped them for nine lines about attention, silence, and the present moment, from Woolf, Thoreau, Pascal, Weil, Marcus Aurelius, Dillard, and Rilke. Each one is credited under the line as you type.</p>\n",
      "date_published": "2026-08-05T00:00:00.000Z",
      "summary": "The quotes you type to unlock a rule are no longer mine.",
      "tags": [
        "cactus"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/mhm-hello",
      "url": "https://denismoulin.com/posts/mhm-hello",
      "title": "mhm",
      "content_html": "<p>I made another tiny thing. It&#39;s called <strong>mhm</strong>, and it&#39;s voice rooms for the people you actually talk to.</p>\n<p>I built it for my kids, who are under 7, as we&#39;re travelling separately. I wanted to experiment and see if they&#39;d like to talk to each other directly, and what they would say.</p>\n<p>A room is a three-digit code and a password. Inside, one big button: hold it, say your thing, let go. Your clip lands with your emoji next to it, the room keeps the last few, and everyone&#39;s phone gets a nudge when something new arrives.</p>\n",
      "date_published": "2026-08-05T00:00:00.000Z",
      "summary": "A new tiny thing: voice rooms for people you actually talk to.",
      "tags": [
        "mhm"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/cactus-set-in-stone",
      "url": "https://denismoulin.com/posts/cactus-set-in-stone",
      "title": "Set in stone",
      "content_html": "<p>I added a toggle called <strong>Set in stone</strong>, for the rules I know I&#39;ll try to talk my way out of.</p>\n<p>Flip it, save, and the rule is sealed until its end date. You can&#39;t edit it, can&#39;t delete it, can&#39;t remove apps from it. Adding more is the only change allowed. Breaks still work, because a rule with no way out isn&#39;t a rule, it&#39;s a trap.</p>\n",
      "date_published": "2026-08-04T00:00:00.000Z",
      "summary": "A new toggle for the rules you don't trust yourself with.",
      "tags": [
        "cactus"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/cactus-share-extension",
      "url": "https://denismoulin.com/posts/cactus-share-extension",
      "title": "Block a website from Safari",
      "content_html": "<p>Cactus can now block websites, straight from the page you&#39;re trying to escape.</p>\n<p>Share from Safari, tap Cactus, pick a rule, done. If the rule is running, the site is blocked before you can refresh it. Share it again to remove it, unless the rule is active, in which case no. That&#39;s the point.</p>\n<p>If you&#39;d rather type, the rule form takes websites directly, with a folded-away list of the usual suspects.</p>\n",
      "date_published": "2026-08-01T00:00:00.000Z",
      "summary": "Cactus can now block websites, straight from the page you're trying to escape.",
      "tags": [
        "cactus"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/cactus-take-a-moment",
      "url": "https://denismoulin.com/posts/cactus-take-a-moment",
      "title": "Take a moment",
      "content_html": "<p>I renamed emergency mode to <strong>Take a moment</strong>, which is closer to what it actually is.</p>\n<p>While one runs, your home screen turns into a slow dawn sky. Clouds drift across, and the only thing left to press is a little &quot;Come back&quot; pill. If you use Reduce Motion, it all settles into a quiet cross-fade instead.</p>\n",
      "date_published": "2026-08-01T00:00:00.000Z",
      "summary": "Emergency mode got a new name, and a sky.",
      "tags": [
        "cactus"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/cactus-emergency",
      "url": "https://denismoulin.com/posts/cactus-emergency",
      "title": "Emergency mode",
      "content_html": "<p>I&#39;ve built a new mode. I call it emergency mode for now. I thought it&#39;d be cool to stop the phone altogether.</p>\n<p>Emergency mode locks everything except a few apps you choose ahead of time: Messages, Maps, whatever you actually need. One tap in.</p>\n<p>I originally built it to only block what your rules already covered, and when I tried it on my own phone it felt broken. Everything else was still right there. So I flipped it: block it all, let a few things through.</p>\n",
      "date_published": "2026-07-26T00:00:00.000Z",
      "summary": "Some days call for more than rules. Emergency mode locks the whole phone.",
      "tags": [
        "cactus"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/cactus-friction",
      "url": "https://denismoulin.com/posts/cactus-friction",
      "title": "Graduated friction",
      "content_html": "<p>I noticed I was taking breaks a little too easily, so I made them cost something.</p>\n<p>The first break of the day is a tap. The second asks you to type part of a quote. From the third on, the whole thing. Each rule counts its own breaks, and everything resets at midnight.</p>\n",
      "date_published": "2026-07-19T00:00:00.000Z",
      "summary": "Breaks in Cactus now get a little harder each time you take one.",
      "tags": [
        "cactus"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/cactus-vacation",
      "url": "https://denismoulin.com/posts/cactus-vacation",
      "title": "Vacation mode",
      "content_html": "<p>Sometimes you don&#39;t want a rule forever, just until the end of the trip.</p>\n<p>So rules can now carry an end date. Set it before you leave, pick the day you&#39;re back, and the rule retires itself when the trip is over. It wears a little rainbow glow while it runs, and the blocking screen tells you when it ends.</p>\n",
      "date_published": "2026-06-26T00:00:00.000Z",
      "summary": "Sometimes you don't want a rule forever, just until the end of the trip.",
      "tags": [
        "cactus"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/cactus-always-on",
      "url": "https://denismoulin.com/posts/cactus-always-on",
      "title": "Always on",
      "content_html": "<p>Cactus rules used to live on a schedule: these apps, these hours. Now a rule can simply be <strong>always on</strong>, blocked all the time until you take a break or delete the rule.</p>\n<p>It&#39;s the mode I use for the apps I don&#39;t want a schedule for. I just don&#39;t want them.</p>\n",
      "date_published": "2026-05-17T00:00:00.000Z",
      "summary": "Cactus rules used to live on a schedule. Now a rule can simply be always on.",
      "tags": [
        "cactus"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/zooom-ios26",
      "url": "https://denismoulin.com/posts/zooom-ios26",
      "title": "Zooom, refreshed for iOS 26",
      "content_html": "<p>Zooom got its spring cleaning: a new icon, simpler screens, and a proper pass for iOS 26.</p>\n<p>I redesigned the library sheet, cut down the buttons, and made recording glow around the edges of the screen so you always know when it&#39;s on.</p>\n<p>If you&#39;re new, there&#39;s a welcome screen now, and the app asks for permissions properly instead of assuming you&#39;ll figure it out.</p>\n",
      "date_published": "2026-03-30T00:00:00.000Z",
      "summary": "Zooom got a spring cleaning: a new icon, a simpler interface, and a proper update for iOS 26.",
      "tags": [
        "zooom"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/cactus-hello",
      "url": "https://denismoulin.com/posts/cactus-hello",
      "title": "Meet Cactus",
      "content_html": "<p>The screen time app I&#39;ve been prototyping has a name now: <strong>Cactus</strong>.</p>\n<p>I built it because I didn&#39;t want streaks or guilt or another subscription. Just something small and prickly between me and the apps I asked it to guard.</p>\n",
      "date_published": "2026-03-09T00:00:00.000Z",
      "summary": "The screen time app I've been prototyping has a name now: Cactus.",
      "tags": [
        "cactus"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/fungi",
      "url": "https://denismoulin.com/posts/fungi",
      "title": "Fungi",
      "content_html": "<p><img src=\"https://denismoulin.com/images/1.jpeg\" alt=\"alt text\"></p>\n",
      "date_published": "2025-09-20T00:00:00.000Z",
      "summary": "Fungi",
      "tags": [
        "journal"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/bike",
      "url": "https://denismoulin.com/posts/bike",
      "title": "Bike",
      "content_html": "<p><img src=\"https://denismoulin.com/images/2.jpeg\" alt=\"alt text\"></p>\n",
      "date_published": "2025-09-01T00:00:00.000Z",
      "summary": "Bike",
      "tags": [
        "journal"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/zooom-library",
      "url": "https://denismoulin.com/posts/zooom-library",
      "title": "The library",
      "content_html": "<p>Everything you record with Zooom lands in its own album, and now you can browse it without leaving the app.</p>\n<p>The library button wears the thumbnail of your latest video. Tap it and you get the grid: everything you&#39;ve made, with durations, a share sheet, and a little haptic tick on every touch.</p>\n",
      "date_published": "2025-08-02T00:00:00.000Z",
      "summary": "Zooom keeps everything you record in its own album, and now there's a place to browse it.",
      "tags": [
        "zooom"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/zooom-photo-mode",
      "url": "https://denismoulin.com/posts/zooom-photo-mode",
      "title": "Photo mode",
      "content_html": "<p>Zooom now takes photos. Sort of.</p>\n<p>Tap instead of drag, and the app captures a single photo, then turns it into a 15-second video with your selected loop playing over it. A still image with a soundtrack, ready to share anywhere.</p>\n<p>Getting there was a battle: upside-down photos, mirrored videos, audio that stopped halfway. A full day of fixes for a feature that looks like nothing. That&#39;s usually a good sign.</p>\n<!-- alt\n\nZooom takes photos now. Sort of.\n\nGetting there took a whole day of upside-down photos, mirrored videos, and audio dying halfway through.\n\nTap instead of drag and it captures a single shot, then turns it into a 15-second video with your loop playing over it. A still image with a soundtrack, ready to share anywhere.\n-->",
      "date_published": "2025-08-01T00:00:00.000Z",
      "summary": "Zooom now takes photos. Sort of.",
      "tags": [
        "zooom"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/dotcom",
      "url": "https://denismoulin.com/posts/dotcom",
      "title": "zooooooom.com",
      "content_html": "<p>I&#39;ve published a tiny site presenting the Beta version <a href=\"https://zooooooom.com\">Zooom</a>. It&#39;s simple, but playfull, just like Zooom is so far.</p>\n<h2>Public Beta</h2>\n<p>The beta is now open to public, I got couple of strangers (who knows how they found the link) and friends/family members testing the app. <a href=\"https://testflight.apple.com/join/MD83ER1W\">Try it for yourself</a></p>\n<p>You can zoom in two directions, from both front and back cameras, with 4/5 loops. I&#39;m adding more loops and features slowly.</p>\n<h2>Backlog</h2>\n<p>This is my to-do list at the time of writing. I&#39;m struggling to add the halo showed on the video preview in the export (and ideally as an export option). The next most important item is the onboarding, I&#39;m not super excited to work on this, I don&#39;t know why but I have to do it sooner than later.</p>\n<img src=\"https://denismoulin.com/images/journal/zooom-todo.png\">",
      "date_published": "2025-07-20T00:00:00.000Z",
      "summary": "In 2017, the New York-based studio This Also released an iOS app called OOO.",
      "tags": [
        "journal"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/zooom-loops",
      "url": "https://denismoulin.com/posts/zooom-loops",
      "title": "Loops on request",
      "content_html": "<p>The best part of building an app for friends is the requests.</p>\n<p>Elisabeth asked for the Law &amp; Order sound. It&#39;s in. My French friends asked for a few loops of their own.</p>\n",
      "date_published": "2025-07-16T00:00:00.000Z",
      "summary": "The best part of building an app for friends is the requests.",
      "tags": [
        "zooom"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/zooom-selfie",
      "url": "https://denismoulin.com/posts/zooom-selfie",
      "title": "Selfie mode",
      "content_html": "<p>Zooom can flip to the front camera now.</p>\n<p>Filming yourself zooming in on your own face with a sad saxophone underneath is exactly as ridiculous as it sounds, and that&#39;s the whole point.</p>\n",
      "date_published": "2025-06-28T00:00:00.000Z",
      "summary": "Two weeks after the first prototype, Zooom can now flip to the front camera.",
      "tags": [
        "zooom"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/progress",
      "url": "https://denismoulin.com/posts/progress",
      "title": "Build (1)",
      "content_html": "<p>About a month ago, I set out to prototype <a href=\"https://denismoulin.com/posts/untitled\">the revival of an app</a> I loved—one that existed back in the day, back when Instagram had 8 photo filters and no reels.</p>\n<p>My main trade is software design, not engineering. I can hard-code HTML/CSS, I understand the basics of React but I know nothing, absolutely nothing about Swift.</p>\n<p>For this app, I wanted to build it on my own—for two simple reasons: the complexity of the App seemed relatively low, and I wanted to move quickly while I was still excited about it.</p>\n<p>I found in the past that, yes you can go further with the help of friends or others but the effort to coordinate and/or agree on the smallest details take the fun away from these type of side projects. </p>\n<p>For this one, fun is the main goal. So over the past few weeks, I’ve spent a couple of hours here and there, dabbling in what the used-to-be cool kids call <strong>vibe coding.</strong></p>\n<p>A couple of prompts to Cursor, and the app was running locally on my phone. I specifically skipped the <insert modern design tool> step—I&#39;ll focus on the UI later.</p>\n<p>For this V1, I just wanted the app to run. Run smoothly, so I could show it as quickly as possible. Right now users can pick between two audio loops and record a video from the back camera.</p>\n<p>The recorded video only includes the audio from the loop. If I remember correctly, that wasn’t possible with the original app, maybe due to some technical limitations.</p>\n<p>I showed and shared the prototype with a couple of friends—some familiar with the original, some not. So far, the feedback and process have been nothing but positive. We got some good laughs out of it.</p>\n",
      "date_published": "2025-06-20T00:00:00.000Z",
      "summary": "About a month ago, I set out to prototype the revival of an app I loved—one that existed back in the day, back when Instagram had 8 photo filters and no reels.",
      "tags": [
        "journal"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/untitled",
      "url": "https://denismoulin.com/posts/untitled",
      "title": "Reviving a loved App",
      "content_html": "<p>In 2017, the New York-based studio <a href=\"http://thisalso.com\">This Also</a> released an iOS app called <a href=\"https://www.producthunt.com/products/ooo\">OOO</a>.</p>\n<p><strong>OOO</strong> let you zoom or un-zoom while recording a video and overlay it with looped music. It had 5 to 6 different &quot;themes&quot; and was super simple to use. Press and move up or down on your screen to record and control the zoom; release to stop and save the video.</p>\n<p>Two examples — the sound is ON:</p>\n<p><video src=\"https://denismoulin.com/images/journal/ooo-1781406D-7ACA-4669-8453-D325789975B0.mov\" controls playsinline style=\"border-radius: var(--radius);\"></video></p>\n<p><video src=\"https://denismoulin.com/images/journal/ooo-BC2D38AC-7508-414E-BF74-215DE8E53662.mov\" controls playsinline style=\"border-radius: var(--radius);\"></video></p>\n<h2>Why revive it</h2>\n<p>The first and main reason is selfish: I want to use the app. I&#39;ve been wanting to use it periodically since it was taken off the App Store.</p>\n<p>Another reason is that music filters as good as Zooom&#39;s now exist solely on social media apps. Unless you&#39;re recording and publishing through those apps, you don&#39;t get the fun filter.</p>\n<h2>Minimal start</h2>\n<p>Start with one music track — likely the same &quot;Sad Saxo&quot; from the examples above — one zoom direction, all while recording a video.</p>\n<p>The video should be stored in the user&#39;s photo library, ideally under a separate folder. The interface can be minimal, but we&#39;d need permissions to record and save videos.</p>\n<h2>If you&#39;re interested...</h2>\n<p>I&#39;m going to start building the first version in the next few weeks. I&#39;m not even sure I&#39;ll end up publishing it, and if I do, it&#39;ll probably be free or cost less than $2.</p>\n",
      "date_published": "2025-06-01T00:00:00.000Z",
      "summary": "In 2017, the New York-based studio This Also released an iOS app called OOO.",
      "tags": [
        "journal"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/homescreen",
      "url": "https://denismoulin.com/posts/homescreen",
      "title": "A Minimal homescreen",
      "content_html": "<p>For the last few weeks, I&#39;ve been trying different apps that would turn my phone into something closer to the minimalist Light Phone.</p>\n<p>I tried a few: Blank, Dumb Phone, and Smile App Launcher—the latter being the one I stuck with the most. Yet, despite their best efforts, launching an app wasn&#39;t the smoothest experience.</p>\n<p>So I went back to a more integrated and simple solution using the Shortcuts app and custom icons.</p>\n<p><img src=\"https://denismoulin.com/images/journal/homescreen-25/homescreen-25.jpeg\" alt=\"alt text\"></p>\n<p>I only kept my most important apps: Camera, Homecam, Safari and Messages (Clockwise)</p>\n<p>I also kept the minimal and uniform initial design, but to differentiate each app, I chose shapes that I associate with each one.</p>\n<p>It&#39;s been a week since I made the change, and I&#39;m still happy with it. If you have any questions, feel free to reach out—I&#39;d be happy to help.</p>\n",
      "date_published": "2025-05-17T00:00:00.000Z",
      "summary": "For the last few weeks, I've been trying different apps that would turn my phone into something closer to the minimalist Light Phone.",
      "tags": [
        "journal"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/keyword",
      "url": "https://denismoulin.com/posts/keyword",
      "title": "Keyword blurring",
      "content_html": "<p><a href=\"https://manuelmoreale.com/topic-blockers\">Manuel Moreale</a> recently proposed the concept of hiding specific topics.</p>\n<p>A similar idea would let users define personal keywords to blur on the browser level. I would, totally randomly, choose to blur terms like <code>AI</code>, <code>Trump</code>, <code>Growth</code>, you get the idea.</p>\n<p><video src=\"https://denismoulin.com/images/journal/keyword/keyword-example.mp4\" loop playsinline autoplay nocontrols mute style=\"border-radius: var(--radius);\"></video></p>\n<p>Rather than completely removing content, the browser extension would apply a CSS blur filter to the parent block containing specified keywords, making them less visually intrusive.</p>\n",
      "date_published": "2024-12-15T00:00:00.000Z",
      "summary": "Manuel Moreale recently proposed the concept of hiding specific topics.",
      "tags": [
        "journal"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/cartoon",
      "url": "https://denismoulin.com/posts/cartoon",
      "title": "Cartoon",
      "content_html": "<p><img src=\"https://denismoulin.com/images/CB777D43-B334-405F-9FDC-66DC782A35A3_1_102_a.jpeg\" alt=\"alt text\"></p>\n",
      "date_published": "2024-10-06T00:00:00.000Z",
      "summary": "Cartoon",
      "tags": [
        "journal"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/type-menu",
      "url": "https://denismoulin.com/posts/type-menu",
      "title": "Type, More Menu(s)",
      "content_html": "<p>In what could only be described as a shameless love letter to Things&#39; iconic &quot;+ New List&quot; button (hey, if you&#39;re going to steal, steal from the best), we added two fresh menu items to Type.</p>\n<p><img src=\"https://denismoulin.com/images/journal/type-menu/cleanshot.jpeg\" alt=\"alt text\"></p>\n<p>One for importing notes from other apps – because apparently some people write outside of Type</p>\n<p><img src=\"https://denismoulin.com/images/journal/type-menu/type-menu-02.png\" alt=\"alt text\"></p>\n<p>With Type&#39;s limited screen real estate. So naturally, we added a contextual menu for managing notes, rather than cluttering each note item with options.</p>\n<p><img src=\"https://denismoulin.com/images/journal/type-menu/type-menu-01.png\" alt=\"alt text\"></p>\n<p>And yes, keyboard shortcuts included, because we&#39;re not monsters.</p>\n",
      "date_published": "2024-07-16T00:00:00.000Z",
      "summary": "In what could only be described as a shameless love letter to Things' iconic \"+ New List\" button (hey, if you're going to steal, steal from the best), we added two fresh menu items to Type.",
      "tags": [
        "journal"
      ]
    },
    {
      "id": "https://denismoulin.com/posts/type-trial",
      "url": "https://denismoulin.com/posts/type-trial",
      "title": "A Quick Paywall Redesign",
      "content_html": "<p>After experimenting with a pay-to-try model, Nicolas was exploring a new paywall design for Type. He had the essentials in place - features, pricing, and basic structure - but wanted to test different approaches.</p>\n<p><img src=\"https://denismoulin.com/images/journal/type-trial/image-1.jpg\" alt=\"alt\"></p>\n<p>Nicolas had nailed the essential content structure with clear feature descriptions and pricing. But we saw an opportunity to make it more compelling with some thoughtful tweaks.</p>\n<p><img src=\"https://denismoulin.com/images/journal/type-trial/image-2.jpg\" alt=\"alt\"></p>\n<p>we improved the grouping, added user reviews, refined the visual hierarchy, and introduced a lifetime pricing option.</p>\n<p>Make sure to give a try to <a href=\"https://usetype.app\">Type</a> if you haven&#39;t already.</p>\n",
      "date_published": "2024-07-16T00:00:00.000Z",
      "summary": "After experimenting with a pay-to-try model, Nicolas was exploring a new paywall design for Type. He had the essentials in place - features, pricing, and basic structure - but wanted to test different approaches.",
      "tags": [
        "journal"
      ]
    }
  ]
}