A web app to inform NYC residents about rent stabilization
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Am I Rent Stabilized?

A mobile friendly, multi-lingual web app that informs NYC residents about Rent Stabilization by simplifying the process of how to find out if their apartment may be rent stabilized, if they are paying too much rent, and what to do about it.

See it in action at amirentstabilized.com.

V2 Runs on

Data Sources


Make sure you have Node.js at v5.9.1 or greater with Node-Sass, Handlebars, and Gulp modules installed globally.

  1. In terminal cd to this repo and do npm install to grab all dependencies.
  2. Run gulp production to compile the distribution code.
  3. Host code on a webserver of your choice.


Make sure you have Node.js at v5.9.1 or greater with Node-Sass, Handlebars, and Gulp modules installed globally.

  • Run gulp to start a local server and automatically watch for changes. The site will refresh automatically after making any changes.
  • Run gulp production to compile the distribution code in a build/ directory.

Updating the Site's Content:

As the entire site is translated to Chinese and Spanish, any changes to the site's content must also be translated to these languages. This is done by editing the JSON files in app/data/.

Any changes to the site's HTML must be made to the Handlebars templates in app/templates/.

Each of the JSON files and Handlebars files in these folders corresponds to one page of the app (index.html, why-it-matters.html, how-it-works.html, & resources.html). Each JSON file contains the written content in 3 languages while each template file contains the markup and Handlebars templating code.

After updating these sets of files you must precompile the templates for the content to be updated in the app. You can run the gulp templates task to do this by running the following npm script:

npm run compile-templates

If you're running the gulp default task, then making changes to any files in app/templates/*.hbs will automatically re-compile app/js/templates.js. However, you will still need to compile the bundled files for the app, bundle.js and otherpages.js, otherwise the app will not use the newly compiled templates!

Data Processing:

The processed data is publicly available for download on CartoDB but if you'd like to host it yourself you may do the following (note you will need to have GDAL and PostGIS installed):

  1. Import each of the NYC MapPLUTO shapefiles into Postgres / PostGIS. I recommend using shp2pgsl.
  2. Import the DHCR rent stabilized building list data into Postgres.
  3. Import Properties with 421a tax exemptions data located in data/exempt_stabilized.csv.
  4. Run the queries in sql/likely_rent_stabilized.sql in Postgres.
  5. Export the map_pluto_likely_rs table as a shapefile from Postgres using pgsql2shp.
  6. Import the shapefile to CartoDB.
  7. You can now query the data using the CartoDB SQL API.


  • Big thanks to Caroline Woolard for suggesting the idea to me.

  • Jue Yang designed the awesome building graphics which informed the overall redesign of version 2 of the site.

  • Eric Brelsford and BetaNYC provided motivational and technical support.

  • Radish Lab contributed the design mockups for version 2.

  • John Krauss provided data for NYC properties that should have rent-stabilized apartments due to receiving tax exemptions from state programs such as 421a. (You can learn more on the the repo for nyc-stabilization-unit-counts).

Fullscreen Slides with GSAP's TweenLite, CSSPlugin and ScrollToPlugin Credit

Forked from Chrysto's Pen Fullscreen slides with TweenLite, CSSPlugin and ScrollToPlugin.

A Pen by Captain Anonymous on CodePen.



Creative Commons Attribution-NonCommercial

In other words: Not For Profit!