Cover image by My Life Through A Lens
From Open Source to Open Minds: Designing with Community and Ethics at Heart
Today, I'm taking a break from my usual scheduling to talk about something close to what I do for work and outside of work. (I'm a full stack engineer.) I want to dive into how we can design web applications with anti-capitalist and anti-consumerist principles, focusing on open-source licensing, ethical UI/UX choices, and picking frameworks and tools that genuinely prioritise community goals over profit-driven motives. There's always going to inevitably be a part of me that wonders if these design decisions could possibly be a form of resistance against systems that prioritise profit over people.
While a contentious topic, open-source licensing, for example, should be about creating a digital commons where code and ideas are free, accessible, and not bound by corporate control. This approach encourages software to be seen as a shared resource, a tool for collaboration rather than competition. When you look at code as something to be shared instead of sold, it transforms the entire development process. Personally, I love this mindset—it aligns with the kind of community-driven development I want to be part of.
Although I freely showcase most of my personal projects on GitHub, I must admit that I currently lack any projects that truly make a significant impact. Perhaps this weakens my claim of advocating for open-source initiatives. Nevertheless, I am determined to change this.
When it comes to design, anti-consumerist principles push us to really consider the kind of user experience we're creating. Instead of patterns that manipulate users into staying on a platform longer or making it too easy to spend money while feeling like they're missing out, ethical design respects user autonomy. This means ditching manipulative design tricks (dark patterns) that encourage impulsive clicks or constant engagement. We could be creating spaces that let users accomplish what they came to do without being bombarded by notifications, pop-ups, or endless prompts to buy or "engage." By leaning into simplicity and transparency, we would be building spaces that respect user attention and reject the dopamine-driven feedback loops that too many platforms rely on for revenue.
Choosing frameworks and tools is another big piece of the puzzle. Opting for tech that's lightweight, maintainable, and ideally open-source helps avoid over-engineering—a trap where features are added just for the sake of productivity stats, not actual user utility. By using tools that foster clean, efficient code and emphasise collaborative workflows, we can create applications that focus on real, lasting functionality rather than the latest trends that come and go. For me, this feels like an honest approach, stripping away the fluff and leaving only what's truly valuable.
I'm also interested in finding ways to infuse subversive themes into tech projects as a way of challenging the status quo. My desire to do so emerged out of the Weird Web October challenge, which I joined thanks to being inspired by my coworker, Georgie. Ironically, I started off saying I wouldn't have the energy to join on more than a handful of days. But somehow, I ended up making something every single day of the month—some days with more satisfaction than others, admittedly. You can see the full, proudly imperfect collection at weird.sha.codes, with the code on GitHub.
A big part of what kept me going was Georgie's own work. Her entries were genuinely inspiring—her design skills are something I could definitely learn from. She also blogged about her experience, highlighting how she enjoyed creating just for the fun of it. Her reflections made me realise how much I worry about how my work will be perceived, which can feel like a bit of a burden at times. Nevertheless, shared experiences are inspiring. Who knew?
I kicked things off with some self-deprecating millennial humour. (Yes, there were avocados involved—hopefully as a clear jab at that tired stereotype of millennials as avocado-obsessed, but who knows how people will interpret that.) With a theme like this, it didn't take long before I started touching on work, money, and the cost of living. One of my coworkers who was following my adventure commented, "I've noticed a somewhat anti-capitalist (for lack of a better term) sentiment in some of the themes in this project." Yes. Yes, that vibe was very much intentional.
By the time I got to Ritual, I was feeling bold enough to take a few cheeky jabs at management—not that they apply to my own boss, who actually encourages me to keep regular hours. But just because it isn't my own experience doesn't mean it's not a reality for many others in my generation. I was trying to capture more than just my story; it was about a shared experience, a collective feeling.
Then I hit Capitalism, and that's when things really started to heat up. By this point, the gloves were off, and I went all in. I pulled references from Marx's Das Kapital and Fisher's Capitalist Realism in Bugs and tackled individualist hustle culture head-on in Cursed. I had some fun critiquing nostalgia in Nostalgia, tried to visually show wealth accumulation in Generative, and sketched out a society where people could simply request resources rather than buy them in Forms.
Even though the themes got heavy, the whole project was still, at its heart, something I did for fun. I definitely got a few laughs and smirks out of myself along the way, and it was a bit of an escape to poke fun at some serious topics, even if just for a moment.
But as I kept working on the Weird Web project, I realised just how much digital spaces shape the way we think about work, consumption, and even our relationships with each other. Most of the web is designed to keep us coming back, to make us want more, and to trigger that little hit of dopamine every time we click, scroll, or buy something. But what if we could break from that mould and create web experiences that respect users' mental space? What if a web app wasn't just a tool or a product but something that encouraged reflection, or even a bit of skepticism toward consumer culture?
We Feel Free Because We Lack the Language to Articulate Our Unfreedom and Beyond the Singing Skeleton: Embracing Conscious Living in a World of Marketing are two of my most obvious anti-consumerism posts that give some context around my mindset.
One idea I'm toying with is designing applications that consciously limit the typical metrics of "engagement." Instead of pushing for time-on-page or increased user activity, the goal would be to create spaces that encourage people to step back once they're done. Imagine a platform that subtly reminds users to close the app after achieving what they set out to do, rather than suggesting what to look at next or giving them a "thank you" code as encouragement to buy even more. It's a small shift, but it feels almost radical in an online world designed to pull people in and hold them as long as possible. (Fear not, I'm not becoming a reformist.)
Another idea is integrating community-driven features where users can contribute without the kind of transactional mindset that typically accompanies most social apps. There wouldn't be any likes, follows, or views at all. Maybe removing them would help create spaces that feel refreshing rather than draining, and inspire people to consider alternative ways of interacting online. Not that these spaces don't already exist, but they're harder and harder to find and more and more niche all the time.
On a more technical level, I'm very much so interested in pushing against the idea of "planned obsolescence" that's so prevalent in software. Too many applications are designed with frequent updates, not necessarily because they're improving but because they need to keep people excited (or locked into) their ecosystem. Just take a look at how many websites get a "UI refresh" that feels like it was done for the sake of change, even though it wasn't truly needed. Or, if you're in software, think about all the libraries you've had to update because the older versions were left vulnerable to security flaws, even if they were small and easy to fix. How can we build sustainable, stable web apps that don't require endless updates just for the sake of staying "relevant"? After all, a tool that does its job well doesn't need constant reimagining, and in a way, creating stable, resilient software is a stand against the endless churn that fuels tech consumerism.
This random thought has only scratched the surface and I hope it doesn't diminish the existence of the software out there that does follow these principles I hope for. But my rambling has made it clear to me that the web, like any other medium, can be a place to experiment with alternatives to the mainstream model. In the end, maybe it's not about changing the entire internet, but just about expanding the small pockets of meaningful digital space we already have. And who knows? Maybe those spaces can encourage users to think a little differently about their online experiences, nudging them toward a web that's a bit more intentional, a bit more reflective, and a lot less exhausting.