or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

blocks.mdcli.mdindex.mdpresets.mdtemplate-system.mdtypes.md
tile.json

presets.mddocs/

Presets

Presets are pre-configured combinations of blocks that represent common TypeScript project configurations, from minimal setups to full-featured development environments.

Capabilities

Presets Collection

Object containing all available presets for quick project configuration selection.

/**
 * Collection of predefined block combinations for common project types
 * Each preset represents a different level of tooling and configuration
 */
const presets: {
  /** Bare minimum configuration for basic TypeScript projects */
  minimal: Preset;
  /** Common configuration with testing and automation tools */
  common: Preset;
  /** Full-featured configuration with all available tooling */
  everything: Preset;
};

Available Presets

Minimal Preset

Bare minimum configuration for basic TypeScript projects with essential tooling only.

/**
 * Minimal preset for simple TypeScript projects
 * Includes only essential blocks for basic functionality
 */
const presetMinimal: Preset;

Included Blocks:

  • blockContributingDocs: Contributing guidelines and documentation
  • blockContributorCovenant: Code of conduct with Contributor Covenant
  • blockDevelopmentDocs: Development documentation and setup guides
  • blockESLint: Core ESLint configuration with TypeScript support
  • blockExampleFiles: Example source files and templates
  • blockGitHubActionsCI: GitHub Actions continuous integration workflow
  • blockGitHubApps: GitHub Apps configuration and integration
  • blockGitHubIssueTemplates: Issue templates for bug reports and features
  • blockGitHubPRTemplate: Pull request template for contributions
  • blockGitignore: Git ignore patterns for TypeScript projects
  • blockMain: Main project entry point configuration
  • blockMITLicense: MIT License file generation
  • blockPackageJson: Package.json configuration and metadata
  • blockPrettier: Code formatting with Prettier
  • blockREADME: Project README with badges and documentation
  • blockRemoveDependencies: Cleanup of unnecessary dependencies
  • blockRemoveFiles: Removal of template and unused files
  • blockRemoveWorkflows: Cleanup of unwanted GitHub workflows
  • blockRepositoryBranchRuleset: GitHub branch protection rules
  • blockRepositoryLabels: Standard GitHub issue and PR labels
  • blockRepositorySecrets: GitHub repository secrets configuration
  • blockRepositorySettings: Repository settings and configuration
  • blockSecurityDocs: Security policy and vulnerability reporting
  • blockTemplatedWith: Template attribution and metadata
  • blockTSDown: TypeScript build system with tsdown
  • blockTypeScript: Core TypeScript configuration and setup

Use Cases:

  • Learning projects and prototypes
  • Simple utility libraries
  • Minimal CLI tools
  • Projects requiring custom tooling selection

Example Usage:

import { createConfig } from "create-typescript-app";

const config = createConfig({
  directory: "./simple-project",
  title: "Simple TypeScript Project",
  repository: "simple-project",
  owner: "username",
  preset: "minimal"
});

Common Preset

Balanced configuration including testing and automation for typical TypeScript projects.

/**
 * Common preset with testing and automation tools
 * Includes all minimal blocks plus testing, coverage, and release automation
 */
const presetCommon: Preset;

Included Blocks:

  • All blocks from presetMinimal
  • blockAllContributors: Contributor recognition system
  • blockCodecov: Test coverage reporting
  • blockFunding: GitHub Sponsors integration
  • blockOctoGuide: Development workflow documentation
  • blockReleaseIt: Automated release management
  • blockVitest: Modern testing framework

Additional Features:

  • Automated testing with Vitest
  • Coverage reporting with Codecov
  • Contributor recognition with AllContributors
  • Automated releases with semantic versioning
  • GitHub Sponsors funding configuration
  • Comprehensive development documentation

Use Cases:

  • Open source libraries and tools
  • Team development projects
  • Projects requiring automated testing
  • Libraries intended for npm publishing
  • Projects with multiple contributors

Example Usage:

import { createConfig } from "create-typescript-app";

const config = createConfig({
  directory: "./my-library",
  title: "My TypeScript Library",
  repository: "my-typescript-library",
  owner: "my-organization",
  description: "A well-tested TypeScript library with automated releases.",
  preset: "common",
  author: "npm-username",
  access: "public"
});

