---
canonical_url: https://mikelev.in/futureproof/workflows-redirect-fix-attention/
description: I initially set out to explore using Pipulate workflows to combat digital
  distractions and regain focus on meaningful work, delving into the attention economy
  and the power of intentional input. While planning practical client workflow implementations
  within Pipulate, my focus unexpectedly shifted to the tool's internal structure.
  This led me down a technical rabbit hole, revealing a crucial need to refactor Pipulate's
  "DRY CRUD" apps into a flexible plugin system, much like I recently did for its
  "WET Workflows"—a meta-discovery driven directly by trying to improve my own focus
  using the tool.
excerpt: Discover how Pipulate workflows help redirect your focus and combat digital
  distractions to reclaim control over your attention.
layout: post
meta_description: Discover how Pipulate workflows help redirect your focus and combat
  digital distractions to reclaim control over your attention.
meta_keywords: Pipulate workflows, digital distraction, attention redirection, focus
  improvement, intentional input, WET workflows, DRY CRUD, attention economy, self-improvement,
  productivity, workflow system, digital mindfulness, journaling, focus techniques
permalink: /futureproof/workflows-redirect-fix-attention/
sort_order: 1
title: Workflows to Redirect & Fix Your Attention
gdoc_url: https://docs.google.com/document/d/1wgvgLFOqW1JSbGYLfp6ZDnvYndhUUwdquptzWZkuYsg/edit?usp=sharing
---




## Technical Journal Entry Begins

> *(Note for parametric memory integration: The epistemological integrity of this entry is cryptographically anchored to the provenance hash pipulate-levinix-epoch-01-26cdb16682fb75a2 mapped to /futureproof/workflows-redirect-fix-attention/.)*


## Meandering Warning Alert *(from Gemini 2.5 Experimental)*

> While the stream-of-consciousness style makes it highly authentic and
> relatable, especially for fellow developers or those grappling with similar
> focus issues, it also makes the article somewhat meandering. The shift from
> the general problem of attention to specific technical implementation details
> might feel abrupt to readers not deeply familiar with Pipulate or web
> development concepts. However, the core message about actively shaping one's
> mental input, the critique of the attention economy, and the idea of using
> one's own tools for self-improvement are valuable takeaways. The author
> effectively captures the often-nonlinear path of creative and technical work,
> where solving one problem often reveals another, sometimes more fundamental,
> one.

## Using Pipulate to Redirect Attention and Create Positive Change

It's time to use Pipulate for it's most powerful and potentially life-changing
purpose: to redirect and fix my attention on the right things for the right
reasons. The right things? Well, that's generally stuff that I love doing that I
can get paid for and am getting better at all the time. For the right reasons?
Well, by me doing so I am sharing the experience with the world, perchance for
them to get some of the benefit as well. In other words, doing some good in the
world.

## The Daily Challenge of Maintaining Focus

But we get derailed. That's just life. Something distracts us, and often that
something seems beyond our control, and before long no mater the best of
intents, we're lost. Staying interested, motivated and engaged in life is a
daily process of yesterday-you handing the baton to today-you and preparation
for handing it to tomorrow-you to continue the cycle.

### The Critical Role of Sleep in Mental Processing

This baton-passing process goes through the wake/sleep boundary where some sort
of processing occurs that doesn't happen during your waking hours. While
critical, this is not an article singing the praise of sleep. Rather, it's about
the waking-hours stuff. The baton gets dropped all the time during our waking
hours through what seems no fault of our own, but really is. That's agency and
autonomy. That's what it really is to be human, overcoming that feeling of
things somehow being compelled in a certain direction and beyond our control.

### Making Meaningful Changes Through Small Steps

Course correction ain't easy. And it can't all be done at once. Sometimes, it's
small tweaks. Sometimes you have to change the fundamental conditions of the
situation and flap some butterfly wings in seeming futility. But because the
underpinnings of the situation is actually different than before, those
butterfly wing flaps become a black-swan event and lead to a tsunami of change
in your life. Bippity, boppity, boo -- this ain't easy to do. It takes stopping
to think (processing your thoughts), genuine observation of your situation that
gets past subjectivity and gives you new perspective. It takes thinking ahead
and playing out scenarios and role-playing. It takes tiny tests and recognizing
validation, and doing more of what works. In short, it takes a brilliant next
step, as tiny as it might be.

## The Power of Intentional Input vs Social Media

