Web dev at the end of the world, from Hveragerði, Iceland

An Uncluttered retrospective: Teachable is a mess and I need to pick a lane

This is a part of a series where I review the work I’ve done over the past couple of years.

  1. Two-year review: to plan a strategy you must first have a theory of how the hell things work
  2. Out of the Software Crisis: two-year project review
  3. Sunk Cost Fallacy: chasing a half-baked idea for much too long
  4. The Intelligence Illusion: stepping into a pile of ‘AI’
  5. A print project retrospective: the biggest problem with selling print books is the software
  6. Thinking about print
  7. Disillusioned with Deno
  8. An Uncluttered retrospective: Teachable is a mess and I need to pick a lane (this page)

I’m all over the place

A recurring theme in the strategy review articles above is that I seem to be incapable of sticking to a single topic, theme, or speciality.

Out of the Software Crisis concentrates on issues in managing software development projects and targets both managers and devs who need to explain to managers why their ideas are the software equivalent of filling the Hindenburg with hydrogen and painting it with a thermite precursor compound.

The research projects were long term ivory tower wishful thinking.

The Intelligence Illusion was driven by my desire to help people head off tech’s newest bubble. It doesn’t really share an audience with any of my other work.

The print projects were more driven by my own emotional need to see my work in print than practical economics. Still, it was nice to see a book of mine in print.

I wanted to bring my focus back towards web development proper, which is why I wanted to do Uncluttered. I think buildless workflows based on import maps are the future of web development, that they are a massive improvement over what is currently practised, and I wanted to help people get there.

I also wanted to launch a more developer-oriented project because that’s where I have the most experience. I’m not a project or product manager except when it comes to my own projects and products. I can write about management issues in software development from the perspective of a lead developer advising the managers, because that’s what I’ve done. Writing ebooks or courses for PMs specifically would be a bit of a shot in the dark.

Web development is where I have familiarity, so that’s where I retreated.

In hindsight, as I realised in my strategy review of Out of the Software Crisis, the “lead dev talks about high-level software development issues to an audience of managers and other developers” angle is actually a pretty good one. It’s a perspective that is concrete and well-defined. I should not have felt the hesitation I felt at the time.

But it also makes sense for me to talk about specific web developer issues because that’s what I’m practising at the moment. Web development is what I do, and it’s a topic that lends itself to endless discovery and improvement.

The two topics should also be somewhat complementary as long as I figure out some way to balance the two.

The initial launch went well

I decided to launch the web course as a part of a Black Friday Weekend bundle and, despite some issues with Teachable, the sales for the initial weekend were probably the highest I’ve seen for any of my launches.

Of course, I was selling a bundle of everything I’ve done at a price that I think was a bargain, which I’m sure is what drove much of the sales.

But Teachable sucks

My plan was to use Teachable to launch a dedicated site for the ebooks and courses that I would manage using Teachable.

But, honestly, Teachable is just horrible. The site and text-editing tools were error-prone. Editing the colour scheme resulted in Teachable delivering a different set of colours for many of the browser variations I tried: signed-in Chrome, signed-out Chrome, and Firefox all got a different mix of the old and new colour scheme. Nothing cleared it up not rebooting or clearing caches.

The HTML and accessibility of the site was also unacceptable out of the box.

The overall UX is a mess. Not as bad as Shopify or Bookvault, for example, but not even remotely acceptable considering how expensive Teachable’s plans are.

Much of their system seems unreliable. I had to navigate the gauntlet of their infuriatingly “cutesy-woo”, “aw shucks” asshole chatbot – simultaneously in-your-face insulting and completely useless – several times just to get a human somewhere to enable something manually that their system was supposed to do automatically. Worryingly, that included the plan upgrade I had to buy to be able to deliver the launch the way I wanted. Upgrading and paying did not actually change the plan. The support person had to change it by hand.

None of that was a dealbreaker because I’m fine with just using my own site and just using Teachable for checkout and fulfilment.

But even that ended up being an issue. As soon as I launched I began to get reports of people getting error messages from Teachable when they tried to buy the bundle. Some of those errors disappeared if they tried a day later, but the errors seem to crop up unpredictably over the next ten days.

At this point Teachable’s support staff stopped responding to any of messages, so I have to assume that these sporadic errors are unresolved and still occur.

I need to figure out an alternative to Teachable. Thankfully, they promise that if and when I downgrade my plan, students will still be able to access what they’ve bought. And if they break that promise I’ll make sure to keep it instead and ensure that people who have bought something from me will be able to access that course or ebook.

Sales dropped off, but that’s my fault

The project did not keep its momentum after launch. That’s largely my fault. I was feeling exhausted and needed the break. But I also felt the need to reassess what I was doing. Hence, this current series. I needed to take the time to think about my strategy and I came to the conclusion that even though I believe in Uncluttered in its current form, I think there’s a lot to improve.

