Jacob Ehlert

engineering

Tue Jan 28 2025

Tech stack

We aim to make Bibleio as fast and performant as possible. To make this happen, we should write good, minimal code, and use performant technologies.

Why aim for speed & performance?

Speedy software is nice, and waiting for the app to load is annoying. We also want to consider users with lower end hardware and internet speeds, cutting down on bundle size helps them out a lot.

Stack

Notice - As of right now, we are still using React, but we plan on migrating soon to more performative and lightweight technologies.

Front-end

For all of our apps, we use Astro + React.

Apps

For the mobile & desktop apps, we use Tauri. This makes it really easy for us to develop apps, since Tauri supports any front-end framework. Using our front-end stack, Astro with Tauri gives us great performance. Tauri uses Rust behind the scenes for system related stuff, such as managing files, which is also good for performance and security.

Design system

In our design package which provides components and styles, we use React, and Radix Primitives for base components, like dialog, selects, etc. For styling we use Tailwind.

Back-end

Our Bible API is planned to be made in Rust with actix-web. We plan to build an authentication server with actix also, once we implement accounts.

Deployments

We use Cloudflare Pages and Workers to deploy our websites, web app, and our Rust API. Their huge edge network reduces latency, and gives us performance, since our products are closer to the users.

For anything that doesn’t really need to be fast, or isn’t once of our products (such as our analytics), we self host it with Coolify on our own server!

Miscellaneous

  • Turborepo as our monorepo manager
  • Biome as our code styler and linter
  • pnpm as our package manager
  • Umami for lightweight & privacy friendly analytics