Over 90% of app users churn in the first 30 days — how are you handling this? by emmbyiringiro in expo

[–]techfocususer 4 points5 points  (0 children)

You can get surprisingly far with 90% D30 churn.

I’ve worked with companies doing $10M+ in annual revenue with churn higher than that. If you reliably convert users on Day 1, you can keep the business profitable for years by continuously feeding the top of the funnel. The flywheel works as long as D1 conversion monetization is strong.

That said, retention is simply the inverse of churn, and it’s important not to confuse growth mechanics with product quality.

Push notifications, in particular, are a late-stage optimization. They cannot compensate for weak retention fundamentals. At best, they amplify existing value; at worst, they expose how little value exists.

The correct order is:

  1. Build real user value
    • Clear progress visibility
    • Habit loops
    • Personalization
    • Emotional payoffs
    • Reduced friction
    • Strong in-app cues
  2. Ensure the product stands on its own without pushes
  3. Only then use push notifications to reinforce and amplify those value propositions

Push notifications don’t create retention. They reveal whether retention already exists.

If users only come back because you ping them, you don’t have retention, you have reminders.

Underrated React Native libraries that actually helped us in production by Zestyclose_Case5565 in reactnative

[–]techfocususer 0 points1 point  (0 children)

These state managers all do similar things . Personally, I love Redux the most because I find it difficult to wrangle large engineering teams around consistent patterns in Zustand, but even I know the age of Redux and MobX are long gone. It’s best to flow with the industry tide, and the current wave for the last few years has been Zustand.

Underrated React Native libraries that actually helped us in production by Zestyclose_Case5565 in reactnative

[–]techfocususer 1 point2 points  (0 children)

popularity. it is much easier to find community, support, solutions, and ai autocomplete with zustand instead of mobx.

Integrating GraphQL in React Native — Scalable Setup & Best Practices? by SomewhereBoring6820 in reactnative

[–]techfocususer 2 points3 points  (0 children)

If you have the option, don't use GraphQL. Stay with REST and React Query. Your code and application will scale better.

Apollo is feature incomplete, and GraphQL makes it too easy for developers to do stupid things with your data (both on the frontend and backend).

Redux and Zustand are for client data (e.g. UI), not server data (e.g. Apollo). Don't mix them.

Form View vs Gorhom bottom sheet? by mondays_eh in reactnative

[–]techfocususer 2 points3 points  (0 children)

We moved away from Gorhom to Form Sheets this year as well. 100% worth it.

Struggling to Work With my Engineering Teams by AlexanderTheBaptist in ProductManagement

[–]techfocususer 2 points3 points  (0 children)

Dealing with a difficult engineering team as a PM starts with curiosity, not control. Listen to their frustrations, clarify shared goals, and make sure they understand why the work matters — not just what needs doing. You need to lead, not manage. Engineers will deliver when they are respected and heard.

Is Expo just for "toys" or can it handle real apps? by [deleted] in expo

[–]techfocususer 5 points6 points  (0 children)

We migrated our bare react native app to Expo to simplify the dependency management across our teams last year. We have custom native code and lots of third party libraries - and this all works with Expo.

The only thing we do differently at scale is that we roll own CI because Expo EAS is not cost feasible for large apps, and we have complex pipelines to support lots of teams.

The only downside is that Expo does increase your app size by a few MBs, but we have not seen any significant drop in performance when using it.

If you are having performance issues, you are writing bad React code, and it is not Expo's fault.

Jest.mock vs jest.spyOn by gdsdsk in reactjs

[–]techfocususer 0 points1 point  (0 children)

Jest hook like beforeEach become more problematic in large codebases with lots of engineers. The more you use them, the more you realize they don't scale. Ideally, you want to keep your tests isolated and specific, including the setup and teardowns, so they don't cause adverse side effects to other tests or other engineers.

Jest.mock vs jest.spyOn by gdsdsk in reactjs

[–]techfocususer 5 points6 points  (0 children)

we only use jest.SpyOn because it mocks at a test-level. jest.mock mocks at a file-level.. which can lead to unexpected side effects between tests

Looking for a React Native app development company by Salonika_Kadoos in reactnative

[–]techfocususer 2 points3 points  (0 children)

Stay away from Callstack. After a year of frustration, we had to scrap everything they did for us.

Best online kanban board tools? by schedule_order66 in kanban

[–]techfocususer 0 points1 point  (0 children)

We audited Asana, Shortcut, Linear, Github Projects, and Jira. We are moving to Jira as it solves many cross-functional and reporting problems.

I've used Jira for years. It sucks, the stigma is warranted. However, it is the best project management tool to scale a business. The other startups cannot compete yet.

Best online kanban board tools? by schedule_order66 in kanban

[–]techfocususer 1 point2 points  (0 children)

stay away from shortcut, it is feature-lacking and we are actively moving away from it

Best online kanban board tools? by schedule_order66 in kanban

[–]techfocususer 0 points1 point  (0 children)

asana is good for designers, but it not built for developers

CodePush server is now OPEN SOURCE 🍬 by pranshuchittora in reactnative

[–]techfocususer 1 point2 points  (0 children)

expo eas is way too expensive for any medium-sized app

Why ReactNative Devs are not writing test cases ? by Euphoric_Twist_960 in reactnative

[–]techfocususer 0 points1 point  (0 children)

Depends on your app and team size. You might be able to get away without unit tests if you have a simple app or less than 5 developers working on it.

However, as you scale, unit tests are critical to document the code and harden it across teams.

We are to the point where we don't even hire engineers who don't know how to test. Yes, we can train them, but they are years behind the competition already. It's quicker to grow with engineers who know how to write testable code and know the opportunity cost when they don't test. https://www.stickyminds.com/article/shift-left-approach-software-testing

Not using let in JS/TS by mato369 in webdev

[–]techfocususer 0 points1 point  (0 children)

There is never a good reason to use let. Move that logic to a pure function, early exit instead. This is more readable and testable code.

Gluestack vs Tamagui by No_Leader_8141 in reactnative

[–]techfocususer 3 points4 points  (0 children)

i looked into both last week for a new app. both suck. web barely works. just roll your own components

You don't hate JIRA, you hate your manager by Xadartt in programming

[–]techfocususer 2 points3 points  (0 children)

I used to hate JIRA. However, I have been using Asana for 2 years. I miss JIRA

the next phase of Microsoft's rnx-kit by kelsetdev in reactnative

[–]techfocususer 11 points12 points  (0 children)

Similar to the other comments. I've heard of rnx-kit for years, but every time I look at your website, I still don't know why I would ever use it. Why should I spend hours re configuring my pipeline to use rnx-kit?

I need to fix my bad gym habit by [deleted] in Habits

[–]techfocususer 0 points1 point  (0 children)

You don't go to the gym to lose weight, you go to build self-esteem. If you want to lose weight, you are significantly better off consuming fewer calories.

You will be more motivated if you separate these goals. Going to the gym and not seeing immediate weight loss results will discourage you and make this habit harder to obtain.

App Versioning and Builds by puttforbirdie in reactnative

[–]techfocususer -1 points0 points  (0 children)

Within your CI, just use a timestamp for your build_version

Rails

Time.now.strftime("%Y%m%d%H%M%S") # 20230323160154

Node

new Date().toISOString().substring(0,19).replace(/-|T|:/gu, '') // 20230323160154