conceptual coding and the dev dérive: a philosophical distancing from vibe coding (yep, in that pejorative sense)
preface
this log sketches an evolving conceptual framework and philosophy for how i approach building digital systems through a synthesis of conceptual coding and the dev dérive. it is written to mark a shift in practice: from blindly building tools to building effective, spatial, and conceptual ecosystems consisting of playful and practical tools for knowledge development and digital work. it is meant to expand the current conversations on vibe-coding and offer an alternative philosophical and conceptual framework to operate from while appreciating and acknowledging the positive and democratic aspects vibe coding has opened in the coding and dev practice(s).
ai is a tool, not a crutch
ai should be thought of as a tool. a tool to assist in the completion of a coding task, a tool for exploration, and a tool for learning. to be at its most useful, one must have a strong understanding of their tools and the appropriate contexts in which they can be used. furthermore, it is important to have contextual knowledge of the environment and setting in which the tool is being used. you can't repair a motorcycle with a wrench and screwdriver alone: you need a basic understanding of the machine you are working on, or your efforts might be fruitless. that noted, and in agreement with the hacker ethos ... you might be able to learn a lot from working backwards and dismantling and rebuilding something with the tools you have at hand. the important thing here is that ai is a tool and not a crutch.
conceptual coding: coding as thought
conceptual coding treats code not as a purely functional mechanism, but as a medium of expression. a conceptual coder should create systems with the same care that a poet chooses her words or a cartographer traces their lines. it is about creating and finding oneself in systems of care. it is about weaving human language, code, memory, and imagination into interactive systems and using code as a composition tool.
the emphasis of conceptual coding shifts:
- from "static problem-solving" to "thought-mapping", finding solutions in movement and cartography
- from "optimisation" to "evocation", invoking hope and desire
- from "product" to "process", where the journey is more important than the destination
conceptual coding is concerned with ideas, tensions, affect, and atmosphere. it is rigorous, but the rigour follows meaning rather than merely best practices.
dev dérive: drifting through digital space
inspired by the situationist concept of the dérive (drift), dev dérive is coding as a mode of exploration.
- it abandons the linear blueprint of traditional development
- it embraces emergence, atmospheric reading, and responsive construction
- it maps emotional currents, unconscious structures, and conceptual topographies
rather than coding towards a fixed feature list, the dev dérive follows impulses, tensions, and curiosities. it is not aimless; it is intentionally unmapped and wayfaring. it allows one to follow impulses and gravitational pulls. the resulting code can then become something like a delignian wander line tracing ones errant coding behaviour free from constraint.
conscious security: a discipline of respect
conceptual coding and dev dérive are not excuses for fragility or negligence. instead, it seeks a conscious approach to security.
this conscious security is an essential dimension:
- recognising responsibility: anything built, even as a conceptual drift, affects real people and systems
- embedding hardening rituals: simple but essential hardening practices (input sanitisation, authentication flows, permission management, encryption-at-rest, etc.) are non-negotiable and must be ritualised and habitualised
- treating security as stewardship: protecting not just data, but trust, reliability, and resilience. security is an important aspect in community building and stewardship
every codebase, no matter how experimental, must remain:
- secure in its surface layers.
- durable in its internal structures.
- transparent in its risks and assumptions.
this layer of consciousness differentiates a mature conceptual work from the less mature aspects of "vibe" coding which often overlook the importance of security and hardening.
summary: conceptual drift, conscious anchoring
drift through ideas, spaces, and architectures. but anchor yourself in awareness, in discipline, and in care.
the practice of conceptual coding and dev dérive is the practice of moving through the digital world as both an artist and a forward-thinking steward of the past. it is to work as we have all worked, to build a wonderful future by learning from the past.