I find the best way is to first properly plan your application with Claude, then build the foundation code, then us a combo of Claude (with Projects) and Cursor to get the best results with the least amount of back and forth with the AI due to bugs and improper code. #convexfanboy 💪🔥
bro to get rid of that popping in the audio from your mic: you need to turn up the buffer size on your audio interface and that will stop the annoying popping XD
The correct way to use that helper was return db .query(table) .withIndex(index, (q) => q.eq(field, value)) .collect(); << WITHOUT collect, so you can use it in combination with pagination and such!
I think Convex has a great potential! IMO there are 2 things to absolutely consider and improve: - If you say that doing the joins the way we are doing it right now is good and efficient, then you should educate developers on that by giving examples maybe "execution time" difference between a non-convex SQL scenario and a convex scenario in the documentation directly to explain and reassure the developer that it is normal and shouldn't be worried. Otherwise, developers will assume it's not efficient and potential drawback or bottleneck. - Your pricing is transparent, we understand clearly what we are paying for. This said, I think a smart calculator where you can estimate based on the number of your application, especially heavy real-time or whatever, will really help people take their decision to use Convex. It's probably very hard for you to estimate because it depends a lot on how much they are making function calls...But you can still give an average or an idea with a warning or something that will explain why it might be inaccurate and wrong and give direction. Maybe what you can do is to do a case study for a complex app with sliders to change how many users....etc Since you have so much data, I think you can know approx what's the average functions calls / user and do an example with a "normal" app and a heavy more intensive app. Idk, it's hard 😅
The best thing about convex is that it makes a large backend feel small. Everything just feels so lean, fast, easy to change. So many developers would love using it
We debated it a couple of years ago when we were first setting out. Magically indexing can unexpectedly result in unexpected performance or cost changes. So we decided to stick with explicit indexing. However, we are planning on adding indexing "hints" and assistants to help you identify queries where we think it's worth it or where you've missed one. That feels like the right balance of helpful and explicit to us.
There's a write and storage overhead for any index added, e.g,, if a developer has 100 fields on a document and an index on each one then that will mean updating 100 separate indexes for every write. Firebase has indexes on all fields but that feels like the wrong default for growing applications. We didn't want folks scaling out of Convex because of issues like this. Hopefully index hints in the dashboard etc (when we add them) will help developers get used to the idea of defining their own indexes.
It's refreshing to see a company acknowledging their faults and not have a pr member in reddit trying to justify it like it's not a non-issue, awesome stuff guys
Convex is awesome tech, but it still retains biggest downsides of the Firebase: 1. Unpredictable pricing which can easily skyrocket. 2. Vendor lock in. As long as self hosting is offered as it is now, you are locked in into using their platform. Since the pricing is only suitable for hobby projects or for VC-backed startups which can benefit from their startup program - this is a huge problem. In addition to that, most of the features are underbaked, helpers implementations have lots of bugs. I believe this stuff going to get better, but unless first 2 points are fixed - I don't believe it is a viable choice for anything apart your hobby apps with 0.5 users (or VC-backed startups).
You write it is a viable for hobby apps with 0.5 users only because those will not incur any bill? Tell me which business will not incur bills in the process of servicing real users at real scale. On the contrary, the perceived downside with there being costs to pay for the hosted version of Convex, forces you to think about your business model, pricing and economic feasibility. This rigor will only lead to stronger business in the long term. And it is better to start with rigor as a foundation than try to apply it as a retroactive bandaid. And I don't agree the pricing is unpredictable, all of it clearly specified and listed. Unless you are speaking to the Convex team arbitrarily raising price?
@@handfuloflight Take a good look at function calls section in the pricing, you will see that explicit calls, scheduled executions and SUBSCRIPTION UPDATES are counted as function executions. Let's say you have some public data (it can be something like upvotes indicator on a social media post), which can be simultaneously seen by let's say 50 users, each update to the underlying data will trigger 50 functions effectively. How are going to estimate your costs in such case? I understand that every business has operational costs, but with lower operational cost - come higher profit margins and the ability to provide your users with cheaper service. Please note, that there are tools (combinations of tools) which allow to achieve all of the stuff that convex provides which are literally x100s (in some cases up to x1000s) cheaper. It's not something I am hypothesizing about, Firebase has the same pricing model in regard to function calls, you can effortlessly lookup many horror stories about them :)
@@semyongufman3911 If you're building a hobby app, then as you said, you have nothing to worry about because no one will use it. If you're building a business, then Convex isn't forcing you to do anything; you have to think about those factors anyway or you don't have a business.
@@convex-dev offline was scheduled for the latter part of this year, last time I checked, whats the sitrep and roadmap timeline looking like for offline/online sync?
I love convex, I was new from non it , and struggling with other backend service then I see convex and now I can do all complex form submission, file storage, and sorting and searching with it I love but if there was a doc where I can see all mutation and query function example it would me more easier for newbies 🎉🎉🎉🎉❤❤❤❤❤❤
I was happy to pay for Convex while I am still learning to move my website over from Firebase. I feel that Convex is like a million times better than Firebase. I am sure that I could have used the free tier based on the traffic that I will get in my business but I wanted to support the project just because it is a wonderful alternative to Firebase and I think Convex is better than a lot of other paid database plans out there. Thanks.
This takes balls. By the way, guys, I'm aware of the downsides of going with Convex, but fuck... your product is A-M-A-Z-I-N-G. People seem to not understand one thing: TRADEOFFS. With good comes bad and you can't have it all. By using convex you adhere to making some sacrifices like, less flexibility, no control on costs, being dependent on another product for your product, having to invest a lot of money to rewrite your entire backend if you choose to move out, etc and that is the price you have to pay for the benefits you will gain: no need to go deep into backend nuances and technicalities, much less configuration work to get off the ground, incredible speed for implementing new features, managed infrastructure, a fast backend written in Rust, managed web sockets, eased state management and a lot less code in the frontend, INCREDIBLE developer experience, a panel control dashboard to see all your backend in one place (logs, data, even functions, cron jobs, etc), a what looks like a caring and trustworthy crew behind and much more. SaaS is an iteration game and I believe using something like Convex in the beginning is something worthwhile for startups, since it's hard to find product market fit and founders usually have to try multiple times, Convex will allow you take more chances at the product market fit game which is an ever getting harder game, and less headaches when you will have to market and launch your product and you won't have as much time to code as before.. For my case, a solo technical founder that is launching a SaaS and has to manage product development, sales and marketing all together the tradeoffs are worth it.
I'm thinking of migrating an Atlas Realm app to Convex, I will do a separate branch to test it out. I really enjoy the Zen of Convex, thank you for this great podcast.
This is literally what i am looking for.....less server and more client but with good dexX and simplicity....i have always been a fan of Tanner and his products and i admire what the convex team is doing....I cant wait to build with this 💖💖
I wish plain javascript was the first "framework" people supported. Not everyone loves React. But otherwise, very cool and very excited about this video and feature.
Good episode but I think you are not taking full advantage of the content game. As a subscriber I would like to know more about the incredible advantages Convex can give you. Even though I already know them, I would hear them over and over again, because it feels good. Break down how much time you allow us to save, talk about what usually goes wrong in the development of a SaaS, the risks, the possibilities that are unlocked by being able to dedicate much more attention to user experience. I'm a frontend develoler and 6 months ago you gave me like a superpower with Convex, it was a total game-changer. The effort you put in every day is visible and remarkable and the value of the product is clear, I think you are making yourself a disserves by not pushing on marketing and content more.
Great question! There are a number of options. The fastest and most complete way would be to incorporate Clerk (docs.convex.dev/auth/clerk) which works seamlessly with Convex. However if you'd like to keep things really tight, you can use native Convex auth (docs.convex.dev/auth/convex-auth), and an example of protected route would look like this: ``` // convex/auth.ts import { getAuthUserId } from "@convex-dev/auth/server"; import { query } from "./_generated/server"; export const currentUser = query({ args: {}, handler: async (ctx) => { const userId = await getAuthUserId(ctx); if (userId === null) { return null; } return await ctx.db.get(userId); }, }); ``` And you'd call this Convex function from your http.ts file: ``` http.route({ path: "/protectedHello", method: "GET", handler: httpAction(async (ctx) => { const currentUser = await ctx.runQuery(api.queries.currentUser); if (!currentUser) { return new Response(JSON.stringify({ error: "Unauthorized" }), { status: 401, }); } return new Response(JSON.stringify({ message: "Hello, world!", user: currentUser }), { status: 200, }); }) }); ``` Let me know how it works for you!
Nope. Jamie was using the cloud service for this video. But Convex is open-source, so you can download it and run it on your machine if you'd prefer that.
So true.. use what you know and remember money drives many things in this world. P.S. I would suggest you guys put a link to the full video in all shorts, helps if somebody wants to know more (like it happened to me with this one)
I'm a noob at coding who started 6 months ago, but Convex is and always will be my go-to database 👐down, even though I don't fully understand but I learn something new every day I read Convex Docs. It's truly is a innovated concept. Keep up the great work gentleman. You are getting free advertisement from this team of one, 😂😂
I am a huge fan of the convex project. I use it very well and almost the only one I have seen in my country. I want represent convex in my country Mozambique and in Africa if possible
This is such a thoughtful sentiment! Thank you so much. We're still a very small team and don't have global reps yet, but you should join our Discord community - there's lots of engaged folks in there, including the Convex team! convex.dev/community