← Home About Archive Photos Replies Also on Micro.blog
  • The Practical Framework 3.0 (alpha 1)

    These have been a long time in the making; and they’re barely the initial alphas, but the Practical Framework is officially open-sourced.

    They’re 3.0 releases because they’ve gone through 2 internal revisions. Next up is:

    • Updating existing apps to use 3.0
    • Refinements from there
    • Tons of documentation, because the framework takes a very different approach than others on the market

    If you’re curious:

    • The Ruby repo
    • The JS repo
    → 9:18 PM, Jun 2
  • A great read: animationobsessive.substack.com/p/rejecti…

    → 5:19 PM, May 20
  • After 3+ years of work and refining in private repos, I’ve finally published an open-source implementation for client-side error handling that should work for 99% of cases! github.com/practical…

    → 4:51 PM, Apr 23
  • This is still one of the best guides & approaches for progressively enhanced form errors. I’ve been running a version of it for 2 years; and will be open-sourcing that library in the next few weeks

    cloudfour.com/thinks/pr…

    → 12:44 PM, Apr 18
  • Overhauling an existing app's view layer without halting development

    After months of research and development, a new guide about how to build maintainable view layers in Rails (and overhaul an existing UI without stopping feature development) is live.

    thomascannon.me/guides/th…

    This is the largest thing I’ve ever seriously published, clocking in at about 8.2K words, with an open-source snapshot to boot

    After a short break, I’m going to extract the framework-level code into libraries, then start the process of migrating Little CRM 💪

    → 9:10 AM, Apr 8
  • Rails View Layers in 2025

    I’m currently in the middle of re-tackling the view layer for Practical Computer. Now that there are 2 apps + a framework, the complexity is high enough to actually tackle the problem comprehensively

    So, from my view of the Rails View Layer landscape, you have the following paths:

    • continue as-is, as we have for 15 years
    • get partway there with ViewComponent, having to make concessions & hacks. This is a glaring flaw; table-stakes: viewcomponent.org/known_iss…
    • go with Phlex all-in, acting as a clean-room replacement. Basically; nothing aside from Form Builders & explicit helper uses, no ERB files
    • roll something on your own, like Garett proposes in some of his musings: garrettdimon.com/journal/p…

    Am I correct here? Am I missing something?

    → 10:16 AM, Mar 22
  • Sneak peek of a new feature that’s coming soon to Little CRM

    An iOS Lock Screen, with a push notification from Little CRM that says “What’s happened this week?” A dog with a bandana that says “chaotic bisexual” is in the background
    → 11:30 AM, Mar 9
  • Having fun with error messages once again

    A screenshot from a component preview, notably with the following error text when 4 days a week are chosen: "You picked too many days a week; please pick 3 or less. We arenʼt Duolingo here; I donʼt want to nag you every day—no one wants that."
    → 8:57 PM, Mar 5
  • I’m starting to add notifications, reminders, followups, prompts to Little CRM. Let me know your thoughts and what you’d find valuable (and more importantly, what you’d find annoying!)

    Now that I’m in the phase of my hiatus where I’m figuring out the balance of app work + music, updates are back on the menu! 💪

    → 7:45 PM, Feb 20
  • New tool: Mustachio Extism Plugin

    A new mini-tool from the Practical Computer labs: an Extism plugin to process Mustachio templates: github.com/practical…

    Overall, I’m impressed with how Extism is structured. Being able to use WASM to deal with a thorny issue (running Mustachio’s official C# library in a Ruby codebase) with a small, cross-platform binary that can be embedded into the repo itself, dramatically simplifies the problem at hand.

    The goal is to hand this off to Postmark directly, since this gives their entire ecosystem a huge boost in usability.

    → 1:31 PM, Jan 16
  • RSS
  • JSON Feed
  • Micro.blog