# @affine/templates Manages template files for use in AFFiNE. For now we only support onboarding templates. ## How to update Before we offer a better solution, to update the onboarding templates: 1. run AFFiNE core locally (dev mode) 2. expose `ZipTransformer` to window. e.g., `import {ZipTransformer} from '@blocksuite/blocks'; window.ZipTransformer = ZipTransformer;` 3. run the following script ```js (async () => { // make sure ZipTransformer is imported and attached to window const { ZipTransformer } = window; await Promise.all([...currentWorkspace.blockSuiteWorkspace.pages.values()].map(p => p.load())); // wait for a few more seconds await new Promise(resolve => setTimeout(resolve, 5000)); const zipblob = await ZipTransformer.exportPages(currentWorkspace.blockSuiteWorkspace, [...currentWorkspace.blockSuiteWorkspace.pages.values()]); const url = URL.createObjectURL(zipblob); const a = document.createElement('a'); a.setAttribute('href', url); a.setAttribute('download', `${currentWorkspace.id}.affine.zip`); a.click(); a.remove(); URL.revokeObjectURL(url); })(); ``` 4. unzip the file, replace the json files into onboarding folder (no need to include the `assets`) 5. run `yarn postinstall` to update the `templates.gen.ts` file