WDCS24 and WDN24, the Big Stonking Post™
Web Directions Code Summit and Web Directions Next were held at UTS in 2024. Code Summit was in the Guthrie Theatre, and Next in the amazing Frank Gehry designed Dr Chau Chak Wing facility - aka the ‘paper bag building’ to both fans and detractors.
- Meta notes
- Themes
- A reflection
- Trends
- Disclaimer & Image Credits
- Code Summit
- Alex Lakatos - Interledger
- Basarat Ali Syed - avoiding JavaScript memory leaks
- Lex Kuncevic - Redefining Reactivity with Signals
- Nadia Makarevich - How React Compiler Performs on Real Code
- Louis Stowasser - Component reuse at the ABC
- Kritiketan (Kittu) Sharma - The UI component iceberg
- David Feng - Micro-frontends
- Jason Mayes - Web apps of the future with Web AI
- Miriam Suzanne - CSS Containers. What Do They Know?
- Scott Jehl - Web components can’t save us (but you can!)
- Mark Dalgleish - How React Router became a framework
- Kai Malcom - Reducing latency
- James Sinclair - The joy of recursion, immutable data, and pure functions
- Julian Burr - Let’s build suspense
- Erin Zimmer - Dependency injection with React Context
- Benjamin Wirtz - How to sell framework and architecture changes to the business
- Maria Farrell - Let’s rewild the internet
- Next
- Nick Gruen - Awakening Our Better Angels
- Steve Baty and Martin Tomitsch - Life centred design
- Mary Nolan - Nudges, behaviour change and complex systems
- Mark Pesce - And now for something completely human
- Josh Clark - Sentient design
- Jack Zhao - Beyond the noise: data visualation’s role in shaping tomorrow
- Joan Westenberg - Why we need fiction
- Jon Bradshaw - A $700b delusion
- Jon Bell - The future of social media
- Alex Lakatos - Interledger
- Rupert Manfredi - Web applets (lightning talk)
- Mel Flanagan - Nook (lightning talk)
- Maria Farrell - Let’s rewild the internet
Meta notes
I was an MC for Summit again this year, and didn’t take a laptop. So my notes from Summit are a bit brief as they were done after the event; and while I did have a laptop at Next, I was running out of proverbial spoons a bit… so all up, this is more like a Medium Stonking Post.
Themes
- Embracing and extending features of the native web platform
- Managing large projects - components, performance, pitching value
- Handling the rise of AI and what it means for our work
- Designing for humans
- How our roles change as the web changes
A reflection on optimism
Having Web Directions in the UTS Guthrie Theatre was a blast from the past for those who remember the venue from the early events… as John put it, something of a homecoming.
It called to mind the unbridled optimism of that era, when most of us truly believed the web would be a force for positive change. In many ways it has been a force for positive change, but we were naive about the potential for harm. Of course the reality is that people are no less flawed online than they were offline.
These days it’s easy to feel like everything is terrible, enshittified beyond repair, with the internet’s soul lost to the LLMs… and we should just give up and sink into a pit of doomscrolling.
But we should not despair. We're still here and in positions with opportunity to create positive change. Optimism now is almost subversive.
Imagine a world where things are repaired one more time than they are broken. - Laura Kampf
We need a more pragmatic kind of optimism now. One that expects things to be flawed, gets better prepared, and pushes on anyway.
It takes optimism to imagine a better version of money, to insist on making the web accessible for all, to challenge the dominance of frameworks over the native platform, and to believe we will navigate the turbulent waters of generative AI without being swept away.
We are not the innocents of those early days. We have our battle scars, but we also look to each other and know - this is our tribe, and we’ll go on together.
Trends
Last year there was a clear sense of people wanting to move away from Twitter, but not quite having done so yet. This year Web Directions was an almost entirely Twitter-free zone; instead people shared Mastodon accounts, Bluesky accounts, or good old-fashioned websites.
Plus there are Bluesky starter packs for the speakers:
Much as I personally prefer Mastodon, it seems pretty clear that we’ve reached a tipping point for Bluesky. Either way it’s better than the sad dumpster fire over at the former bird site, for now at least.
Disclaimer & Image Credits
- These notes paraphrase what speakers were saying. If you need an exact quote, use a definitive source such as a recording or slide deck.
- Photos are either credited or they’re my own.
- Slides aren’t credited (context should be clear).
Code Summit
Alex Lakatos - Interledger
Alex on stage talking about the web monetization community group. webmonetization.org/specification/ #webdirections
— Scott Jehl (@scottjehl.com) November 27, 2024 at 10:11 AM
[image or embed]
Alex opened his talk with a demonstration of a simple problem: it’s difficult to pay someone quickly. Someone in the audience ran up with some cash, but they were New Zealand dollars he couldn’t even use…
It’s difficult to do a quick payment digitally, nearly impossible to do a micropayment, and flat out impossible to make a fast micropayment.
Banks tend to hang on to your money for days on end while the transactions ‘clear’, they take quite large fees to transfer and convert currencies, and they have minimum transactions like $10 or $20.
This gets worse if you are using different banks, and gets much worse if you are in different countries or using different currencies. International transfers still frequently require a human to be involved, doing a manual task - so it can certainly never happen at ‘computer speed’.
The systems are incompatible and have assumptions, like ledgers that simply have numbers - zero, one… but one of what? One dollar? One pound?
Interledger is attempting to change all of this, with the goal make sending a payment as easy as sending an email. A network for money, as we currently have a network for computers.
Alex was clear that it’s not a crypto solution, despite having ‘ledger’ in its name.
Exchanging things is not a novel problem. We can mirror the layers of the web - application, transport, network, link…
- App
- Transport
- Interledger
- Link
- Ledger
So alongside https://ilp.dev/000 we can imagine $ilp.dev/000
The ledger also specifies what currency is being used, and working with the vagaries of floating point maths in programming, allows nine decimal points. The settlement layer is separated from the protocol, as it can happen so many ways.
The protocol was initially proposed in 2016 and it took 18 months for a bank to implement the protocol. This is not internet speed.
So they created a reference implementation - Rafiki. This makes it easier for banks to connect with interledger. They still hit lots of limits trying to connect a modern solution to old solutions, often literally written in COBOL… speeds as low as five transactions per second can be encountered.
Other new tech:
By combining very fast, very small transactions, you can stream money. So you could pay websites according to the time spent on them, instead of those sites trying to shove ads in front of you.
Again this isn’t a novel concept, but this is the latest attempt to make it reality: webmonetization.org
There is more to do and more people need to be involved. Alex invites you to join them: https://github.com/interledger
Basarat Ali Syed - avoiding JavaScript memory leaks
Basarat talked about…
- JS garbage collection
- Memory leaks
- Weak data structures
JavaScript is a garbage collected language, so most devs really don’t think too much about memory management. We just write code as well as we can and pray to the gods of garbage collection that we don’t run out of memory.
But occasionally you do run out of memory, so Basarat demonstrated a number of techniques to avoid, debug and fix memory leaks. These were all live demos - “seeing is believing!” using NodeJS process.memoryUsage() to show the usage and collection of memory.
Many of these techniques are quite simple, such as reassigning variables to smaller values - null or undefined work, but you can even just assign them to "🗑️" and the garbage collector (GC) will kick in.
Weak data structures… the core concept is that const foo = bar is a ‘strong reference’ that GC cannot clear; while a weak reference tells the GC it’s ok to return undefined if there is memory pressure.
Lex Kuncevic - Redefining Reactivity with Signals
As I noted while introducing Lex, React was named React as a reference to reactivity. We’ve used it so long that the name has become a bit meaningless.
But reactivity drove the rise of single-page apps; and it’s not specific to React. eg. a great guide to the topic is Vue’s Reactivity in Depth
Signals may well be a key ‘missing piece’ of the web platform required to ultimately replace React with the reactive web, along with things like web components and view transitions.
Proposal:
Resources:
- preactjs.com/blog/introducing-signals
- solidjs.com/tutorial/introduction_signals
- angular.dev/guide/signals
- vuejs.org/guide/extras/reactivity-in-depth.html#connection-to-signals
Nadia Makarevich - How React Compiler Performs on Real Code
The React compiler is huge news, with big hopes and dreams of never having to manually memoize your apps again. Nadia tested real world apps to see if it lives up to the hype. TLDR…
- it does not appear to add any problems
- it will solve some common problems
- you’re still going to have to handle bigger problems
So on balance you might as well use it, but you will still have to know how and when to use useMemo, useCallback etc in addition to the compiler.
Louis Stowasser - Component reuse at the ABC
The ABC has had shared components for a long time now, so their challenge is how to manage scale. Not just from a pure delivery perspective, but also how to find, identify and track usage of thousands of components.
Louis propsed some metrics such as the CCUR ratio (components used / total components), which gives a relative measure over time. Tracking also enables some ROI calculation that helps build the case for component reuse across a large organisation.
Kritiketan (Kittu) Sharma - The UI component iceberg
Kittu addressed the opposite challenge that Louis had dived in to - how and where do you start with UI component reuse? He talked about whether to build your own or adopt something ready-made - in the current era, things like Adobe’s React Aria/React Spectrum make a great starting point.
David Feng - Micro-frontends
David took things to the next level - what do you do when you don’t just need to share components, you need to break up your app into micro frontends. Some key advice from David was not to do this unless you actually had a pressing need - such as large teams needing to shipping features independently or on different stacks.
But in those cases micro-frontends can be a powerful solution. They enable shipping with a mix of technology, avoid legacy sections of the codebase blocking innovation, and they can still make good use of shared components.
Jason Mayes - Web apps of the future with Web AI
AI, or more correctly generative AI and large language models (LLMs), is certainly flavour of the month in tech. Jason talked about the potential future of AI in web apps, as the platform adapts.
Currently we focus a lot on massive cloud-hosted AI models, but client-side AI models are and will be possible.
Web AI != Cloud AI
Key tech:
- JS APIs for AI powered tasks
- JS libs like TensorflowJS and MediaPipe Web
- WebGL
- WASM
- WebGPU
- WebNN
Client-side AI has a lot of potential benefits:
- Privacy - not having to send your data to a cloud AI service
- Offline support - great for use cases where network coverage is bad (like in supermarkets)
- Speed - local models don’t have latency waiting for the cloud
- Cost control - run models on hardware you own, not hardware you have to pay to access
- Zero install - you don’t need to install a native app
- Access the reach and scale of the web
More info:
Miriam Suzanne - CSS Containers. What Do They Know?
Miriam Suzanne opening day two of #WebDirections Code Summit
— Ben Buchanan (@200ok.bsky.social) November 28, 2024 at 9:29 AM
[image or embed]
Miriam charmed the audience with a fun and witty dive into the capabilities of CSS containers. “What do they know” in terms of the things we can query, adapt and respond to via the container.
The short version is that containers know…
- Their Size (if contained)
- h Custom Property Values
- Relative Values (like em)
- Maybe Some States (TBD)
…and you can do some really useful things with that.
The longer version if you weren’t there is that you should go through Miriam’s slides and code demos and try things for yourself. If you aren’t using CSS Containers yet you definitely should be.
Scott Jehl - Web components can’t save us (but you can!)
Scott talked about the current state of web components; and why they can’t, on their own, save us on all things - eg. performance and accessibility still require active knowledge and commitment. Web components can be much faster and more accessible than alternatives, but developers remain responsible for making that happen.
Much as vanilla JavaScript replaced jQuery, web components may replace framework-specific UI components. They complement native APIs like Popover and CSS Anchors, and help developers create more functionality directly in native web technology.
Web components don’t do everything, and aren’t intended to do everything, you need to engage with all the new tech available to you on the web platform.
Scott walked through some key examples to illustrate this point, such as creating Wordlish in CSS and HTML.
He also walked through transitional techniques like changing your framework components to use web components to render the actual HTML. Then if you change to another framework, a lot of your code can be reused.
Some web component libs/frameworks mentioned: enhance.dev, webc, Lit. These make it a little easier to work with web components.
The current state of web development has an over-reliance on JavaScript, and that has created a lot of problems. Web components aren’t a magic solution, but they are part of the solution.
Mark Dalgleish - How React Router became a framework
What is a library and what is a framework? And when does it matter? Mark talked about the implications for the designers of a library or framework like Remix; and how this really mattered when they decided to merge Remix into React Router (v7).
With React Router being included in about half of all React projects, it’s a big deal to have a routing library become a web framework. But since people mostly seem to need everything it does, it’s well worth knowing what it does.
The React Router v7 release blog explains further about how to choose between React Router as a library mode or as a framework.
Kai Malcom - Reducing latency
Kai introduced the concept of modelling and addressing latency the same way we model and address risk:
- Eliminate the Risk → Eliminate the Latency
- Substitute the Risk → Substitute the Latency
- Engineering Controls → Isolate the Latency
- Admin Controls → Move the Latency
- PPE → Loading and Skeleton States
For a sharable deeper dive, see his blog post: Managing Latency is like Workplace Risk Mitigation | Kai Malcolm
James Sinclair - The joy of recursion, immutable data, and pure functions
James is the author of A Skeptic’s Guide to Functional Programming with JavaScript and writes a lot about taking a pragmatic approach to adopting functional programming.
In this session he used maze generation as a ‘goldilocks’ problem that is not too big, but not too small - hard enough to be useful as a way to learn techniques, without being so hard that you spend all your time dealing with production problems beyond the concept you’re trying to learn. Then he really takes it to the next level and creates an accessible maze.
This is a tech deep dive through recursion, immutable data and pure functions implemented in JavaScript; so if you are interested you should probably check out the Functional Maze repo in Github.
Julian Burr - Let’s build suspense
React Suspense is great, but to understand a great library it’s often useful to build a simplified version of it. So that’s what he did, with the demo app Notflix.
Julian also walked through a really nice visualisation of the move from server side, to hybrid, to client side rendering, and now back to server side; and how Suspense comes into play with React Server-Side Components.
Julian’s slides - Let’s build suspense (PDF)
Code examples - Let’s build suspense (Github)
Erin Zimmer - Dependency injection with React Context
React components are easily encapsulated. But since you don’t actually want to encapsulate everything, because that makes things terribly inflexible, we allow customisation via props.
Some of those props do something simple like set a string as visible text; but some do something complex with external dependencies, like retrieving data… and that’s dependency injection.
Formally dependency injection means giving an object its instance variables, which in React translates to giving a component its local variables. Which might look like this:
<Feed posts={fetchPublicPosts()}>
Not all props are dependencies, and not all dependencies are injected via props.
Since prop drilling was awful and broke encapsulation, React has ended up with Hooks. Erin walked us through the conceptual mapping of passing dependencies in the hooks era of React, and it turns out React Context is dependency injection.
So, as it turns out… we do a lot of dependency injection in React. For me a key moment from this talk was this quote:
“Dependency Injection” is a 25-dollar term for a 5-cent concept. - James Shore, Dependency Injection Demystified
Erin also walked through techniques to handle DI in testing; eg. to create context with an initial non-value like undefined or null, so it can be tested outside its usual wrapper/provider. There are also some libraries such as react-magentic-di.
Benjamin Wirtz - How to sell framework and architecture changes to the business
This talk was basically giving out cheat codes to engineers…
While engineers are usually pretty good at discussing tech with other engineers, we tend to be much less adept at selling this vision to non-technical stakeholders.
Also while it may not seem entirely fair, it’s easier for engineers to learn some business skills than it is to teach engineering to business people.
Benjamin talked about reframing examples away from engineering concerns that don’t motivate business stakeholders:
- “The previous engineers did a bad job” → It got us this far but it is misaligned with our new strategy
- “It’s more elegant” → We can build things faster
- “It’s old and we don’t want to touch it” → It will enable us to attract better engineers
- “It’s no longer supported” → Our security risk will increase if we don’t change
…and so on. He also broke down the common motivations beyond blunt revenue:
- Faster - development, hiring, onboarding
- Better - more robust, attracts talent, less risk, fewer bugs
- Cheaper - less maintenance and infra costs
He posed the question - how many people know the cost of one story point on the backlog? If not, why not? You can calculate it:
- 20 points per 10-day sprint
- 4 person team
- Average salary with on-costs $150k; with 220 working days/year you get a day rate of $682
So you can create a formula:
people * day rate * days / points
For the example 4 * $682 * 10 / 20 = $1,364. So one story point costs $1,364.
Now you can discuss changes with a rough cost - is this 10 point change worth $13,640? Is this 12-week project work the $163,920 investment?
You can also quantify ROI:
# hours saved
$ saved or made
% improvement
ROI = (benefit-cost)/cost
But beware the traps of ROI calculation, like comparing implementation cost vs. savings for a single year, when the savings will last the life of the change.
So a change that costs $163k and saves $141k/year will be a loss in the first year, but be a 59% positive ROI over three years.
Maria Farrell - Let’s rewild the internet
Maria Farrell bringing #webdirections Summit to a close
— Ben Buchanan (@200ok.bsky.social) November 28, 2024 at 4:26 PM
[image or embed]
Like many great closing keynotes, this was best experienced at the event.
To understand the concept and the story, read We Need To Rewild The Internet | Noema
Next
Nick Gruen - Awakening Our Better Angels
Nick introduced a video series he created to illustrate how the design of our institutions has been twisted by self-interest, so they are driven by our demons. But also how to design institutions for human beings, to awaken our better angels.
Many of our institutions are based on representative sampling - politics, justice, business… We hope and imagine them to be democratic, but often are not. Systems can be gamed.
Not all the videos are listed but here’s an intro…
Steve Baty and Martin Tomitsch - Life centred design
Life centred design is a shift way from human- or user-centred design, to a wider frame.
User-centred design focused on the intersection of human values, technological feasibility and business viability. Innovation required all three. While this often did work, it had a lot of blind spots.
Examples given:
- CPR training dummies all being male, despite half of humans usually having breasts. This leads to training that does not produce good results for women needing CPR.
- No/few requirements for female crash test dummies, let alone pregnant female crash test dummies - so they are 49% more likely to die in a car crash, because the testing simply doesn’t work.
We also started out with an idea of nature being abundant - that nature was essentially an empty world, there to be exploited. The impact of humans was expected to be minimal. Now we realise it’s a full world, and the impact of humans is very high.
Life centred design seeks responsible innovation, adding environmental & ethical values to the existing model of user-centred design. It moves humans out of the centre, to include all forms of life.
Example given: A building facade proposed for a NYC building, which provides a green outlook for people inside; but also a butterfly habitat on the outside.
Life centred design collective - lifecentereddesign.co
Steve and Martin proposed a framework, with three pillars:
- Networks
- Interventions
- Partnerships
Expanded system maps are particularly useful in this model.
Example: TikTok views in a cycle that feeds the algorithm, which gives satisfaction with the feed, which increases views and users. At a local level it makes sense for TikTok, the company.
Expanding the map to include social and environmental impact changes the calculations that seem reasonable. Contemporary technology is creating massive electricity use, we have server racks that use the same amount of power required to air condition 800 homes.
Beware of the cobra effect - where an attempted solution to a problem makes it worse, or creates a new problem. We need to design for the ‘long now’ not the ‘now’, long-term thinking not short term; and all living beings not just human beings.
The long now is the recognition that the precise moment you’re in grows out of the past and is a seed for the future. - Brian Eno
Their book: Designing Tomorrow
Mary Nolan - Nudges, behaviour change and complex systems
We can look back at theories over time leading up to Nudges:
- Bounded rationality (1957)
- Prospect Theory (1979)
- The Nudge Book (2008)
A nudge is a “behaviourally informed intervention”, usually made by changing the presentation of choices to an individual, that alters people’s behaviour in a predictable way.
Examples:
- The famous piano subway stairs that nudged people to walk instead of taking the escalator
- Including neighbour comparisons for power usage - noting it didn’t always work, people who used less power tended to start using more…
Nudges produce small to medium gains from very small investments. It’s become a very popular concept.
Criticisms and questions…
- the effects can be very small - valid, but over-stated
- i-frame vs s-frame - behavioural science focusing too much on the individual and neglecting the system; when the two naturally impact each other
So what’s next? There is growing interest in bringing behavioural science and systems analysis together. (Bescy)
Looking beyond choice architecture - Ruth Schmidt (2022) … a good example is that it’s no good nudging people to recycle when a working recycling system isn’t available to them.
Useful tool: COM-B and the behaviour change wheel
The overall thought here is that change won’t come from a single tool or idea, pay attention to the system.
Mark Pesce - And now for something completely human
I most certainly do :) #webdirections #webdirectionsnext
— Ben Buchanan (@200ok.bsky.social) November 29, 2024 at 10:29 AM
[image or embed]
Three simple - not easy! - three simple ways to plan for your longevity:
- Stay active
- Stay connected
- Stay contributing
The older you get the harder you have to work on keeping the body moving.
What moves you? In your heart, your gut, your head? What motivates you in this world?
If you don’t move you will start to rust.
Physical connection is better than virtual connection.
We need to connect with each other as often as possible. If we don’t, our social circles shrink and that kills us.
Contributing… what have we given? What are we giving? From what moves us and what we are connected with?
Giving is much better than receiving.
If you don’t give, you begin to rust.
The older you get the more you have to give, in every sense.
- Always be active
- Always be connected
- Always be contributing
Josh Clark - Sentient design
How can designers adapt to the current era of AI?
Demo: makereal.tldraw.com - take a quick, janky sketch, and it creates a prototype.
“The Pinocchio Design Pattern” - taking a low-fi design and create a hi-fi prototype. Similarly, Big Medium have a Figma plugin that takes a sketch then creates a mockup using the company’s actual design system.
However this is not a talk abou thow AI can code or design… this is about how we can make more meaningful, impactful experiences.
AI is making it fast to create artifacts, but the artifact is not the “what” or “why”? What happens when you weave intelligence into digital interfaces? How can it help make experiences, and not just stuff?
Interactions can move from relatively static experiences to richer, contextually-enhanced experiences. The system adapts to you, instead of making you adapt to the system.
Discovery has previously been through search or curation, now AI systems are manifesting the experience you want. (Demo of Claude creating and updating a game) …being careful to note manifesting is not the same as making.
Machine intelligence is our new design material. All design materials have their preferred modes of use, their own limits, strengths and weaknesses. Josh is referring to this as ‘sentient design’ - not just the tools but a philosophy of how to use them.
These new tools and tech enable radically adaptive experiences, but we are just beginning to find the edges of them or work out best practices for using them. They are weird! It takes work.
Demo: using Gemini to plan a child’s party - it produces an interactive UI on the fly… it has its own design system to enhance the results; and you can inspect the logical steps the tool is taking to produce it. Or, you can just use the main UI to get the task done.
We can use LLMs to understand intent, collect information, generate more questions to ask and ideas to explore. It is tricky as you have to be careful not to blindly trust it for facts. But their ability to generate rich interactive results means design and design systems remain extremely relevant - bringing patterns into unknown and uncontrolled content streams.
(Aside: all the power of LLMs and we end up straight back at jquery carousels…!)
The point is not that LLMs can code, the point is they are amazing chameleons. They can take symbols and rapidly work with them.
LLMs are master bullshitters! They don’t know or understand anything, but they can confidently spew back ideas and take on roles very easily. It gets it right most of the time, but that makes it harder to catch and deal with the mistakes.
So don’t let them fly planes or do surgery. Use them to explore ideas and generate new questions. But always remember that they don’t know or understand anything.
tiktok: teddywang86 - ChatGPT, show me a bowl of ramen (CW: kind of intense 😂)
Machine generated results are signals, not facts. LLMs are not answer machines, they are dream machines. How can we treat this as a feature, not a bug…? How can we embrace their weirdness as an asset, not a liability?
The LLM is your charming MC. Use them as a face for your system, but not as a complete solution.
What becomes possible when you can liberate content or data from its current form?
LLMs can liberate all the content we’ve locked away in PDFs. eg. NotebookLM generating faux podcast discussion off PDFs (which is neat if you like the style of American podcasts…).
Focus on the experience, not the artifact. The outcome, not the output.
(had to step out for a minute so not a complete set of notes)
LLMs are extremely powerful, but also very flawed. There is no happy path with no downsides or risks. We have to design for failure and uncertainty, we have to build in guardrails.
Set expectations and channel behaviour in a way that matches system ability. Use defensive design.
Sentient design isn’t really about AI. It’s about the problems we’re trying to solve and how this new material can help.
This is just software. It’s just another tool in the kit. It’s not magic, it has strengths and weaknesses. What new problems can they solve? …and at what cost?
The future should not be self-driving. We need to decide how to use this technology. We can shape it.
Jack Zhao - Beyond the noise: data visualation’s role in shaping tomorrow
Dataviz has evolved over time. It has a very long history, starting from early but limited examples like the cholera map; to the current day when it’s almost an art form… but also a very commonplace tool at the same time.
We have a tremendous volume of data avaiable in the world, and it doubles every two years (according to a Forbes estimate). The tools have evolved over time as well, it’s easier than ever to create data visualisations. It’s no longer a niche skill either.
The tooling has improved but also aligned a lot - eg. Figma has replaced a lot of other tools, and LLM-powered tools has changed the developer experience.
How to cut through all the options and create great dataviz?
- stop designing for the average person or generic questions - design for a specific audience, dig into niche topics. This takes you away from passive consumption to proactive storytelling; and avoids attempts to create generalised solutions that tell multiple stories.
- recruit beyond data capabilities - build a diverse, multidisciplinary team. Don’t just hire technicians, hire communicators. Move from T-shaped skillsets to M-shaped skillsets, with more than one area of expertise.
- materialise all your ideas with new tech. AI being an obvious example, use tech to get results faster and extend human capability. Don’t be resistant to change. You don’t have to build an assembly line, you can be a microfactory creating small, nimble things.
Joan Westenberg - Why we need fiction
Talking about fiction is getting harder as we find it harder to work out what’s fact and fiction.
What is truth? We are living in the post-truth world, where it doesn’t matter what’s true any more.
Facts are boring, stories are exciting - and that’s why the Republicans beat the Democrats in the US election. They had a big exciting story with big exciting villains, against the Democrats who had… facts. Which are boring.
Humans came up with stories to share information. “Don’t go in the forest, there are bears” is boring, but a Grimm Fairy Tale about monsters in the forest is exciting.
So we have cultural technical debt - stories that don’t make sense any more. We destroyed the forest, so where does that leave the stories about it? These narratives are now “once upon a time”.
So we have facts, and a threat for them to be supplanted by stories. Where does fiction enter this picture?
We still love stories. We still enjoy them. We have to assign some value to fiction. We can’t abandon fiction, just because facts are important.
In a time when stories beat facts, you have to fight back by telling better stories.
Fiction matters because otherwise we end up in a dystopia. We have to remember what makes us human, and stories are how we remember what it means to be human.
Truth is under attack. Fiction isn’t true but it still matters. We need to think about this stuff or we’re fucked.
Jon Bradshaw - A $700b delusion
We have a $700b marketing tech industry running on the idea that data-driven advertising……works. But does it?
First - what is it? Advertising is basically trying to link people who sell stuff to people who want to buy that stuff. Data driven advertising is the kind that dominates the web, trying to use user attributes/data to match up display advertising.
We may not like it but this is how a lot of industries make their money - news/journalism relies on it, google’s revenue is mostly from ads, and so on.
But only 36% of the money spent actually makes an impression. A very old quote:
Half of the money I spend on advertising is wasted; the trouble is, I don’t know which half. - John Wanamaker (maybe)
The dream is to find the ‘right person’, at the ‘right time’, and send them the ‘right message’.
But this dream might be a nightmare. It’s not simple, it’s extremely expensive, it doesn’t work that well, and the data it’s all based on is terrible.
The data doesn’t accurately identify who the person is, nor if they are in the right moment to buy something… and then you still have to do a good job of creating an effective message.
A classic problem is right after you buy something, you get bombarded with ads for the thing you have already bought. But the cost of getting that right is high, and there is no great requirement to get more efficient.
It’s not ‘incremental’ - in advertising terms, does the spend result in people buying something who weren’t going to buy it anyway. Classic problem is giving 20% off to someone who was going to buy the item anyway - it’s just giving ‘money off vouchers’.
And the data is bad. Really really bad. The same person will be mis-identified wildly - age, gender, income, life stage… at worst they will be in so many supposed segments, the ad broker can sell that person to basically everyone as an ad target. So the ad broker makes money from selling bad data.
Much of it is no more effective than random sampling. In other words, guessing works as well or better.
So what’s next? Can this be fixed? We’ve put the cart before the horse… we have to design technology that solves real advertising problems, not invent advertising problems that match what technology can do.
Go back to simpler methods: go where people are already, don’t try to find them in a random sample; and fit the message to the medium. Simplify when they’re ready to buy, inform when they are looking for info, and entertain when they’re not interested.
So is big brother really watching you? Maybe, but if he is then he’s not paying attention.
Jon Bell - The future of social media
Jon is not naturally optimistic and he’s not talking about empty optimism… he’s talking about data, and things that are already happening.
Broadly he sees a failure of imagination.
Metaphor 1 for a new social network - putting cars on roads. Email is an open protocol, any car can drive on a decent road. Services like Twitter are not like that, you’re restricted to one road.
Metaphor 2 - water filters. Filter out the bad stuff. This is what Twitter was trying to do up to 2017… and now does not do.
Currently social media is weird because it makes it really hard to search for people. You can’t block people by profile either.
Also the algorithms are really stupid. They mostly know about ‘engagement’ which is essentially just a new version of page hits. They should be smarter, they should be able to work out who is saying what; and let you filter according to obvious rage bait.
There should be algorithm settings in your apps, like any other setting. You should be able to remove the irrelevant crap that follows you forever after you bought one thing that one time years ago. Even better there should be a chatbot that helps you fix your settings.
Aggregation should be smarter. You should be able to filter on a per-account basis, for those people where you are interested in one of their five side projects and don’t need to see everything else they post.
Is any of this even possible?
There is a firm belief that billionaires want to keep us all angry, because it’s great for engagement. But it’s not really true, anger creates burnout and people leave. So they do want engagement, but they don’t really want us to be angry.
So yes this is all possible.
We have a transition period when things change. Like the brief period where TV was cameras pointed at radio stars, which didn’t work. TV worked when people used it properly. Social media is in the radio-on-TV moment.
Jon ran through a hypothetical build where content labelling is done strongly, driving a better result for users.
Alex Lakatos - Interledger
See my notes from Alex’s talk at Summit
Rupert Manfredi - Web applets (lightning talk)
Apps today are dumb and disconnected. Rupert believes the future is more like a shared, intelligent software environment.
A fundamental building block of that is a new prototocol: web-applets, an open protocol for making AI apps.
Mel Flanagan - Nook (lightning talk)
Mel talked about some advocacy and transparency projects by Nook Studios:
- makingopen.org is a platform to connect a global network of advocates and changemakers using visual design and stories.
- There is also a content design kit - Make Paths, Make Platform.
For more see nookstudios.com
Maria Farrell - Let’s rewild the internet
Like many great closing keynotes, this was best experienced at the event.
To understand the concept and the story, read We Need To Rewild The Internet | Noema
See also