Everything Preset

Full-featured configuration with comprehensive tooling for enterprise-grade TypeScript projects.

/**
 * Everything preset with all available tooling and configuration
 * Includes comprehensive linting, formatting, testing, and automation
 */
const presetEverything: Preset;

Included Blocks:

  • All blocks from presetCommon (includes all 22 blocks from minimal plus 6 additional blocks)
  • Additional ESLint Configuration:
    • blockESLintComments: Comment validation and best practices
    • blockESLintJSDoc: JSDoc enforcement and validation
    • blockESLintJSONC: JSON and JSONC file linting
    • blockESLintMarkdown: Markdown file linting
    • blockESLintMoreStyling: Additional styling and formatting rules
    • blockESLintNode: Node.js specific linting rules
    • blockESLintPackageJson: Package.json validation and formatting
    • blockESLintPerfectionist: Import/export sorting and organization
    • blockESLintRegexp: Regular expression validation and optimization
    • blockESLintYML: YAML file linting and validation
  • Advanced Code Quality Tools:
    • blockCSpell: Spell checking for code and documentation
    • blockKnip: Dead code detection and cleanup
    • blockMarkdownlint: Markdown documentation linting
  • Enhanced Development Tools:
    • blockNvmrc: Node Version Manager configuration
    • blockPnpmDedupe: pnpm dependency optimization
    • blockOctoGuideStrict: Strict development workflow documentation
  • Additional Formatting:
    • blockPrettierPluginCurly: Curly brace formatting consistency
    • blockPrettierPluginPackageJson: Package.json formatting
    • blockPrettierPluginSh: Shell script formatting
  • Enhanced Automation:
    • blockRenovate: Automated dependency updates
    • blockVSCode: VS Code workspace configuration

Additional Features:

  • Comprehensive linting for all file types
  • Advanced code formatting and consistency
  • Spell checking and documentation validation
  • Dead code detection and cleanup
  • Complete CI/CD pipeline with GitHub Actions
  • Automated dependency management
  • IDE integration and workspace configuration
  • Security policy and community guidelines
  • Enterprise-ready development workflow

Use Cases:

  • Enterprise applications and libraries
  • Large team development projects
  • Open source projects with high quality standards
  • Libraries requiring comprehensive validation
  • Projects with complex build and deployment needs
  • Educational projects demonstrating best practices

Example Usage:

import { createConfig } from "create-typescript-app";

const config = createConfig({
  directory: "./enterprise-project",
  title: "Enterprise TypeScript Application",
  repository: "enterprise-typescript-app",
  owner: "enterprise-org",
  description: "A comprehensive enterprise-grade TypeScript application.",
  preset: "everything",
  author: "enterprise-team",
  email: { 
    github: "team@enterprise.com",
    npm: "npm-team@enterprise.com"
  },
  access: "public",
  node: {
    minimum: "20.19.0",
    pinned: "24.3.0"
  },
  keywords: ["typescript", "enterprise", "library"],
  funding: "enterprise-org"
});

Preset Selection Guidelines

Choose Minimal When:

  • Building simple utilities or prototypes
  • Learning TypeScript or project setup
  • Requiring custom tooling selection
  • Creating lightweight CLI tools
  • Working on personal or experimental projects

Choose Common When:

  • Developing libraries for npm publication
  • Working with a small to medium team
  • Needing automated testing and releases
  • Building open source projects
  • Requiring basic quality assurance tools

Choose Everything When:

  • Developing enterprise applications
  • Working with large development teams
  • Requiring comprehensive code quality standards
  • Building mission-critical libraries
  • Following strict development practices
  • Demonstrating TypeScript best practices

Custom Preset Configuration

While presets provide convenient starting points, individual blocks can be customized or combined for specific project needs:

import { blocks, createConfig } from "create-typescript-app";

// Access individual blocks for custom combinations
const { 
  blockTypeScript, 
  blockESLint, 
  blockVitest, 
  blockPrettier,
  blockGitHubActionsCI
} = blocks;

// Create configuration with custom block selection
// (Block selection typically handled through template configuration)
const customConfig = createConfig({
  directory: "./custom-project",
  title: "Custom TypeScript Project",
  repository: "custom-project",
  owner: "username",
  // Custom block combinations configured through template system
});