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
id✔Unique kebab-case identifier — this is what users type in tempora init <id>. Must be unique across ALL templates.
name✔Human readable name shown in the guided selector.
language✔Primary language e.g. typescript, javascript, python, rust.
category✔Project category e.g. frontend, backend, fullstack, cli, library.
library✔Framework or library e.g. nextjs, fastapi, express, angular.
description✔One sentence description shown in the CLI.
tags✔Array of relevant tags for filtering.
version✔The 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.
nextSteps—Commands 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