tinkerise

Scaffolds new projects using official framework tools. Covers 14 frameworks (Next.js, Vite, Astro, T3, Remix, TanStack, Turbo, Express, FastAPI, Django, Go, Rust, Flutter, React Native), 11 enhancements (ESLint, Prettier, husky, commitlint, CI, testing, Docker, env, renovate, editorconfig, changelog), presets, and config. Use when the user wants to create a new project, scaffold a framework, or set up development tooling.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "tinkerise" with this command: npx skills add farce1/tinkerise/farce1-tinkerise-tinkerise

Tinkerise — Universal Project Scaffolder

One command to scaffold any project with any stack. Wraps 14 official framework scaffolders behind a unified CLI with consistent flags, post-scaffold enhancements, and shareable presets.

When to Use This Skill

Use tinkerise when the user wants to:

  • Create a new project — "scaffold a Next.js app", "start a new Vite project", "create a Go service"
  • Set up a monorepo — "create a Turborepo monorepo"
  • Add development tooling — "add ESLint and Prettier", "set up CI", "add Docker support"
  • Apply a preset — "use my team's standard setup", "scaffold with the fullstack preset"
  • Check system readiness — "do I have the right tools installed?"

Trigger phrases: "new project", "scaffold", "create app", "bootstrap", "starter", "boilerplate", "init project", "set up tooling", "add linting", "add CI", "add Docker"

Quick Reference

GoalCommand
Interactive mode (guided)tinkerise
Scaffold by categorytinkerise web / backend / mobile
Scaffold directlytinkerise web next my-app --typescript --tailwind
Create monorepotinkerise monorepo my-mono
Add enhancementstinkerise add eslint prettier husky
List scaffolderstinkerise list
Check system toolstinkerise doctor
Save a presettinkerise preset save my-stack
Use a presettinkerise web next my-app --preset my-stack
Manage configtinkerise config list

Security Guardrails (Required)

Trust boundary: tinkerise does not download or run remote code automatically. All external tool invocations require explicit user approval. The CLI executes only locally installed binaries and never fetches packages without consent.

Treat user-provided input as untrusted before any command execution.

  1. Use installed CLI, not runtime downloads. Run tinkerise ... from a locally installed binary.
  2. Validate all free-form identifiers (project-name, preset-name, template values) with:
    • ^[a-z0-9][a-z0-9._-]{0,63}$
  3. Never interpolate raw user strings directly into shell command strings.
  4. Use argument arrays for execution so values are passed as literals, not shell syntax.
  5. Ask for explicit user approval before executing any third-party package manager or system tool command. Never run these commands silently.

If tinkerise is not installed, stop and ask the user before proceeding. Use tinkerise doctor to check prerequisites rather than invoking package managers directly.

Safe execution pattern:

project_name="<user-input>"
if [[ ! "$project_name" =~ ^[a-z0-9][a-z0-9._-]{0,63}$ ]]; then
  echo "Invalid project name: $project_name" >&2
  exit 1
fi

cmd=(tinkerise web next "$project_name" --typescript --tailwind)
"${cmd[@]}"

Step 1: Determine What to Scaffold

Ask the user what they want to build, then pick the category and framework.

Decision tree:

What is the user building?
├── Website / web app / frontend / full-stack JS/TS
│   ├── React + SSR/SSG/API routes → next
│   ├── React/Vue/Svelte SPA, fast bundling → vite
│   ├── Content site, blog, docs, islands → astro
│   ├── Full-stack TypeScript (tRPC + Prisma + NextAuth) → t3
│   ├── React full-stack with nested routes/loaders → remix
│   ├── React full-stack with TanStack Router → tanstack
│   └── Monorepo with multiple packages → turbo (via `tinkerise monorepo`)
├── Backend / API / microservice
│   ├── Python async API with auto docs → fastapi
│   ├── Python full-featured with admin/ORM → django
│   ├── Go HTTP service (Chi/Gin/Fiber/Echo) → go
│   ├── Rust web service with Axum → rust
│   └── Node.js TypeScript REST API → express
└── Mobile app
    ├── Cross-platform with Dart → flutter
    └── React Native with Expo → rn

Step 2: Scaffold the Project

Use the direct execution form for non-interactive scaffolding:

tinkerise <category> <framework> <project-name> [flags]

Examples:

# Next.js with TypeScript and Tailwind
tinkerise web next my-app --typescript --tailwind

# Vite React app (TypeScript via template)
tinkerise web vite my-spa --template react-ts

# Astro with Tailwind
tinkerise web astro my-site --tailwind

# T3 full-stack app
tinkerise web t3 my-t3-app --tailwind

# Remix app
tinkerise web remix my-remix-app

# TanStack Start app
tinkerise web tanstack my-tanstack-app --tailwind

