ASSETLIB — INTEGRATE, PUBLISH, AND VERIFY ARTWORK https://www.assetlib.dev/guide/ Start with one image in your app that changes regularly. Define its placement and fallback, connect it to Assetlib, and verify a replacement and rollback in the same running app. 1. CREATE A PREVIEW WORKSPACE [ ] Open https://assetlib-console.vercel.app. [ ] Choose Continue with GitHub. A verified GitHub email is required. [ ] Choose Create demo workspace, name it, then Create & publish demo. These are the current hosted onboarding labels. They seed three starter placements and publish original sample artwork. [ ] Choose Get SDK configuration, then Copy configuration. Public configuration identifies your app, delivery address, and verification key. It contains no password, private signing key, or admin token. Choose and register the placement intended for your app. 2. INTEGRATE ONE APP PLACEMENT [ ] Choose a non-confidential image. Define its placement key, dimensions, fit, and bundled fallback. Keep layout and behavior in the app. [ ] Install matching SDK packages using the versioned instructions: https://github.com/AssetLib/sdk-js [ ] Generate typed references from a checked-in placement catalog. Normal app builds do not need a network request to Assetlib. [ ] Configure a client with the public SDK configuration. Render the placement with its fallback and add an explicit refresh action. [ ] Build and run on the target platform. Confirm the bundled image displays before remote artwork is available. The first integration requires development and an app release. Later compatible artwork updates can be published separately. New screens, layouts, behavior, and placement contracts still require app development. 3. PREPARE AND PUBLISH A REPLACEMENT [ ] Prepare a visibly different image that matches the placement's aspect ratio and constraints. Check crop and fit in the component. [ ] In Assets, choose Choose image and upload still PNG, JPEG, WebP, or a supported static SVG. New uploads retain private originals. Artwork gets PNG and lossless WebP sizes; photos get compressed WebP. Browsers may use normalized SVG; native apps use rasters. [ ] In Placements, assign the image under Draft image for the chosen key. [ ] Choose Publish release, review, and confirm Publish release. [ ] Refresh the app client and open the placement's screen. Confirm the displayed replacement, its selected source, and release number. A console publication and a displayed image are separate checks. Source-selection callbacks are not visibility or analytics impressions. Raster inputs are limited to 4 MiB and 20 megapixels; SVG has additional format limits. Prepared files must fit within 1 MiB. The preview's 8 MiB workspace storage quota includes retained originals and prepared versions. Only publish artwork you are comfortable making public. Published images are retrievable through delivery links; editing requires sign-in. 4. RESTORE AND TEST OFFLINE [ ] Open Releases and find the earlier release. [ ] Choose Restore this version, then Restore and publish. [ ] Refresh the app client. Confirm the earlier image appears with a newer release number in the same running app. [ ] Disable networking and restart the app. Confirm an eligible verified cached image or the bundled fallback appears. [ ] Check a fresh installation offline, where only bundled artwork is available. The app must remain usable. Record the app build, SDK version, placement key, displayed image, source, and selected release at each step. Repeat on each platform you plan to ship. Keep fallback and download failures separate from successful remote delivery. Rollback preserves release history and leaves draft placement bindings unchanged. Offline devices receive updates after reconnecting. Full acceptance checklist: https://www.assetlib.dev/guide/#validation 5. SAMPLE APPS These sample apps are optional integration references, not customer deployments or evidence of business results. Use them to check the hosted delivery workflow before changing your app: Travel demo (Roam): https://assetlib-travel.vercel.app To-do demo (Daylight): https://assetlib-todo.vercel.app In a demo app's Connect screen, paste the complete public JSON into Public SDK configuration and choose Connect and check release. After publishing or restoring, choose Check for updates and inspect the relevant screen. Seeded travel.coast / travel.ridge use 4:3 images, such as 1200x900 px; seeded tasks.garden uses 3:2, such as 600x400 px. Travel source: https://github.com/AssetLib/demo-travel Todo source: https://github.com/AssetLib/demo-todo Swift SDK preview: https://github.com/AssetLib/sdk-swift iOS demo source: https://github.com/AssetLib/demo-ios Kotlin SDK preview: https://github.com/AssetLib/sdk-android Android demo source: https://github.com/AssetLib/demo-android Use matching versions and follow each repository's runtime requirements. JavaScript packages use versioned GitHub releases, not npm or an agent marketplace. These MIT-licensed repositories are integration references. CURRENT EVIDENCE AND SCOPE The hosted browser publish, refresh, and rollback workflow has been checked. Native SDK tests and builds are narrower evidence; the full installed native-app publish, refresh, rollback, and visual acceptance flow remains pending. Keep essential artwork bundled and validate in your target app before shipping. This is a bounded developer preview, not a production SLA. Named state sets, paginated catalogs, and image-retention policies in local JavaScript/Expo 0.3 source are not a published SDK release or a hosted feature claim. The local browser Lottie preview does not establish hosted or native animation support. Check release-specific documentation. Figma sync, build inventories, usage telemetry, and experiments remain planned.