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.
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.
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
The code is equipped with NPM scripts (run from bun
or pnpm
), and a Makefile
.
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.