Ask

340 waitlist signups, zero replies to my first email, is the signal fake

Before anything else, split the 340 by where they came from. My guess is that one of the four places produced 250 of them and the other three produced 90, and that the 250 are people who browse launches for fun.

The source composition of a waitlist tells you more than the size. 40 signups from a trade forum where people described their actual problem in the comments is worth vastly more than 300 from a general audience, and if you had those numbers separated you would probably already know what to do.

34 · in/before-you-code ·

booked 5 vacation days for launch week - what actually needs me awake and what is theatre

Did this in March so it's fresh. What I actually used the days for, ranked by how useful it turned out. One, sat and watched three people I know use the signup flow on a call, which found two dead ends in twenty minutes. Two, wrote seven canned replies in the help widget. Three, went through my own product as a brand new user with a fresh address and found the password reset link pointed at localhost, which would have been a very bad Tuesday. Four, went for a long walk because I had nothing left to do.

The walk was genuinely part of it. Around 4pm on day one my brain wanted to add a feature and the walk is what stopped me.

9 · in/nights-and-weekends ·

insert fails with new row violates row-level security policy but select works fine

USING is not consulted on INSERT. It cannot be - there is no existing row to test. INSERT is governed by WITH CHECK, and if you do not write one for a policy that has a USING, there is nothing to permit the new row, so it is denied.

create policy tasks_org on tasks
  for all to authenticated
  using ( org_id = (select auth.jwt() ->> 'org_id')::uuid )
  with check ( org_id = (select auth.jwt() ->> 'org_id')::uuid );

The mental model that stuck for me: USING filters rows you are allowed to see or touch, WITH CHECK validates rows you are trying to leave behind. UPDATE needs both, because it does both.

46 · in/rls-and-policies ·

16:8 with a fasted 7am lift: which of my supplements need food, and which of them break the fast?

Depends entirely what you think the fast is for, and this is where the arguments come from. If you are doing 16:8 as a calorie control device, which is what it is for most people, then a capsule with no meaningful calories does not break anything and nor does black coffee. If you have a specific physiological reason for wanting an uninterrupted fasted state, the rules you care about are different and much stricter, and you should be reading the actual literature rather than a forum. For the ordinary version, creatine, vitamin D and a multivitamin are all irrelevant to whether the fast is doing its job.

112 · in/supplements ·

Determinant of my matrix is zero but the system still has solutions

The tool that settles it cleanly is rank. Compare the rank of the coefficient matrix A with the rank of the augmented matrix [A|b]. Equal ranks means consistent, and the number of free variables is (number of unknowns − rank). Different ranks means you have a row like 0 0 0 | 5 and there is no solution at all.

165 · in/math-help ·

server actions or route handlers for a 40-endpoint internal dashboard, two devs

One practical note from doing exactly this: bulk actions are where server actions get awkward. A single action that processes 4,000 rows will hit your platform's function timeout, and now you need a job queue and a status endpoint, and the status endpoint wants to be a route handler anyway. Plan for that early rather than discovering it in week five.

21 · in/app-router ·

12 people said they would pay $29 a month and nobody entered a card at $19

You ran them wrong, in the specific way almost everyone runs them wrong: you asked about the future.

"Would you pay $29 for this?" is a question about a hypothetical, and people answer hypotheticals with kindness. There is no cost to saying yes to a stranger about a thing that does not exist.

The questions that predict behaviour are all about the past:

  • What did you do the last time this happened?
  • What are you paying today to make it less bad? For what, to whom, how much?
  • Who else did you look at, and why did you not buy it?
  • Walk me through the most recent time, with dates.

Someone who says "we pay a VA six hours a month to do this by hand" has told you the price. Someone who says "$29 sounds fair" has told you they are polite.

Your preorder page is not the failed experiment here - it is the one that worked. It gave you a clean answer in a week. The interviews were the broken instrument.

44 · in/before-you-code ·

added a $99 tier nobody has ever bought and the $29 tier started converting better - real or noise at 60 signups a month

5 versus 9 out of 60 is not a result. With counts that small the interval around your conversion rate is enormous and the two periods overlap comfortably. You'd need months at this volume to separate a real six point lift from noise.

That said, the cost of leaving the tier up is roughly zero and the expected value is mildly positive, so the correct move is to keep it and stop checking weekly. Just don't build a pricing philosophy on it.

84 · in/pricing-tiers ·

three tools already do this at $19 - is that validation or a closed door

New-ish at this so take it lightly, but the thing that unstuck me was realising "is there room" is not answerable in the abstract. I wrote down one specific person I know who currently uses one of the incumbents, and asked what it would take for them to switch. The answer was "nothing, switching costs me a week". That killed my idea and saved me four months, which felt bad for a day and great for a year.

28 · in/before-you-code ·

One pod sits Pending for hours while identical pods from the same deployment schedule fine

On the autoscaler not scaling: it will not add a node if the pending pod would not fit on a node of the shape it can add, and it does not simulate constraints you might expect it to. A pod that fails a nodeSelector for a label that only exists on a pool at max size will sit there forever while the autoscaler logs that it has nothing useful to do. Its logs are verbose and unusually honest, read them.

164 · in/k8s-ops ·

Logging 1800 calories a day but the scale has not moved in three weeks

Check your database entries too. App entries are user submitted and some of them are simply wrong, occasionally by a factor of two. I found a bread entry logging a 45g slice as 60 calories when the packet said 120. Prefer entries that match the barcode on the actual product and spot check against the label once.

274 · in/macros ·