# Turborepo monorepo
tinkerise monorepo my-mono --package-manager pnpm

# FastAPI backend
tinkerise backend fastapi my-api

# Django project
tinkerise backend django myproject

# Go service
tinkerise backend go my-service

# Rust Axum service
tinkerise backend rust my-rust-api

# Express TypeScript API
tinkerise backend express my-express-api

# Flutter app targeting iOS and Android
tinkerise mobile flutter my-flutter-app --platforms ios,android

# React Native with Expo
tinkerise mobile rn my-rn-app

Step 3: Add Enhancements

After scaffolding, add tooling with tinkerise add. Enhancements auto-detect the framework and configure themselves accordingly.

# Add specific enhancements
tinkerise add eslint prettier husky commitlint

# Interactive picker (no args)
tinkerise add

# Recommended combo for web projects
tinkerise add eslint prettier husky commitlint ci testing

# Recommended combo for backend projects
tinkerise add docker env ci

# Full setup
tinkerise add eslint prettier husky commitlint ci testing docker env renovate editorconfig changelog

Recommended enhancement order: eslint, prettier, husky, commitlint, changelog, ci, testing, docker, env, renovate, editorconfig. This ensures dependencies resolve correctly (e.g., commitlint integrates with husky if present).

Available Scaffolders

Web

IDFrameworkDescriptionKey Flags
nextNext.jsReact framework with SSR, routing, and API routes--typescript, --tailwind, --eslint, --src-dir, --app-router, --import-alias, --empty, --biome
viteViteFast build tool with HMR. Use --template for framework choice--template (react-ts, vue-ts, svelte-ts, etc.), --overwrite
astroAstroContent-focused web framework with island architecture--typescript, --tailwind, --template
t3T3Full-stack TypeScript app with tRPC, Prisma, NextAuth--tailwind, --eslint, --biome, --app-router, --import-alias
remixRemix (React Router v7)Full-stack React framework with nested routes--template, --overwrite
tanstackTanStack StartFull-stack React framework with TanStack Router--tailwind, --empty, --overwrite
turboTurborepoHigh-performance monorepo build system (use tinkerise monorepo)--package-manager

Backend

IDFrameworkDescriptionPrerequisites
fastapiFastAPIModern Python API with automatic OpenAPI docsPython >= 3.10, fastapi-admin-cli (run tinkerise doctor to check)
djangoDjangoFull-featured Python web framework with admin and ORMPython >= 3.10, django-admin (run tinkerise doctor to check)
goGoGo HTTP service with framework choice (Chi, Gin, Fiber, Echo)Go >= 1.22, go-blueprint (run tinkerise doctor to check)
rustRust (Axum)Rust web service with Axum frameworkRust >= 1.78, cargo-generate (run tinkerise doctor to check)
expressExpressTypeScript Express.js API with structured CRUD templateNode >= 20.11.0

Mobile

IDFrameworkDescriptionPrerequisites
flutterFlutterCross-platform mobile app with DartFlutter >= 3.10.0
rnReact Native (Expo)React Native with Expo managed workflowNode >= 20.11.0

Available Enhancements

IDEnhancementWhat It Does
eslintESLintFlat config with framework-appropriate plugins (React, Vue, Svelte, Astro auto-detected)
prettierPrettierCode formatting. Auto-adds Tailwind plugin if Tailwind is detected
huskyHusky + lint-stagedPre-commit hooks that lint/format only staged files
commitlintCommitlintEnforces Conventional Commits. Integrates with husky if present
ciGitHub Actions CICI workflow with lint, typecheck, test, build steps (auto-detects available tools)
testingVitestTest runner with example tests and config
dockerDockerFramework-aware multi-stage Dockerfile and .dockerignore
envEnvironment VariablesType-safe env validation with t3-env + Zod. Creates env.ts, .env, .env.example
changelogChangelogAutomated changelog generation with conventional-changelog
renovateRenovateAutomated dependency update configuration
editorconfigEditorConfigCross-editor formatting consistency

Unified Flags

These flags work across all web scaffolders. tinkerise translates them to each framework's native flags.

