Skip to content

Conversation

@Turbo87
Copy link
Member

@Turbo87 Turbo87 commented Dec 13, 2025

In the last crates.io team meeting we decided to explore Svelte 5 as a replacement for our Ember.js frontend.

We evaluated a variety of options including SSR via Rust (and e.g. minijinja) and came to the conclusion that Svelte is currently our least bad option, mostly for DX reasons due to our tiny team size.

This PR:

  • creates a basic example app in the svelte/ directory
  • adjusts our Rust middlewares to serve the app at /svelte/
  • adds another svelte job to the GitHub Actions workflow, that runs when anything in the Svelte app is changed.

This allows us to build the Svelte app incrementally alongside the Ember.js app without needing an unreviewable big bang release. Once the new app is on par with the old one we can switch over to it.

@Turbo87 Turbo87 added C-enhancement ✨ Category: Adding new behavior or a change to the way an existing feature works and removed A-backend ⚙️ labels Dec 13, 2025
```
pnpm dlx sv create --template minimal --types ts --add prettier eslint vitest="usages:unit,component" --install pnpm svelte
```
This should make the migration a bit easier for now. We can go back to SSR rendering in the future once SPA mode works sufficiently well.
The Svelte app is using an inline script in the HTML file which includes the fingerprinted JS file paths, so we can't use a static hash of the script. We can figure these details out in the future.
Not sure where this is suddenly coming from, but we can just use different variable names instead to fix it.
@Turbo87 Turbo87 requested a review from a team December 13, 2025 19:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-backend ⚙️ A-frontend 🐹 C-enhancement ✨ Category: Adding new behavior or a change to the way an existing feature works

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants