Jairus Joer

Senior Developer & Designer

About Personal Software

Exploring the concept of "personal software", where human taste and identity dictate quality in an AI-driven landscape, and a personal vision for the future of software development.

This post builds on previous thoughts on why the future of the web might be native, an unpublished personal post about cross-platform web applications, and my exploration of the potential of personal software.

My advocacy for the web as a decentralised operating system1 influences both my personal projects and my professional aspirations. This continues to have a positive impact on my ambitions and development with regard to what I coin personal software.

My most recent projects and explorations have reinforced my support for the aforementioned approach2 and helped me to develop a clearer personal vision. Today, I would like to share this vision while exploring this philosophical and practical shift.


Personal Software

When I speak of personal software, I draw on the work and thoughts of industry titans like Paul Graham and Alan Kay3, who have been pioneering, discussing and refining these topics for over 20 years and have made a significant contribution to the modern approach to software creation.

Personal software has taste. It is not a subjective quality, but rather a context-aware attribute that permeates the work and elevates the resulting product from merely competent to exceptional. This concept originates from Paul Graham’s seminal work, Taste for Makers4.

Personal software should respect users’ preferences and intentions. Rather than challenging cognitive commonalities for no apparent reason, creators should respect and adhere to the commonplace patterns and expectations users have of software5.

Taste

The commodification of software through artificial intelligence has created an abundance of functionality. Taste has become the key factor in transforming mere functionality into a meaningful and exceptional experience.

Where taste is perceived as personal preference, it ought to be seen as a trained instinct that elevates work through deliberate practice, exposure and reflection, elevates work from the merely functional to the elegant, appropriate and considerate.

When considering taste, think about the standards that apply to humans, cultures and demographics, respectively, which are naturally perceivable as sufficiently common denominators, devoid of subjective preferences6.

Exposure

To develop a sense of taste, one must be exposed to excellence in their own field. This involves studying and practising intently, exchanging ideas with others, and reflecting on the craft of the field. Over time, this active process will lead to a transformative perception of one’s own work.

Through this process, rationalisation becomes apparent over intuition. Questioning the reasoning behind choices that one considers tasteful transforms a vague aesthetic perception into a comprehensible and teachable insight, which leads to the development of taste.

Rather than offering inflexible, universal solutions, good taste provides an ever-growing set of flexible, contextualised values that can be adopted for different, inherently specific priorities7. By contrast, bad taste stems from insisting on preferred values perceived as universally correct.

Scale

The aforementioned commodification of software has made it clear that software is not only becoming personal, in the sense of being individually owned, but also becoming a means of personal expression for creators and users alike.

As software becomes more universally usable, it also becomes emotionally inert. Software that follows a generative model will ultimately produce similar appearances and practices based on the common factors found in its training data, rendering it devoid of acquired taste.

The collapse of cost and complexity associated with software creation has enabled a greater number of people than ever before to create personal software. Creators are therefore faced with the challenge of standing out from a sea of software based on acquired taste, or drowning in it.

Identity

When software becomes personal, it also becomes an extension of the mind. With refined taste, its inner workings become transparent, and it acts as an external part of the cognitive process, on which reliance has become established.

Once considered part of the cognitive process, associations with software grow stronger, resembling reflections of identity as seen through brands. In this context, taste influences how people identify with software through common design languages, tones and interactions.

This process validates the quintessential expression of taste, establishing it as the foundation of an exceptional experience rather than merely functional software. It is with this in mind that great work is created, providing value of identity not only for users, but also for creators.

Machines

As artificial intelligences take on more implementation work, taste becomes the bottleneck and the key differentiator. When machines can code, humans must judge the outcome and take on the role of tastemaker to stay afloat in the sea of generative software.

Through articulation, evaluation and refinement, these tastemakers shape the initial outcome and the direction of both the agent and the product associated with it. As grunt work gets more and more automated, tastemakers are encouraged to focus on the quality of the craft.

A generative approach should be considered to provide exceptional experiences rather than churning out more functional features in the same amount of time. This newly found time should be invested in quality, not quantity, to avoid becoming indistinguishable.


Craft

The realization of personal software requires a shift in how programming is perceived. It is no longer about assembling functional blocks, but about mastering the medium to ensure the resulting experience feels continuous, intentional, and effortless.

This mastery demands a technical environment that serves the creator. When tools provide direct access to underlying logic and presentation, the distance between thought and execution shrinks, allowing immediate feedback and refinement.

Ultimately, the technical stack becomes the workshop where taste is applied. By selecting technologies that value precision and flexibility over convenience, creators ensure their unique signature is preserved, bridging the gap between abstract vision and tangible reality.


