# Oxide > The backend unframework. ## Introduction - [Getting Started](https://oxide.build/getting-started): Oxide is a build plugin and a typed RPC layer. Start with one, or use both - they work together or on their own. ## Oxide - [Overview](https://oxide.build/oxide/overview): One plugin, one build - a server bundle, and a client only if you have a page to ship. - [Quickstart](https://oxide.build/oxide/quickstart): Install the plugin, write a server, and run a production build with Vite or Rsbuild. - [Server Entry](https://oxide.build/oxide/server-entry): Handle a request in your server entry, or skip it and let static files take over. - [Server Actions](https://oxide.build/oxide/server-actions): Write a function on the server and call it from the browser - types stay in sync, the function never ships to the client. - [Configuration](https://oxide.build/oxide/configuration): Choose how the app is built and where it lands - a Node server, or a self-hosted worker. ## Tacho - [Overview](https://oxide.build/tacho/overview): Define procedures once, then call them in the same process or from another machine - the types are the same. - [Quickstart](https://oxide.build/tacho/quickstart): Install tacho, define a few procedures, serve them, and call them from a typed client. - [Router](https://oxide.build/tacho/router): Group procedures into a router, nest them, check their inputs, and call them in the same process. - [Middleware](https://oxide.build/tacho/middleware): Run code around a procedure - add a user, skip the handler, or change the result. - [Context](https://oxide.build/tacho/context): Attach per-request data such as the caller, then read it inside any procedure. - [Files](https://oxide.build/tacho/files): Send a file up, or return one as a download - mix it with regular data. - [SSE Streaming](https://oxide.build/tacho/sse-streaming): Stream values from the server as they happen, and read them with the same client call. - [Error Handling](https://oxide.build/tacho/error-handling): Throw a typed error from a procedure. The client sees the message, not the stack. - [OpenRPC](https://oxide.build/tacho/openrpc): Turn your procedures into an OpenRPC document you can inspect in the playground. - [API Reference](https://oxide.build/tacho/api-reference): A short list of every public export, with links to the pages that explain them. ### Transport - [HTTP](https://oxide.build/tacho/transport/http): Serve your procedures over HTTP and call them from a typed client. - [WebSocket](https://oxide.build/tacho/transport/websocket): Serve your procedures over a WebSocket and keep one connection for every call.