Boilerplate
A runnable Expo starter for web, iOS, and Android, built with the published Canvas package.
An independent consumer
The starter has its own package.json and lockfile. Expo resolves the installed Canvas package normally, without docs aliases or a source overlay.
Clone and run
With access to the repository, install and run the starter from its own directory.
sh
The terminal prints the web development URL. For a native app, install the matching platform toolchain and boot a simulator or emulator, then run the appropriate command.
sh
Native builds require compatible Xcode and CocoaPods on macOS, or the Android SDK and a supported JDK. The starter README contains setup and verification details.
Included flows
A working workspace
Edit a workspace name, choose a city with Autocomplete, and select workstreams. Save updates the summary; validation explains missing values.
Preferences you can try
Switch between system, light, and dark appearance, and control the saved-summary panel. Preview immediately, then save or cancel.
Universal navigation
A Canvas Navbar adapts to smaller screens. A native Drawer hosts its own navigation dropdown, with safe-area and overlay providers in place.
All changes live in React memory. Saving keeps them for the current session; reloading or choosing Reset session restores the sample data. There is no backend or account to configure.
Verify your changes
sh
The production web export is written to dist/. Configure an SPA fallback to index.html when hosting it so direct visits to /preferences resolve correctly.
Make it your app
Start with src/app/index.tsx and preferences.tsx. The root layout supplies SafeAreaProvider, ThemeProvider, overlay hosting and the navigation stack; src/state/session.tsx owns immutable drafts, validation and saved values.
The UI uses Canvas components and semantic props. Typography follows Canvas's default platform/system fonts. No custom Geist assets are loaded, and Text is not globally modified.
For an existing application, install Canvas and its required peers in that app instead. The starter's SDK57 dependencies are a complete Expo application baseline, not a dependency migration recipe.
sh
The npm package carries its own MIT license. This repository and the starter source remain all rights reserved; the example adds no source license grant.