Development Setup and Tools
The course begins from a supplied, containerized application. You need enough host tooling to obtain, inspect, run, and version that application; you do not need to recreate its framework setup yourself.
Required host tools
You need:
- Docker with Compose 2.24.4 or newer (the test configuration uses Compose override tags);
- a current web browser with developer tools;
- a code editor suitable for JavaScript, TypeScript, HTML, and Svelte files;
- Git; and
- a terminal in which you can navigate directories and run commands.
Follow the official Docker installation instructions for your operating system. The Docker engine must be running, not merely installed. The course does not require a particular editor; use one that lets you inspect the whole project and search across files.
For the normal local workflow, you do not need host installations of Deno, Node.js, npm, PostgreSQL, or dbmate. The supplied containers provide the application runtimes, database, migrations, and test tools.
Verify the starting environment
Run these commands in a terminal before downloading the starter:
docker --versiondocker compose versiongit --versionEach command should print a version rather than an installation or connection error.
Operating-system and project-location notes
On macOS and Windows, Docker Desktop is the usual way to provide Docker and Compose. On Linux, install Docker Engine and its Compose plugin using the distribution-appropriate instructions. Keep Docker updated to a version supported by its vendor, but do not independently upgrade dependencies inside the supplied course project.
On Windows, either work consistently from a Windows terminal or use Docker Desktop’s WSL integration and work consistently inside that WSL environment. Avoid switching between different Git installations, path syntaxes, or Docker contexts for the same commands. If bind-mounted files behave slowly or file changes are not detected, check that the project is stored in the filesystem associated with the environment running the commands rather than in a remotely synchronized directory.
Browser developer tools
The browser is both an application runtime and an observation tool. Learn how to open its developer tools from the browser menu or with the keyboard shortcut shown by your browser.
The most frequently used panels are:
- Console — JavaScript output, uncaught errors, and commands evaluated in the current page;
- Network — HTTP requests, methods, statuses, headers, bodies, timing, and browser-reported failures;
- Elements or Inspector — the current DOM, applied styles, accessibility information, and responsive layout tools; and
- Application or Storage — cookies, local storage, caches, service workers, and other browser-managed state.
Open the Console before using the JavaScript Quick Reference examples. In later parts, use the Network panel to distinguish a browser rendering problem from a request or server failure. Never paste session cookies, authorization headers, or other credentials from developer tools into a public question.
Ports and running services
The initial scaffold publishes the browser application at http://localhost:5173 and the API at http://localhost:8000. Another local process using either port can prevent startup. Stop the conflicting process or follow the activity’s explicit configuration instructions; do not change several ports and environment files at once while diagnosing the cause.
Run Compose commands from the directory containing compose.yaml. These commands provide a useful first view of the declared and running services:
docker compose config --servicesdocker compose ps --alldocker compose logs --tail=30 apiReview configuration and logs before sharing them because resolved output can contain credentials. Study and Exercise Workflow explains how to preserve the first useful error and prepare a focused problem report.
Pinned course toolchain
The following table records the tested combination of tools and libraries for reference. You do not need to install these yourself; the course provides a walking skeleton scaffold with the pinned versions.
The versions may be updated over the course.
| Tool or library | Scaffold version |
|---|---|
| Deno | 2.9.6 |
| Svelte | 5.56.10 |
| SvelteKit | 3.0.0-next.25 |
| Vite | 8.2.2 |
| TypeScript | 6.0.3 |
| Hono | 4.13.5 |
| postgres.js | 3.4.9 |
| PostgreSQL | 18.6 |
| dbmate | 2.34.1 |
| Vitest | 4.1.11 |
| Playwright Test | 1.62.1 |
Additional dependencies and libraries will be introduced in the materials.
Begin with the supplied baseline
Running the Walking Skeleton supplies the downloadable application and its first commands.