Vision

Unification

Agentic workflows require access to applications and data through a single source of truth, if possible. A monorepo is a significant step towards unifying a codebase, enabling engineers and agents alike to access business logic.

This unification also extends to the business logic itself. Cross-platform-capable tools and languages such as Kotlin Multiplatform and WebAssembly provide a single codebase for handling features on multiple platforms.

Ideally, core business logic remains platform-agnostic. This consistency ensures business rules permeate every context without dilution, freeing resources to focus on taste, refining experiences rather than maintaining redundant code.

Workspace

From the outset, I envisage the workspace as something that is easily set up and accessible to all contributors for exploration. The aim is to provide a unified interface for setting up, prototyping and shipping new features with minimal friction.

As designers adopt a more code-focused approach, the demand to prototype and explore within the codebase is increasing. However, the setup often remains primarily geared towards engineers.

This can be achieved through a reworked command interface offering a unified, streamlined approach to setting up and interacting with code. By lowering the barrier to entry, allowing every team member to gain the exposure necessary to understand the craft and cultivate taste.

Platforms

This brings us back to my belief that the web is a decentralised operating system. My elusive vision is to offer a product from one codebase to rule them all. A web-first application distributed to all operating systems through their native WebViews.

This approach prioritises a unified experience based on the web over native implementations, ensuring that the identity cultivated in a product is faithfully transmitted to every context.

By maintaining a single source of truth, resources typically lost to porting can be reinvested into perfecting interactions. This keeps the software’s taste concentrated, preventing dilution when personal software adapts to different native paradigms.

Design

A robust design requires overarching ambitions and an impact that extends to the very core of a project. Customer-facing features, as well as internal features, deserve a high level of refinement.

Both customer-facing and internal features deserve a level of refinement that is now within reach. With this in mind, I envisage a system that will enrich the work of designers, engineers and other contributors.

Such a system enables technical and non-technical teams alike to use standardised components for exploration and prototyping. It provides the flexible, contextualised values required for good taste, allowing teams to focus on crafting exceptional experiences.

Accessibility

With a strong, standardised foundation in place, the focus can shift towards custom components and user workflows. This is an area that has historically been overlooked, but which now presents opportunities thanks to the recently enacted European Accessibility Act8.

An accessible product benefits all users by offering more ways to interact with it. This allows users to express themselves and their processes through the software, strengthening their identity and association with the brand.

In my opinion, accessibility is a necessity, not an afterthought9. Without respectful means to interact with software, processes become forced, which leads to users developing a distorted perception of the product.

Expressiveness

By enabling design and implementing accessibility standards, software can be personalised to a certain extent from the outset without additional effort. From this point onwards, expressiveness begins.

Personalisation features such as the appearance of the surface, matching one’s own brand or adhering to user preferences and intentions act as an extension of the user’s identity into the product.

Additional efforts such as interface and workflow composition enhance the software’s expressiveness through the user interface, and strengthen user retention through association.


Conclusion

The journey towards personal software is both a practical evolution and a philosophical shift in how programming is perceived and developed. As an AI-driven era becomes feasible, the line between functional code and exceptional experiences will be defined by the taste of its creators.

My personal vision for software development, rooted in unification, accessibility, and expressiveness, is an embodiment of this philosophy. It is a commitment to building platforms that are robust, efficient, and deeply respectful of the human intent behind every interaction.

Humans

Embracing automation and agentic workflows, the human element — tastes, identities and discernment of quality — is becoming more and more important. My vision is to create an environment where this human element can flourish.

By democratising exposure to quality through unified collaboration, every contributor is empowered to become a tastemaker. This collective elevation of craft ensures software remains a vibrant extension of identity, not a sterile product of automation.

Future

By unifying workspace, championing accessibility, and enabling expressiveness, we’re crafting personal software that respects user intent and identity. This is the future of the web as a decentralised operating system — where software is as personal as the thoughts it expresses. The path forward requires diligent guardianship of quality, resisting the urge to settle for the merely functional. By doing so, the work stands out from commoditised applications by offering users distinct, personalised, enduring value.


See you all in the next issue
Yours truly, Jairus Joer

Footnotes

  1. Decentralised Operating System: A platform that is open and flexible, allowing applications to run on different devices without being limited by the restrictions of specific ecosystems.

  2. The future of the web might be native

  3. Alan Kay on the context and catalysts of personal computing

  4. Taste for Makers

  5. The importance of personal computing

  6. Emil Kowalski

  7. Delightful Animations IV: Mind the Gap

  8. European Accessibility Act

  9. Accessibility - a Necessity, not an Afterthought