WhatsApp is posting numbers that no other app comes close to. It leads the world in addictiveness at 87% DAU/MAU and stickiness at 86% month-one retention, all while having 2.7B monthly users, the most of any non-preinstalled app.
A new Sensor Tower breakdown of the top 25 apps by these metrics reveals some surprising patterns. There are now 15 apps with over a billion users, and Google and Meta own 12 of them between them.
There s a common assumption that job applications are mobile-first now. Before moving into building a mobile app, we wanted to test that assumption with data rather than rely on intuition..
First, we looked at real usage. In our GA4 data, mobile accounts for ~22% of active users. But desktop dominates engagement and core actions, longer sessions, more events, and more consistent usage over time.
A two minute check for anyone running a long-lived app server: PHP under RoadRunner or Swoole, Node, anything where one process serves request after request instead of starting fresh each time.
List the values your templates read that middleware sets per request: the signed-in flag, the avatar, the CSRF token, the analytics user id. Then ask what each of them holds on a request where that middleware did not run.
In a process-per-request world the answer is nothing. In a long-lived worker it is whatever the previous request left behind. In my framework those values sit in one shared object for the life of the worker, a plain array that middleware writes into. The next request that skips the middleware reads the values the last one left.
On most of my pages that never shows, because every request runs every middleware and overwrites everything. It matters on the group I built to be cacheable. My public pages run no session and no CSRF on purpose, so a shared cache is allowed to store them, and that means they skip exactly the middleware that would have overwritten the leftovers. A template there that printed the CSRF token would have printed the token of the previous visitor, into a cache entry served to everyone. A check for cookies on cacheable responses does not catch it, because the value never travels as a cookie.
Building software is literally getting easier and easier. What I ve noticed is that just a few years ago, you really needed knowledge, a team, and solid know-how to make the whole process work.
But now, with all these tools popping up on the market almost daily like Cursor, Bolt, Lovable, and so many others it s incredibly easy to build software.
Generation tools are low-stakes when they're wrong draft an email, get a bad draft, edit it. Judgment tools are different: grading, flagging, scoring. If the output looks confident and it's actually a guess, someone might act on it without knowing that.
Working on letsflw's exam-checker made this concrete objective questions are easy (exact match, no ambiguity), but for open-ended answers we made a call to surface the AI's mark as a suggestion to review, not a final score, because presenting it as settled felt dishonest.
They help with launch copy, visuals, outreach, follow-ups basically most of what used to take days can now be done in hours.
But I keep thinking about something. Are AI agents actually improving product discovery on Product Hunt or are they just making launches look more polished?
Yes, AI speeds things up. You can test messaging faster, create better assets, prepare more efficiently.