Build composable Nuxt applications with OSDD.

nuxt-osdd brings Open Source Driven Development to Nuxt. It gives you a simple way to declare technical/ and functional/ layers, and CLI commands to generate them quickly.

nuxt.config.ts
import { defineOSDDNuxtConfig } from 'nuxt-osdd'

export default defineOSDDNuxtConfig({
  osdd: {
    technical: ['Authentication', 'Permission'],
    functional: ['Contracts', 'Posts']
  }
})

Why OSDD?

    functional/ for business features

    Keep product domains like Users, Contracts, or Posts inside functional/. Each layer can own its pages, components, composables, and assets without mixing in infrastructure concerns.

    technical/ for shared infrastructure

    Put authentication, permissions, API clients, database adapters, and other cross-cutting concerns in technical/ so they stay reusable and independent from business code.

    Explicit separation of concerns

    In many Nuxt projects, business features and technical building blocks end up mixed together. OSDD gives each concern a clear place: functional/ for product domains and technical/ for shared infrastructure.

    Simple configuration

    defineOSDDNuxtConfig lets you declare your technical and functional layers in one small osdd block instead of wiring conventions manually.

    Built-in layer generation

    Generate a new layer in technical/ or functional/ with a ready-to-use structure including nuxt.config.ts, app/, and README.md.

    Scales with your app

    Add new domains and technical modules as the project grows while keeping a structure that stays predictable for the whole team.

What nuxt-osdd changes in practice

    Before: concerns are easy to mix

    In a growing Nuxt app, authentication, API code, permissions, and product features can easily evolve side by side with no shared convention. That makes ownership and boundaries less obvious over time.

    With OSDD: the role of each folder is clear

    OSDD organization
    .
    ├── technical
    │   ├── Authentication
    │   └── Permissions
    └── functional
        ├── Contracts
        └── Posts
    

    One config entrypoint

    Declare your nuxt config with

    defineOSDDNuxtConfig({
      osdd: {
        technical: [...],
        functional: [...]
        }
      })
    

    and let the module wire the setup for you.

Ready to organize your Nuxt app with OSDD?

Install `nuxt-osdd`, generate your first layers, and keep business logic and infrastructure concerns cleanly separated.