We love open source at Artsy. We use a ton of it. We've also contributed to numerous projects and created many of our own projects since early 2011. We maintain a philosophy of keeping our work Open by Default.

Title
Description
Created

A boilerplate for Backbone projects that share code server/client and scale through modular architecture.

Oct 27th, 2013

Artsy's '2014 Year in Review' page using node to generate static pages.

Jan 5th, 2014

Artsy's '2014 Year in Review' page using node to generate static pages.

Jan 5th, 2014

Middleware to compile browserify files on request for development purpose.

Oct 27th, 2013

Server-side Backbone.sync adapter that caches requests using Redis.

Dec 8th, 2013

A jQuery plugin to listen for a user entering the konami code.

Aug 28th, 2011

Node server-side Backbone.sync adapter using super agent.

Sep 15th, 2013

Stub a browser environment in node.js and headlessly test your client-side code.

Sep 22nd, 2013

Node module that uploads a folder of static assets to an s3 bucket with convenient defaults.

Sep 22nd, 2013

Node module to easily share data between your server-side and browserify modules.

Sep 22nd, 2013

nap

Node Asset Packager helps compile and package your assets including stylesheets, javascripts, and client-side javascript templates.

Sep 4th, 2011

Artsy iPhone Launch Marketing Page.

Sep 8th, 2013

A jQuery plugin for 'locking' short content in place as the user scrolls by longer content. For example, it will lock metadata and share buttons in place as the user scrolls by a long essay or series of images.

Sep 9th, 2013

A jQuery plugin that given a `ul` with images inside their `li`s will do some things to line them up so that everything fits inside their container nice and flush to the edges. It's like google image search but also retaining the integrity of the original images (no cropping or stretching/squishing).

Oct 23rd, 2011

API Sandbox is a jQuery plugin written in CoffeeScript that allows web apps to easily implement sandbox environments for an API explorer. The plugin includes two parts: apiSandbox, which aids in the creation of inline sandboxes for individual API paths, and APIExplorer, which is a full API explorer solution.

Jul 31st, 2011
Title
Description
Created

CocoaPods is the dependency manager for iOS. Artsy provides occasional sponsorship, and provides developer time for features & related projects.

Aug 7th, 2011

CocoaDocs documents every public OSS library in CocoaPods. Artsy pays for hosting.

Feb 24th, 2013

ARAnalytics is for Objective-C what Analytics.js is to Javascript. It lets you use multiple analytics providers with the same API.

Dec 16th, 2012

Network abstraction layer written in Swift. If you use Alamofire to abstract away NSURLSession, why not use something to abstract away the nitty gritty of URLs, parameters, etc?

Aug 10, 2014

Vertically stack views using Auto Layout, with an order specific subclass that uses view tags for ordering.

Sep 8th 2013

ORSimulatorKeyboardAccessor allows you to use your keyboard in the iOS simulator with a blocks based API.

Apr 7th, 2013

DRBOperationTree is an iOS and OSX API to organize NSOperations into a tree so that each node's output becomes the input for its child nodes.

Dec 8th, 2013

Fui

Fui stands for Find Unused Interfaces, a Ruby gem that works against an Objective-C codebase.

Jan 19th, 2014

Display, pan and deep zoom with tiled images on iOS.

Mar 9th, 2014

Deal with obsessive compulsive issues of programmers in Objective-C.

Mar 23rd, 2014

Expecta matchers for ios-snapshot-test-case.

Jan 12th, 2014

Swizzle your iOS project into ASCII art.

Mar 16th, 2014

A UICollectionViewLayout subclass for creating flow-like layouts with dynamic widths or heights.

Mar 16th, 2014

If you're using the cool FBSnapshotTestCase to test your iOS view logic, awesome! Even better if you have continuous integration, like on Travis, to automate running those tests! Second Curtain sends your failing tests to S3,

July 20th, 2014

A gem for swapping iOS simulator states. Saves all the documents, library and cache for the most recently user iOS app into the current folder with a named version. Commands are modelled after git.

Feb 19th, 2012
Title
Description
Created

A Ruby client for the Artsy API.

Apr 21st, 2013

Shared utilities for managing and deploying OpsWorks apps at Artsy.

Jan 12th, 2014

Garner is a practical Rack-based cache implementation for RESTful APIs with support for HTTP 304 Not Modified based on time and ETags, model and instance binding and hierarchical invalidation. To 'garner' means to gather data from various sources and to make it readily available in one place, kind-of like a cache!

Jun 17th, 2012

Spidey provides a bare-bones framework for crawling and scraping web sites. Its goal is to keep boilerplate scraping logic out of your code. The companion gem adds MongoDB as a data store.

