5 ms·
Personally big on Rails (use it at work every day). But, my last MVP I did with TS/Next/Mantine/Supabase/Vercel. Reasons: - I've been using Rails as an API on
by jrvarela56 4y ago
Personally big on Rails (use it at work every day). But, my last MVP I did with TS/Next/Mantine/Supabase/Vercel.
Reasons:
- I've been using Rails as an API only, so having to grok views felt like a waste. My React skills made me feel that learning how to make complex views in my backend was a waste of time.
- One type of bug I hate is ensuring my API calls have the right schema. With Supabase and TS in the frontend, this is a non-issue: export types from db schema and all frontend requests are typed.
- Supabase is something for sure: I had been eyeing it for a while now, and it did not disappoint. Getting endpoints - even with realtime updates/subs in the frontend - after just defining a schema is magical.
- Auth is super simple with RLS - all this uses my SQL knowledge and makes me double down on it, which seems like a sane choice given it's been around for decades.
- Mantine gives me a large list of prebuilt components. This isn't exclusive to this stack but would highly recommend using something like this instead of just Bootstrap or Tailwind on its own.
Overall I'm happy with the results, feels way faster than my React/Rails workflow. Way less time in the backend (models, migrations, presenters, etc), more focus on tweaking the product.
Con: does not move me in the direction of using Python more. Feel like this is going to be a must-have for AI-powered components.
- bottlepalm 4y agoSame, Next.js, Vercel, Prisma, Supabase. I push to my GitHub repo and the site is live and deployed in less than a minute. With the stack you can use the same language, DTOs, libraries, etc.. both server and client side. Server side rendering ensures a graceful handoff between server rendered state and the resulting app state on the client. I’m also using MUI which includes all the components you need for a front end app. I also just really like react/JSX, very strongly typed coupling between the html and JavaScript. Makes it very easy to refactor and pull out new components with confidence. I really think this is the best stack for an MVP CRUD app right now. Interested to hear of anything better.
- jrvarela56 4y agoAh you comment about MUI reminded me to include Mantine, also big productivity driver.
- turbobooster 4y agoWish I could afford vercel
- fullstackchris 4y agoSuper generous free similar product is netlify... you get 300 build minutes per month, I've never even gone above their free tier haha
- admn2 4y agoUnless something has changed, they explicitly disallow any website that facilitates for profit commerce. Granted I don't think they closely monitor it unless your bandwidth is over a certain threshold. However, Cloudflare Pages is free and unlimited FWIW but I doesn't seem as nice or fast as Vercel.
- bottlepalm 4y agoRemember we’re talking about MVP. Moving this stack to a VPS would only add a day.
- 0xblinq 4y agoThis stack is pretty incomplete for most MVPs, as unless you're building something trivial like a landing page, you'll probably at some point also need libraries or a custom implementation for: - Validations - Translations - Error and request logging and auditing - Security (CQRS, CORS, CSRF) - Permissions and a way to integrate it with your authentication (does supabase handle this? don't know) - Email sending - Background jobs - Caching - File uploading - Rate limiting - ... Every time somebody suggests "just" Next.js, just "Remix", just "flask" or just [insert minimalist framework] I think they're either building something pretty trivial, or wasting a lot of time on rebuilding or integrating things you get for free with batteries included frameworks.
- gardenhedge 4y agoThe post is literally about building an MVP. Remix isn't a minimalist framework - it's a full stack web framework.
- moneywoes 4y agoMaybe next js instead of supabase?
- Rastonbury 4y agoThat stuff isn't "hard" per se, and some of that stuff isn't even needed for a MVP, they're good to haves or only really required when you've got 100s of users (product dependant of course). If the MVP doesn't get there either iterate product or bin it
- cmbothwell 4y agoThis is a really nice stack and what I’m using together with a colleague right now. Do you use the serverless functions available with Vercel/Supabase? If so, I’m curious how you choose when to go with each provider.
- jrvarela56 4y agoI use vercel functions for this side-project bc they worked out of the box. Just least friction tbh not sure if optimal.
- halfmatthalfcat 4y agoMantine is such a good library, especially when compared to Material, Semantic, etc. I’ve used it with a couple projects and have been very impressed.
- michaelteter 4y ago> Con: does not move me in the direction of using Python more. Feel like this is going to be a must-have for AI-powered components. This is why too many companies build on Python... some thought that maybe someday they will need some AI something, and they hamstring themselves from the start with inferior tooling.
- thomasqbrady 4y agoWhat's RLS? Row Level Security?
- kiwicopple 4y agoCorrect. We suggest using Postgres Row Level Security if you use the Supabase APIs + Auth: https://supabase.com/docs/guides/auth/row-level-security https://supabase.com/docs/guides/auth/row-level-security You don't have to use RLS if you BYO middleware, but the RLS approach give you the option to do `frontent <-> backend` (vs `frontend <-> middleware <-> backend`)
- foxandmouse 4y agoI'm glad I came across your comment, I'm planning a 2-week project for learning purposes and I thought rails backend with react/ svelte would be the fastest way to prototype. My ruby/ rails experience is very limited compared to my JS experience; I really just started experimenting with rails. I'm blown away by the magic, JS frameworks feel like toys in comparison. I also like that Rails is omakase. Based on your experience, would you suggest trying rails or going the full JS stack route?
- jrvarela56 4y agoI was faced with this decision a month ago and started building my models and views in Rails 7. Late night tinkering with views, then trying out ViewComponent I went 'dude wtf am I doing, these apps are so easy to build in React'... Next.js with Supabase has been a breeze. Setting up db with auth and getting realtime updates and object storage with minimal setup (TS fn calls) was mind-blowing. Caveats: setting up Supabase auth takes a bit of reading docs, using the js helpers correctly and configuring RLS, but after that it just works.
- weaksauce 4y agoimo rails without react and leveraging hotwire is going to be the next big thing in web dev. react is a huge increase in complexity for not much appreciable gain. you are not facebook and don't have facebook's needs. rails is nimble by itself.
- kirso 4y agoI would love to learn more about this. As a complete beginner though I tried to find resources for full-stack Rails and unfortunately there is nothing much there that teaches you the new front-end or shows how to build an MVP. Compared to that JS ecosystem perhaps has too much :)
- weaksauce 4y agoHotwire is pretty new but there are some guides out there. it's a progressive enhancement thing generally so you build it normally and then sprinkle in the extra stuff. 1000 foot overview: https://boringrails.com/articles/thinking-in-hotwire-progressive-enhancement/ https://boringrails.com/articles/thinking-in-hotwire-progres... a tutorial: https://www.hotrails.dev/turbo-rails https://www.hotrails.dev/turbo-rails a video tutorial: https://www.driftingruby.com/episodes/hotwire-introduction https://www.driftingruby.com/episodes/hotwire-introduction probably a good paid option: https://pragmaticstudio.com/hotwire-rails https://pragmaticstudio.com/hotwire-rails and then there is the main site: https://turbo.hotwired.dev/ https://turbo.hotwired.dev/ cheers!