{
  "name": "@rabblerouser/core",
  "version": "0.0.0",
  "description": "A pluggable, extensible membership database for community organising",
  "license": "AGPL-3.0",
  "scripts": {
    "install": "npm --prefix backend install && npm --prefix frontend install",
    "postinstall": "npm run build",
    "build": "npm --prefix frontend run build && bin/copy_assets.sh",
    "start": "npm --prefix backend start",
    "seed": "npm --prefix backend run seed",
    "test": "npm --prefix frontend run ci && npm --prefix backend run ci",
    "e2e": "bin/e2e.sh"
  }
}

{
  "name": "@rabblerouser/core",
  "version": "0.0.0",
  "description": "A pluggable, extensible membership database for community organising",
  "license": "AGPL-3.0",
  "scripts": {
    "postinstall": "npm --prefix backend install && npm --prefix frontend install && npm run build",
    "build": "npm --prefix frontend run build && bin/copy_assets.sh",
    "dev": "concurrently 'npm --prefix backend run dev' 'npm --prefix frontend start'",
    "start": "npm --prefix backend start",
    "seed": "npm --prefix backend run seed",
    "test": "npm --prefix frontend run ci && npm --prefix backend run ci",
    "e2e": "bin/e2e.sh"
  },
  "devDependencies": {
    "concurrently": "^3.5.0"
  }
}

Add a dev task that starts both the backend and frontend using concurrently
Add a dev task that starts both the backend and frontend using concurrently
