Mooncamp OKR + Dgraph

Hi Dgraph Community!

Today we are launching Mooncamp on Product Hunt! Mooncamp is built on top of Dgraph, which was the best technology decision we could have ever made! I am happy to answer any question you might have, on how we built Mooncamp with Dgraph!

Also, if you want to try Mooncamp or give us an upvote, that would be awesome!

Greetings,
Joschka.

9 Likes

Hi @Joschka amazing job! Product feels really smooth! Could you share some lessons you had while building Mooncamp with Dgraph? Are you guys using GraphQL?

Hi @AugustDev, thanks. Great that you like Mooncamp :slight_smile:

We are not using GraphQL, but DQL + our own implementations for a lot of Dgraph’s GraphQL features (such as access management). This allows us to still fire DQL directly from the frontend. Reason is, that we started building Mooncamp when GraphQL wasn’t available yet. However, we chose to stick with DQL, because we love the extensions Dgraph added to the GraphQL standard (such as ‘var’ blocks).

If you have any more specific questions shoot!

Thanks for sharing @Joschka, very impressive work!

We’re also planning to roll with DQL (for an educational website) and it’s interesting to see your approach!

Few questions if I may …

  1. our own implementations for a lot of Dgraph’s GraphQL features (such as access management). This allows us to still fire DQL directly from the frontend

Did you do any load/concurrency testing of using DQL directly from the frontend? We’re a little uncertain of the limitations here in terms of “open connections” when not working with gRPC. I assume you’re using the the HTTP or do you have some middleware? Could you unpack a little bit more about “your own implementations”?

  1. such as ‘var’ blocks

Could you share any implementation details around this nice filter? Does it employ those ‘vars’ a lot? Any lessons learned when building complex filter would be much appreciated. Also, did you ever build a filter that targets more deeply nested attribute (multiple hops down) like Owner.Country.Name?

  1. Did you employ @reverse extensively? Any lessons learned from that?

  2. How did you approach search? Also Dgraph-driven?

  3. Broad one … What’s your biggest painpoints with Dgraph / what’s highest on your wishlist?

  4. Did you roll your own UI for tables etc. or something like react-notion-x? Seems like a lot of work to get it this smooth :sweat_smile: Good job!

  5. Do you or anyone in your team consult? :wink: We could use another Dgraph engineer on our team if you have any recommendations :slight_smile:

Thanks a bunch for any hints …

1 Like

Do you mean trigger DQL from the frontend, because given that DQL is not constrained by auth (it’s basically SQL for Dgraph) I can’t think how sending DQL statements from a public client (like a website) could be secure.

2 Likes

@Daniel I read your post and want to answer asap. It’s on my todo.

@BenW true, that wouldn’t be feasible, or secure. We have our own access management implementation that acts as a proxy between the client and Dgraph. However the client is essentially free to query whatever (meaning all DQL features are available)

2 Likes