---
title: "💭 Too much magic – Will McGugan – Will McGugan's essays"
description: "!https://willmcgugan.github.io/too-much-magic/"
date: 2025-05-10
published: true
tags:
  - dev
  - thought
template: link
---


<div class="embed-card embed-card-external">
  <a href="https://willmcgugan.github.io/too-much-magic/" class="embed-card-link" target="_blank" rel="noopener noreferrer">
    <div class="embed-card-image">
      <img src="http://willmcgugan.github.io/images/will2025.jpeg" alt="Too much magic — A common criticisms of frameworks like Textual is that they have “too much magic”." loading="lazy">
    </div>
    <div class="embed-card-content">
      <div class="embed-card-title">Too much magic</div>
      <div class="embed-card-description">A common criticisms of frameworks like Textual is that they have “too much magic”.</div>
      <div class="embed-card-meta">Will McGugan &middot; willmcgugan.github.io</div>
    </div>
  </a>
</div>


> Now “too much magic” is not the same thing as “bad magic”, although they are often conflated. Bad magic is when the implementation details leak out from the level below. This can manifest itself as cryptic errors that reference the magic’s implementation. 

!!! note

    This post is a <a href="/thoughts/" class="wikilink" data-title="Thoughts" data-description="These are generally my thoughts on a web page or some sort of url, except a rare few don&#39;t have a link. These are dual published off of my..." data-date="2024-04-01">thought</a>. It's a short note that I make
    about someone else's content online <a href="/tags/thoughts/" class="hashtag-tag" data-tag="thoughts" data-count=2 data-reading-time=3 data-reading-time-text="3 minutes">#thoughts</a>
