get-convex / convex-backend

The Convex open-source backend
https://docs.convex.dev
Other
1.9k stars 70 forks source link

Docker commands #6

Open adelin-b opened 3 months ago

adelin-b commented 3 months ago

Hello,

Rather than having to make user download the binary or build from source it would be nice to have a docker pull convex-backend command that would just start it with the correct binaries.

nipunn1313 commented 3 months ago

yep makes sense! A better development flow is on our radar, which may or may not include docker (tbd). docker pull convex-backend does sound like a good idea.

patte commented 2 months ago

If you are ok with irregular updates you can try: docker pullghcr.io/patte/convex-backend:latest Motivation: I'm evaluating convex for a project that requires self-hosting / private cloud.

saaskitten commented 1 month ago

yep makes sense! A better development flow is on our radar, which may or may not include docker (tbd). docker pull convex-backend does sound like a good idea.

Just bumped into Convex today due to a friend's referral just to realize that the local dev setup is so bad that it requires everyone on the team to setup a project on Convex dashboard.

I can't help but wondering if the lack of good local dev experience is just a way to force us (a small team of 3) to pay for $25/month for each team member even before we start producing anything that brings in revenue?

yep makes sense! A better development flow is on our radar, which may or may not include docker (tbd). docker pull convex-backend does sound like a good idea.

Given that the comment was last made on Jul 20, and it's already Oct, it's hard to believe that this isn't the intention.

jamwt commented 1 month ago

Hey! Sorry for the frustration... here's an update on our side.

  1. We have an internal alpha of defaulting to local dev even for the Convex cloud product. That way you can use your own hardware and not incur any server-side resources that would force you to upgrade to pro--yet you can still use the dashboard. The dashboard will integrate with the local-running dev instance.

  2. It sounds like a second concern you have is the "team of three" issue. Namely, that if you have three developers on a team together, that requires an upgrade to Convex Pro. We don't currently have any plans to change that, but we're always listening to feedback. In general, even pre-revenue teams find a supported and improving Convex valuable enough to spend $25/mo on per engineer (an engineer's time being quite valuable, after all)... but I understand there are exceptions where that is an uncomfortable amount of money for some teams.

If optimizing for a zero-USD bill for Convex is important in your case, feel free to split your project between two teams during development so you can use the dashboard. We won't tell anyone.

Finally, there is an implied question about "why don't we just allow usage of the dashboard for Convex open source?". The simple answer is: the dashboard was designed as a monolith to manage all cloud accounts. It would actually be a ton of work to split it out and make it attach to a single deployment while running on your laptop. We might do it one day, but it's not on our roadmap right now.

Hope that helps! Please let me know if you have more questions.

saaskitten commented 1 month ago

Hey! Sorry for the frustration... here's an update on our side.

  1. We have an internal alpha of defaulting to local dev even for the Convex cloud product. That way you can use your own hardware and not incur any server-side resources that would force you to upgrade to pro--yet you can still use the dashboard. The dashboard will integrate with the local-running dev instance.
  2. It sounds like a second concern you have is the "team of three" issue. Namely, that if you have three developers on a team together, that requires an upgrade to Convex Pro. We don't currently have any plans to change that, but we're always listening to feedback. In general, even pre-revenue teams find a supported and improving Convex valuable enough to spend $25/mo on per engineer (an engineer's time being quite valuable, after all)... but I understand there are exceptions where that is an uncomfortable amount of money for some teams.

If optimizing for a zero-USD bill for Convex is important in your case, feel free to split your project between two teams during development so you can use the dashboard. We won't tell anyone.

Finally, there is an implied question about "why don't we just allow usage of the dashboard for Convex open source?". The simple answer is: the dashboard was designed as a monolith to manage all cloud accounts. It would actually be a ton of work to split it out and make it attach to a single deployment while running on your laptop. We might do it one day, but it's not on our roadmap right now.

Hope that helps! Please let me know if you have more questions.

Thanks for the quick reply and sorry that my tone was harsh now that I'm reading it again.

We were evaluating between Instant, Convex, Supabase. We have decided to go with Supabase (likely Pro plan) due to:

  1. local dev experience
  2. vendor lock-in (convex really seems to be the least friendly to move away when the cloud's pricing doesn't work for us, it's okay to pay but if there's a risk to end up with a Datadog-like billing, we'd like to avoid it)
  3. product maturity (instant is out as there are rough edges on schema changes)
  4. database knowledge (it's not clear how convex db is designed internally and it'd be risky if our team who already know SQL get stuck with convex gotchas)

Things we like about Convex though:

  1. keep things structured on backend (we prefer separation of concern)
  2. cron/scheduled are well thought through

Anyway, thanks again for taking the time to reply!

jamwt commented 1 month ago

Fair enough. Thanks for the honest feedback.

If you're ever curious to know more about how Convex works, there's a pretty solid writeup here: https://stack.convex.dev/how-convex-works

But given your considerations/tradeoffs, sounds like Supabase is the right call for your team. Good luck with the project!