Welcome to Graceful.Dev

Hi. I’m Avdi. I’d like to welcome you to Graceful.Dev. A place to deepen and mature your software development practice in community.

If you don’t mind, I’d like to talk a little about how we got here. And then a tiny bit about where we go from here!

First came RubyTapas

The story of Graceful.Dev begins in 2012. The Ruby programming language was a Big Deal, and I had been writing blog articles and books about it, doing talks, consulting, and co-hosting a podcast about it for a few years. Programming screencasts were taking off too, with pioneers like PeepCode, Destroy All Software, and RailsCasts demonstrating that video online was a dynamic and quick-to-market alternative to books, for teaching new technologies.

I loved those shows, but I had a tendency to drift off during 20-90 minute videos. What if they were only five minutes long? I thought. What if you could learn one new thing while your next cup of coffee was brewing?

So I launched RubyTapas, aimed at working Ruby/Rails developers. And with the premise of delivering frequent, short, focused, and fast-paced videos that taught exactly one new technique, pattern, idiom, or capability.

The format clearly struck a chord with people. The site subscribership grew and grew, and within a couple of years, RubyTapas was my primary source of income.

Fast-forward a few years. People loved RubyTapas, but they often asked me for well-defined paths or courses through the content. I found myself wanting to take episodes from the RubyTapas archive, along with some extra material, and turn them into courses. (I had also begun to discover that the constant expectation to deliver new videos every week could be… exhausting.)

I made some early stabs at creating this courses in the RubyTapas site, but it wasn’t really set up for that. I ended up spinning my course products off. First hosting them at my “personal brand” site avdi.codes. And then later at a subdomain dedicated to courses, learn.avdi.codes.

Then came the bellyache

This worked OK for a while. But problems stacked up over time:

  • The first RubyTapas site was built on a hosted content sales platform, which it quickly outgrew.
  • The second RubyTapas site was my first serious foray into maintaining a WordPress site as an application rather than as a blog. I was learning better practices as I went along, often belatedly. It steadily accumulated wonky plugins, site-specific customizations, idiosyncrasies, and fragility. It became difficult to update. It outgrew its hosting but was also difficult to migrate. I became increasingly scared to touch it lest it fall over.
  • After the RubyTapas/learn.avdi.codes split, I discovered that maintaining multiple similar-but-different sites with overlapping content kinda sucks. I longed for a site where I could quickly refactor RubyTapas episodes into topic-based courses and give members access to those courses as they grew.
  • Folks kept asking me to broaden the scope of the content beyond Ruby and Rails. And indeed, I and guest hosts began covering a much wider range of technologies. The “RubyTapas” branding started to feel dated and constraining. (Fun fact: I registered “codetapas.com” the same day I registered “rubytapas.com”. From the very beginning I had hoped to expand the scope!)
  • The RubyTapas site was built around a “show” model, with new episodes broadcast every week. But it had been clear for years that learners wanted to interact with it as a course, where they could check off videos as they completed them.
  • I struggled with which model to focus my energies on: the ongoing “show”, or the courses-as-products.
  • I wanted a larger community element in my sites. I experimented with tacking on a Discourse forum to one of my courses, but that was a bit of a kludge.
  • Managing a shopping cart and/or billing for recurring subscriptions is one responsibility too many for a maintainable and robust courseware site.
  • My focus had shifted. I had gradually uncovered a world of software development practice that was bigger than just slinging elegant code. Systems Thinking! Resilience! Domain-Driven Design! Hermeneutics! Ethics! Participatory sense-making! Symmathesies! These were concepts that had been invisible or totally unavailable to me as a junior engineer. I wanted to create a place to learn about software development practices set within a wider, richer context.

So we planned a reunion

Eventually, after much brainstorming and option-crunching with friends and colleagues (and especially with my partner and collaborator Jessitron) a new strategy emerged:

  • We’d build on our lesson learned, on improvements to WordPress ecosystem that had emerged since RubyTapas was started, on beefier hosting, and on more modern practices, to create a brand new site.
  • We’d set up this site with a focus on courses. Living, evolving courses. Including a super-course that would represent the content-stream-formerly-known-as-RubyTapas.
  • We’d make it a membership site, just like RubyTapas, but enable more community-oriented features.
  • We’d make every RubyTapas member an instant all-access member to the new site, with no subscription migration required.
  • We’d continue to sell finished[ish] courses as products for those (especially teams) who prefer products to subscriptions.
  • For new subscriptions and purchases, we’d rely on an external shopping cart platform rather than roll the added complexity and criticality of billing into a courseware site.
  • All of this would be brought together under an umbrella that emphasized, not individual technical acuity… but rather, the dance we’re all in with with code, with each other, with larger systems of society.

Most of this was hashed out circa 2019. But life happened. I got busy with consulting work. I sold my house in Tennessee and moved to St. Louis. There was (and is) a global pandemic.

And now we dance

Better late than never. Now, here we are, it’s Fall 2021 as I’m writing this and Graceful.Dev is live!

I’ve recited all this history, in part, to acknowledge that Graceful.Dev is in a very real sense the next phase of RubyTapas. But it’s also a lot more than that. Graceful.Dev is a platform for the next ten years of making and facilitating the software development education I’d like to see in the world.

The RubyTapas taste and sensibilities remain: Focused and polished. Video-centric. Topics factored down to a single new idea at a time rather than mixed and meandering. Strong narrative arcs: problem, approach, application, implications. Carefully selected guest presenters.

But the structure is changing. Rather than a single stream, a tended garden of living courses. A new emphasis on organization, rather than just on getting new content out.

I’ve learned to be cautious with making forward-looking statements about new content I and my collaborators will produce. But it’s safe to say that the transition to Graceful.Dev isn’t just about a technical broadening from the Ruby language. It’s also about favoring material that helps you deepen, matureand root your coding practice in a broader context.

Lastly, this new site has been built to be more interaction-oriented. Over the years, a wonderfully high-quality community has built up around RubyTapas and related courses. I want to cultivate that community. Out of the gate we have features like groups and forums. I intend to keep the ongoing focus on community and lifting each other up. What that means going forward… will itself be guided by the Graceful.Dev members.

So that’s the story. That’s what this site is all about. A community of learners, deepening our practice together. An invitation to dance with code, and with each other.

If you’re a RubyTapas member making stepping into this new site, thank you for sticking with me on this journey. If you’re new to all this, welcome! I look forward to seeing you out on the dance floor 🧡

Responses