Skip to content
DocsProfiles

Profiles

Profiles group services into named workflows so you don’t have to spin up everything every time. Working on a CSS tweak? Start just the frontend. Building a feature end-to-end? Fire up the full stack. Pick a profile from the Start button’s dropdown in the project toolbar and lpm starts those services right away, plus anything they depend on.

Start small. Even two profiles pay off right away — a lightweight one for quick UI fixes and a full one for feature work. Here’s the smallest useful setup: a frontend and a backend, with a frontend profile that skips the API when you don’t need it:

~/.lpm/projects/myapp.ymlvalid
name: myapp
root: ~/Projects/myapp
services:
  web: npm run dev              # frontend UI
  api:
    cmd: node server.js
    port: 4000                  # backend API
profiles:
  # Just the frontend — fastest startup, good for UI-only fixes
  frontend: [web]
  # Full stack — frontend + backend for feature work
  full:     [web, api]

Every name in a profile list must match a service defined above in services. Services can appear in as many profiles as you like — overlap is fine and expected.

Multiple profiles for different modes. Once your project grows a third or fourth service — a background worker, a queue, a second frontend — a single profile isn’t enough. Define one profile per workflow you actually use, so you can jump between “just the UI”, “normal dev”, and “everything running” without touching the config:

~/.lpm/projects/shop.ymlvalid
name: shop
root: ~/Projects/shop
services:
  web: npm run dev              # React frontend
  api:
    cmd: python -m api.server
    port: 5000                  # Flask backend
  worker: celery -A tasks       # background jobs
profiles:
  # Quick UI fixes — no backend needed
  frontend: [web]
  # Normal day-to-day development — web + api
  local:    [web, api]
  # Everything, including background workers
  full:     [web, api, worker]

What does a plain Start run?

With no profiles, Start runs every service. Once a project has profiles, Start runs the profile you last started since opening the app — otherwise the first profile in alphabetical order, which is how the dropdown lists them. In the examples above, that’s frontend. To choose what a plain Start runs from the beginning, give that profile a name that sorts first.