A Nix template for full-stack web apps in Rust using Leptos. Tech used:
- Leptos full-stack framework
- Axum as backend framework
- Tailwind CSS for styling
- Build system
- Autoformatting using
rustfmt
andleptosfmt
Enter the Nix shell, and run:
# To spin up the dev server
just watch
# To run tests
just test
nix build
# To build the rust doccs
nix build .#leptos-fullstack-docs
You can also nix run
the app directly.
Import ./nix/flake-module.nix
from this repos as a flake-parts module. For an example project, see nix-browser.
In the future, we might create a standalone flake-parts module for Leptos.
This repo uses the single-crate model primarily because the backend-common-frontend split (prior to PR #5; similar to start-axum-workspace template) is not suitable when using server functions in leptos. Consequently, expect a bunch of cfg
attributes or macros that make backend-only code conditional upon the ssr
flag (which is set when compiling the crate for the backend, as opposed to the wasm frontend, which uses csr
)
The Rust code is largely based on start-axum. Also, credit goes to @benwis for pointers to how crane
can be made to work with cargo-leptos
.