That Viral Photo of San Francisco NIMBYs Shows Why Housing Is Winning
YIMBY In Practice
SubscribeSign in
That Viral Photo of San Francisco NIMBYs Shows Why Housing Is Winning<br>Hot take: The opposition to the Marina Safeway project shows everything that is right about housing in San Francisco.
Laura Foote<br>Jul 31, 2026
Share
You probably saw that viral picture from San Francisco Chronicle reporter Laura Waxmann showing a room full of people opposed to the construction of 848 new apartments on the site of a Safeway supermarket in San Francisco’s Marina District.
Source: Instagram<br>The reason that photo gained 10 million views isn’t hard to understand — it’s a perfect illustration of something we at YIMBY Action deal with all the time. Older, whiter, wealthier residents dominate public meetings, especially about proposals for new homes are in their backyards, a phenomenon well documented in books like Neighborhood Defenders.<br>The standard take on the internet seems to be “look how terrible everything still is and doesn’t San Francisco suck”. Even after all the work we’ve done and all the laws we’ve changed, it’s still the same NIMBYs showing up to kill housing. And I get that. After all, this photo was taken in Santa Ana in 2014, and you can’t tell me it’s not the same photo.
I don’t want to beat up on old people — wisdom and age go together — but opponents of new housing often skew closer to Mitch McConnell than they do AOC.1 One of YIMBYism’s big ideas is that for decades we have mistakenly prioritized the people in those photos instead of literally everyone else.<br>But there is a key thing that people keep missing about this photo of the Marina opponents. It was NOT taken at an official public hearing. No government agency is (officially) listening to these people! This picture is, in fact, a picture of people realizing they do not have the platform and power they once did. Thanks to California laws like AB 2011, SB 330, and the Density Bonus, this proposal is real and these people will not get the veto they are accustomed to over the Marina Safeway project.<br>You can see on their faces how well they are taking that — which is to say, not well at all. They wear the expressions of people who are used to getting what they want, and are angry that things may not work that way anymore.<br>On August 12, the San Francisco Planning Department will have to decide if that’s true. That’s the deadline for the department to determine whether the Safeway project qualifies for streamlining under AB 2011.<br>The law is clear, and this is supposed to be a non-political decision. But the pressure is coming anyway: NIMBYs wrote a legally dubious letter, and the Marina District’s supervisor pledged to fight this “so-called project”2 before putting his name on that absurd NIMBY plea.3 Meanwhile Mayor Daniel Lurie — boss of the department that is supposed to approve it — remains opposed. The mayor and the supervisor are taking those positions in no small part because every single person in that photo is someone capable of hosting a house party for an elected official — they all have time, energy, money, and access that, for instance, a young person in the Bayview might not have.
html, body {<br>margin: 0;<br>padding: 0;<br>overflow: hidden;<br>background: transparent;
.instagram-media {<br>margin: 1px auto 0 !important;
(function() {<br>const postHeight = () => {<br>const doc = document.documentElement;<br>const height = Math.max(<br>document.body ? document.body.scrollHeight : 0,<br>document.body ? document.body.offsetHeight : 0,<br>doc ? doc.scrollHeight : 0,<br>doc ? doc.offsetHeight : 0<br>);<br>if (height > 0) {<br>parent.postMessage({ type: 'substack-instagram-embed-resize', height }, '*');<br>};<br>const scheduleMeasure = () => {<br>window.requestAnimationFrame(() => { window.setTimeout(postHeight, 50); });<br>};<br>window.addEventListener('load', scheduleMeasure);<br>window.setTimeout(scheduleMeasure, 250);<br>window.setTimeout(scheduleMeasure, 1000);<br>const root = document.documentElement || document.body;<br>if (root && typeof MutationObserver !== 'undefined') {<br>const observer = new MutationObserver(scheduleMeasure);<br>observer.observe(root, { attributes: true, childList: true, subtree: true, characterData: true });<br>if (document.body && typeof ResizeObserver !== 'undefined') {<br>new ResizeObserver(scheduleMeasure).observe(document.body);<br>})();
" title="Instagram post" frameborder="0" scrolling="no" allowFullScreen allow="encrypted-media" sandbox="allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox" style="height:520px;width:100%;border:0px;display:block;background:transparent;" loading="lazy" class="instagram-embed-frame">On the other hand, there is (finally) a loud, visible, vocal group of pro-housing voters. YIMBYs have got some excellent quotes in the papers and online.4 There’s even some polling that indicates the project is popular, as housing tends to be. And YIMBY Law has sent the city a formal letter reminding them that we will, in fact, sue if they pull some...