What's the best way to structure my application?

Hey,
(Not sure if this is the right category, please move if it’s not the right one.)

I’ve been going through the tutorials and am about to start my first bigger build with Encore.
I’ve not seen an example of what a bigger system should look like, so I’m not sure how to structure my Encore app.

I’m planning on building something similar to AirBnB in terms of functionality, but in a completely different space – focused on renting out sports equipment.

I know AirBnB themselves use a lot of GraphQL (see this article), but my impression is that with Encore there’s less of a need for that and it’s fairly straightforward just to build microservices and generate frontend clients for them.

Obviously my project is less ambitious than AirBnB at their current scale, so want something fairly simple to start but that will still keep working if I get good traction and growth.

Any ideas on where to start this with Encore?

1 Like

Hey WindowMaker, great question, and welcome!

I think that’s a perfect approach. GraphQL is an amazing technology, but the main benefit comes at scale. When just starting out the complexity tends to not be worth it.

Modeling your application as microservices that you break down into the different components of your domain makes for both a really easy-to-understand system but crucially one that will also scale. Encore makes this part really straightforward, and will definitely support you as your application scales, in usage, scope, and engineering team size.

If you build with Encore I would start by generating a client for your frontend and use that to quickly build out your application. You can easily integrate that with frontend frameworks like Next.JS and Remix. See for example this blog post about how Console did something similar.

And once you feel ready to use GraphQL, it’s quite straightforward to use in conjunction with Encore! There are lots of Encore users doing the same and it works very well. We’re going to be writing a how-to guide on this, and we’re also planning on adding built-in support for GraphQL into Encore to make the integration even more seamless.

Hope that helps!

2 Likes

Thanks for sharing that example. It’s always nice to see how others are doing it.

Is there any example app or guides for how to setup frontend hosting?
I’ve used Vercel in the past so was thinking about using it again for this project. Or will Encore also support frontend hosting soon?