Skip to content

elide-dev/site

Repository files navigation

elide website

This repository hosts the frontend code for the Elide website. It uses Bun, TypeScript, React, Lit, pnpm, esbuild, Cloudflare, MUI, Turbo, Tailwind, PostCSS, Sass, Browserslist, Buildless, and, of course, Elide.

How it works

The dev stack for this project is designed to be flexible, with the ability to ship to servers like Express (on Node), Deno, Bun, and Elide. This allows benchmarking, testing, and development flexibility as those runtimes mature.

Architecture

The Elide site uses hybrid SSR. In this serving model, the application is rendered server side on the initial page hit, and fully returned to the client (including styles).

Once the client receives the page, it is directed to download and execute a specialized client-side bundle which knows how to "rehydrate" the server-returned markup.

Part of the complexity handled by this app, and therefore provided for benchmarking/testing, involves the proper building, serving, and fast rendering of this ("hybrid SSR") model.

Supported servers:

  • Express, via Node
  • Cloudflare Workers
  • Bun's built-in server
  • Elide's built-in server
  • Deno's built-in server

Working on the code

The code is equipped with NPM scripts (run from bun or pnpm), and a Makefile.

Structure

Most of the UI is in the components directory, and those are stitched together into the website via the app directory. This is then rendered via client/server use in the entry directory, and served via the server directory.

To summarize:

+ site
\
 |- app             # Main application (website) pages and logic.
 |- components      # Reusable React/Lit components.
 |- entry           # Entrypoints for client/server use.
 |- packages        # Utility and API packages.
 |- server          # Different server scripts.
 |- tools           # Build and dev tooling.