Home

shipped a feature this morning that a customer requested 14 months ago.

they replied: "nice, what else can you do"

the indie hacker's curse.

gm to everyone except the person who scheduled a 4pm friday meeting

we shipped shared cursors today.

you can see your teammates move around a file in real time now, and yes, we made the cursors have names because otherwise you all had blank ghosts flying around and it was cursed.

the difference between a good product designer and a great one is how many of their own "clever ideas" they delete before shipping.

wife said we need a "budget" and "a plan" and "to stop buying grills"

i have grilled every meal this week including cereal

SCOOP: The FTC is preparing a lawsuit against a major AI lab over training data, according to three people familiar with the matter. Filing could come as soon as next week.

Story ↓

reporting on the FTC story above — a few things worth flagging:

1/ this has been building since spring. the agency's been quietly interviewing former employees for months.

postmortem culture is easy to fake. you can have a template, a meeting, a doc. but if your engineers don't feel safe saying "i missed it, here's why" you don't have a postmortem culture, you have a paperwork culture.

hot take on hiring:

the best signal in a technical interview isn't whether they solve the problem.

it's what they do in the first 90 seconds when they don't yet know how.

him: what are you thinking about me: how the em-dash discourse ended up in my group chat again

we're releasing a new open-weights model today.

- 20B params - 128k context - runs on a single H100 - non-commercial license (research + personal)

weights, evals, and inference code all in the repo. link in reply.

a 20B open-weights model that fits on a single H100 is a genuinely big deal for the local eval crowd.

not for prod. but for research pipelines? massive unlock.

Tessa@tessa_ai·42m
we're releasing a new open-weights model today. - 20B params - 128k context - runs on a single H100 - non-commercial license (research + personal) weights, evals, and inference code all in the repo. link in reply.

the interesting question about the Tessa release isn't the model. it's the license.

"non-commercial" doing a lot of work here. and it's the third lab in a row to walk back the open-weights framing.

spent 3 hours debugging a test. turns out it was passing. i was reading the wrong terminal.

finished the bakery identity today.

the logo is a wheat sheaf that also reads as a hand kneading dough. took me 40 sketches to find and 2 minutes to explain in the meeting.

that's usually the ratio.

type crime of the day: 4 different fonts on one bus stop poster. one of them was Papyrus. i am going home to cry.

meet Biscuit. Biscuit is a very good boy who has been waiting at this door for 45 minutes because he heard the fridge open once. 10/10, please give Biscuit a snack.

if your pasta water isn't as salty as the sea, we cannot be friends. i don't make the rules. actually i do. these are the rules.

the tomatoes are in. the deer know the tomatoes are in. it is now a war of attrition. i have chosen violence (netting).

the yield curve is not a crystal ball. it is a mirror. it shows you what the bond market has already agreed to be afraid of.

board meeting went great. by "great" i mean nobody threw anything and one person said "interesting" instead of "concerning." upgraded.

PM tip: the answer to "what should we build" is almost never a feature. it's usually a clearer definition of who you're building for.

narrow the audience, and the roadmap draws itself.

read a fantastic essay this morning on why most product frameworks fail. tl;dr: they replace thinking with vocabulary. sharing in this week's issue.

we shipped one of the most-requested features today: keyboard shortcuts for every action, everywhere.

press ? in the app to see them all.

special thanks to the 400+ people who filed the same feature request over 3 years. you were right. we were slow. we're sorry.

MARKETS: The S&P 500 closed at a record high for the fourth consecutive session, led by a broad rally in industrials and financials.

just saw the new Denis Villeneuve. 168 minutes. every single one of them earned. i sat in the parking lot for 20 minutes afterwards. this is my only review.

the top 10 songs on the Billboard Hot 100 this week feature exactly 0 guitars. this isn't a good or bad thing. it's just a thing. i wanted you to know the thing.

if your team is losing by 21 at halftime and you're still watching, you are the demographic every ad is priced for. congratulations, and i'm sorry.

the 4th grade parent group chat has 812 unread messages and i refuse. absolutely refuse. i am declaring bankruptcy on this chat and if it's important someone will email me.

day 61 of the search. 218 applications. 14 first-round calls. 2 offers, both retracted at the last minute due to "budget freezes."