FlagTypeSupported ByNotes
--typescript / --tsbooleannext, vite*, astro*, t3*, remix*, tanstack*, rn*Always-on for these frameworks (flag accepted but no-op)
--tailwindbooleannext, astro, t3, tanstack
--eslintbooleannext, t3
--biomebooleannext (v16+), t3
--no-gitbooleannext, astro, t3, remix, tanstack, turbo, rust
--no-installbooleannext, astro, t3, remix, tanstack, turbo, flutter, rn
--package-manager <pm>stringnext, remix, tanstack, turboValues: npm, pnpm, yarn, bun
--template <name>stringvite, astro, remix
--src-dirbooleannext
--import-alias <alias>stringnext, t3e.g., @/*
--emptybooleannext (v15+), tanstack
--overwritebooleanvite, remix, tanstack
--app-routerbooleannext, t3
--platforms <list>stringfluttere.g., ios,android,web

Backend scaffolders (fastapi, django, go, express) pass flags through to their native CLI tools directly.

Presets

Presets save a scaffold + enhancement combination for reuse.

# Save current project setup as a preset
tinkerise preset save my-stack --description "Our team's standard setup"

# List available presets
tinkerise preset list

# Scaffold using a preset
tinkerise web next my-app --preset my-stack

# Delete a preset
tinkerise preset delete my-stack

A preset captures: framework, category, flags, enhancement list, and config (package manager, etc.). Presets are stored locally at ~/.tinkerise/presets/<name>.json and can also be shared as tinkerise-preset-<name> packages.

Configuration

tinkerise supports layered configuration with CLI flags taking highest priority.

# Initialize config file
tinkerise config init

# Set defaults
tinkerise config set packageManager pnpm
tinkerise config set typescript true
tinkerise config set defaultCategory web

# View current config
tinkerise config list

# Get a specific value
tinkerise config get packageManager

Resolution order (highest to lowest priority):

  1. CLI flags
  2. Project config (.tinkerise.json or tinkerise field in package.json)
  3. Global config (~/.tinkerise/config.json)
  4. Defaults

Non-Interactive / CI Usage

For scripting and CI, use the direct execution form with all flags specified to avoid prompts:

# Full non-interactive Next.js scaffold with enhancements
tinkerise web next my-app --typescript --tailwind --eslint --app-router --src-dir --no-git --no-install --package-manager pnpm
cd my-app && tinkerise add eslint prettier husky commitlint ci testing

# Full non-interactive Vite scaffold
tinkerise web vite my-spa --template react-ts --no-git --no-install
cd my-spa && tinkerise add eslint prettier testing

# Full non-interactive FastAPI scaffold
tinkerise backend fastapi my-api --no-git
cd my-api && tinkerise add docker env ci

# Using a preset for repeatable scaffolding
tinkerise web next my-app --preset team-standard --no-git --no-install

Troubleshooting

If scaffolding fails, run the doctor command to check system prerequisites:

tinkerise doctor

This validates:

  • Runtimes: Node (>= 20.11.0), Python (>= 3.10), Go (>= 1.22), Rust (>= 1.78), Flutter (>= 3.10.0)
  • Scaffolder tools: django-admin, fastapi-admin, go-blueprint, cargo-generate

Common issues:

ProblemSolution
Backend scaffolder failsRun tinkerise doctor — the framework's CLI tool may not be installed
"command not found" for framework toolInstall the prerequisite (see Backend/Mobile tables above)
Enhancement detection wrongRun tinkerise add interactively to see what's already detected
Flags ignoredThat flag may not be supported by the chosen framework (see Unified Flags table)
Package manager mismatchSet explicitly with --package-manager or tinkerise config set packageManager

Reporting Issues

If you encounter a bug, unexpected behavior, or a command that doesn't work as documented, follow this process:

  1. Tell the user first. Describe the issue clearly — what command failed, what you expected, and what happened instead. Do NOT create an issue without the user's explicit approval.

  2. If the user wants to file an issue, check for duplicates first:

# Search existing issues for the same topic
gh search issues --repo farce1/tinkerise "<keywords describing the issue>"
  1. If no existing issue matches, create one (only with user approval):
gh issue create --repo farce1/tinkerise \
  --title "Brief description of the issue" \
  --body "$(cat <<'EOF'
## Steps to reproduce
<exact command that failed>

## Expected behavior
<what should have happened>

## Actual behavior
<what happened instead, including error output>

## Environment
- tinkerise version: <version>
- Node.js version: <version>
- OS: <os>
- tinkerise doctor output: <paste relevant output>
EOF
)"
  1. If a matching issue already exists, share the link with the user instead of creating a duplicate. Add a comment if the user has new information to contribute.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

Raspberry Pi Manager

Manage Raspberry Pi devices — GPIO control, system monitoring (CPU/temp/memory), service management, sensor data reading, and remote deployment. Use when you...

Registry SourceRecently Updated
Coding

LinkdAPI

Complete LinkdAPI integration OpenClaw skill. Includes all 50+ endpoints, Python/Node.js/Go SDKs, authentication, rate limits, and real-world examples. Use t...

Registry SourceRecently Updated
Coding

Tesla Commander

Command and monitor Tesla vehicles via the Fleet API. Check status, control climate/charging/locks, track location, and analyze trip history. Use when you ne...

Registry SourceRecently Updated
0154
Profile unavailable