Repository: svelte
Issue: [docs] SvelteKit for a whole app vs embedding Svelte in an existing app
Labels: documentation

### Describe the problem

I've been coding for 35 years, all manner of stuff. Regarding web, I'm coming from .NET of 17 years. I've been keeping an eye on Svelte for more than a year.

I normally build either MPAs with Knockout for small bits of interactivity. I've never really been "into" SPAs, though I've built the backends for them for years. Svelte looked interesting because it affords a mix of approaches.

The page transitions stuff Jake Archibald is working on will be big for mixed mode apps, I think.

A couple of weeks ago, I began to learn a whole new stack based on TypeScript front and back. I went for Deno and that has a tiny "framework" called oak for server-side routing and some HTTP bits.

I'm ready to learn Svelte. I began by heading to the official docs where I started reading everything and typing up notes (on a public GitHub repo). I _hate_ fumbling in the dark so I tend to pre-cache the docs in my brain before I start coding.

What struck me was that there doesn't seem to be anything discussing how it works; it's all about syntax and coding, and interactively selling how cool it is.

Actually, what I first did was begin reading the docs on SvelteKit, not realising it's different to Svelte. I assumed people just said "Svelte" for short.

My "feature" request is for some documentation to explain and establish a vivid mental model of how Svelte works, in the mind of a complete noob.

Below are the honest dumb questions whizzing through my mind as I try to evaluate whether Svelte will be a bountiful investment of my time.

These are not to be answered here, but I hope for them to inspire the foundational documentation upon which I think any beginner can build their knowledge. In no particular order and just focusing on Svelte at svelte.dev:

 - Should I use Svelte, or SvelteKit?
 - What source files are used in compilation and what are the output files?
 - What is the compiler? Is it JS in an NPM package? How do I run it?
 - If it's using Node, should I stick to Node for my server or can I use Deno?
 - How does it find the source files to compile?
 - What doesn't it output or copy? What about static files like images? Paths to images?
 - Am I likely to need Gulp, or is that not needed anymore? Can Gulp run the compiler?
 - Does a browser visit an .html file to see the Sveltey part of my website?
 - Does Svelte make that .html file?
 - Or does my Deno app serve the layout HTML page and the Svelte part is "injected" into an element? 
 - How will it work with Deno, or Node and the way that serves static files?
 - How would I structure my source for an app with mixed Deno-served content and Svelte ...HTML?
 
You see, without knowing this, my mind boggles. I can't even begin to think about .svelte files and the three sections, and yet that is what the documentation focuses on.

By January, I'll probably have The Curse of Knowledge. Today, I'm in that special naive time when I see the real slope of the learning curve. I hope you'll receive this in the highly useful spirit with which it is intended.

I also posted to Discord. Again, this was new to me. I've never used Discord. I'm not even _that_ old, either :-D

https://discord.com/channels/457912077277855764/1049811603433988226

Thanks

### Describe the proposed solution

I would like to see official written docs on how Svelte goes from source files a, b, c to output files x, y, z, and then how a browser requests and renders a page with Svelte markup, via whatever is serving that HTTP response.

### Alternatives considered

Googling unofficial blog posts. Asking in Discord. I have not asked in StackOverflow as it feels like a question that will get me beaten up.

Discord seems like chat for people who know what they're doing and have no incentive to provide the long and tedious answers for a noob like me. Sorry, but that's the vibe I get from it.


### Importance

i cannot use svelte without it