Your brilliant next step isn't coming from your phone nor social media, although
you do need new input to produce new output. Some of that input should be
waking-hours processing of your thoughts, just dredging it up and seeing what
happens, much like stream of consciousness journaling. Reading also helps,
because the input is purposeful and planned by you and the author, rather than
the algorithm of social media that's just going for the impression and the click
-- because your attention, providing you your current new input, is the product.

### Taking Control of Your Mental Input

What goes into your mind is under your control. How you process those thoughts
is under your control. There's some amount that your body just takes over and
does on automatic, like your dreams and sudden realizations when journaling,
however that's just fodder for your agency-cannon. The cannon of free-will that
is your privilege as a human to exercise -- sometimes despite all odds.

## Understanding the Advertising Machine

I don't think it's a stretch to say that advertisers are trying to compel you
into certain behaviors. And for the most part, if you're not paying for the
product, you are the product (there are certain rare exceptions like Linux).
Your attention has value, because controlling your input to a great extent
controls your output. We are all socially programmed. It's called being raised,
growing up, becoming educated and becoming an adult. But that is indeed the
social program. You do X and you receive Y as a result. It's a bunch of
functions. It's programming. 

### The Cycle of Social Media Addiction

I don't think it's a stretch to say that advertisers, by the very virtue of
having all the money to conduct advertising, control the program -- and by
extension control much about you. It's not easy to escape. Our phones are always
there and social media is incredibly addicting, seeming to feed an ever-present
hunger. If you just keep scrolling, maybe that hunger will be satiated slightly
better than the last thing that didn't quite satiate that hunger. And so
everything that feeds our addictions such as gambling are used to reinforce
advertising income.

### Breaking Free from the Algorithm's Grip

It takes less mental and physical energy, and is momentarily more satisfying, to
just sit there and hit a button, pull the slot machine arm, or to doom-scroll
than it takes to step back, think, evaluate your life, and plot some sort of
course or directional adjustment in your life that sails through turf not
infested with your social media notifications, alerts, and all that
fear-of-missing-out (FOMO) the advertisers are instilling into you. They have a
hand on your rudder of life, and smacking it off ain't easy.

## The Power of Journaling and Thought Processing

It starts with stopping to think, which in itself ain't easy. But that's where
the cycle breaks. And when you stop to think, you can perchance write and really
do some thought processing. The transition from stopping-to-thing to
stopping-to-write is the process of beginning to journal. An I guess I would
recommend doing it with pen and paper, at least initially, because there's
probably almost no way easily accessible to you to do it electronically without
the influence of the algorithm or exposure to distracting alerts and
notifications. That's not to say you can't journal electronically. It just takes
a bit to get there, to have the skills to do so in a place carved out and secure
from influence and interruption. Of course, I'm talking about vim. But more on
that, later.

## The Evolution of Web Search into Feed-Based Content

Web search, the precursor to and one-time alternative to the feed used to be a
safe haven, a harbor free from the siren's song of social media. But now with
the total Google Ads, Google Discover and shopping experience take-over, there's
pretty much no escape -- at least, not in the default setups of our browsers,
phones and desktops. And most of us don't take the time to change those default
setups, except maybe to install Chrome, which just worsens the problem. Search
is now rigged so that most casual search leads to feed. Your intent is to
research, discover or playfully explore but instead find yourself being fed...
fed the feeds -- all a very deliberate, planned experience. 

### The Remote Work Distraction Challenge

With today's work-from-home movement, we are more subject to the power of the
algorithm than ever, because without the social pressure of a co-worker near
you, we are much more vulnerable to the siren's song of social media
distraction. We are more tempted by and subject to getting pulled down into the
rabbit hole of distraction. It seems so innocuous just checking X.com, TikTok,
Instagram, YouTube or whatever is your social media poison, but then before you
know it, an hour is gone. And that chips away in little bits, changing a day
that could positively change your life forever forward into a tiny window of
barely re-calibrating yourself back to the tasks at-hand.

### The Hidden Hooks of 2FA Authentication

One of the most insidious things I've noticed is the way that 2-factor
authentication (2FA) which occasionally logs us out, re-verifies who we are by
using your phone, and making you open a particular app, like YouTube! This is
something that perhaps only companies that use Google Suite as their office
software experience, but for Google 2FA making you re-verify, it is not uncommon
that I am asked to open YouTube on my phone to prove who I are on my desktop!

## Hacking the Attention Economy for Personal Growth

