Sxo

screenshot of Sxo

SXO is a multi-runtime server-side JSX tool for Node.js, Bun, Deno, and Cloudflare Workers. It includes SXOUI, a framework-agnostic UI library inspired by shadcn/ui

Overview

Server-Side JSX is an innovative approach to web development that emphasizes speed and simplicity. With a minimal architecture and a powerful command-line interface (CLI), it aims to streamline the process of building websites without relying on client frameworks like React. This solution is optimized for server use, featuring a clear directory-based routing system, hot replacement capabilities, and is powered by esbuild along with a Rust JSX transformer. Whether you are a seasoned developer or just starting out, Server-Side JSX makes it easy to build fast, efficient websites.

The multi-runtime support offered by SXO sets it apart from other frameworks. Running seamlessly on Node.js, Bun, Deno, and Cloudflare Workers, it provides flexibility in deployment and a consistent experience across various platforms. Its design philosophy of composable JSX and self-contained HTML pages allows for rapid development and high performance, ensuring that developers can focus on building exceptional web experiences.

Features

  • Directory-Based Routing: Each folder corresponds to a route, allowing for better organization and easy inclusion of dynamic parts such as post IDs or slugs.

  • Full HTML Page Components: Every page's render function returns a complete document, which includes the essential <html>, <head>, and <body> sections, ensuring full self-containment.

  • Optimized for Reactive Components: It pairs seamlessly with lightweight primitives that allow reactive islands to be added only where necessary, promoting efficient loading.

  • Hot Replace Dev Server: The development server provides hot replacement, automatically refreshing components while enabling a readiness probe for a smooth development experience.

  • Minimal Core Production Server: The production server is streamlined, allowing developers to implement their middleware policies easily.

  • Rust-Powered JSX Transformer: With a combination of speed and efficiency, the Rust-driven JSX transformer ensures quick builds and small runtime helpers.

  • Dual Build Outputs: Client assets are generated with hashed filenames for version control, separate from the server bundles that remain private and secure.

  • Configurable Build Options: Developers can customize loaders for different file extensions and set a public base path for assets, making deployments adaptable to specific needs.