Add a Template

Add a Template

Folder structure

Templates follow this structure:

templates/
  <language>/
    <category>/
      <library>/
        <template-id>/
          tempora.json
          README.md
          ... starter files

Example:

templates/typescript/frontend/nextjs/next-tailwind/

tempora.json

Every template needs a tempora.json — this is what registers it in the CLI registry.

{
  "id": "next-tailwind",
  "name": "Next.js + Tailwind",
  "language": "typescript",
  "category": "frontend",
  "library": "nextjs",
  "description": "Next.js 14 app router with Tailwind CSS preconfigured.",
  "tags": ["nextjs", "tailwind", "typescript"],
  "version": "1.0.0",
  "nextSteps": ["pnpm install", "pnpm dev"]
}
FieldRequiredDescription
idUnique kebab-case identifier — this is what users type in tempora init <id>. Must be unique across ALL templates.
nameHuman readable name shown in the guided selector.
languagePrimary language e.g. typescript, javascript, python, rust.
categoryProject category e.g. frontend, backend, fullstack, cli, library.
libraryFramework or library e.g. nextjs, fastapi, express, angular.
descriptionOne sentence description shown in the CLI.
tagsArray of relevant tags for filtering.
versionThe template’s own version in semver format e.g. 1.0.0. Bump this when you update the template files — it is independent of the CLI version.
nextStepsCommands printed after scaffolding e.g. pnpm install, pnpm dev.

Important: The id is the unique identifier for your template. If two templates share the same id the build will fail and stop. Choose something specific e.g. next-tailwind, express-prisma-pg, angular-standalone.


README.md

The README.md is synced automatically to this docs site on every build. It must include a Quick Start section showing the install command:

# Template Name
 
Short description.
 
## Quick Start
 
npx tempora-cli init <template-id> my-app
 
## Stack
 
- List technologies and versions
 
## Getting Started
 
pnpm install
pnpm dev

You can add as much detail as you want beyond that — configuration guides, environment variables, deployment instructions, screenshots.


Verify locally

pnpm build
tempora init <template-id> test-output

The build will validate your tempora.json, check for duplicate IDs, and sync your README to the docs. If it passes you’re good.


Open a pull request

git checkout -b feat/add-your-template
git add .
git commit -m "feat(templates): add your-template"
git push