the job market is not a meritocracy. it is a lottery with a resume.

we shipped a small thing today that we're going to make a big deal about:

snooze now actually snoozes.

it doesn't send you a notification. it doesn't put a badge on the icon. it doesn't make the email "pulse." it just... snoozes. see you at 9am.

PORTLAND: The city council voted 4-1 last night to approve the expansion of the bike lane network on SE Division. Full breakdown of what changes and when at portlandpulse.co.

quiet product update: performance reviews now support async 360s.

you write it once, your team fills in their part, and the whole thing lands in the review in a format your manager can actually use.

details in the changelog.

the ethiopia yirgacheffe just landed. floral, tea-like, lemon peel finish, and dangerously easy to over-brew. we ground a sample and stared at it lovingly for 40 minutes. bags on the site now.

we've noticed something: solo founders who ship in the first 30 days of an idea have a 3x higher chance of getting to $10k MRR than solo founders who "plan carefully."

don't overfit on this. but also don't ignore it.

when a client says "make it pop" they don't mean saturation. they mean confidence. add contrast, remove elements, make the type work harder. "pop" is almost always a subtraction.

the phishing email that got them was 3 typos and a subject line of "urgent". we're not being outsmarted, we're just tired.

$8k MRR update, unedited:

- support tickets: down - new signups: flat - refund requests: 2 (both my fault, both fixed) - days spent on marketing this week: 0 - days spent on marketing this month: 0

something has to give.

if your onboarding has 6 steps, your product has 6 problems.

the only two acceptable email closings in 2026:

1. "thanks" 2. nothing

The tech industry has quietly built a $4 billion market for AI-generated stock photography, and nobody has asked the models where their training data came from.

Our investigation ↓

reporting for the above piece was 4 months of asking every stock photo agency the same question and getting the same non-answer.

first three paragraphs are free. rest is behind the paywall. journalism costs money etc etc.

how it started: "i'll just add one small feature to the internal tool"

how it's going: i am rewriting the internal tool

"can you jump on a call" is 2026 shorthand for "i don't want to write this down because if i write it down i'll realize i don't have a plan."

not always. but often. keep receipts.

the emotional labor of pretending i haven't already read the article you're about to send me

kid: dad can i have a cookie me: what did mom say kid: she said ask dad me: what did dad say kid: [long pause] ...you are dad me: [long pause] ...you can have a cookie

small thing: you can now paste a screenshot directly onto a canvas and it just... becomes editable layers.

not a linked image. actual editable layers.

try it. it feels illegal.

the AI eng landscape at the end of 2026 is going to look wildly different from the start. i'll bet on:

- agents as libraries, not products - eval-first workflows in every serious shop - "prompt engineering" as a job title dies, prompt engineering as a skill everywhere

brand systems fail the moment the founder is no longer the one applying them. everything else — the type, the color, the grid — is downstream of that one problem.

spent the morning drawing a lowercase g. it's not going well. i chose this life.

found a hornworm on the tomato plants. big enough to name. did not name it. relocated it (violently) to a bush 30 feet away. we are not friends now.

the correct way to store fresh basil is: not in the fridge. i will die on this hill. i have died on this hill several times. i live in the hill.

the school sent home a form that says "please sign and return" and does not say what it is. i am not signing that. i've watched enough documentaries.

hot take: the best scene in Interstellar isn't the docking scene. it's the corn field burning in the background of a two-shot nobody talks about. cinematography is world-building.

we ranked every Grammy Album of the Year winner since 2000. the results are, and i cannot stress this enough, controversial. thread incoming, prepare your grievances.

commentator: "they need to want it more"

the other team, who has been playing football for their entire lives and is currently at the highest level of the sport: yes we hadn't considered that

central banks have two speeds: too slow and too fast. we are currently at "too slow." it will pivot to "too fast" without warning and then a lot of people will be very upset.

OPINION: The four-day workweek isn't a productivity experiment anymore. It's a labor negotiation dressed up as one. Read it here.

for the record, i'm not the one who wrote the op-ed above. news and opinion are separate desks here. i just want to make sure the group chat knows.

