9 Replies
@Mikael Lirbank said:
I heard from some some other peeps at Reactathon that Convex is the best attempt so far at building a "database for the frontend", but peoples concern are all the "magic" provided which makes it hard to understand what's going on and even more so to migrate away if needed.this is great feedback. I had a few questions if you don't mind elaborating. we're definitely always a little wary of this convex is just sort of a newish thing, so I get how it can feel a little too opaque/magical. it's not doing anything that crazy under the covers, but yep, it does feel that way 1. we're been debating writing a blog post on "how convex works" that goes into some detail about how everything flows; do you think this would help? 2. we're putting together plans to open source the back end soon -- nothing announced yet, but probably will share more about this within the next few weeks. do you think this would help address this apprehension? (things like mongodb and firebase were once new too, so we're trying to study what worked for those systems when they introduced themselves to developers, and to learn from them. Adopt as many relevant practices as we can to de-mystify convex while keeping our unique / differentiated properties intact)
Additionally, I believe training a customized AI on convex documentation or your examples definitely help the adoption of convex, this is not yet recognized by gpt, so I consider it a disadvantage comparing to supabase, graphql, etc, trpc was facing the similar issue
Hey, these are some good ideas. I think a blog post would be helpful, and especially if you address how to migrate away from Convex (just to give confidence to people who are worried that Convex may not turn out to be right for them after a while, and it would show that you are confident Convex is so good so no one would migrate away - eg the opposite of vendor lock in).
I am not sure open sourcing is too important. If Convex fails, I would not start hosting it myself, I would start to migrate to something else. Maintenance is too expensive for anyone realistically pick up the source code. RethinkDB failed, and some peeps are still developing it as OSS, but I would believe most apps that once we running RethinkDB are now migrated to something else. I am not at all against open sourcing, but I don't feel it is super important when it comes to the matter at hand.
Personally, my current hangup is with the integrated auth. It feels so intermixed that I worry it will be hard to migrate away from Convex in 6 months, should I feel I need to (an insurance I want to have to seriously build on something new like Convex). I feel building auth into the stack is the wrong abstraction. I think the context should be user defined (like GraphQL or tRPC). That way anyone can set up auth or anything else in the context or in the individual functions. You could then provide a number of convenience functions to easily set up auth.
Imagine this:
Instead of this:
remove auth and add a custom context, like this:
or like this:
Then you can either do auth in the context function and pass the current user as context to the query functions. Or you can pass what ever headers you need from the context function to the query functions and do the auth in the query functions, or any other way you like.
Then optionally you could provide some optional wrapper functions for handling auth, to make it easier. This auth package would indeed benefit from being OSS.
And what if that OSS auth lib (library, not a service) even works with any DB (main focus is Convex but it works with MongoDB and SQL with some adaptors, or manual config instructions)? You would hit three birds with one stone.
1) It would make it super easy to move to another DB (shows you are confident Convex is awesome and that people will not actually migrate).
2) The user DB would be 100% hosted in the primary DB (Convex DB). Some people may not agree that this is a benefit, but personally I don't get services like Clerk and friends. It's just such a pain to configure them and sync users to the primary DB. What you gain in not having to set up auth you loose in having to learn a new service and their libraries, and how to customize it, and syncing, and and and. More intertwined services, more ops problems, etc. And the feeling of having the user DB locked up by some provider feels awkward, can I move my users somewhere else without having all of them log in to my app again? So many questions.
3) Great marketing, devs looking for a modern auth package find convex-auth lib, then find Convex for their next project.
4) Since Convex business model is around the hosted DB, you don't have to make money on auth. An auth lib is always better than a service. But it is very hard (impossible) to monetize a library, so auth companies make services (Clerk, Auth0, Magic, etc).
Ok, four birds. Or just four unorganized ponderings 😄
ConvexAuth - free auth library for any DB. We recommend ConvexDB.Also completely possible that I miss something about the inner workings of Convex (DB). I am still exploring the product. Having fun though!
I just watched a fantastic talk given by James at the CMU database group, and I really recommend giving it a watch when you get the chance. Here's the link https://www.youtube.com/watch?v=iizcidmSwJ4&
There's so much knowledge being shared in these talks, and I genuinely believe we should have more content like this. Though, I do think we could use a more marketing-oriented approach to make it more engaging and accessible. Take Vercel for instance. I can't help but admire how they've managed to differentiate themselves through their brand awareness. Sure, it might come off as a bit pretentious at times, but their branding strategy clearly sets them apart from their competitors.
I wish convex all the best because I've already bet on it, and had fun so far, unargubly the fastest way to build something that just works
CMU Database Group
YouTube
Convex: Life Without a Backend Team (James Cowling)
CMU Database Group - Vaccination Database Tech Talks - Second Dose (2021)
Speakers: James Cowling (Convex)
November 22, 2021
https://db.cs.cmu.edu/seminar2021-dose2#db12
Sponsors:
OtterTune (https://ottertune.com)
Steven Moy Foundation for Keeping it Real (https://stevenmoyfoundation.org)
Glad you like this talk! We definitely want to provide an updated, more visually polished version of this soon. Since back when James gave this talk, a lot of these ideas were still theoretical. And now, they’re actualized and can be used by everyone. Perhaps this would provide a clearer model for what’s happening under the covers.
That would be awesome! As we approach the release of Convex 1.0, I believe some brand upgrades could enhance the overall user experience and attract more developers. A fresh design for both the landing page and dashboard, including a dark mode option, could provide a more immersive and comfortable environment for users. After all, great technology needs equally great marketing to increase brand awareness. I feel that improvements like these would make developers even prouder to be a part of the Convex community. Just a suggestion from an enthusiastic observer. Keep up the good work!
also I believe you want to have a roadmap page that people can vote upon like this one https://grafbase.com/roadmap, this will give users the confidence that convex is evolving into something to be the reactive future for web dev, not just another alternative to XXX
Grafbase
Dashboard
thanks for the feedback @whoami! always very keen to receive it. glad you liked that talk too. we can definitely do with putting out some more technical material like that. would help to have various levels of altitudes for folks who want to know how things work under the covers, and also for folks who just want to use the thing
Thanks for typing all these ideas up, @Mikael Lirbank . Really thoughtful feedback.