Windshaft tailored for CARTO
Switch branches/tags
Clone or download
Latest commit 420c393 Oct 26, 2018
Failed to load latest commit information.
assets timeout error vector with lines Nov 7, 2017
config/environments Sample configs: use PostGIS to generate MVT's Oct 17, 2018
docker new docker tags Oct 17, 2018
docs Remove public docs for the time being Oct 9, 2018
lib/cartodb Merge pull request #1052 from CartoDB/use-strict Oct 26, 2018
scripts timeout error vector with lines Nov 7, 2017
test Merge branch 'master' into use-strict Oct 25, 2018
.gitignore Do not ignore redis-cell SO Mar 26, 2018
.jshintignore Include test/support as part of jshint validation Oct 6, 2017
.jshintrc Allow es6 syntax May 25, 2017
.travis.yml Output PostgreSQL and PostGIS versions Oct 23, 2018 Fixed contributing link Jan 25, 2017
HOWTO_RELEASE Fix yarn.lock and update HOWTO_RELEASE Jun 22, 2017 Change yarn dep version range specification Oct 3, 2017
LICENSE Adds notes about contributing Sep 8, 2015
Makefile Remove NO PORTED TEST makefile option Mar 19, 2018 Update NEWS Oct 24, 2018 Update Mar 17, 2017
app.js Add strict mode to main file (app.js) Oct 23, 2018
carto-package.json Update carto-package.json Aug 17, 2018
configure Remove sql api related configuration from configure script Sep 29, 2015
package.json Link dependencies to the released versions Oct 26, 2018 is a *bash* script Jul 4, 2018 Make POSTGIS_VERSION detection automatic Jun 11, 2018
yarn.lock Link dependencies to the released versions Oct 26, 2018


Build Status

This is the CartoDB Maps API tiler. It extends Windshaft with some extra functionality and custom filters for authentication.

  • reads dbname from subdomain and cartodb redis for pretty tile urls
  • configures windshaft to publish cartodb_id as the interactivity layer
  • gets the default geometry type from the cartodb redis store
  • allows tiles to be styled individually
  • provides a link to varnish high speed cache
  • provides a template maps API


See for detailed installation instructions.


Create the config/environments/.js files (there are .example files to start from). You can optionally use the ./configure script for this, see ./configure --help to see available options.

Look at lib/cartodb/server_options.js for more on config


Checkout your commit/branch. If you need to reinstall dependencies (you can check NEWS) do the following:

rm -rf node_modules; yarn


node app.js <env>

Where is the name of a configuration file under config/environments/.

Note that caches are kept in redis. If you're not seeing what you expect there may be out-of-sync records in there. Take a look:


The docs directory contains different documentation resources, from higher level to more detailed ones: The Maps API defined the endpoints and their expected parameters and outputs.


CartoDB's Map Gallery showcases several examples of visualisations built on top of this.



Developing with a custom windshaft version

If you plan or want to use a custom / not released yet version of windshaft (or any other dependency) the best option is to use yarn link. You can read more about it at yarn-link: Symlink a package folder.

Quick start:

~/windshaft-directory $ yarn
~/windshaft-directory $ yarn link
~/windshaft-cartodb-directory $ yarn link windshaft