What are Leaflet and Mapbox, and what are their differences?

The other answer is good but a bit outdated, since Mapbox has changed significantly in two years.

Leaflet is a JavaScript API for making maps interactive on the internet. It can integrate with Mapbox, but also plenty of other tile sources, like OpenStreetMap, and other data sources, like GeoJSON overlays.

Mapbox is a company that provides map services and technology - one of those services, Map tiles, can be used in Leaflet as base maps - same as you'd use Google Map tiles in the Google Maps API. Mapbox also develops a Leaflet plugin called Mapbox.js that makes it simple to integrate with their tiles while still using all of the great functionality in Leaflet. We also support Leaflet's development, since the maintainer works here.

You can use Mapbox.js without using Mapbox tiles, and use Leaflet with Mapbox tiles - they're entirely mix-and-matchable. Mapbox.js's additions, like TileJSON and UTFGrid support, make it easier to integrate with Mapbox maps, but don't change the existing behavior of Leaflet.


Update (2014-08-22):

My answer is slightly outdated. Please refer to @tmcw's answer for an up-to-date comparison between Leaflet and MapBox.


Original Answer (2012-09-05):

You're comparing apples and oranges.

Leaflet is "just" a map API. It doesn't provide data/maps itself. Mapbox is a service to design and publish maps, where the end-result is a bunch of generated map-tiles stored in the cloud (and some json files).

Thus, for example, you may consume Mapbox maps from Leaflet. Example

Anyway, Mapbox is developed by a company called DevelopmentSeed, and they have a map API which is indeed a Leaflet competitor, called Modest Maps, although much simpler and with less functionality.

So, to sum it up:

  • Leaflet -> map API , no data
  • MapBox -> design and publish maps