when i was raising the seed round i had a rule: at the end of every pitch, i asked myself "would i work here?"

by month 3 the answer was no. we cut the round in half and shipped instead. best decision of the company.

if you build a product for the customer you have, you get incremental. if you build for the customer you want, you either get a leap or you get nothing. pick your appetite for risk carefully.

you don't need a strategy doc. you need a page of prose that a smart new hire could read and immediately know what to say yes to and what to say no to. if your "strategy" doesn't do that, it's a wish list.

the best product managers i've ever worked with have one thing in common: they can hold two conflicting truths at once without needing to resolve them yet.

code review: "nit: extra blank line at the end of the file"

reviewer, that blank line was intentional. that blank line was a boundary. that blank line was for me. give it back.

designers, please: if the label is "remove" the button color is not red. red is for consequential and irreversible. everything else is a normal button. save the alarm bells for actual alarms.

the shared cursors thing is having a moment. we didn't expect this to be the headline feature. we expected the new export flow to be the headline. as usual, the users are correct and we are wrong.

quiet client win of the week: we convinced a series-b startup to remove the words "AI-powered" from the top of their landing page. now it's just... what the product does. crazy.

meet Waffles. Waffles found a stick that was, and this is important, too long. we do not know how Waffles feels about this. Waffles is not talking. 12/10.

cafe hours this weekend: 7-3 sat, 8-2 sun. the summer blend is on the espresso bar. the truck is at the eastside farmers' market. we love you.

we invest in solo founders who talk to their customers weekly. yes, that's really the whole thesis. the rest is scaffolding.

hiring update: we have 7 open eng roles, 3 design, and 2 pm. all are remote-first, all are posted with salary bands. lattice.com/careers.

BREAKING: A federal judge has blocked the enforcement of the state law requiring social media platforms to verify user ages, pending a full hearing.

on the age-verification block: what this means practically, and what happens next, from our tech policy desk. 4 min read.

PORTLAND: The Rose Festival attendance figures are in. Highest turnout in a decade. Local businesses reporting best week of the year. Slideshow at portlandpulse.co.

you don't need a stand mixer. you don't need a food processor. you don't need a sous vide. what you need is to actually cook something twice a week for a year. that's the equipment.

bought a new pair of pruning shears at 7am because the old ones made me curse at a rose bush. investment: $34. peace: priceless.

friend: what do you do for fun me: [scroll through 8 apps] uhh nothing. actually nothing. we need to reconsider fun.

the year is 2026. the meetings are still called "quick syncs."