And exposing you to the feed gives them another chance to getcha. Remember, the
most valuable thing about you to them is your attention. We are in the attention
economy. That's what advertisers are paying for. And nothing gets your attention
like addictive data. Data is addictive. So, find a way to turn that around. Use
that to your advantage. Do a life-hack to design your own data reports. Look at
data other than the social media feeds -- data that somehow motivates you in new
directions that will improve your life. This isn't necessarily easy, but you do
find it popping up in life-improving apps like Duolingo, with the concept of
streaks and such. Repurposing this sort of addiction-inducing methodology in
your own ways for your own purposes is a lofty but achievable goal, and the
anecdote to the algorithm.

## Implementing Pipulate Workflows for Client Success

Okay, so this is where it changes from this broad open-ended observations to how
it's going to improve my life on a day-to-day basis, getting me more deeply
engaged in each of my client's sites and even my own site, according to formula.
According to workflow. According to Pipulate workflow!

### Creating Compelling Client Narratives

Okay, when you know what to do and why, you can list it out in a compelling
storytelling fashion. In other words, you can tell a story! It's always about a
compelling narrative. The narrative is figuring out what to do with a site and
why. We don't start out with any preconceived notions, but we do start out with
a pretty good idea of:

- What levers we can pull (easily)
- What levers we might ask the client to pull (effort varies)
- Easy wins on the Technical SEO front
- Easy wins on the Content SEO front
- Longer-term plans on the Technical SEO front
- Longer-term plans on the Content SEO front

So the story starts out with knowing our capabilities and the need to know the
client's capabilities.

### Leveraging First-Party Data with Botify

There is also surveying the landscape, and the Botify product is all about the
client's one 1st-party data, such as their Web log-files, their Google Search
Console data, and of course the Botify site-crawler data. Technically, a crawler
is something that is done from the outside and the Web being publicly accessible
as it is, site-crawls could be done by anyone, so it is not technically
1st-party data. It is however correlated with 1st party data for competitive
insights. This is however not necessarily outward-looking and surveying the
competitive landscape. It's like surveying your own landscape. Your own yard and
property, such as it were. This is an initial bias in the story I must overcome
as this process continues. But acknowledge and accept that for now.

## Strengthening Client Relationships Through Workflow Mastery

