.. | ||
src | ||
Cargo.toml | ||
favicon.ico | ||
icon.png | ||
index.html | ||
manifest.json | ||
README.md | ||
style.css |
upub-web
this is μpub main frontend: it's a single wasm bundle doing client-side routing for faster navigation between objects
it has the drawback of not being search-engine friendly, but machines should process data for machines themselves (aka: the AP documents), so it's probably fine to have a "js"-heavy frontend
development
it's probably possible to get upub-web
to build with just wasm-bindgen
, but i recommend just using trunk
to keep your sanity. trunk will download by itself wasm-bindgen-cli
.
UPUB_BASE_URL=https://dev.upub.social trunk serve --public-url http://127.0.0.1:8080/web
will give you a local development server with auto-reload pointing to dev.upub.social
, so you don't even need to spin up a local instance (omit UPUB_BASE_URL
env variable to make frontend point to localhost instead)
setting public-url
is necessary: while deploying, axum will handle getting you to the correct pages, but in trunk dev env this has to be done by trunk itself. note also that resource urls will differ: on prod they will be /web/assets/style.css
, while on dev /assets
segment won't be present!
building
just run
$ trunk build --release
to generate the ./web/dist
folder containing all necessary assets
either serve these yourself, or compile main upub
with web
feature enable to have it bundle these freshly built frontend files