car mechanic: it's the transmission me: [nods, has no idea what a transmission is] mechanic: it'll be $4200 me: [nods, has no idea if that's fair] mechanic: also your brakes are fine me: [begins to weep]

wrote the medium post about the raise. deleted it. wrote a shorter one. deleted it. tweeted one line and it did better than both. medium is over. long live one line.

the fed funds rate isn't a light switch. it's a slow dimmer with a 6-month delay and a broken bulb. that's the technical explanation. this tweet is not investment advice.

the difference between a demo and a product is the amount of state you have to correctly reason about. demos have none. products have all of it.

reporter's notebook: 3 things that came up in every interview i did this week about AI in the workplace:

1. "nobody in leadership knows what to do" 2. "we're all just trying it in secret" 3. "the trainings are a joke"

the number of albums released this year that are structured as one continuous 45-minute track is now 14. this is a genre. we should name it. suggestions below.

no film in the last 5 years has recovered from being called "a24-coded" in a trailer reaction. we did this. all of us.

the ref who called that has never touched grass. that's not a metaphor. i mean it literally. he lives indoors.

unpopular indie hacker take:

you don't need a co-founder. you need one to two customers who will tell you the truth. those are much harder to find and much more useful to keep.

email is a tool, not a lifestyle. if you're checking it before you drink water, you have made an error and only you can fix it.

the sla for a difficult one-on-one is: right now. not "let me think about it." not "let's discuss it next week." you go find them, and you say the hard thing while it's still small.

typescript: "you might have a null here" me: "okay ill add a check" typescript: "actually you fixed it, nice, but now this other place has a null" me: "okay ill add a check" typescript: "actually—"

you can tell a lot about a company's health by whether the designers have working prototypes or 40-slide decks.

logos are 5% of a brand. the other 95% is what happens when the logo isn't in the room.

Amy@amy·13h

just watched a grown adult tell me their password rotates between three variants of their dog's name. reader, we found the dog on facebook in 4 minutes.

the lowercase g is done. it is a real letter now. it has feelings. we will not speak of the 4 hours we spent together.

clients pay for two things: the work, and the peace of mind that the work will happen. underpricing the second is why studios burn out.

we're hiring: senior product designer, canvas team.

fully remote (americas + europe), salary bands posted, 4-day workweek.

apply → openframe.app/careers

quick note on the release: yes the license is more restrictive than the last one. no we're not thrilled about it either. long thread from our head of research tomorrow.

The number of "open weights" AI models with commercial-use restrictions has doubled every 6 months for the past year. Our chart of the day tells the whole story.

asked five AI lab CEOs the same question this week: "what does open mean to you now." got five completely different answers. that is the story.

interview feedback from today: "you were great but we're pausing the role." this is my 4th "paused role" this month. is anyone hiring or is everyone just pretending

the snooze thing is having a moment and we love it. what's really happening: we finally stopped optimizing for engagement metrics and started optimizing for the ability to close the app and forget about it.

our onboarding was 7 steps. this week we cut it to 3. new user activation up 40%. sometimes the best feature you can ship is a feature you delete.

we're launching a small program for solo founders: $50k, 6 months of no meetings, one office hour a month. no board seat, no info rights, no theatre.

applications open next week. link soon.

kid: what's a mortgage me: it's when you buy a house and the bank keeps some of it kid: how much me: most of it, for a long time kid: for how long me: [staring into the middle distance] forever, buddy. forever.

school just sent an email at 10:57pm titled "important: please read" and if you think i am opening that before morning you are wildly optimistic about my mental state

the ipad is a beautiful device that we have collectively agreed to only use for one (1) thing per person

no i will not "just use the food processor." the food processor lives in the top cabinet. the top cabinet is above the fridge. we do not speak of the top cabinet. we chop by hand. we suffer.

my neighbor asked if she could "pop by for basil" and now i am cutting the entire plant to protect the future of basil. sorry, basil. this is on her.

meet Onion. Onion is not named after the vegetable. Onion is named because she has layers. we did not ask. we do not need to. 11/10.

reminder: coffee will taste better tomorrow if you grind it tomorrow. this is not a controversial opinion. it is science and we are tired.

PORTLAND: Lightning storm expected tonight, 10pm-2am. National Weather Service advising caution. Updates as we get them.

WORLD: A leaked internal memo from a major automaker suggests the company is quietly winding down its EV division after two consecutive quarters of losses.

The EV memo above matches what our sources have been describing for weeks. Our full breakdown is a lot less dramatic than the leak. Explainer at theledger.press.

the framing of "quietly winding down" is doing all the work in that memo story. what actually happened is more boring and more consequential. worth reading past the headline.

watched a 1972 italian film with no subtitles last night on principle. i understood 8% of it. it might be the best film i've seen this year. the brain fills in the rest.

the artist of the year according to streaming numbers is not the artist of the year according to critics is not the artist of the year according to my group chat. we can hold all three.

the coach after a 30-point loss: "we just weren't ready" the team, whose entire job for the last month was to be ready: :)

i have decided to make an album. it will be one note held for 40 minutes. it will be my best work. i cannot fail because you cannot judge one note.

10y up 4bps on the day. this is fine. everything is fine. i am fine. please stop asking.

founders: your first support hire is not a fancy position. it is the most important product decision you'll make in year 2. hire the person who will care more about your customers than you do, and then get out of their way.

when a metric goes up 40% overnight, the correct first question isn't "what did we ship." it's "what did we break."

the top 5 product mistakes i see week after week:

1. building for yourself 2. mistaking noise for signal 3. copying what worked at a bigger company 4. shipping features to satisfy the loudest customer 5. mistaking meetings for progress

no hot takes here. just the classics.

the codebase i inherited has a function called `finalDoNotDelete_v2_realOneNew`. it is not called anywhere. i am afraid to delete it. i am also afraid to not delete it.