Uncluttered is where I think things are heading in web dev, but…

I made a few mistakes with Uncluttered in its current form:

  • It is all about being able to drop Node from your workflow, but because doesn’t commit to an alternative, so you probably end up with Node anyway.
  • The general idea its pushing benefits non-JS frameworks the most, but because it doesn’t actually commit to any one of them, those benefits aren’t realised.
  • The entire course is geared around test-driven development (TDD), but TDD isn’t the norm in web development.
  • Because it’s all about avoiding Node, it’s of limited value to Node-based web development which, arguably, would benefit the most from going buildless with import maps.
  • The market for Deno-oriented courses – which is the only framework that was based on import maps from the very beginning – is tiny and, if anything, is only going to shrink every time Deno improves their npm compatibility.

The reason why I wrote about my losing confidence in Deno is that I had been letting my fondness for the platform lead me astray.

The fact that I couldn’t bring myself to make the course properly Deno-oriented should have made me realise earlier that I had lost confidence in the platform.

Because I hadn’t yet realised that, Uncluttered ended up solving a problem that very few people have: how to do front-end web development with next to no infrastructure or tooling. I stuck with the “no-Node” idea but didn’t replace Node with anything meaningful, leaving a void at the heart of the course.

Non-JS developers still use frameworks, and they need courses that teach the tooling they have to use. There’s no such thing as an abstract, generalised “no-Node” workflow because every competing platform tackles front-end asset management in different ways.

Rails developers would benefit more from a course that was specifically about how Rails uses import maps.

Symfony developers would benefit more from a course that was specifically about AssetMapper.

A course that tries to target both with some sort of compromise solution that throws away every tool they have available is not going to serve either.

I jumped through hoops in the course to avoid using Node wherever I could and that only made the course more complicated. More complicated and less specific is a bad combination for software development.

General-purpose solutions are harder for devs to apply to their specific circumstances. What helps us the most is concrete and specific. Vague, general principles mean the developer has to do all the work themselves of applying it to their projects and work.

Uncluttered in its current form is a good initial pass – helpful to those who actually do want to build their own tooling or build robust bare-bones projects – but it would be substantially better at serving web developers if it were more specific and concrete.

And for that the course and I need to pick a lane. We need to commit.

The retooling of Uncluttered

My plan for Uncluttered is to retool it. Something along the lines of:

Uncluttered: Buildless Node with Playwright and Import maps

I’m not a Ruby developer. I’ve written ruby in the past, but that was years ago.

I’m not a PHP developer. I’ve written PHP, but it isn’t my focus.

I’m not a Python developer. I’ve written Python before, but not in the past decade.

I am a web developer whose focus is on JavaScript, HTML, CSS, and the rest of the web stack. If Deno isn’t going to be my thing, then what’s left is Node.

The right path forward for the course is to make it specific.

  • Lean into Playwright and focus on the benefits of using it with a testing workflow that’s oriented around HTML and import maps.
  • Focus on testing not just Test-Driven Development.
  • Add lessons on specific approaches to testing Web Workers and Service Workers.
  • Talk about how to implement a buildless workflow for Node using import maps.
  • Use tools that are specific to Node instead of the general-purpose shell-based tools the course currently uses.

I think it would be best for me to leave the no-Node movement to others and concentrate on helping people accomplish the benefits of a robust buildless front end process with Node.

To do that, I need to restructure and rewrite the course to make the most of the tools that Node offers.

The existing course will remain as it is, and I will make corrections and security updates to it if they are necessary.

But those same buyers will also get access to the retooled version once that’s ready.

Effectively, they’ll be getting two courses for the price of one.

I think this way I can both serve the people who have already bought the course and maximise the potential the course has in the long term.

Because I truly believe this change is happening. Front end development is changing, and even though Node has had a big role to play in creating the current dire situation, I also believe it has a big role to play in correcting the course of web development after years of mismanagement and ballooning frameworks driven by low interest rates.

I don’t know how long it’ll take me to retool the course. I’m hoping it’ll only be weeks but, as the recent spate of volcanic eruptions here in Iceland have demonstrated, reality does not always treat your best-laid plans with the respect you’d like it to.

I don’t know what exactly the changes will involve beyond the broad strokes I’ve outline above.

I don’t even know if I’ll strictly keep to the web-based course format. Turning the retooled version into an ebook is an option.

What I do know is that I intend to make it better, more worthwhile, more useful.

And I hope you’ll enjoy it when it’s done.


Anyway, that’s my plan for the future of the Uncluttered course.

What do you think? All feedback is appreciated.

You can also find me on Mastodon and Twitter