Cross platform stack (web & mobile)

Do you folks have any recommendations on what an optimal stack from a developer point of view would be for a cross platform app (web & mobile) with backend included and full type safety? Technologies/libs I have been considering to use but I'd gladly take other suggestions. FE Related:
- Solito
- React Query
- Zustand (very uncertain on this point though)
- Firebase (considering this or AWS Amplify for authentication but would gladly get
other suggestions)
- NativeBase
- Potentially Dripsy for styling things outside of NativeBase
(I really don't like inline styling so Tailwind for styling is something I'm less likely to use over alternatives such as Dripsy but I could be convinced)
- Moti
- Solito
- React Query
- Zustand (very uncertain on this point though)
- Firebase (considering this or AWS Amplify for authentication but would gladly get
other suggestions)
- NativeBase
- Potentially Dripsy for styling things outside of NativeBase
(I really don't like inline styling so Tailwind for styling is something I'm less likely to use over alternatives such as Dripsy but I could be convinced)
- Moti
BE Related: (I've worked more with FE so this is a bit of a black hole for me)
- tRPC
- Prisma
- PlanetScale
- tRPC
- Prisma
- PlanetScale
Other things
- Zod
- AppCenter
- Vercel (or potentially AWS Amplify
- Github
- Sentry
- Fastlane
- Expo
- Zod
- AppCenter
- Vercel (or potentially AWS Amplify
- Github
- Sentry
- Fastlane
- Expo
40 Replies
Samathingamajig
Samathingamajigā€¢3y ago
GitHub
GitHub - t3-oss/create-t3-turbo: Clean and simple starter repo usin...
Clean and simple starter repo using the T3 Stack along with Expo React Native - GitHub - t3-oss/create-t3-turbo: Clean and simple starter repo using the T3 Stack along with Expo React Native
Wezter
WezterOPā€¢3y ago
Yeah that's using Tailwind which I'm a bit sceptical about and it also isn't the complete stack right just a starting point if I'm not missing something? šŸ˜„
Unknown User
Unknown Userā€¢3y ago
Message Not Public
Sign In & Join Server To View
Wezter
WezterOPā€¢3y ago
Oh I had missed that he's gonna have a talk there, I'll definietly have to check it out! šŸ˜„
Unknown User
Unknown Userā€¢3y ago
Message Not Public
Sign In & Join Server To View
Wezter
WezterOPā€¢3y ago
I just dislike having a lot of inline styling, if there were something like styled components with better performance that works well cross platform I think I'd very much prefer that.
Wezter
WezterOPā€¢3y ago
Things like this just makes me so annoyed to see šŸ˜… I'd very much rather have a tag that's called something
const CenteredLink = styled(a)`
// put styling here
const CenteredLink = styled(a)`
// put styling here
brr
brrā€¢3y ago
There is a extension* to collapse all the styles, but yeah it does look ugly
Wezter
WezterOPā€¢3y ago
Yeah I know there's a plugin for it but then I'd much rather have it somewhere else than in my JSX personally, it just gets so cluttered šŸ˜…
brr
brrā€¢3y ago
agreed, I think you can also define all the styles in a function outside your component and then just call it so it can be like an external style sheet afaik I'm not 100% sure on this, but I think I seen it somewhere
Wezter
WezterOPā€¢3y ago
I haven't found anything that's cleaner than Dripsy so far but was hoping someone here might have some good suggestions ^^ I looked a bit at Tamagui but their styled function is a bit limiting so far
Unknown User
Unknown Userā€¢3y ago
Message Not Public
Sign In & Join Server To View
brr
brrā€¢3y ago
you can put the styles outside your function or in another document
const styles = `bg-slate-100 rounded-xl p-8 dark:bg-slate-800 text-red-300`;
const styles = `bg-slate-100 rounded-xl p-8 dark:bg-slate-800 text-red-300`;
then import and
return <div className={styles}>random text</div>;
return <div className={styles}>random text</div>;
intellisense won't really work though this way afaik
Wezter
WezterOPā€¢3y ago
I mean for personal projects I would most likely go for something like Tailwind because it's way faster to work on yourself but it's way less easy to overview in my opinion. If it's a rounded button I would much rather see <StyledButton ... /> that than a pressable with 10 styling props and then the onPress, text etc. Yeah and you still lose the understanding of what this div actually is and you have to write className for everything and then I could just have used stylesheets I feel like ^^
brr
brrā€¢3y ago
yeah I agree, tbh I'm quite new to tailwind was looking for something react query related and this thread popped up lol, someone might have better / cleaner solutions
Unknown User
Unknown Userā€¢3y ago
Message Not Public
Sign In & Join Server To View
Wezter
WezterOPā€¢3y ago
Have you worked much with styled components/emotion/dripsy?
Unknown User
Unknown Userā€¢3y ago
Message Not Public
Sign In & Join Server To View
shaaah
shaaahā€¢3y ago
StyledComponents, Emotions, Dripsy are good, Its slower, but the performance won't get to you until it becomes a massive project. I usually prefer modular sass And tailwind is great for personal project like you said, cuz its just us maintaining it so who cares. Apart from that its not that great at all. Solito does a good job of connecting web and mobile, But I believe expo do have support for Nextjs now
Wezter
WezterOPā€¢3y ago
So what about cross platform component libraries. (web / mobile) Is there anything there that you have good experience with or have heard good things about? I'm not sure there are that many options, these are the ones I know about. NativeBase / Ant Design / React-native-paper (not sure how well it works on web)
Mediocre
Mediocreā€¢3y ago
I would highly recommend trying out Flutter once
Wezter
WezterOPā€¢3y ago
I have tried Flutter, seems to be in a worse state for cross platfrom from my point of view. Specially if you want the backend in your monorepo as well
Mediocre
Mediocreā€¢3y ago
Well, I think it really depends on what you're using it for. Just for simple applications that don't require any native features it works pretty well. For backend, I'm not sure about this but there are things like serverpod exist.. again I haven't tried the backend so can't vouch for it šŸ˜…
Wezter
WezterOPā€¢3y ago
For a single page application sure it's fine but is it possible to use the same navigation between screens/pages on mobile and web with Flutter?
chrisewald
chrisewaldā€¢3y ago
@wezter96 - I came across this the other day if you haven't seen it. I can't recommend it because I have no experience with it. In general, I lean against going for component reuse between react & react-native: https://tamagui.dev
Wezter
WezterOPā€¢3y ago
Yeah I have looked at it but it has way too few components yet for our designers to even consider it. That's why I'm leaning towards NativeBase instead even though the performance ain't amazing
Mediocre
Mediocreā€¢3y ago
Good point, I think they're a bit different.
Wezter
WezterOPā€¢3y ago
I tested this project now and it seems to use completely separate navigation and pages / screens for mobile and web which is not really what I'm looking for. Do you know why they aren't using Solito for this?
Unknown User
Unknown Userā€¢3y ago
Message Not Public
Sign In & Join Server To View
Wezter
WezterOPā€¢3y ago
Yeah but I could just remove tailwind from it, wouldn't be a big deal. I tried that starter out as well but I struggled with deploying it.
Amos
Amosā€¢3y ago
No matter what you do don't go with NativeBase, you will regret it badly
shaaah
shaaahā€¢3y ago
Oh why though?
Amos
Amosā€¢3y ago
Terrible performance I went through upgrading an entire app from version 2 to version 3 and their documentation wasn't the best for this so had a bad experience with that as well
shaaah
shaaahā€¢3y ago
I see, what do you recommend then?
Wezter
WezterOPā€¢3y ago
Is it really that bad with recent versions? If there was another cross platform option I'd gladly check it out
Amos
Amosā€¢3y ago
I've no idea. Haven't really been working on the app recently, but I think users have still been complaining about it being laggy. Not sure what version of Native Base we are on and if they have addressed these issues or not šŸ¤·ā€ā™‚ļø personally I'm waiting for Tamagui to come out of beta but yeah not sure what else
Wezter
WezterOPā€¢3y ago
Yeah once Tamagui has more components and better figma files I'd likely go that route instead NativeBase will release performance benchmarks once they are officially in 3.5 they said
AdmiralGeneralAladeen
tailwind is amazing
Amos
Amosā€¢3y ago
O that's interesting, excited to see that
Wezter
WezterOPā€¢3y ago
and I talked with someone that's been using it recently with Solito for projects for his clients and he's said it's worked pretty okey
Want results from more Discord servers?
Add your server