When you provide a file at tina/config.{ts,tsx,js,jsx}
that exports a defineConfig
function,
Tina will automatically generate TinaCMS as a static asset. Note that it must be the default export of this file.
The location for the config file was previously at.tina/config.{ts,tsx,js,jsx}
Property | Description |
---|---|
| The branch that will be used to query content on TinaCloud (Not used in local mode) |
| The ClientId generated on TinaCloud (Not used in local mode) |
| A read only token generated on TinaCloud (Not used in local mode) |
| Build configuration for storing Tina as a static asset |
| The public asset folder for your framework |
| Within the public asset folder, the desired output location |
| If your site will be served at a sub-path like |
| Media configuration for external and git backed media |
| The schema defines the shape of your content. |
|
const branch =process.env.NEXT_PUBLIC_TINA_BRANCH ||process.env.NEXT_PUBLIC_VERCEL_GIT_COMMIT_REF ||process.env.HEAD ||'main'export default defineConfig({branch,token: '<Your Read Only Token>' // generated on app.tina.ioclientId: '<Your Client ID>', // generated on app.tina.iobuild: {publicFolder: 'public', // The public asset folder for your frameworkoutputFolder: 'admin' // within the public folder}// See https://tina.io/docs/reference/schema/ for more informationschema: {collections: [//..Array of collections],}})
In this example, the TinaCMS admin will be viewable at <my-site-url>/admin/index.html
.
For more information check out the content modeling section.
TinaCMS supports TypeScript path aliases in the tina/config.{ts,js,tsx}
file and collections, making it easier to organize and maintain your code.
Ensure that tsconfig.json
exists at the root of your project. Define your aliases in the compilerOptions
section:
{"compilerOptions": {"baseUrl": ".","paths": {"@/*": ["src/*"]}}}
Figure: Your defined tsconfig.json
You can now import utilities or other modules using the aliases:
import { someUtility } from '@/lib/utils';export default defineConfig({....})
Figure: Using aliases in tina/config.{ts,js,tsx}
© TinaCMS 2019–2025