{"id":185181,"date":"2014-01-23T22:48:58","date_gmt":"2014-01-24T06:48:58","guid":{"rendered":"http:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=185181"},"modified":"2018-12-18T10:24:24","modified_gmt":"2018-12-18T18:24:24","slug":"10-open-source-projects-every-javascript-geo-dev-should-know-about","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about","title":{"rendered":"10 open source projects every JavaScript geo dev should know about"},"author":3791,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[37501,37131,22941],"tags":[28361,25671,24921,31501],"industry":[],"product":[36831,36551,36861,36601],"class_list":["post-185181","blog","type-blog","status-publish","format-standard","hentry","category-administration","category-constituent-engagement","category-mapping","tag-geodev","tag-github","tag-javascript","tag-open-source","product-js-api-arcgis","product-arcgis-online","product-api-rest","product-developers"],"acf":{"short_description":"Regardless of whether you\u2019re a hacker or a well-seasoned developer, writing JavaScript geo apps from scratch takes some serious time","flexible_content":[{"acf_fc_layout":"content","content":"<p dir=\"ltr\">Regardless of whether you\u2019re a hacker or a well-seasoned developer, writing JavaScript geo apps from scratch takes some serious time, skill, and effort. \u00a0Thankfully there\u2019s a few places you can go to get a head start, like the\u00a0<a href=\"http:\/\/esri.github.io\/\">esri.github.io<\/a>\u00a0site. \u00a0There you\u2019ll find over 170 geo projects on\u00a0<a href=\"http:\/\/github.com\/esri\">GitHub<\/a>\u00a0that are ready to go. \u00a0Most of the projects use the\u00a0<a href=\"https:\/\/developers.arcgis.com\/en\/\">ArcGIS APIs<\/a>\u00a0and services to do something \u201cgeo\u201d, but many integrate with other technologies as well, and others are pure JavaScript solutions. \u00a0The other cool thing is that they are all on\u00a0<a href=\"https:\/\/github.com\/\">GitHub<\/a>, so if there\u2019s a feature missing, it\u2019s easy to make a\u00a0<a href=\"https:\/\/help.github.com\/articles\/using-pull-requests\">pull request<\/a>\u00a0or\u00a0<a href=\"https:\/\/github.com\/blog\/831-issues-2-0-the-next-generation\">log an issue<\/a>\u00a0to get it added!<\/p>\n<p dir=\"ltr\">Here are 10 projects that should help you get your JavaScript mapping apps out the door faster.<span id=\"more-34783\"><\/span><\/p>\n<hr \/>\n<p dir=\"ltr\">1. \u00a0\u00a0\u00a0\u00a0<a href=\"https:\/\/github.com\/Esri\/quickstart-map-js\">quickstart-map-js<\/a>\u00a0\u2013 Looking for some short JavaScript examples to do things like add points to a map, change basemaps, find places, get directions or perform spatial analyses? Well, look no further. This project illustrates how to accomplish a bunch of common mapping tasks with the\u00a0<a href=\"https:\/\/developers.arcgis.com\/en\/javascript\/\">ArcGIS for Javascript API<\/a>\u00a0and\u00a0<a href=\"http:\/\/resources.arcgis.com\/en\/help\/arcgis-rest-api\/#\/Services_from_Esri\/02r300000267000000\/\">ArcGIS Online services<\/a>\u00a0with minimal code. \u00a0See live demos\u00a0<a href=\"http:\/\/esri.github.io\/quickstart-map-js\/index.html\">here<\/a>. \u00a0If you are an iOS, Android or Phonegap developer, there are\u00a0<a href=\"http:\/\/esri.github.io\/#QuickStart\">other quick starts too<\/a>!<\/p>\n<p dir=\"ltr\"><a href=\"http:\/\/blogs.esri.com\/esri\/arcgis\/files\/2014\/01\/100-lines-or-less-js.png\"><img decoding=\"async\" class=\"alignnone  wp-image-34792\" src=\"http:\/\/blogs.esri.com\/esri\/arcgis\/files\/2014\/01\/100-lines-or-less-js.png\" alt=\"\" width=\"600\" \/><\/a><\/p>\n<p dir=\"ltr\">2. \u00a0\u00a0\u00a0\u00a0<a href=\"https:\/\/github.com\/Esri\/map-tour-storytelling-template-js\">map-tour-storytelling-template-js<\/a>\u00a0\u2013 Do you like to tell stories with maps and pictures? \u00a0Well, this repo is for you. \u00a0If you just want to take it for test-drive first, just go use the\u00a0<a href=\"https:\/\/github.com\/Esri\/map-tour-storytelling-template-js#the-hosted-version\">hosted templates<\/a>\u00a0to build the app and let\u00a0<a href=\"http:\/\/www.arcgis.com\/features\/\">ArcGIS Online<\/a>\u00a0host it. \u00a0If you want to make some deeper customizations, fork and clone the\u00a0<a href=\"https:\/\/github.com\/Esri\/map-tour-storytelling-template-js#the-downloadable-version\">code<\/a>\u00a0to build a custom version of the template viewer. \u00a0Either way, you still get a fully responsive app that lets you sync geographic points with images of your choice. Here\u2019s a live\u00a0<a href=\"http:\/\/storymaps.esri.com\/stories\/maptour-palmsprings\/\">example<\/a>\u00a0and\u00a0a few other\u00a0<a href=\"http:\/\/esri.github.io\/#Storytelling\">storytelling templates<\/a>\u00a0that you might want to check out.<\/p>\n<p dir=\"ltr\"><img decoding=\"async\" class=\"alignnone\" src=\"https:\/\/raw.github.com\/Esri\/map-tour-storytelling-template-js\/master\/map-tour-storytelling-template-js.png\" alt=\"\" width=\"600\" \/><\/p>\n<p dir=\"ltr\">3. \u00a0\u00a0\u00a0\u00a0<a href=\"https:\/\/github.com\/Esri\/esri-leaflet\">esri-leaflet<\/a>\u00a0\u2013 If you like\u00a0<a href=\"http:\/\/leafletjs.com\/\">Leaflet<\/a>, then you\u2019ll love esri-leaflet! \u00a0This project provides the plumbing to consume\u00a0<a href=\"http:\/\/www.arcgis.com\/features\/\">ArcGIS Online<\/a>\u00a0basemaps, services and your own features services using the Leaflet JS framework. \u00a0If you are into geocoding, you should also check out the\u00a0<a href=\"https:\/\/github.com\/Esri\/esri-leaflet-geocoder\">esri-leaflet-geocoder<\/a>\u00a0control. \u00a0To see some examples of how it works, be sure to check out the live\u00a0<a href=\"http:\/\/esri.github.io\/esri-leaflet\/\">demos<\/a>.<\/p>\n<p dir=\"ltr\"><img decoding=\"async\" class=\"alignnone\" src=\"https:\/\/raw.github.com\/Esri\/esri-leaflet\/master\/esri-leaflet.png\" alt=\"\" width=\"600\" \/><\/p>\n<p dir=\"ltr\">4. \u00a0\u00a0\u00a0\u00a0<a href=\"https:\/\/github.com\/Esri\/arcgis-dijit-geocoder-js\">arcgis-digit-geocoder-js<\/a>\u00a0\u2013 Every wonder how to build a context sensitive geo search widget? \u00a0A lot of people don\u2019t know this, but all of the source for the ArcGIS JavaScript Geocoder widget is available on GitHub. \u00a0Behind the scenes it uses the\u00a0<a href=\"http:\/\/resources.arcgis.com\/en\/help\/arcgis-rest-api\/#\/Overview_of_the_World_Geocoding_Service\/02r300000009000000\/\">ArcGIS World Geocoding Service<\/a>and it auto-displays search results as you type. \u00a0Fork and clone\u00a0<a href=\"https:\/\/github.com\/Esri\/arcgis-dijit-geocoder-js\">this<\/a>\u00a0repo to create custom versions of the geosearch tool.<\/p>\n<p dir=\"ltr\"><a href=\"http:\/\/blogs.esri.com\/esri\/arcgis\/files\/2014\/01\/Screen-Shot-2014-01-23-at-6.17.51-PM.png\"><img decoding=\"async\" class=\"alignnone  wp-image-34807\" src=\"http:\/\/blogs.esri.com\/esri\/arcgis\/files\/2014\/01\/Screen-Shot-2014-01-23-at-6.17.51-PM.png\" alt=\"\" width=\"600\" \/><\/a><\/p>\n<p dir=\"ltr\">5. \u00a0\u00a0\u00a0\u00a0<a href=\"https:\/\/github.com\/Esri\/bootstrap-map-js\">bootstrap-map-js<\/a>\u00a0\u2013 Looking for a fast way to build a nice looking, responsive website with a map? \u00a0Well look no further. \u00a0This project shows you how to use the new\u00a0<a href=\"http:\/\/getbootstrap.com\/\">Bootstrap 3.0 framework<\/a>\u00a0to build a killer website with a fully responsive map. \u00a0Just add two files (bootstrapmap.js and a bootstrapmap.css) and your maps will magically recenter, resize and realign and work in the the Bootstrap components. \u00a0The map pop-ups are also uber-responsive too. \u00a0Check out the live demos\u00a0<a href=\"http:\/\/esri.github.io\/bootstrap-map-js\/doc\/index.html\">here<\/a>. \u00a0If you are using Bootstrap 2.x and you want to stick with just Dojo, you might want to check\u00a0<a href=\"https:\/\/github.com\/Esri\/dojo-bootstrap-ui-for-maps-js\">this<\/a>\u00a0out.<\/p>\n<p dir=\"ltr\"><img decoding=\"async\" class=\"alignnone\" src=\"https:\/\/raw.github.com\/Esri\/bootstrap-map-js\/master\/bootstrapmapjs.png\" alt=\"\" width=\"600\" \/><\/p>\n<p dir=\"ltr\">6. \u00a0\u00a0\u00a0\u00a0<a href=\"https:\/\/github.com\/Esri\/Terraformer\">terraformer<\/a>\u00a0\u2013 Need to convert GeoJSON or WKT to ArcGIS JSON or vice versa, do some light-weight geo-spatial operations (e.g. point in polygon), or build a custom NodeJS data store? \u00a0\u00a0Well look no further, terraformer is here to save the day. Save yourself some time by integrating this geo-library into your client-side JavaScript apps or in your NodeJS apps. \u00a0Be sure to check out\u00a0<a href=\"http:\/\/terraformer.io\/\">this<\/a>\u00a0super cool website with all the library doc and you\u2019ll find a few live samples\u00a0<a href=\"http:\/\/alaframboise.github.io\/terraformer-apps\/examples\/browser\/index.html\">here<\/a>.<\/p>\n<p><a href=\"http:\/\/blogs.esri.com\/esri\/arcgis\/files\/2014\/01\/Screen-Shot-2014-01-23-at-4.31.36-PM1.png\"><img decoding=\"async\" class=\"alignnone  wp-image-34789\" src=\"http:\/\/blogs.esri.com\/esri\/arcgis\/files\/2014\/01\/Screen-Shot-2014-01-23-at-4.31.36-PM1.png\" alt=\"\" width=\"600\" \/><\/a><\/p>\n<p dir=\"ltr\">7. \u00a0\u00a0\u00a0\u00a0<a href=\"https:\/\/github.com\/Esri\/ago-assistant\">ago-assistant<\/a>\u00a0\u2013 So many people don\u2019t know about this little gem. \u00a0Do you have an\u00a0<a href=\"http:\/\/www.arcgis.com\/features\/\">ArcGIS Online<\/a>\u00a0account and you need to transfer maps, feature services or other items to another account? \u00a0Well no longer do you have to export and re-import each item. \u00a0Use this tool to copy items between any two ArcGIS Online accounts. \u00a0As a bonus it also works for Portal for ArcGIS. \u00a0Missing a feature? \u00a0Go ahead and make a pull request to get it in. \u00a0Take it for a test drive\u00a0<a href=\"https:\/\/s3.amazonaws.com\/dtc-apps\/AgolAssistant\/index.html\">here<\/a>.<\/p>\n<p dir=\"ltr\"><img decoding=\"async\" class=\"alignnone\" src=\"https:\/\/github.com\/Esri\/ago-assistant\/raw\/master\/ago-assistant.png\" alt=\"\" width=\"600\" \/><\/p>\n<p dir=\"ltr\">8. \u00a0\u00a0\u00a0\u00a0<a href=\"https:\/\/github.com\/Esri\/sencha-touch-map-checkin-js\">sencha-touch-map-checkin-js<\/a>\u00a0\u2013 Want to build a Foursquare-like checkin app on GIS steroids? \u00a0This project illustrates how to use\u00a0<a href=\"http:\/\/www.sencha.com\/products\/touch\/\">Sencha Touch<\/a>, the\u00a0<a href=\"https:\/\/developers.arcgis.com\/en\/\">ArcGIS for JavaScript API<\/a>\u00a0and\u00a0<a href=\"http:\/\/www.arcgis.com\/features\/\">ArcGIS Online<\/a>\u00a0to get it done. \u00a0ArcGIS Online feature and network services let users find pizza joints within 3, 5, and 10 minutes away and then navigate their way to stores. \u00a0All check-ins\/check-outs are stored so that pizza store managers can analyze the data at a later date. \u00a0Here\u2019s the\u00a0<a href=\"http:\/\/geeknixta.com\/demo\/pizzafinder\/\">live<\/a>\u00a0app.<\/p>\n<p dir=\"ltr\"><img decoding=\"async\" class=\"alignnone\" src=\"https:\/\/raw.github.com\/Esri\/sencha-touch-map-checkin-js\/master\/sencha-touch-map-checkin-js.jpg\" alt=\"\" width=\"300\" \/><\/p>\n<p dir=\"ltr\">9. \u00a0\u00a0\u00a0\u00a0<a href=\"https:\/\/github.com\/Esri\/koop\">koop<\/a>\u00a0\u2013 Need some help getting your GeoJSON services into ArcGIS apps? \u00a0This provider makes it super easy to build a NodeJS app to access your own services and expose them as\u00a0<a href=\"http:\/\/resources.arcgis.com\/en\/help\/arcgis-rest-api\/#\/Feature_Service\/02r3000000z2000000\/\">ArcGIS REST Feature Services<\/a>\u00a0so that they can be accessed by other ArcGIS apps and APIs. \u00a0Most of the plumbing is done for you so it makes it really easy to implement with your own services. \u00a0The repo has a few\u00a0<a href=\"https:\/\/github.com\/Esri\/koop\">examples<\/a>\u00a0that illustrate how to expose Feature Services from GISTs, GitHub, AGO and Socrata. \u00a0Pretty neat!<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/f.cloud.github.com\/assets\/351164\/864572\/24113276-f624-11e2-831d-50cf8395b200.png\" alt=\"\" width=\"356\" height=\"282\" \/><\/p>\n<p dir=\"ltr\">10.\u00a0<a href=\"https:\/\/github.com\/Esri\/citizen-service-request\">citizen-service-request<\/a>\u00a0\u2013 Looking to build an HTML 5 crowd-sourcing application for citizens and government workers? \u00a0If so, be sure to check out this JavaScript app that provides an out-of-the-box solution for just such a task. \u00a0It allows citizens to submit, comment and share requests on social media, and it gives government the ability to review them. \u00a0Give it a try\u00a0<a href=\"http:\/\/localgovtemplates2.esri.com\/citizenservicerequest\/default.htm\">here<\/a>. \u00a0If you are interested in other\u00a0government apps and templates, be sure to check them out\u00a0<a href=\"http:\/\/esri.github.io\/#Government\">here<\/a>.<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/raw.github.com\/Esri\/citizen-service-request\/master\/citizen-service-request.png\" alt=\"\" width=\"450\" height=\"300\" \/><\/p>\n<p dir=\"ltr\">\u00a0Visit\u00a0<a href=\"http:\/\/esri.github.io\/#\">esri.github.io<\/a>\u00a0to search for more open source geo projects.<\/p>\n"}],"authors":[{"ID":3791,"user_firstname":"Allan","user_lastname":"Laframboise","nickname":"Allan Laframboise","user_nicename":"alaframboise","display_name":"Allan Laframboise","user_email":"alaframboise@esri.com","user_url":"","user_registered":"2018-03-02 00:15:25","user_description":"Allan Laframboise is the product engineering lead for documentation for the Developer Experience team.","user_avatar":"<img alt='' src='https:\/\/secure.gravatar.com\/avatar\/af35f23e49f7a462c9c1b97ec1033d5804a0a99ee5b8d6ed09394c1208abf8c9?s=96&#038;d=blank&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/af35f23e49f7a462c9c1b97ec1033d5804a0a99ee5b8d6ed09394c1208abf8c9?s=192&#038;d=blank&#038;r=g 2x' class='avatar avatar-96 photo' height='96' width='96' loading='lazy' decoding='async'\/>"}],"related_articles":"","card_image":false,"wide_image":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>10 open source projects every JavaScript geo dev should know about<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"10 open source projects every JavaScript geo dev should know about\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2018-12-18T18:24:24+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about\"},\"author\":{\"name\":\"Allan Laframboise\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/75ba757d8916c44e793e6d2a7963fdac\"},\"headline\":\"10 open source projects every JavaScript geo dev should know about\",\"datePublished\":\"2014-01-24T06:48:58+00:00\",\"dateModified\":\"2018-12-18T18:24:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about\"},\"wordCount\":10,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"GeoDev\",\"GitHub\",\"JavaScript\",\"open source\"],\"articleSection\":[\"Administration\",\"Constituent Engagement\",\"Mapping\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about\",\"name\":\"10 open source projects every JavaScript geo dev should know about\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2014-01-24T06:48:58+00:00\",\"dateModified\":\"2018-12-18T18:24:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"10 open source projects every JavaScript geo dev should know about\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/75ba757d8916c44e793e6d2a7963fdac\",\"name\":\"Allan Laframboise\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/af35f23e49f7a462c9c1b97ec1033d5804a0a99ee5b8d6ed09394c1208abf8c9?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/af35f23e49f7a462c9c1b97ec1033d5804a0a99ee5b8d6ed09394c1208abf8c9?s=96&d=blank&r=g\",\"caption\":\"Allan Laframboise\"},\"description\":\"Allan Laframboise is the product engineering lead for documentation for the Developer Experience team.\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/alaframboise\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"10 open source projects every JavaScript geo dev should know about","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about","og_locale":"en_US","og_type":"article","og_title":"10 open source projects every JavaScript geo dev should know about","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2018-12-18T18:24:24+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about"},"author":{"name":"Allan Laframboise","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/75ba757d8916c44e793e6d2a7963fdac"},"headline":"10 open source projects every JavaScript geo dev should know about","datePublished":"2014-01-24T06:48:58+00:00","dateModified":"2018-12-18T18:24:24+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about"},"wordCount":10,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["GeoDev","GitHub","JavaScript","open source"],"articleSection":["Administration","Constituent Engagement","Mapping"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about","name":"10 open source projects every JavaScript geo dev should know about","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2014-01-24T06:48:58+00:00","dateModified":"2018-12-18T18:24:24+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/constituent-engagement\/10-open-source-projects-every-javascript-geo-dev-should-know-about#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"10 open source projects every JavaScript geo dev should know about"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/75ba757d8916c44e793e6d2a7963fdac","name":"Allan Laframboise","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/af35f23e49f7a462c9c1b97ec1033d5804a0a99ee5b8d6ed09394c1208abf8c9?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/af35f23e49f7a462c9c1b97ec1033d5804a0a99ee5b8d6ed09394c1208abf8c9?s=96&d=blank&r=g","caption":"Allan Laframboise"},"description":"Allan Laframboise is the product engineering lead for documentation for the Developer Experience team.","url":"https:\/\/www.esri.com\/arcgis-blog\/author\/alaframboise"}]}},"text_date":"January 23, 2014","author_name":"Allan Laframboise","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/alaframboise","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"Developers","tag_data":[{"term_id":28361,"name":"GeoDev","slug":"geodev","term_group":0,"term_taxonomy_id":28361,"taxonomy":"post_tag","description":"","parent":0,"count":22,"filter":"raw"},{"term_id":25671,"name":"GitHub","slug":"github","term_group":0,"term_taxonomy_id":25671,"taxonomy":"post_tag","description":"","parent":0,"count":4,"filter":"raw"},{"term_id":24921,"name":"JavaScript","slug":"javascript","term_group":0,"term_taxonomy_id":24921,"taxonomy":"post_tag","description":"","parent":0,"count":151,"filter":"raw"},{"term_id":31501,"name":"open source","slug":"open-source","term_group":0,"term_taxonomy_id":31501,"taxonomy":"post_tag","description":"","parent":0,"count":15,"filter":"raw"}],"category_data":[{"term_id":37501,"name":"Administration","slug":"administration","term_group":0,"term_taxonomy_id":37501,"taxonomy":"category","description":"","parent":0,"count":423,"filter":"raw"},{"term_id":37131,"name":"Constituent Engagement","slug":"constituent-engagement","term_group":0,"term_taxonomy_id":37131,"taxonomy":"category","description":"","parent":0,"count":392,"filter":"raw"},{"term_id":22941,"name":"Mapping","slug":"mapping","term_group":0,"term_taxonomy_id":22941,"taxonomy":"category","description":"","parent":0,"count":2688,"filter":"raw"}],"product_data":[{"term_id":36831,"name":"ArcGIS Maps SDK for JavaScript","slug":"js-api-arcgis","term_group":0,"term_taxonomy_id":36831,"taxonomy":"product","description":"","parent":36601,"count":362,"filter":"raw"},{"term_id":36551,"name":"ArcGIS Online","slug":"arcgis-online","term_group":0,"term_taxonomy_id":36551,"taxonomy":"product","description":"","parent":0,"count":2423,"filter":"raw"},{"term_id":36861,"name":"ArcGIS REST API","slug":"api-rest","term_group":0,"term_taxonomy_id":36861,"taxonomy":"product","description":"","parent":36601,"count":75,"filter":"raw"},{"term_id":36601,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":36601,"taxonomy":"product","description":"","parent":0,"count":763,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=developers","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/185181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/3791"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=185181"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/185181\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=185181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=185181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=185181"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=185181"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=185181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}