---
# System prepended metadata

title: '@nxpm'

---

# @nxpm

With Nxpm you can create full-stack apps with an opinionated and scalable structure.


## How it works

At it's core, Nxpm extends the [Nx](https://nx.dev) generators like `@nrwl/angular`, `@nrwl/nest`, `@nrwl/react` and `@nrwl/react-native`.

Where Nx seperates their packages by _technology_, Nxpm  abstracts these into the _functionality_ with packages like `@nxpm/api`, `@nxpm/mobile` and `@nxpm/web`.

That means that with Nxpm, the `@nxpm/web` package can create both Angular and React apps with `@nxpm/web:app` and libraries with `@nxpm/web:lib`. 

```
@nxpm/api
    - @nrwl/nest
    # Support for Go is being considered
@nxpm/mobile
    - @nrwl/react-native
    # Support for Ionic is being considered
    # Support for NativeScript is being considered
@nxpm/web
    - @nrwl/angular
    - @nrwl/react
```

Having these building blocks allows us to create full-stack apps by combining and wrapping around these generators. These groups are called `features`.



## @nxpm/api

Generate a NestJS+Prisma API with auth, account management and user admin.

```markdown
# Generators
- application (app):
    - generates basic application
- library (lib):
    - generates basic library
- feature (feat):
    # Account management features
    - account
        - data-access
        - feature
    # Authentication
    - auth
        - data-access
        - feature
        - util
    # Global configuration and Prisma 
    - core
        - data-access
        - feature
        - util
    # Admin User management
    - user
        - data-access
        - feature
```

## @nxpm/cli

```markdown
- lint
- init
...everyting from current @nxpm/cli like release
```

## @nxpm/mobile

Generate a React Native app with auth and account management.

```markdown
- application
- libs
    # Account management features
    - account
        - feature
        - ui
    # Authentication
    - auth
        - feature
        - ui
        - util
    # Application Dashboard
    - dashboard
        - feature
        - ui
    # Application Shell
    - shell
        - feature
    # Ui libraries
    - ui
        - button
        - form
        - layout
        - page
```

## @nxpm/stack

```markdown
nxpm init 
  --api-name         api
  --mobile-name      mobile
  --mobile-type      react-native
  --web-name         web
  --web-type         react
```

- Create API with @nxpm/api
- Create Mobile App with @nxpm/mobile
- Create Web App with @nxpm/web
- Create Shared SDK

## @nxpm/web

Generate an app using @nrwl/angular or @nrwl/react  with auth and account management.



```markdown
- application
- libs
    # Account management features
    - account
        - feature
        - ui
    # Authentication
    - auth
        - data-access
        - feature
        - ui
        - util
    # Application Dashboard
    - dashboard
        - feature
        - ui
    # Application Shell
    - shell
        - feature
    # Ui libraries
    - ui
        - button
        - form
        - layout
        - page
    # Awdmin User management
    - user
        - feature
        - ui
```



# Commands Reference

```markdown
# Generate default API with libraries 
nx g @nxpm/api:app api
    # these params are passed to the features
    --auth-jwt-secret=bla
    --core-prisma-database-url=postgres://bla
```

```markdown
# Generate a default library
nx g @nxpm/api:feature <name>
    --no-feature
    --no-data-access
    --no-util
```

```markdown
# Generate the API Auth feature
nx g @nxpm/api:feature auth
    --jwt-secret=bla
```