Skip to main content
A Site is a public web project. The Vue todo starter keeps tasks in page memory and resets them on refresh, both locally and when hosted. Create one with npx goalmatic@beta create my-site --type site --name "My site". An App is an authenticated product. The starter declares a private todos Table in .goalmatic/app.json. Goalmatic owns identity, account scope, resource bindings, review, installation, and App releases. Create one with npx goalmatic@beta create my-app --type app --name "My app". The local App Demo is explicit and resets on refresh. A hosted App requires a working Goalmatic runtime and account-scoped Table data. It does not silently replace a failed hosted request with sample data. A configured App that cannot initialize the runtime shows the error and stops. The canonical starter shell is App.vue. The todo route is pages/index.vue, and main.js installs the Vue Router and mounts the shell. Tasks stay in the page component for Sites and the local App Demo. The hosted App connects the same controls to Goalmatic Tables.