This is apparently the most loved CRUD app of 2023
We all have our own favorite tech stack, but is there a tech stack that can rule them all?
Well, according to stack overflow, there is! In this video, we look at creating a crud app using the most loved tech stack.
This video was sponsored by Fl0. You can check out their awesome product using the following link
www.producthunt.com/products/fl0
Join this channel to get access to perks:
/ @dreamsofcode
My socials:
Discord: / discord
Twitter: / dreamsofcode_io
My Equipment:
Voice over: kit.co/dreamsofcode/voiceover
Coding: kit.co/dreamsofcode/coding
Video Links:
Github: github.com/dreamsofcode-io/mo...
FL0: www.producthunt.com/products/fl0
00:00 Intro
00:28 Most loved stack
01:57 Getting started
03:58 Deployment
07:36 Create Method
13:24 Read Method
15:11 Update Method
17:27 Delete Method
Woud love to see pagination and filtering
This please!
Yes please!
+1
yes and also how you would handle authorization you probably don't just want anybody update/deleting entries in the database
Absolutely!
i would love to see the production ready version of this and a detailed video of all the steps implemented in here
Would love to see a full course on this
Awesome video! Helped me solve a lot of problems I was making while building a crud with axum. Would like to see a production ready one
densely packed with knowledge and great pacing of the video
This is insane. everthing is in one. Keep up the good work.
Loved the foundation reference! Such a great book and loving the series
It's so good!
Loved the Foundation reference. Great book!
Your channel is amazing, Please keep up this great work
Love to see a series diving deeper into production ready features
congratz on 50K subs, soon it will be 100K, your content is good and insightful
loved the video. really quality stuff here. ❤
Thank you!
Awesome content! Thanks.
recently wrote a CRUD app with the same stack except using diesel instead of sqlx. But after a while diesel was slowing me down and made things overly complicated, so I started using sqlx for new functions (am planning to replace everything with sqlx at some point).
If you use mongodb you can write straight up queries in rust. Rust is the best language for mongodb and vice versa.
best flow ad ive seen so far, the video was good too
This was so well done... I'd love to see you do something like this with svelte and maybe some of the more advanced tpoics too.
Love your videos! Id love to see your setup for writing elixir apps! Sad it wasn’t chosen here 😂
Love your work!
Thank you so much! I appreciate your support a lot!
Hi, I really enjoy your videos ! I'd love to see more production-"ready" content and more Rust backends. Yes pagination and filtering please
I like the tech stack, but honestly I’m most impressed with the sponsor. That looks sick. And the pricing seems decent too.
I subbed. I'm waiting for that video 😂
This channel is a gem!
Learnt more about rust here than so many other “intro” to rust.
Techstack deez
nutzzzz
Deez what
@@cyanide5188 🥜
Another excellent video of yours! Thank you very much for all the effort you put on your videos. Answering one question you made at the beginning of your video, I'd love to see how you deploy your applications to a custom home lab machine
Thank you! I appreciate the kind words. I'm planning on starting another channel very soon which will be more focused on Homelab. I'll make sure to do an announcement when my first video goes live 😁
cool. keep learning and keep growing :)
Personally I find RUST web frameworks lacking in basic functionality for any non-trivial apps. We had to write a lot of code to make the developmen more efficient. I'd say that the current status of Rust in production requires writing a lot of helper code to solve problems that were solved by other frameworks. So if time to market is what interests you, I'd use another language and framework.
Same as GO. "Just use standard library" bros are always there to tell you that you don't need anything, write your own. As if time is not important in business. As If I can tell my PMs that I need 3 times more time to develop something that it can be done in a week in Laravel, Django or NextJS. But hey, at least our final product that is late to the market will be faster. Nobody will use it but hey, look at how performant it is.
There is some truth to this, but the real reason you write a lot of "helper code" is because rust does not allow you to get away with not handling errors. Especially in Axum where you have to return a response and not a anyhow::Error. In the long term you will have to do this in other languages and rust will shine in due time.
Examples?
Thanks for the video. Are you using a Neovim distro or is this all custom?
Thanks I'm curious how many hours did this video take to create? Your production quality is superb. Would like to see a mirror of this in Go - Perhaps a production-tier course?
Thank you so much! I really appreciate that. It probably took around 30 hours total. My script initially wasn't that great so I had to re-record a bunch of audio! That's a great idea! I'll add it to my backlog.
@@dreamsofcodethe idea that you are able to acheive this level of quality in only 30 hours is incredible. Quite in awe of your channel in general, well done! 🚀
@@codetothemoon Thank you! I'm a huge fan of yours as well!
@dreamsofcode @codetothemoon I love both of your channels, and love seeing the mutual respect. Cheers to you both!
When you said 'stack' I wronly expected also a Gui setup. Any change to see something like that (Gui+Crud) worked out?
Would love to see a full course
very good video more like this would be cool
I would love to see the production ready version.
Very nice video thanks
Thank you very much for this video. It's really REALLY cool. In the next videos, could you show us: - how to use a logging facade + implementation - how to write tests for this CRUD app using something like @Testcontainers (in Java world) - how to return the id from the insert statement if the id is from a db sequence. For example, my insert statement is like this: insert into my_table ( id, column_name) values (nextval('my_sequence'), 'some name') - how to call another web service, how to generate traceId, spanId and have them written in logging messages - how to use micrometer in Rust - how to use OpenId, OAuth2 in Rust FL0 looks really nice. However, the free tier gives us only 256 MB of memory (it might be ok for a Rust app. I'm coming from the Java world, so 256 MB is very little for me). An alternative solution is Oracle Cloud. Its free tier gives you 4 ARM cpu cores, 24 GB of memory, 200 GB hard disk, a free Oracle db which doesn't use those cpu, memory and hard disk (not sure if Rust can work with Oracle db). I can run docker containers there for a Postgres db, a Jenkins server, a Elasticsearch + Fluentd + Kibana for viewing logs.
These are some awesome suggestions! Thank you! Testcontainers are amazing, I use them for rust projects as well 😁. That's a great idea for a video. Oracle cloud sounds interesting as well, I'll check it out for another video! Thank you again
INSERT INTO my_table () values ( RETURNING id; you can return more columns, or * , as you want
Hi, you could do a video that goes through all the process of arch linux installation with your setup?
thank you!
Thank you so much! I really appreciate the support.
I wish the real world requirements were always this precise.
thanks
I really like the video and trying to follow along. Just stuck with an error compiling after adding the create_quote handler. Is the code available on github?
Excellent video. One important bit missed that's also missing in your repo, the `cargo chef cook` also requires a `--release` flag for the Docker caching to work. Without that, it'll still do a full release build every time on the `cargo build`.
Good catch!
The `--release` flag should also be added to the `cargo chef cook` command if you're building your app in release mode!
It didn't work out for me. The build failed due to --release flag in cargo chef cook
Axum with sqlx is my currently favourite tech stack as 4 now.
Would love to see a full production app using go
what is the plugin for toml to know latest version? thank you for the content 🤙
Tempted to subscribe now!
I'd love to see more production-"ready" content and more Rust backends.
AWS provides free tier for a lot of things and I'm using it with my projects for years
Production!
I will be trying out your sponsor for my new app real soon
Great video!! BTW I'm thinking about switching to a Linux distro, particularly the one you have, but I really wanna have it look like your UI which is sick.. A tutorial on this would be great!! Great videos as always.
This is MacOS…
@@FarhadOmid it's not, it's Arch Linux.
@@abplayzzthose windows look just like in MacOS tho
kzhead.info/sun/drp8cqyAfYqNgX0/bejne.html @@FarhadOmid
@@dargkkast6469 I am wondering how does he minimize those windows, there's literally just one button on the window bar...
Excellent video, well structured, and the audio is perfect👌 I would like to say though, having entire lines of code flash in make it VERY hard to follow along. Having your cursor spit out the characters, even when sped up, which you do at times, is much more readable. Also, Phoenix+Liveview when? 🤩
Thanks for the feedback! It's a real balancing act trying to keep a good pace for entertainment, whilst also allowing people to follow along. I'll try and do better in the future! I've added to the backlog ;)
I feel like CRUD should conceptually be replaced by "SSR", or Save, Search, Remove, because there’s no point in having separate create and update endpoints anymore over a single Save method that recognizes by whether an id exists in the body whether the operation is create or update, while get by id and get all are rarely sufficient, and a get with query parameters is generally necessary, and finally remove includes soft deletes (which I hate, btw, so I’d rather not). But hey, SSR is already taken by Server-Side Rendering so nvm who cares…
The path to success is to take massive, determined action.
look at the c# behind rust mmmm i love it
. Nice! But I think you miss the cargo watch, to automatically build and run you code. 😉 Anyway, good video as always. 👍
What editor are using?
Great video, when is part two talking about front-end? 😂
This is a great idea! My front end skills have gotten rusty recently so I need to sharpen them up 😉
@@dreamsofcode You could, of course, write the front-end in Rust with something like Leptos ;)
such a nice and cheap to run on cloud stack
Important missing feature/thing to do: make it so that it does a database migration before deployment. And why is it not using the database to generate the timestamps ?
Elixer never heard of it till this point
Your vid is so asthetic that I keep watching it even I don't know Rust xD
Thank you! That's such nice feedback!
1:00 subscribe button glowing as he said to not press it. wth
why wasnt a Result return in case of update , but was returned in case of create and read ??? @op
nice video editing... i want all udemy video like this!!!!!!!
Thank you! I'm working on my own courses in the future. Is there one you'd like to see in particular?
lets get him to 75k boys! we forcing him to try out the dreaded.
HOLD ON!! You can make the sub button RGB for the push? What sorcery is this??
bro can spawn code out of nowhere 💀
3:25 Why `.unwrap()`...? The return type is already a result. Seems like the question mark operator is more correct. (This is a genuine question... I'm learning too!)
Would you please teach us the necessary concepts to develop a mindset like yours...
what's that font tho ?
Join the Bevy Rust cult! I mean movement
Subbing to see most despised tech stack
Really though, it’s because I just realized I wasn’t already subscribed
Haha. I'm scared to do it.
Delete should return 204 in case of success
I like your channel. I think you're really good at explaining things. And this one was a good video. The thing is that I watch your channel to try and be a better developer. A LOT of your latest videos has focused heavily on the sponsor, and sometimes the sponsor is not mainstream at all. I'm left with the feeling that I just learned something useless. Again, this doesn't fully apply to this video. Only to a minor extent. I understand the need to monetize the content, and I hope you keep approaching that balance, but please take this into consideration.
Hey! Thanks for the feedback. I hear you. Sponsorships are a hard one to balance. I try to match sponsors to content that I already have planned and am trying to get better at making them complimentary to the video itself (rather than being the sole focus). In this video, the product complimented well for getting the app deployed, otherwise I probably would have just ran it locally or on my homelab. The video content itself other than that was pretty much untouched. As I start producing more content, the ratio of sponsored content should decline, but that's not for a few more months. Thank you for sticking with me as I try to get better with everything! I'm still pretty new to making content!
I like Rust, but I'm afraid of starting a real production project using it, because I don't want to shoot myself in the foot. I've heard async Rust have a lot of complicated stuff which makes it extremely easy to shoot yourself in the foot instead of getting BLAZING FAST™ performance. A ssuming I need something a bit more complicated than just a CRUD API (or some easy CRUD project at first will grow into something complex).
That's why I stick with Go and TypeScript for real world applications. And also Rust developers are still rare on the job market.
I use Golang and Elixir....enjoy it all. Idk about rust tbh. The complexity of the language doesn't help with fast modifications to existing code bases.
Big fan of all three languages, and for different use cases. Normally I'd go with Golang for a CRUD api, but the survey gods decided!
Time changes everything except something within us which is always surprised by change.
What's that font?
🔥🦀
If only your discord server wouldn't be run by power hungry abusive toxic mods.
Same poor experience here. I asked a question about Neovim and I got several helpful replies. A day later a mod tells me wrong channel (General instead of Neovim help). I politely apologized and thanked him for pointing me to the right channel. Mod continues the conversation by telling me not to do it again. (I didn't) but I apologized again anyway, saying I won't do it again and I know where to post now. Then he keeps pushing for the conversation to go on, and how I should have known better. Not really sure on why he kept pushing for it since I haven't written a single word other than apologizing. So I apologize again and ended the sentence with a smiley face. I was nothing but polite. One minute later he bans me for 24 hours saying that a "smiley face" is considered extremely passive aggressive and he doesn't need such an attitude. I PM him and then he goes on and on how a smiley face is passive-aggressive. He eventually unbanned me. But I gotta say, a person that is so hypersensitive who gets triggered by a genuine smiley face and reads into things that aren't there, and is passive-aggressive himself while accusing others of exactly that, should not moderate your server.
Also go banned. Joined. Asked a one-liner question in #general that is not just about neovim, because I see others asked similar small questions there. Mod tells me #general is not for neovim questions, there is another channel. I said my question is not just about neovim and I see others asking similar small questions here. 30 seconds later -> Banned.
@@nopenope6486 sighs, I have had the same experience in other discord servers, sending a smiley face is somehow "toxic", you should prob send :^), as it is kinda playful and leaves no room for misunderstandings (I hope)
12:50 ❣❣❣❣❣❣❣❣
nice
👍👍
bro i'm waiting for next video in flutter setup on nvchad please make make make .......!!!!!
Deal. I've added it as the next one in the series.
Cobol on wheelchair!
Gigachads uses the most hated stack in production
Can u so 1 for deploying a phinix app?
This is a great idea
@dreamsofcode Thx. I am just working on 1 rn and I asked for what I needed
Mine could be Zig, Sveltekit, supabase
I like zig but the documentation of the standard library is horrible. Better documentation imo would make it more attractive.
CRUD in language with possible use after free? No way
Why are you including a whole Rust toolchain in the deployed container?
Yeah, there's no need to do so. I was just copying the example on the fl0 website. I probably wouldn't use the chef base image either in a personal project but wanted to make it as easy to follow as possible.
Gotta love SQL injection ;)
For the update handler, shouldn't it be sensible to use PATCH instead of PUT?
PUT is where you can add a resource with the properties without failing as in "already exists". PATCH is to update a resource's properties
A great question! I typically prefer PUT to PATCH for updating. PATCH is used for partial updates, rather than replacing the resource in its entirety.
Actually JS is most loved (desired).
Why the heck does that Dockerfile consist of FOUR stages that almost do nothing? I mean, one build stage is for providing a base for two other build stages, which look like they could do their stuff in one build stage. Is this necessary in rust or why is the "cargo chef prepare" in a different build stage than the "cargo chef cook" and "cargo build"? Seems overcomplicated to create a new build stage for every command but copying everything over from the previous stage. The only thing I could think of is optimizing container build time by making better use of layer caching, although this doesn't seem that significant here.
Agreed. It's not how I would normally write a dockerfile. I also don't believe you need to use their reference one either (I tried it out on another project and it worked fine). You should be good with a more concise dockerfile.
Could have used Svelte + Rust for the API.
nestjs js would do all of this in single line comand in terminal 🤣🤣🤣🤣
Man I would love to see you build on Elixir... There is already lots of Rust content. Even though I love Rust, It would be nice to see Elixir + Phoenix on your channel.
Agreed!! 🎉
Where are the tests?
They're in the 60 minute video 🤣
I personally hate docker with a passion. As soon as a I see shit that doesn't touch the file system and is compiled with it's deps using docker, I blow a fuse.
What do you hate about it?
@@dreamsofcode the fact that every docker user thinks that they are Google?
You may be deceived if you trust too much, but you will live in torment if you don't trust enough.