Skip to content

Development

Judah Paul edited this page Jul 10, 2026 · 5 revisions

Development

Local loop

The development compose profile runs the SvelteKit dev server with hot reload against an ArduPilot SITL container:

docker compose --profile development up

The app is served at http://localhost:5173. The SITL container exposes MAVLink on TCP 5760, and src/lib/server/mavlink.ts connects to it at sitl:5760 in development.

To exercise the built production server locally:

docker compose --profile production up app webrtc

The app is served at http://localhost:3000.

Gates

Run these from compose/svelte-kit before committing. They mirror the CI check job (see Deployment):

npm run lint      # eslint
npm run check     # svelte-check
npm run build     # production build
npm audit --audit-level=moderate

Front end

The app is Svelte 5 with runes ($state, $derived, $effect, $props, $bindable) and {@render children()}. Shared client logic lives in src/lib and shared state in src/stores. Modals and notifications are created through src/lib/overlays.ts (showModal, notify), which mounts and unmounts the component, rather than instantiating modal components by hand.

Versioning

The version is the latest v[0-9]* git tag. The release job bumps it from commit subject markers, so tag commits accordingly:

  • No marker: patch bump. Docs, fixes, polish.
  • [minor update]: minor bump. New features or surface area.
  • [major update]: major bump. Breaking changes.

The /version page reports the running build's tag, commit, and build time.

Clone this wiki locally