The ever-shifting landscape of web development is a fascinating place. New tools and practices emerge, fresh approaches evolve, the ground shifts. And it shifts often: it wasn’t so long ago that most of us were building static web pages using tools adapted from the world of word processing (I’m looking at you, Dreamweaver). Now we use content management systems, frameworks of all kinds, and an ever-expanding suite of code accessories. We tweak, test, break, and rebuild. It’s a particular type of creative activity: a nascent, evolving, turbulent environment in which it is easy to get killed (killed, in this context, is your website going down).
I’ve enjoyed working with web frameworks that emphasize integrated and intentional paths of development. Ruby on Rails is one such framework, and Django is another. These tools encourage a philosophy in which the website is understood as an application rather than a collection of web pages or database entries. It’s the difference between living trees and sawn planks: the former are integrated, holistic, rhizomatic systems; the latter are simple building blocks.
I’ve been following web frameworks for several years and I’ve experimented with a number of them. They offer distinct technical advantages (as you would expect with more integrated systems); but for me, the underlying philosophies have been of most interest. Principles such as don’t repeat yourself and simple is better than complex have helped me to shape my development projects in more agile and robust ways. Overall, the philosophies of a good framework (and of a good programming language) can offer pathways to greater creativity and deeper engagement with web development.
Most of us have moved beyond the stage of just trying to get placeholder pages onto the Web. Artists, writers, educators – most of the people with whom I work – are starting to build online identities and communities that reflect and embody personal values, ethics, and philosophies. Accordingly, the web frameworks we choose should be in alignment with who we are and what we wish to achieve online (misalignment with my own values and philosophies is why I don’t use Facebook). Our presence on the Web is an extension of who we are in the world. We show, hide, and share, on the Web, in ways that are similar to how we act in the world. And we should try, I think, to create online experiences that encourage us to be in close alignment with who we are and who we wish to be. For me, this means choosing online tools that are open, friendly, adaptable, and fun to use.
In keeping with my commitment to use tools that reflect my own values, I’ve used Django extensively for web development. In particular, I’ve enjoyed working with Mezzanine and Wagtail. Django provides the framework, and Mezzanine or Wagtail provide the application. Integrated together, these tools offer a web development methodology that is open creative, efficient, and enjoyable.
This is what we all do with technologies, and usually without recognizing what we have done: we make commitments in thought and action to the tools we use. And, in turn, those tools influence us. We should be cautious about this. We should recognize the reciprocal relationships we have with technology. We are not just employing the tools; the tools also shape us, in ways that we cannot predict and sometimes cannot control. And this, in essence, is why I prefer tools that encourage openness, creativity, collaboration, individual expression, and purposeful play: because I continually seek to embody these values, and the tools of technology reinforce my commitment to them.
We tend to become easily distracted or frustrated by our experiences with technology, and our emotional resonance seldom moves beyond those two states. Yet we are much more than distraction and frustration. We need our technologies to facilitate a wider range of emotional embodiment, to help us find wonder and creativity and connection with one another. We don’t tend to think of web applications as serving the purposes of wonder, creativity, and connection: but they can, and they do, and in the absence of our engagement with them in those ways they cannot deliver anything other than frustration and distraction. In his book Zen and the Art of Motorcycle Maintenance, Robert Pirsig claimed that “the real cycle you’re working on is a cycle called yourself.” That’s true of web development also. We build what we are.
These days most of us spend a great deal of time participating in online distractions and digital meandering. We have become less focused and mindful than we might be, and we have surrendered much of our attentional autonomy to the persistent keening of technology. Compare, for example, our online habits to the activities for which 200,000 years of evolution have prepared us. The online wanderer sits, shifts focus every few seconds, constantly responds to new stimuli, rides a constant wave of subliminal anxiety rooted in the dread of being left behind. The ancestral nomad of our evolutionary past stands, holds a fierce and singular focus (on an animal, or a stretch of landscape, or a work of craft), remains in the present moment of engagement and experience, and rides a wave of mindful calm rooted in a sense of belonging to place and to people. We tend to look upon those ancient peoples as more primitive than ourselves. But is the modern, distracted, disconnected self more advanced than the ancients? Is the complexity of our technology a sufficient justification for our belief in our superiority? Or, instead, have we lost something fundamental, and do ancient approaches offer important wisdom?
I believe that they do, and that the central challenge of our age involves the integration of practices both ancient and modern. And so, as I approach a subject such as web development, my intent is to do so with a clear and singular focus, to choose tools and approaches with purpose and mindfulness, to create my digital landscape as an ancient nomad traversed a range of mountains: thoughtful, careful, attentive. The heart of web development lies not in the code but rather in the way that the process of development helps us understand ourselves, our connections to one another, and our purposes in the world. Without these considerations, web development is empty, devoid of meaning. It’s easy to forget this, as the relentlessness of machine culture drives us onward. But onward is not always the same as forward. And that’s the key question: how to carry forward our humanity in a world increasingly mediated by mindless data and hidden code.
NOTE: If you have been redirected here in search of the Mezzanine tutorials, please note that I have migrated from Mezzanine to Wagtail, and as a result, I no longer maintain or update the Mezzanine tutorials. If you are curious about Wagtail, the Learn Wagtail tutorials are an excellent place to start.