"can you make it more premium" usually means "add more whitespace and reduce the number of choices." not always, but almost always.

the number of times i've been asked to "make the logo bigger" and the number of times the actual issue was hierarchy elsewhere on the page: identical.

"why do you use so many fonts"

because i haven't found the one yet. keep looking. it's part of the job.

small brag: our team is now 40 people and we have shipped 3 major features this quarter without a single all-hands about "velocity." it turns out you can just... build.

the new activity feed is live for everyone. we removed the notifications badge. we removed the little red dot. we removed the sound. we removed everything except the actual list. we're not going back.

we are a small team and we are very tired but the mail is very good. that's it. that's the tweet.

one thing we've learned running perf reviews for a lot of companies: the ones that work aren't the ones with the best process. they're the ones where managers actually give feedback the other 51 weeks of the year.

we don't invest in "markets." we invest in specific people who have earned the right to have an opinion about a specific problem. the market map is a fig leaf. the opinion is the asset.

the difference between a client and a partnership is who feels bad when the project falls behind. if it's just you, it's not a partnership.

Amy@amy·19h

everyone thinks a data breach is going to look like the matrix. no babe. it's gonna look like susan from accounts opening an invoice pdf on a tuesday morning.

OPINION: The best regulation is often the one that is threatened but never passed. This week's example is a case study.

the AI regulation conversation in DC this week vs the AI regulation conversation in brussels: two different planets. both cities think they're leading. neither is wrong exactly.

TECH: Apple has announced a new privacy feature for iOS 20 that will let users see, in a single screen, every app that requested any permission in the past 30 days.

on the ios 20 privacy screen: this is the kind of feature that sounds boring and small, and quietly matters more than 5 press releases from other companies combined.

PORTLAND: Small business grants applications open monday. up to $10k per business. details and eligibility on the city site.

meet Rio. Rio has one blue eye and one brown eye and both of them are looking directly into your soul. Rio does not blink first. Rio has never blinked first. 13/10.

an update on the basil situation: neighbor has moved on to zucchini requests. i have three zucchini plants. i cannot give her one because then it will be baby cucumbers next week. we do not negotiate with escalation.

cooking a whole chicken tonight. simple: salt, butter, thyme, an hour at 425. i do not need a recipe. i have not needed a recipe for 20 years. and yet i am currently googling "whole chicken temperature."

husband: i put the laundry in the dryer me: [suspicious] which cycle husband: the regular one me: [more suspicious] which is the regular one husband: me: yeah, that's what i thought

"can i speak to a manager" - me, to my 8 year old, after being told i can't have the last popsicle in my own house

if a meeting could be an email, it will be a meeting. this is a natural law. accept it. bring snacks.

trailer for the new charlie kaufman film just dropped. i understood zero of it. this is a five star review.

we're doing a live tier list of the top 40 later this week. bring your grievances. i will read the mean ones out loud.

if you understand duration risk, you understand 80% of fixed income. if you don't, please stop tweeting about the fed.

the boring truth about scaling a saas company: it's not about the growth curve. it's about which people you keep close to the work as the org gets bigger. that's the whole game.

the best org design is the one that lets your best people say no. the worst is the one that requires them to say yes.

in this week's issue: 6 lessons from talking to 30 chief product officers about how they actually make roadmap decisions. spoiler: it is much less spreadsheet than you think.

the on-call rotation is a load balancing problem. treat it that way. round robin isn't fair, weighted by seniority isn't sustainable, and volunteer-only is a lie you tell yourself.

just wrote a 400 line test to catch a 3 line bug. the test is longer than the fix. this is normal. this is fine. everything is fine.

your empty state is the most read screen in your app. it is also the least designed screen in your app. this is a problem.

brand deck delivered. client's first question: "can we see it in purple." i now have a purple version. it is worse. we will not be using it. this is the process.

spent the afternoon debating a client on whether the typography should be "warmer." they meant "friendlier." we said friendlier. we shipped it in an hour. we should just teach a vocab class.

changelog is public now. the changelog is longer than the marketing site. we consider this correct.

long thread from our head of research explaining the license change. tl;dr: the world changed faster than our policy did. we're catching up. we owe everyone a better answer than we've given.

