Skill
Community

developing-lt-frontend

Install
1
Install the plugin
$
npx claudepluginhub lennetech/claude-code --plugin lt-dev

Want just this skill?

Then install: npx claudepluginhub u/[userId]/[slug]

Description

Handles ALL Nuxt 4 and Vue frontend development tasks including composables, forms (Valibot), API integration (types.gen.ts, sdk.gen.ts), authentication (Better Auth), SSR, and Playwright E2E testing. Supports monorepos (projects/app/, packages/app/). Activates when working with .vue files, nuxt.config.ts, Nuxt UI, TailwindCSS, or files in app/components/, app/composables/, app/pages/, app/interfaces/, app/layouts/. NOT for NestJS backend (use generating-nest-servers). NOT for security theory (use general-frontend-security).

Tool Access

This skill uses the workspace's default tool permissions.

Supporting Assets
View in Repository
reference/api.md
reference/authentication.md
reference/browser-testing.md
reference/colors.md
reference/components.md
reference/composables.md
reference/e2e-testing.md
reference/forms.md
reference/modals.md
reference/nuxt.md
reference/patterns.md
reference/security.md
reference/service-health-check.md
reference/troubleshooting.md
reference/typescript.md
Skill Content

lenne.tech Frontend Development

Ecosystem Context

Developers typically work in a Lerna fullstack monorepo created via lt fullstack init:

project/
├── projects/
│   ├── api/    ← nest-server-starter (depends on @lenne.tech/nest-server)
│   └── app/    ← nuxt-base-starter (depends on @lenne.tech/nuxt-extensions)
├── lerna.json
└── package.json (workspaces: ["projects/*"])

Package relationships:

  • nuxt-base-starter (template) → depends on @lenne.tech/nuxt-extensions (plugin)
  • @lenne.tech/nuxt-extensions provides pre-built composables, components, and types aligned with @lenne.tech/nest-server
  • This skill covers projects/app/ and any code using nuxt-base-starter or nuxt-extensions

When to Use This Skill

  • Working with Nuxt 4 projects (nuxt.config.ts present)
  • Editing files in app/components/, app/composables/, app/pages/, app/interfaces/
  • Creating or modifying Vue components with Nuxt UI
  • Integrating backend APIs via generated types (types.gen.ts, sdk.gen.ts)
  • Building forms with Valibot validation
  • Implementing authentication (login, register, 2FA, passkeys)
  • Working in monorepos with projects/app/ or packages/app/ structure

NOT for: NestJS backend development (use generating-nest-servers skill instead)

CRITICAL: Real Backend Integration FIRST

Never use placeholder data, TODO comments, or manual interfaces!

  • Always use real API calls via sdk.gen.ts from the start
  • Always use generated types from types.gen.ts (never manual interfaces for DTOs)
  • Run pnpm run generate-types with API running before starting frontend work
  • Implement feature-by-feature with full backend integration

Before starting: Ensure services are running. See reference/service-health-check.md

Skill Boundaries

User IntentCorrect Skill
"Build a Vue component"THIS SKILL
"Create a Nuxt page"THIS SKILL
"Style with TailwindCSS"THIS SKILL
"Create a NestJS module"generating-nest-servers
"Security audit of frontend"general-frontend-security
"Implement with TDD"building-stories-with-tdd

Related Skills

Works closely with:

  • generating-nest-servers - For NestJS backend development (projects/api/)
  • using-lt-cli - For Git operations and Fullstack initialization
  • building-stories-with-tdd - For complete TDD workflow (Backend + Frontend)
  • /lt-dev:frontend:env-migrate - Migrate env variables to NUXT_ prefix convention

In monorepo projects:

  • projects/app/ or packages/app/This skill
  • projects/api/ or packages/api/generating-nest-servers skill

Nuxt 4 Directory Structure

app/                  # Application code (srcDir)
├── components/       # Auto-imported components
├── composables/      # Auto-imported composables
├── interfaces/       # TypeScript interfaces
├── lib/              # Utility libraries (auth-client, etc.)
├── pages/            # File-based routing
├── layouts/          # Layout components
├── utils/            # Auto-imported utilities
└── api-client/       # Generated types & SDK
server/               # Nitro server routes
public/               # Static assets
nuxt.config.ts

Type Rules

PrioritySourceUse For
1.~/api-client/types.gen.tsAll backend DTOs (REQUIRED)
2.~/api-client/sdk.gen.tsAll API calls (REQUIRED)
3.Nuxt UI typesComponent props (auto-imported)
4.app/interfaces/*.interface.tsFrontend-only types (UI state, forms)

Standards

RuleValue
UI LabelsGerman (Speichern, Abbrechen)
Code/CommentsEnglish
StylingTailwindCSS only, no <style>
ColorsSemantic only (primary, error, success)
TypesExplicit, no implicit any
Backend TypesGenerated only (types.gen.ts)
Composablesapp/composables/use*.ts
Shared StateuseState() for SSR-safe state
Local Stateref() / reactive()
FormsValibot (not Zod)
ModalsuseOverlay()

TDD for Frontend

1. Backend API must be complete (API tests pass)
2. Write E2E tests BEFORE implementing frontend
3. Implement components/pages until E2E tests pass
4. Debug with Chrome DevTools MCP

Complete E2E testing guide: reference/e2e-testing.md

Reference Files

TopicFile
Core Patternsreference/patterns.md
Service Health Checkreference/service-health-check.md
Browser Testingreference/browser-testing.md
TypeScriptreference/typescript.md
Componentsreference/components.md
Composablesreference/composables.md
Formsreference/forms.md
Modalsreference/modals.md
APIreference/api.md
Colorsreference/colors.md
Nuxt Patternsreference/nuxt.md
Authenticationreference/authentication.md
E2E Testingreference/e2e-testing.md
Troubleshootingreference/troubleshooting.md
Securityreference/security.md

Pre-Commit Checklist

  • No placeholder data, no TODO comments for API
  • All API calls via sdk.gen.ts, all types from types.gen.ts
  • Logic in composables, modals use useOverlay, forms use Valibot
  • TailwindCSS only, semantic colors only
  • German UI, English code, no implicit any
  • Auth uses useBetterAuth(), protected routes use middleware: 'auth'
  • No v-html with user content, tokens stored securely
  • Security review passed (/lt-dev:review for general scan)
  • Feature tested in browser (Chrome DevTools MCP), no console errors
Stats
Stars0
Forks0
Last CommitMar 12, 2026

Similar Skills