Lay of the land
Let’s take a look at what else is in the folder we just created.
.svelte-kitis where SvelteKit generates all the code it needs.vscodecontains a recommendation to install the Svelte pluginnode_modulesneeds no introductionsrcis where the meat of your app lives.src/libis just a place to put your stuff — common utilities, components, assets, etc. Because we chose the Vitest option during setup, we also have a folder of example tests, which we can run withpnpm test:unitsrc/lib/serveris special in that you can only import it into code that only runs on the serversrc/routesdefines the structure of your appsrc/app.d.tslets you define some global typessrc/app.htmlis the actual HTML that will be sent to the browser when someone visits your appsrc/env.tsis where you define your environment variables, which we’ll talk about in a bitstaticis where you put files that should be uploaded along with your apptest-resultsexists because we chose the Playwright option.envand.env.examplecontain the values of your environment variables when you’re working locally. If Igit initthis repo, you’ll see that.envis ignored. We’re usingDATABASE_URLinlib/server/dbdrizzle.config.tsis where we configure Drizzle, which is how we’re going to interact with our SQLite databasetsconfig.jsoncontains some recommended TypeScript config, and also imports a config that’s generated by SvelteKit. We’ll see why latervite.config.tsis, of course, where you configure Vite and Vitest. Ours has a bunch of stuff in it that the CLI added