Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time

CMV The Configurable Map Viewer

Read The Docs ![Gitter]( Chat.svg) Build Status


CMV is a community-supported open source mapping framework. CMV works with the Esri JavaScript API, ArcGIS Server, ArcGIS Online and more.

Make It Your Own!

This JavaScript web app can be easily configured or used as a boilerplate/starting point for basic viewers. It also demonstrates best practices for modular design and OOP via classes in JS using dojo's great declare system.

Try The Demo:


Widgets Included:

  • Basemaps
  • Basemaps Gallery
  • Bookmarks
  • Directions
  • Draw
  • Editor
  • Find
  • Growler
  • Help
  • Home
  • Identify
  • Layer Control (Table of Contents)
  • Legend
  • Locale (Change the Country + Language)
  • Locate Button (Geolocation)
  • MapInfo
  • Measure
  • Overview Map
  • Print
  • Reverse Geocoder
  • Scalebar
  • StreetView
  • Map Right click menu with various widget functions.
  • Highly configurable UI, right or left sidebars with widgets in both, top and bottom regions for other content.

Read more about the core widgets. In addition, there is a growing number of widgets contributed by the CMV developer community.

Resource Proxy:

A resource proxy may be required to access some MapServices and other content that reside on a different domain. A proxy is not available for the Github demo.


Use the documentation for getting started and guidance on configuring your application. The initial documentation is sparse. Please help make it better by contributing over at the cmv documentation repo.

Read The Docs


We have a chat room. Come on by if you have questions. The community is very active and helpful.

![Gitter]( Chat.svg)

Change log:

See the GitHub Releases for change logs for all versions of CMV.

Contributing to the Project

There are many ways to contribute to CMV:

  1. Tell your friends and colleagues - We are a community of developers. Help spread the CMV love and help the community grow.

  2. Create documentation Please contribute to the cmv documentation repo.

  3. Answer Questions at Stack Exchange - is the prime destination for our Frequently Asked Questions (FAQs). Please answer questions and help new developers get more comfortable with CMV.

  4. Join the Chat Room - Lots of us in CMV community hang out in the chat room on Gitter. Feel free to hangout with us, answer questions and throw out ideas.

  5. Submit a Pull Request - If you are developer and have an enhancement or bug fix you would like to submit, pull requests are welcome. Please review the Contributing on GitHub documentation before submitting any Pull Requests.

  6. User contributed widgets - For general information on how to build a CMV widget read the docs. Users can submit widgets to the cmv-contrib-widgets repo. These widgets are created and submitted by users. Head on over and read the details.

  7. Propose a Feature - If there is a feature you would like to request, add it to the issues list for consideration.

  8. Submit an Issue - If you find a possible bug, please submit an issue in the issues log.