Community apps¶
Community apps are pre-built decision models which you can use directly via subscription apps or as a starting point to develop your own custom app. They provide all the necessary files required to publish the app to the Nextmv platform.
Community apps are hosted and maintained in the community-apps GitHub
repository. They showcase different languages, solver
integrations, and problems, so you can take your pick for the closest use case
that you are looking for. Here are some examples of the variations covered by
existing community apps.
- languages: Python, Go, Java, Rust, C++.
- solver integrations: FICO© Xpress, Gurobi, HiGHS, Hexaly.
- modeling integrations: Pyomo, OR-Tools.
- problems: knapsack, vehicle routing, shift scheduling, demand forecasting, order fulfillment, region allocation.
You have two options when working with community apps:
- Use a published version of the app in the Nextmv Marketplace.
- Get the files of a community app and start customizing.
- Use the Nextmv CLI to clone an app locally.
- Work with the public GitHub repository.
Here is an example of how to use the CLI to get the files for a
community app. After the CLI has been set up correctly, use the nextmv
community list command to list all the available
community apps:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Name ┃ Type ┃ Latest ┃ Description ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ cpp-hello-world │ binary │ v20251210.0 │ Get started with C++ and Nextmv. │
│ cs-sardinecan-packing │ binary │ v20260129.0 │ Use C# and SardineCan - packing. │
│ go-hello-world │ go │ v20251006.0 │ Get started with Go and Nextmv. │
│ go-highs-knapsack │ go │ v20251006.0 │ Use Go and HiGHS - knapsack. │
│ go-highs-orderfulfillment │ go │ v20251126.0 │ Use Go and HiGHS - order fulfillment. │
│ go-highs-shiftscheduling │ go │ v20251006.0 │ Use Go and HiGHS - shift scheduling. │
│ go-nextroute │ go │ v20260413.0 │ Use Go and Nextroute - VRP. │
│ java-gurobi-knapsack │ java │ v20251006.0 │ Use Java and Gurobi - knapsack. │
│ java-gurobi-multiknapsack-multiexcel │ java │ v20260609.0 │ Use Java and Gurobi - multi knapsack via Excel. │
│ java-hello-world │ java │ v20251006.0 │ Get started with Java and Nextmv. │
│ java-hexaly-knapsack │ java │ v20251006.0 │ Use Java and Hexaly - knapsack. │
│ java-ortools-knapsack │ java │ v20251006.0 │ Use Java and OR-Tools - knapsack. │
│ java-ortools-routing │ java │ v20251006.0 │ Use Java and OR-Tools - VRP. │
│ python-ampl-facilitylocation │ python │ v20260701.0 │ Use Python and AMPL - facility location. │
│ python-ampl-knapsack │ python │ v20260701.0 │ Use Python and AMPL - knapsack. │
... Output truncated for brevity
│ python-xpress-knapsack │ python │ v20260413.0 │ Use Python and Xpress - knapsack. │
│ python-xpress-park-location │ python │ v20260413.1 │ Use Python and Xpress - park location. │
│ rust-goodlp-knapsack │ binary │ v20251210.0 │ Use Rust and GoodLP - knapsack. │
│ rust-hello-world │ binary │ v20251210.0 │ Get started with Rust and Nextmv. │
└─────────────────────────────────────────┴────────┴─────────────┴──────────────────────────────────────────────────────────────┘
You may clone a community app locally using the nextmv community
clone command, specifying the desired app with the
--app option.
For this particular example, you would get a list of files similar to this one:
python-hello-world
├── app.yaml
├── input.json
├── LICENSE
├── main.py
├── pyproject.toml
├── README.md
├── requirements.txt
└── uv.lock
Once the community app has been cloned, you can customize the code, and at any point, deploy and run the application.