Jun 24th, 2012

TinEye Pixmatch Ruby client library. Pixmatch is a general image matching engine that allows you to perform large scale image comparisons for a variety of tasks. PixMatch is delivered as a hosted Web Services API. It runs over HTTP using a REST protocol and JSON formatted responses, wrapped by this library.

Jul 24th, 2011

A library for generating a list of licensed software from Gemspec. The overwhelming majority of 3rd party licenses require the application that uses them to reproduce the license verbatim in an artifact that is installed with the application itself. Are you currently copying individual license.txt files 'by hand' or are you including license text in your documentation with copy/paste? This project aims at improving this situation.

Jun 16th, 2013

Combine email validation and transformations to produce canonical email addresses.

Jun 16th, 2013

Want to restart your Rack development with rackup whilst you work? Now you can!

Feb 19th, 2012

The rspec-rerun gem is a drop-in solution to retry (rerun) failed RSpec examples. It may be useful, for example, with finicky Capybara tests. The strategy to rerun failed specs is to output a file called `rspec.failures` that contains a list of failed examples and to feed that file back to RSpec via `-e`.

Aug 12th, 2012

This gem is a pure Ruby implementation of the HyperLogLog algorithm for estimating cardinalities of sets observed via a stream of events. A Redis instance is used for storing the counters.

Sep 2nd, 2012

A cartesian product implementation in Ruby that doesn't materialize the product in memory.

Sep 16th, 2012

A pure Ruby implementation of the SpaceSaver algorithm for estimating the top K elements in a data stream.

Dec 16th, 2012

A Ruby full-text search implementation for the Mongoid ODM. MongoDB currently has no native full-text search capabilities, so this gem is a good fit for cases where you want something a little less than a full-blown indexing service like Solr. The mongoid_fulltext gem lets you do a fuzzy string search across relatively short strings, which makes it good for populating autocomplete boxes based on the display names of your Rails models but not appropriate for, say, indexing hundreds of thousands of HTML documents.

Mar 27th, 2011

Typical as_json definitions may involve lots of database point queries and method calls. When returning collections of objects, a single call may yield hundreds of database queries that can take seconds. This library mitigates the problem by implementing a module called CachedJson. CachedJson enables returning multiple JSON formats from a single class and provides some rules for returning embedded or referenced data. It then uses a scheme where fragments of JSON are cached for a particular (class, id) pair containing only the data that doesn't involve references/embedded documents. To get the full JSON for an instance, CachedJson will combine fragments of JSON from the instance with fragments representing the JSON for its references. In the best case, when all of these fragments are cached, this falls through to a few cache lookups followed by a couple Ruby hash merges to create the JSON. Using Mongoid::CachedJson we were able to cut our JSON API average response time by about a factor of 10.

Feb 12th, 2012

Easily maintain a collection of Tag instances with aggregate counts from your model's tags.

Jun 23rd, 2013

Short-circuit serialization of Mongoid model instances when a delayed job is called on them, or when they're passed as arguments to delayed jobs.

Nov 27th, 2011

Easy maintenance of collections of processed data in MongoDB with the Mongoid ODM.

Aug 28th, 2011

Create MongoDB command-lines from Mongoid configuration.

Jan 27th, 2013

Mongoid extension that enables infinite scrolling with MongoDB.

Feb 10th, 2013

Forgetsy is a highly scalable trending library using Forget Tagble data structures, backed by Redis.

Oct 6th, 2013

dzt

Slice deep-zoom images for Open Sea Dragon or ARTiledImageView.

Mar 16th, 2014

The Artsy Developer website, a Rails app that talks to the Artsy public API.

Aug 24th, 2014

Automatically insert a text/plain part into your HTML multipart e-mails.

Apr 5th, 2015

Integration testing with e-mail examples.

Apr 5th, 2015

An extension to ruby representable which allows expanding properties and collections of a Representable.

Dec 10th, 2015
Title
Description
Created

Defines a Resque plugin that allows you to automatically scale up the number of workers running on Heroku and then automatically scale them down once no work is left to do.

Jan 8th, 2012

Beat Heroku's 60s boot timeout with a proxy. Heroku will report an application crashed and log an `R10 Boot Timeout` error when a web process took longer than 60 seconds to bind to its assigned port. Setup a proxy that will start immediately, report an `up` status to Heroku, and forward requests to your application that takes more than 60 seconds to boot.

Dec 9th, 2012

A tool to deploy web applications to Heroku.

Mar 6th, 2011

Master the Heroku CLI from Ruby.

Jan 27th, 2013