I like API endpoints far more than shadow endpoints. I think that has been the big thing that has been bothering me about svelte. I started writing more API endpoints and I'm finding that I like that feeling more than the shadow ones. I don't like having to write the load function but it seems more explicit than relying on a shadow endpoint where the svelte compiler looks for a file of the same name ending with .js.
This also means that the API end point is useable elsewhere and I can already see some of these end points being useful in a different context.
Unfortunately my project is now a mixture of shadows and api end points.