Geoffrey Litt is a prominent researcher and design engineer whose work explores the intersection of human-computer interaction, malleable software, and local-first architecture. By advocating for tools that prioritize user agency and data sovereignty, he challenges the modern paradigm of "locked-down" applications in favor of computing environments that users can truly own and shape.

Part 1: Malleable Software and User Agency

  1. On the Essence of Malleability: "When I say malleable software, I do not mean only disposable software. I think of it much more as crafting an environment over time that's actually more stable and predictable." — [Source: Dialectic Podcast]
  2. On the Furniture Metaphor: "If I want to move the furniture or put things on the wall in my house, I want to have the right to do that; software should be the same way." — [Source: Dive Club Podcast]
  3. On the Pain of Static Tools: "I find it almost painful when people can't change their surroundings, their environments, and their tools; it represents a fundamental lack of agency." — [Source: Jackson Dahl Interview]
  4. On Specialized Tools: "Software should feel more like a chef’s knife—a versatile, high-leverage tool—rather than an avocado slicer that only does one very specific thing." — [Source: Geoffrey Litt's Blog]
  5. On Stable Environments: "Ironically, I think malleable software results in more stable software because the user has more control over how it behaves and evolves." — [Source: Software You Can Shape]
  6. On Digital Ownership: "If we spend all our time in platforms that dictate every detail for us, we start losing the feeling that we own or control anything in our digital lives." — [Source: Generally Intelligent Podcast]
  7. On User Empowerment: "The goal isn't necessarily for more people to learn programming, but for more people to get involved in the act of crafting their own software." — [Source: Ink & Switch]
  8. On Platform-Level Solutions: "Malleability isn't something one application can easily solve; it requires a new fundamental way that we think about operating systems." — [Source: Dive Club Podcast]
  9. On Physical vs. Digital Reality: "In the physical world, crafting our environment comes naturally because reality is malleable; our digital tools should aspire to that same standard." — [Source: Causal Islands Talk]
  10. On the Creator's Right: "Users should be able to edit their tools the way they edit their documents, a vision originally championed by pioneers like Alan Kay." — [Source: Dynamic Documents as Personal Software]

Part 2: Local-First Software and Data Sovereignty

  1. On the Notebook Metaphor: "In local-first software, your digital artifacts should feel like yours, just like a physical notebook you can carry around with you." — [Source: Local-First Software Essay]
  2. On Data Ownership: "Users should own their data and be able to copy, modify, and use it without restrictions from the companies that built the software." — [Source: Ink & Switch]
  3. On the Primacy of Local Storage: "Local-first is not local-only; the local copy of the data is primary, while the server holds a secondary copy for synchronization." — [Source: Metamuse Podcast]
  4. On Collaborative Rich Text: "Algorithms like Peritext enable collaborative rich text editing by using CRDTs to resolve conflicts without a central authority." — [Source: Peritext Research Paper]
  5. On Reducing Complexity: "Leveraging reactive databases like Riffle can cut through the complexity of modern web apps by making the UI a pure function of the database." — [Source: Riffle Project Overview]
  6. On Irreducible Complexity: "Conflict resolution is often a semantic problem that developers must handle; it's not a magical problem that databases can solve entirely." — [Source: Geoffrey Litt's Twitter]
  7. On Software Longevity: "Local-first software has the potential to outlive its creators and the companies that built it because the data and logic reside with the user." — [Source: Ink & Switch Publications]
  8. On Privacy as Architecture: "Privacy shouldn't just be a policy; it should be a side effect of an architecture where data stays on the user's device by default." — [Source: Local-First Software]
  9. On Offline Capability: "Offline capability shouldn't be an afterthought; it is a first-class requirement for software that people rely on for their daily thoughts." — [Source: Metamuse Podcast]
  10. On Data Portability: "True data ownership requires not just exporting a file, but having that data be in a format that remains useful and editable in other tools." — [Source: Bring Your Own Client]

Part 3: AI-Assisted Programming and End-User Development

  1. On Coding Like a Surgeon: "A surgeon focuses on the critical work while a support team handles the prep; AI should be that support team for the programmer." — [Source: Simon Willison's Weblog]
  2. On the 'Junior Developer' Model: "GPT-4 feels like a junior developer who is very fast at typing and knows many libraries, but is also careless and easily confused." — [Source: Geoffrey Litt's Website]
  3. On Asynchronous AI Agents: "I find it useful to run secondary programming tasks—like fixing TypeScript errors—asynchronously while I focus on higher-level logic." — [Source: Code Like a Surgeon]
  4. On the End-User Step Change: "LLMs represent a step change in tool support for end-user programming, allowing people to harness computing power without learning traditional syntax." — [Source: Malleable Software in the Age of LLMs]
  5. On Bridging Intent and Code: "The historical bottleneck for end-user programming was turning fuzzy informal intent into formal code; LLMs are rapidly opening that bottleneck." — [Source: Generally Intelligent]
  6. On custom UIs: "Any time I’m spending more than a minute staring at a JSON blob, I consider whether it’s worth building a custom AI-generated UI for it." — [Source: Geoffrey Litt's Blog]
  7. On the Value of 'Papercuts': "LLM support is invaluable for avoiding 'papercuts' in unfamiliar languages, which allows a developer to maintain their creative flow." — [Source: Simon Willison]
  8. On AI as Muse: "ChatGPT should be viewed as a muse that inspires and assists, rather than an oracle that provides definitive, unchangeable answers." — [Source: Geoffrey Litt's Substack]
  9. On the Future of Small Tools: "Soon, all computer users will have the ability to develop small, personal software tools from scratch to solve their specific problems." — [Source: AI as Teleportation]
  10. On Programming as Fun: "AI-assisted programming can make the process of building software more fun by removing the drudgery of boilerplate and syntax errors." — [Source: Geoffrey Litt's Bio]

Part 4: Designing for Thinking and Dynamic Documents

  1. On the 'Bicycle for the Mind': "We were promised bicycles for the mind—lightweight, personal tools—but instead, enterprise software gave us aircraft carriers." — [Source: Causal Islands Talk]
  2. On Dynamic Document Environments: "Projects like Potluck and Embark explore how documents can become live, personal software environments for planning and thinking." — [Source: Ink & Switch Projects]
  3. On Software as Curation: "Tools like Foam treat software as an act of curation, where the user organizes information in a way that maps to their mental model." — [Source: Foam: Software as Curation]
  4. On the Speed of Code: "If code can do a task, it's better than an LLM doing it because code is deterministic, fast, and doesn't have a 5-second latency loop." — [Source: Dynamic Documents as Personal Software]
  5. On Reactive Systems: "Interactive feedback loops are essential for thinking; you can't have a reactive system if every keystroke requires a high-latency AI call." — [Source: Causal Islands Talk]
  6. On Exposing System Structure: "Good design doesn't hide the machine; it exposes the systemic structure and trusts that the user will learn how to use it." — [Source: Dialectic Podcast]
  7. On the Spreadsheet Philosophy: "Spreadsheets are the most successful end-user programming environment because the 'editor' is always available and integrated with the data." — [Source: Software You Can Shape]
  8. On Thinking with Environments: "Certain types of creative work can only emerge when you have the correct, highly-tailored digital environment to support them." — [Source: Jackson Dahl]
  9. On Interactive Documents: "A dynamic document should respond to the data it contains, effectively turning a static page into a functional application." — [Source: Potluck Research]
  10. On Amplifying Intelligence: "The goal of personal computing is not to replace human thought, but to provide tools that amplify our natural intelligence." — [Source: Geoffrey Litt's Research Philosophy]

Part 5: Research Philosophy and the Future of Software

  1. On Living in the Software: "When building a tool, you should build part of it and then start living in it, evolving the environment as you use it." — [Source: Dive Club Podcast]
  2. On the Value of Side Projects: "For your next side project, make a browser extension; they are the most underrated way to hack and improve existing software." — [Source: Geoffrey Litt's Blog]
  3. On Calcified Assumptions: "Our computing environment has calcified around the assumption that people are only 'users' and never 'editors' of their software." — [Source: Generally Intelligent]
  4. On the Problem of Sharing: "When everyone is constantly editing their own tools, we need new ways to share those modifications without breaking the underlying systems." — [Source: Malleable Software in the Age of AI]
  5. On True Simplicity: "True simplicity isn't about removing features; it's about exposing the fundamental structure and letting people take advantage of it." — [Source: Dialectic]
  6. On Research as Prototyping: "Research at labs like Ink & Switch is about building 'future-provocations'—prototypes that show what computing could feel like if we changed the rules." — [Source: Metamuse Podcast]
  7. On the 'Nightmare Bicycle': "Avoid building 'nightmare bicycles'—tools that teach very specific hacks rather than the deeper structures that empower users." — [Source: Geoffrey Litt's Substack]
  8. On the Shift in Professionalism: "The divide between professional developers and 'users' is a historical accident caused by the difficulty of early programming languages." — [Source: Ink & Switch]
  9. On Shared Environments: "Having shared, malleable environments that a team can customize together is just as important as individual customization." — [Source: Software You Can Shape]
  10. On the Ultimate Goal: "We want to reach a state where computing feels like a malleable medium, where the barrier between having an idea and building a tool is near zero." — [Source: Geoffrey Litt's Personal Site]