Zheat Logo

    Rocky architecture profiles: detect before you impose

    Rocky detects the repo before imposing structure: Next.js App Router, hexagonal when src/domain exists, layered React SPA, or node-api-only. Do not force foreign layouts.

    Follow on LinkedIn

    Detect the user's repo before imposing structure. Prefer hexagonal playbooks when src/domain/ exists.

    Detection order

    1. app/ + Next.js deps → nextjs-app-router (nextjs-developer)
    2. src/domain/ + src/application/hexagonal

    - NestJS (@nestjs/core) → nestjs-hexagonal - FastAPI / Python → fastapi-hexagonal - React UI → react-hexagonal

    1. src/components/atoms + connected/layered-react-spa (legacy handbook layout)
    2. No components/ but src/routes or Express → node-api-only
    3. Else: graphify + read neighbors. Do not force foreign layouts.

    hexagonal (preferred when present)

    src/
    ├── domain/           # entities, ports, pure logic
    ├── application/      # use-cases / hooks / controllers / routes
    └── infrastructure/   # adapters (api, db, email, ...)

    See agents: react-hexagonal, nestjs-hexagonal, fastapi-hexagonal.

    layered-react-spa (legacy)

    src/
    ├── components/atoms/
    ├── components/connected/
    ├── context/, actions/, reducers/, selectors/
    ├── services/, pages/, utils/, config/

    Styling: styles.module.less per component. See tailwind-ui-developer when using Tailwind instead.

    nextjs-app-router

    Hexagonal or layered logic. Routes in app/. See nextjs-developer for server/client boundaries.

    node-api-only

    Router → use case → repository. See node-api-developer.

    Styling variants

    ProfileWhen
    Tailwindtailwindcss in package.jsontailwind-ui-developer
    LESS modulesNo Tailwind → match react-hexagonal + repo conventions

    Related