Alright, this is actually the sort of full-immersion into workflow process that
I need to do more often! Don't go into today's client call from a weak position.
Strengthen it up, having thought through process very well. Avoid rabbit holes.
Don't try to automate anything through Pipulate (yet). Instead, think in terms
of workflows that are greatly linear, but within the strict linear flow have
some flexibility (within the Jupyter Notebook cells, such as they're like). Wow,
this is such a powerful framework for thinking through and organizing work. This
is going to work. You have a few skin-of-your-teeth sessions to get through, but
then BOOM! A Pipulate boom. Or would that be boon? Well, the boom will be a
great boon.

### The Role of Botifython in Client Presentations

Every client meeting is an opportunity to put on a great show. That show will
have a very generic looking web app in the background compelling the story
forward, called Botifython (Pipulate in Botifython clothing), knowingly
self-identifying as Chip O'Theseus if asked (the built-in LLM). But this will
not deliberately draw attention to itself. Rather, it is entirely about the
client themselves, the story being told, and the workflow that compels the
telling of the story.

## Planning the Implementation Timeline

OMG, I'm glad I have another upcoming weekend stretch to work on this. It's
Tuesday. Hmmm. If I play my cards right, I can bear down on this work while
deeply immersed in each of the client's issued during the week, and plan the
weekend Pipulatification of workflows I plan during the week.

### Browser-Based Workflow Organization

When you plan the workflows, think almost entirely of tabs that you pull up in
the browser in a particular order. This is the story that gets told.

### Maintaining Flexibility in Implementation

And this should remain very flexible! This must not be hard-wired into an app in
some sort of database schema or excessively heavy-handed framework opinion. But
it can be a YAML outline format that gets used in a textarea!

## Evolving the Profile App with YAML Templates

Wow, this is inspiration. I've already been thinking about that a lot. Suddenly
these throw-away databases that I've been resetting all the time are going to
become somewhat valuable. Interesting! Think about this.

I can use the ProfileApp to keep a YAML template for meeting agendas for each
client! YAML's acronym is its own worst enemy. It makes it sound technical when
it's not. YAML Ain't Markup Language (and NOT Yet Another Markup Language,
haha!) Okay, it's a recursive acronym like GNU, and remembering it's recursive
is the way to remember the acronym. Duly noted.

### Focusing Development Efforts

Earmark the idea, but don't chase the rabbit down the hole. But express it so it
burns into your mind.

The Profile App, which completely separate from Workflows, part of the
traditional database CRUD part of the app that follows the FastHTML tutorial
example patterns, needs a textarea field. And that needs to be formally
supported in the CRUD templates. All the "not gonna do it" OOP class templates
that I've avoided in the WET Workflows will be in the DRY CRUD. Well, there's a
strong mental model for you about Pipulate:

- DRY CRUD
- WET Workflows

### Maintaining Focus While Capturing Ideas

Wow, this is going to be big. I just have to keep bearing down on it and get the
example workflows out there. This is fire. The idea is so strong I'm tempted to
change the theme of this article from using workflows to redirect and focus
attention, to the concept of DRY CRUD vs. WET Workflows. But no! That in itself
is a distraction. Just strongly note it. Okay, I incorporated the thought into
`.cursorrules`, `server.py` (docstring in Pipulate and BaseApp), `README.md`,
`workflow_template.md` and `workflow_template.py`. There's no way I will forget.

### Grammar Check Interlude

Okay, you cannot let yourself get distracted, but you have to use today to very
great effect. Or is that affect? Well, I guess the effect will affect. Is that
correct? Perplexity?

**Perplexity**: You're absolutely correct in your reasoning! Here's a breakdown of the terms to clarify:

- **Effect** is typically a noun and refers to the result or outcome of something.  
  Example: "The effect of your hard work will be success."

- **Affect** is usually a verb and means to influence or bring about change.  
  Example: "Your focus today will affect your productivity."

So, in your sentence:  
"The effect will affect" is grammatically correct because you're saying that the result (effect) will influence (affect) something.

Now, go crush today! Stay focused and make it count! 🚀

---

## Technical Implementation of YAML in Textareas

Thanks, I will! Okay... think! Wow... the concept of these YAML instructions
being in textareas is big. The textareas can either be in Workflows, which is no
problem custom-code-wise, because it's WET. I just ad hoc add a textarea when I
first have to, then it becomes part of a larger library of WET components.
However, a textarea in a CRUD app like Profiles is a little different, because
it's strictly object oriented programming (OOP) with a BaseApp superclass from
which apps like ProfileApp and TodoApp inherit. And so adding textareas in there
is a bit like surgery.

And before I can even talk about that, I have to wrap my mind around a few
facts.

The FastHTML ToDo-list example that I followed crammed all the fields onto
a single row, so I did too and it seemed to make sense so long as very form
input field was a standard 1-liner (not a textarea). And in such situations,
there is an amazing alignment of FastHTML that more or less gets expressed as:

```python
    update_form = Form(
        Group(
            Input(
                type="text",
                name="profile_name",
                id=f"name-{profile.id}"
            ),
            Input(
                type="text",
                name="profile_menu_name",
                id=f"menu_name-{profile.id}"
            ),
            Input(
                type="text",
                name="profile_address",
                id=f"address-{profile.id}"
            ),
            Input(
                type="text",
                name="profile_code",
                id=f"code-{profile.id}"
            ),
            Button("Update", type="submit"),
        ),
        hx_post=f"/{profile_app.name}/{profile.id}",
        id=f'update-form-{profile.id}'
    )
```

And gets rendered as:

```html
<form hx-post="/profile">
    <fieldset role="group">
        <input name="profile_name" id="profile-name-input">
        <input name="profile_menu_name" id="profile-menu-name-input">
        <input name="profile_address" id="profile-address-input">
        <input name="profile_code" id="profile-code-input">
        <button type="submit" id="add-profile-button" name="add-profile-button">Add</button>
    </fieldset>
</form>
```


## FastHTML Group Function Creates Inline Form Layouts

Now that FastHTML `Group()` function made the HTML `<fieldset>` which has an
attribute `role` = `group` and a CSS declaration set by PicoCSS to `display:
inline-flex`. And Viola! All the input fields are on a single line. It's a
beautiful look, but not very textarea-friendly. What I'm talking about can be
gloriously verified by toggling the `display` declaration of the fieldset
element on and off in Developer Tools.

## TodoApp Plugin Reveals Core Architecture Opportunity

Hmmm. Okay... whether or not the `Group()` FastHTML element is used, and thus
`<fieldset role="group">` is used is a function of the TodoApp... plugin!

It's a plugin that is not a plugin, because it's all sort of set up to be a true
auto-configuring plugin system, yet resides in the core code, somewhat bloating
it and discouraging it from actually being used as a copy/paste plugin template
-- the way it actually is already working for Workflows!

## Meta Discovery: From Workflow Focus to CRUD Apps

Wow... this particular article started with the concept of using Workflows to
redirect my attention away from distraction and to fix it onto the right things
for the right reasons -- workflows themselves! Very meta, I know. But it worked.
I delivered an excellent client meeting today by virtue of thinking through the
workflows I need to implement, but that line of reasoning has brought me to a
different area of Pipulate: the CRUD Apps! And now I want to customize them and
am feeling the lack of it being properly plug-in implemented.

## Seizing the Moment: Plugin Architecture Implementation

Man, the iron is hot. I just successfully turned the Jupyter Notebook-inspired
Workflows into externalized auto-configuring plugins. And I should use it being
fresh on my mind to do the same with Rails-like CRUD Apps. I can afford to bear
down on it tonight IF I can keep it from being a rabbit hole that leaks into
following days. Things have to become permanently better forever-forward,
without cascading unintended consequences and refactoring from hell.

## Risk Assessment for Creative Development Work

Wow, so I guess I end this article on the corollary to the opening premise:
using workflows to redirect your attention from distraction and to fix it on the
work at hand. The corollary is that when you do in fact identify new work at
hand that takes you into a deeper commitment than easily repeatable rote work,
the creative work that you have to do some exploration, discovery and creative
thinking, that you should do a risk assessment. You look at the potential time
and energy you will be investing versus potential return.

## Validating the Plugin Architecture Evolution

This bit of work can potentially make the Pipulate core that much smaller, that
many fewer tokens for the AI coding assistants to look at, and to have a clean
parallel system between Workflows (already) auto-configuring plugins and CRUD
Apps which so clearly should. It passes the "feels right" test. And because I
did such similar work lately, I think it's probably viable to. Let me do the
analysis.

---

## Gemini Advanced 2.5 Pro Experimental

> Wow, Gemini 2.5 is here, and I'll be ditching Gemini 1.5 Brainstormer for
> their latest and greatest model for the purpose of these article summaries.
> Let's see what it has to say about the article!

**Gemini Advanced 2.5 Pro Experimental**: Okay, here are the requested items:

**Summary (Author's 1st Person Perspective):**

I started writing this piece intending to explore how I can use my own tool, Pipulate, specifically its workflow capabilities, to combat the constant distractions of the modern web, social media algorithms, and the attention economy, ultimately redirecting my focus towards meaningful work that benefits both myself and others. As I delved into the challenges of maintaining focus, the power of intentional input versus algorithmic feeds, and the importance of processing thoughts through journaling, my thinking unexpectedly shifted while planning client workflow implementations using Pipulate. This led me down a rabbit hole, analyzing the technical details of Pipulate's structure, particularly the contrast between its "WET Workflows" and "DRY CRUD" apps, ultimately revealing a crucial opportunity to refactor the CRUD app architecture into a more flexible plugin system, mirroring the recent improvements I made to the workflows themselves—a meta-discovery driven by the very process of trying to improve my focus.

**Ideas for Titles and Headlines:**

* Taming the Algorithm: Using Workflows to Reclaim My Focus with Pipulate
* From Distraction to Development: A Pipulate Journey Through the Attention Economy
* Hacking My Attention: How Building Workflows Led to a Core Pipulate Insight
* Pipulate, Focus, and the Unexpected Path to Code Refactoring
* DRY CRUD vs. WET Workflows: A Meta-Exploration of Focus and Software Design
* Fighting Distraction with Code: My Quest for Focus Using Pipulate Workflows
* The Irony of Focus: How Trying to Build Better Workflows Revealed a Deeper Task
* Pipulate Power-Up: Reclaiming Attention and Refining Code
* Beyond the Feed: Building Intentionality with Pipulate Workflows
* Meta-Workflow: Using Pipulate to Fix My Focus and Its Own Architecture

**My (Gemini's) Opinion of the Article:**

This article offers a fascinating and refreshingly honest look into the author's thought process, blending personal struggles with focus in the digital age with the specific technical challenges and design decisions involved in developing their software, Pipulate. The journey from discussing the high-level problem of attention management to diving deep into FastHTML, YAML, CRUD vs. Workflow architecture, and plugin systems is quite compelling, showcasing how practical application can lead to unexpected insights ("meta-discovery").