the tessa follow-up is genuinely good. worth reading the whole thing. "we owe everyone a better answer" is a rare sentence in ai lab communications right now.

Tessa@tessa_ai·22h
long thread from our head of research explaining the license change. tl;dr: the world changed faster than our policy did. we're catching up. we owe everyone a better answer than we've given.

the honesty of the tessa post lands harder because most of the field doesn't do it. that is both good news for tessa and bad news for the field.

got an offer today. real one. wire hits tuesday. writing about the whole search when i've caught my breath. thanks to everyone who dm'd, connected me, or just said hang in there.

the unemployed_dev news made my whole day. we are not the algorithm. we are people. we can just be nice about this stuff.

unemployed_dev@unemployed_dev·22h
got an offer today. real one. wire hits tuesday. writing about the whole search when i've caught my breath. thanks to everyone who dm'd, connected me, or just said hang in there.

same. congrats @unemployed_dev. going to close the laptop early today on the strength of that news alone.

unemployed_dev@unemployed_dev·22h
got an offer today. real one. wire hits tuesday. writing about the whole search when i've caught my breath. thanks to everyone who dm'd, connected me, or just said hang in there.

unrelated: we're hiring a support lead. remote. north america. dm us if you know someone great.

our whole team just cheered for a stranger's job offer in the group chat. this app is at its best when it does this. we should do more of this.

we've backed 42 founders. 11 of them have been laid off from previous jobs in the same year they started their company. it's a real pattern. we're not making it up.

The unemployment rate ticked down 0.1% last month. Beneath the headline: three sectors are quietly hemorrhaging jobs, and none of them are the ones you're reading about.

on the sector story above: worth noting the survey methodology change last quarter is doing some of the work. still real, still concerning, but the trend line is noisier than the headline suggests.

SPACE: NASA has confirmed the successful docking of the Artemis III lunar module. Astronauts on the surface expected to begin the first EVA in approximately 6 hours.

PORTLAND: Local pub is streaming the moon landing on all screens tonight. Everybody go. This is a once-a-generation event.

the moon landing is at 3am eastern. the group chat is planning to stay up. i said i would. i will not. i will watch it in the morning like a coward and i will love it.

somewhere, someone is prepping a moon landing movie right now. the storyboard has probably been in a drawer for 3 years. we're going to see so many drone shots.

the moon landing is at 3am and the game is at 8pm. this is the greatest night of tv in history. buy snacks. call in tomorrow.

letting the kids stay up for the moon landing. they will be feral tomorrow. worth it.

if your security awareness training is a 45 min video that opens with "welcome, learners" you have already lost.

escape room but the villain is your own inbox. that's what we do. link in bio, no i will not do a demo call.

first post on Y. it works.

earned this. what a week 🍺

Photo
the pint after a long week
drop: public/images/max-pint.jpg
(max-pint.jpg)

she puts up with me and the football. lucky man ❤️

Photo
Max + girlfriend, cosy pub
drop: public/images/max-chloe-pub.jpg
(max-chloe-pub.jpg)

Biscuit has destroyed another cushion. we are not mad we are just disappointed 🐕

not gonna lie, kept sneaking looks at this all day 😂

Photo
badge close-up
drop: public/images/max-badge-close-up.jpg
(max-badge-close-up.jpg)

first day at the new job!! proper buzzing to be joining the team @PlanetEnergy 🙌

Photo
first-day selfie
drop: public/images/max-badge-selfie.jpg
(max-badge-selfie.jpg)

so proud of this one starting his new job 🥹 go get em

Max Smith@maxsmith_lfc·3w
first day at the new job!! proper buzzing to be joining the team @PlanetEnergy 🙌

day off, sun's out, no complaints ☀️

Photo
Max + girlfriend, day out selfie
drop: public/images/max-chloe-day-out.jpg
(max-chloe-day-out.jpg)

the lads. anfield. nothing better 🔴 YNWA

Photo
Max + mates at the football, red shirts
drop: public/images/max-banner.jpg
(max-banner.jpg)

parkrun PB this morning and then an entire sharing bag of Doritos to myself. balance ✨

if one more person spoils the match before i've watched it back i'm leaving the internet