Avatar of Jim Hill
Recommends
on
ApolloApollo

Whenever choosing a tech stack start with the simplest solution. WordPress might be a simple solution for all your problems with little development experience. However the booking feature with backing database may require more coding. If that is the case, a PWA is not a bad choice. I have not personally used svelte but it looks to be primarily a prebuild static site generator. This may make some runtime elements difficult like logins or reactive behaviors. I don't think you need those heavily so Svelte might be a good fit. If you need something more heavy duty based on React, consider Gatsby. I have found it is a good combination of SPA and static site features and can still be hosted on a CDN like Cloudflare. Svelte is newer to the game (but newer is not always better). Regarding the backend API, I have heard good things about FaunaDB. However, if you want to use the sql database you already have you could drop an Apollo server right in front of it to add the graphql features you crave. GraphQL is a great modern way to build an API. I endorse it. All my APIs are GraphQL. Regarding Deno, it is very new to the game... very new. I am excited to move all my stuff off nodeJS to Deno someday, but be aware as it's new it may have gaps and cause some headaches where NodeJS will just work and has the best package ecosystem in the world, NPM. For example, to use Apollo Server you'd have to use NodeJS instead of Deno. Overall, your choices are cutting edge so I think it would result in a sleek app, but know that with the newest comes the most change and learning difficulty. Also, I endorse using cloudflare for static site hosting. It is awesome. If you have any questions, don't hesitate to reach out for more specifics.

READ MORE
5 upvotes·2 comments·3.3K views
Paul Vardy
Paul Vardy
·
November 29th 2021 at 9:31AM

Just to add to Jim Hill's comment:

“I have not personally used svelte but it looks to be primarily a prebuild static site generator. This may make some runtime elements difficult like logins or reactive behaviors.”

It is the exact opposite. Dynamically updating different parts of a page based on user interaction with the page, along with elegant and performant animation is very easy with Svelte.

Dynamic websites are Svelte’s bread and butter - with reactivity that is better than React’s.

Regarding Gatsby - my understanding is that Gatsby is a static site generation (SSG) solution built on top of React.

There is of course also Next.js, a static-site rendering (SSR) solution also built on React.

Svelte is really a compiler that compiles a site ready for the server to put the pieces of a page together based on the incoming call to the web server (such as a Cloudflare Worker).

SvelteKit is for Svelte, what Gatsby and NextJS are for React. An opinionated framework built on top of Svelte that allows you to create SSR (and SSG) websites and applications.

I’ve read of devs moving from Gatsby to Sveltekit and being able to leverage the performance advantages it has over it. Personally though I have never used Gatsby, so that’s anecdotal, but it does seem to be a recurring pattern.

* GraphQL

Fauna supports both FQL (which to me feels like the serverless version of SQL - I found it very easy to pick up) and GraphQL. They are fully implemented database servers.

As Jim Hill mentions, Apollo Server can provide GraphQL endpoints, meaning your web app can talk to the server in GraphQL - the Apollo server can then talk to your existing (My)SQL server using the Sequelize plugin (for example). This is very useful if you are not able to move your database or simply want to keep it where it is - but it’s not performant.

Using Fauna reduces all these different components, simplifying the architecture, and provides significantly better load handling. That said, Apollo is an immensly useful service if you need it.

Regarding Wordpress - yes you could use it for that - but it would take quite a bit of work. I had some experience using Wordpress a few years back setting up a simple website for my Dad. It’s working fine for him. I will say though that it will bring with it lots of issues that you will have to deal with down the line. Much like Drupal.

It may well be perfectly useable for the OP, but you will be fighting the constraints of the CMS at some point. Since the OP does seem to be interested in writing the site rather than attempting to build it with a CMS - I can’t really recommend it.

·
Reply
Jim Hill
Jim Hill
·
November 30th 2021 at 3:58AM

Thanks for the clarification. I will definitely check out Svelte more. I really believe in compile time optimization which it appears Svelte may have taken to the next level beyond React or Gatsby (on top of React).

·
Reply
Recommends
on
KafkaKafkaRedisRedis

I would not recommend RabbitMQ. It does not scale well.

I would recommend Redis if you want non-durable, fast, distributed, and scalable messaging. Note it has almost no guarantees around at least once delivery and similar so you will have to handle that.

I would recommend Kafka if you want the whole deal with a bit more bloat. It is durable, fast, distributed and scalable. It has few downsides other than a learning curve and higher cost.

I currently use Redis as my message queue and plan to upgrade to Kafka in Q1

READ MORE
3 upvotes·119.9K views