Skip to main content

EzWare Technology Stack

How each tech is used and connected to function together.

This Page, Live

  • ···
  • ···
  • ···
  • ···

How it all comes together

Every app is written as its own source code, not generated from a template or stitched together with plugins. Language and frameworks are determined by the solution being provided. GitHub is used to store code and to operate the CI/CD that handles deployment. A VPS provider allows us to make use of a server to host our applications and services. A CDN provider allows us to deliver our applications to users with low latency and high availability.

On a high level

How our apps are built and served, as two stories that meet at our server. Shipping code: EzWare's engineers write the code on a laptop and push it to GitHub, where GitHub Actions builds it with Vite and Gradle and deploys it to our server. A visit: a visitor's browser follows your domain to Cloudflare, which delivers over HTTPS and finds our server. The server is a DigitalOcean droplet running Linux, with Nginx routing traffic, Bun running the web apps, Ktor running the services and PocketBase holding the data.

UI/UX

What visitors can see and interact with.

Webpages are built with a framework that turns the code into visual components. Visitors interact with these components, and we use them to convey meaning. Design, theming and style are part of the code, so a rebrand or a change to one component is a small edit. The framework keeps each component isolated, so changing one does not affect the others.

Svelte

Server-rendered pages, routing and form actions.

TypeScript

Types checked across every component and route.

Tailwind CSS

Storybook

Build tools

How the code is written, checked and shipped.

The code and the configuration that builds it are stored together, so how an app is built is versioned with the app itself. Tools check and format the code before it is pushed, and an AI assistant helps write it. On each push, an automated pipeline builds the web apps and the server applications and uploads the result to the server.

GitHub Actions

Builds each push and uploads it to the server.

GitHub

Vite

Gradle

ESLint

Prettier

Claude Code

Server-side applications

The logic behind the pages.

Anything that runs on the server, from an app's rules to its API, is a server-side application. Its language is typed, like the one used for the pages, so both halves of an app catch mistakes before the code runs, not in front of a user.

Ktor

Lightweight, asynchronous kotlin-based framework.

Kotlin

Concise and multiplatform programming language by JetBrains

Hosting

Where the apps run.

Applications run on a virtual server that runs Linux. A web server sits in front of them and hands each request to the right application, and a runtime runs the web apps. Once an update lands here, it is live.

DigitalOcean

The virtual server the apps run on.

Linux

Nginx

Bun

Runs the SvelteKit web apps on the server.

Networking

How visitors reach the server, safely.

A DNS provider turns a domain into the server's address and filters traffic before it gets there. A certificate authority issues the certificate behind the padlock, so every connection is HTTPS.

Cloudflare

DNS, CDN and TLS at the edge.

Let's Encrypt

Issues the certificate behind the padlock (HTTPS).

Databases

Where data, logins and files are kept.

A database is where an app keeps what it needs to remember, such as its data, user accounts and uploaded files. The pages and the server applications read from it and write to it, so the information stays the same wherever it is used.

PocketBase

Database, auth and file storage in a single binary.

Build the standard.