Eat what you cook
eat what you cook is a metaphor for the IndieWeb principle “use what you make”, encouraging creators to use what they create, in particular on their personal website. Whether code, UX, design, or content, there is also an aspect of depending on your creations personally yourself, beyond just testing a project you’re working on.
On the IndieWeb, “eat what you cook” means using your creations on your personal site as an aspect of your primary online identity, day to day.
Build what you need. Use what you build.John Seely Brown quoted at eLearning 2015
Metaphorically speaking, a person's ideas must be the building he lives in - otherwise there is something terribly wrong. Søren Kierkegaard, introduction to Provocations
Get started faster. What do you really need? When you eat what you cook, you better understand what you really need rather than just what you think you need.
- By building what you need, it constrains what you think you need with the practical limits of time, ability, and cost, thus forcing you to come up with a more efficient design than you likely thought you needed originally.
Prioritization. Fix more important problems first. When you eat what you cook, you empathize as a user and fix the important problems first.
- By using what you build, you see and feel the impact of problems in what you have built, and in particular feel the difference between minor problems and major problems, thus helping you prioritize fixing the more important problems.
Faster iteration. Fix the more important problems faster. Eating what you cook helps motivate you to fix the important problems faster.
- By using what you build as your personal identity on the public web, when there are visible problems, you will feel self-conscious about it, and strongly motivated to fix them quickly.
If you don't build it, you're just talking theory.
- If you design/architect etc. without building, you'll likely come up with ever higher level abstractions, AKA the architecture astronomy anti-pattern. That being said, it's helpful to publicly brainstorm what you're thinking of building because others can review, provide feedback, help you simplify, etc.
If not you, then who? [should bother using your stuff]
- If you're not willing to use your creation on your own primary personal website, why should anyone else use it on their primary personal website?
Creations tend to break (stay broken), when their creators don't use them.
- In general it is a good idea to use code that the author is using themselves. Those are less likely to be broken.
Eating what you cook, has several required components, one of which is actually eating (using the thing), but the other is the essential you cook part of eat what you cook:
- active creation - whether code, UX, interactive/visual/graphic design, being an active creator
- use of what you create (e.g. by your company, on your company's site, your club's site, etc.)
- personal - use of that creation - you yourself personally using your creation for your own personal uses - it's not (just) a job use (i.e. that you can shut off when you go home), it's a personal use.
- identity - use of that creation in what you identify as your self. The act of creation alters an aspect of the public "self" of the creator. On the web, this means use of that creation actively on your personal website that you primarily use to identify yourself to others. I.e. not on a test site, nor a hobby site, nor an occasional use site, but your primary personal site and thus as part of your primary identity on the web.
In rough order of when IndieWeb community members started eating their own cooking of at least some part of what they build, using their own primary web identity presence with their own domain.
- He often deploys and tests CASSIS updates on his own site as a final live test before committing them to the cassis github repo, figuring if its going to break in production, he'd rather it break first on his site, than someone else's site who is depending on CASSIS.
Dmitri Shuralyov eats his own cooking with his issue tracker on his personal website. He uses it as the canonical issue tracker for the issue tracker itself, as well as to drive his blog (source), and a list of idiomatic Go suggestions (source).
capjamesg eats his own cooking by:
- Using a webmention endpoint he built to accept all incoming webmentions.
- Using his Micropub client to post content to his site.
- Using the IndieWeb Search engine he is building to answer questions he has about the IndieWeb.
- add yourself...
- Beware of this trap: "only the people who wrote it can reliably use it" that OpenID fell into per this twitter thread
- 2010-07-22 http://www.w3.org/2005/Incubator/federatedsocialweb/wiki/Throwdown
- "Is its creator living and breathing it in his day-to-day online life? If so, awesome, if not, yawn." - Tantek 2013-01-03 11:05 (PST) (originally posted as a comment on a Google+ post).
- "if web software creators themselves don't have a personal domain they use on the web then the web software is categorically untrustworthy." (speaking to the unfortunate demise of Open Photo, e.g. on Barnaby's site, and the screenshots on there that he'd linked to from patterns/note-list#Documented_Examples & patterns/note#Documented_Examples) Tantek Çelik 2014-05-12 in IRC
- If I make software for [someone else], am I ever going to rely on it? Unlikely
If I make software which solves my own problems in a useful way, might others find it useful? Much more likely. - Barnaby Walters (2013-08-21 in iRC)
- I have a higher tolerance for my own stupidly designed interfaces than [another person] would, but at some point I'm going to get frustrated by inefficiencies in my interface and make it better for me, which then makes it better for everyone. - Aaron Parecki (2013-08-21 in IRC)
- "“Solving only your specific problems will result in lighter, easier-to-understand code.” @rachelandrew #aeasf" @zeldman October 30, 2017
- " And this is why we (here) have the principle / pressure of eat what you cook, because it focuses on the need (to eat!) rather than the process of spending hours cooking, and never eating" from tantek in chat (https://chat.indieweb.org/dev/2021-09-16#t1631815786178300).
- capjamesg responded: That's the reason I came to the IndieWeb. I have never felt I had to do anything from scratch to particulate [sic]. And so I felt a whole lot more welcomed!"
"Eat what you cook" was deliberately chosen by the community among a few proposals to supersede selfdogfooding due to various problematic aspects of dogfood as a metaphor.
- See discussion in selfdogfood#eat_your_cooking and consider incorporating into this section
- Kevin Marks: http://known.kevinmarks.com/2018/the-problem-with-self-dogfooding-was-summed-up-by-shaw-do The problem with self-dogfooding was summed up by Shaw: “Do not do unto others as you would that they should do unto you. Their tastes may not be the same.” #indieweb]
- Kevin Marks: Renaming selfdogfooding to "eat what you cook" #indieweb
- cook what you want (formerly scratch_your_own_itch#Cook_What_You_Want)
- use what you make
- Variant: #UseYourApps as a counterpart to #OwnYourData, trying to capture same snappyness and length
- An app can be a home-cooked meal by Robin Sloan: "I am the programming equivalent of a home cook. […] This messaging app I built for, and with, my family, it won’t change unless we want it to change. There will be no sudden redesign, no flood of ads, no pivot to chase a userbase inscrutable to us. It might go away at some point, but that will be our decision. What is this feeling? Independence? Security? Sovereignty?"