diff --git a/js/users.js b/js/users.js
new file mode 100644
index 0000000000..a5444b38d8
--- /dev/null
+++ b/js/users.js
@@ -0,0 +1,320 @@
+/* global window, document */
+/*eslint quotes: ["error", "double", { "avoidEscape": true }]*/
+
+"use strict";
+
+class Users {
+ constructor(element) {
+ this.defaultSort = "position";
+ this.totalCounter = 0;
+ this.filterCounter = 0;
+
+ this.displayAttributes = [
+ "testimonial",
+ "openSource",
+ "contributor",
+ "sponsor",
+ ];
+
+ this.displayOptions = [
+ {
+ label: "Babel",
+ },
+ {
+ label: "Open Source",
+ filterBy: "openSource",
+ },
+ {
+ label: "Newest",
+ sortBy: "added_timestamp",
+ },
+ {
+ label: "Sponsors",
+ filterBy: "sponsor",
+ },
+ {
+ label: "Contributors",
+ filterBy: "contributor",
+ },
+ {
+ label: "Testimonials",
+ filterBy: "testimonial",
+ },
+ ];
+ this.displaySelected = this.displayOptions[0];
+
+ this.container = element;
+ this.users = {};
+
+ this.render();
+ }
+
+ render() {
+ const settings = this.container.dataset;
+
+ if (!settings || settings.rendered === true) {
+ return;
+ }
+
+ // check browser compatability
+ if (!window.addEventListener || !window.JSON) {
+ return;
+ }
+
+ this.container.setAttribute("data-rendered", true);
+
+ // get and prepare our users
+ if (settings.users) {
+ try {
+ this.users = JSON.parse(settings.users);
+ } catch (e) {
+ this.renderError("Error in parsing user JSON object");
+ return;
+ }
+ this.users.map((user, i) => {
+ // prepare users object
+ if (!user.attributes) {
+ user.attributes = {};
+ }
+
+ // get a timestamp, add as attribute (to filter on new/old)
+ user.added_timestamp = new Date("1 Januari 1970").getTime();
+ if (user.added) {
+ const time = new Date(user.added);
+ if (time) {
+ user.added_timestamp = time.getTime();
+ }
+ }
+
+ // default sorting
+ user.position = i;
+ return user;
+ });
+ this.renderList();
+ } else {
+ this.renderError("No users found");
+ return;
+ }
+ }
+
+ renderList() {
+ let userList = [];
+ const list = document.createElement("ul");
+ const userTemplate = `
+
`;
+ const clean = /\${[a-z]+}/gi;
+ this.container.innerHTML = ""; // empty block
+ this.totalCounter = 0;
+ this.filterCounter = 0;
+
+ if (this.users) {
+ userList = this.users
+ .filter(user => {
+ // filter based on displaySelected
+ this.totalCounter++;
+ if (this.displaySelected !== null) {
+ if (!user.attributes) {
+ return false;
+ }
+ if (!this.displaySelected.filterBy) {
+ return true;
+ }
+ const filterThis = Object.entries(user.attributes).find(
+ attribute => {
+ if (
+ this.displaySelected.filterBy === attribute[0] &&
+ ((!this.displaySelected.value && attribute[1]) ||
+ (this.displaySelected.value &&
+ this.displaySelected.value.test(attribute[1])))
+ ) {
+ //no match for filter
+ return true;
+ }
+ return false;
+ }
+ );
+ // no match for filter
+ if (filterThis === undefined) {
+ return false;
+ }
+ }
+ this.filterCounter++;
+ return true;
+ })
+ .sort((a, b) => {
+ // sort by selected filter
+ if (this.displaySelected !== null) {
+ if (this.displaySelected.sortBy) {
+ return (
+ b[this.displaySelected.sortBy] - a[this.displaySelected.sortBy]
+ );
+ }
+ }
+ // or default sort
+ return a[this.defaultSort] - b[this.defaultSort];
+ })
+ .map(user => {
+ // from template to a list item
+ const prepare = [];
+
+ prepare.className = user.logoIcon ? "holder icon" : "holder";
+ prepare.attributes = this.displayAttributes
+ .map(displayAttribute => {
+ if (!user.attributes) {
+ return;
+ }
+ //match displayAttribute with user.attribute
+ const value = user.attributes[displayAttribute];
+ if (!value) {
+ return;
+ }
+
+ if (displayAttribute === "testimonial") {
+ return (
+ '"
+ );
+ } else {
+ // flairs flairs
+ return '
';
+ }
+ })
+ .join("");
+
+ let template = this.template(userTemplate, prepare); // prepare
+ template = this.template(template, user); // user
+
+ const li = document.createElement("li");
+ li.innerHTML = template.replace(clean, "");
+ return li;
+ });
+ }
+
+ // testimonial rows moved to every 7th position
+ const testimonialList = [this.renderAdd()];
+
+ let currentPosition = 1;
+ userList.forEach(li => {
+ const wholeRowPosition = currentPosition % 6 === 0;
+ const testimonial = /class="testimonial"/i.test(li.innerHTML);
+ // pop testimonial in our array
+ if (testimonial) {
+ testimonialList.push(li);
+ return; // save for later
+ }
+
+ list.appendChild(li);
+ currentPosition++;
+
+ if (wholeRowPosition && testimonialList.length > 0) {
+ const currentTestimional = testimonialList.pop(); //shift
+ currentTestimional.className = "row";
+ list.appendChild(currentTestimional);
+ }
+ });
+
+ // if testimonialList not empty
+ testimonialList.forEach(li => {
+ if (li.className !== "row") {
+ // non renderAdd()
+ li.className = "row";
+ list.appendChild(li);
+ }
+ });
+
+ // stats
+ this.container.appendChild(this.renderStats());
+
+ // header
+ this.container.appendChild(this.renderHeader());
+
+ // render
+ this.container.appendChild(list);
+ }
+
+ renderHeader() {
+ const div = document.createElement("div");
+ div.className = "filter";
+
+ this.displayOptions.map((option, i) => {
+ const dot = document.createElement("span");
+ dot.innerHTML = " · ";
+
+ const a = document.createElement("a");
+ a.className = this.displaySelected === option ? "active" : "";
+ a.innerHTML = option.label;
+ a.href = "#";
+ a.addEventListener("click", event => {
+ event.preventDefault();
+ this.displaySelected = option;
+ this.renderList();
+ });
+ i > 0 && div.appendChild(dot);
+ div.appendChild(a);
+ });
+ return div;
+ }
+
+ renderAdd() {
+ const li = document.createElement("li");
+ li.className = "row";
+
+ const button = document.createElement("button");
+ button.innerHTML = "Add your company";
+ button.addEventListener("click", event => {
+ event.preventDefault();
+ window.open("https://build.amsterdam/your-company/babel");
+ });
+ li.appendChild(button);
+ return li;
+ }
+
+ renderStats() {
+ const div = document.createElement("div");
+ div.className = "stats";
+
+ div.innerHTML =
+ (this.displaySelected && this.displaySelected.filterBy
+ ? "Showing " + this.filterCounter + " out of " + this.totalCounter
+ : "Showing " + this.totalCounter) + " users.";
+ return div;
+ }
+
+ renderError(msg) {
+ const div = document.createElement("div");
+ div.className = "error";
+ div.innerHTML = msg;
+ this.container.appendChild(div);
+ }
+
+ template(template, data) {
+ const keyTemplate = "\\${key}";
+ return (Object.keys(data) || []).reduce((template, key) => {
+ const val =
+ data[key] !== undefined && data[key] !== null ? data[key] : "";
+ return template.replace(
+ new RegExp(keyTemplate.replace("key", key), "gi"),
+ val
+ );
+ }, template);
+ }
+
+ arrayize(obj) {
+ return Object.keys(obj).map(key => {
+ const item = obj[key];
+ item._key = key;
+ return item;
+ });
+ }
+}
+
+[...document.querySelectorAll(".users")].forEach(elem => new Users(elem));
diff --git a/webpack.config.js b/webpack.config.js
index a794d409ed..69684fa75e 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -5,6 +5,7 @@ const config = {
entry: {
repl: "./js/repl/index.js",
minirepl: "./js/minirepl.js",
+ users: "./js/users.js",
},
output: {
// Don't bother with hashing/versioning the filename - Netlify does it
diff --git a/website/data/users.js b/website/data/users.js
new file mode 100644
index 0000000000..0dd61bf089
--- /dev/null
+++ b/website/data/users.js
@@ -0,0 +1,1158 @@
+const users = [
+ {
+ name: "Facebook",
+ url: "https://facebook.com/",
+ logo: "facebook.svg",
+ logoIcon: true,
+ attributes: {
+ sponsor: true,
+ contributor: true,
+ },
+ },
+ {
+ name: "CloudFlare",
+ url: "https://cloudflare.com/",
+ logo: "cloudflare.png",
+ },
+ {
+ name: "Netflix",
+ url: "https://www.netflix.com/",
+ logo: "netflix.svg",
+ },
+ {
+ name: "Mozilla",
+ url: "https://www.mozilla.org/",
+ logo: "mozilla.svg",
+ },
+ {
+ name: "PayPal",
+ url: "https://paypal.com",
+ logo: "paypal.svg",
+ logoIcon: true,
+ },
+ {
+ name: "Airbnb",
+ url: "https://www.airbnb.com/",
+ logo: "airbnb.svg",
+ attributes: {
+ sponsor: true,
+ },
+ },
+ {
+ name: "Reddit",
+ url: "https://www.reddit.com",
+ logo: "reddit.png",
+ },
+ {
+ name: "Spotify",
+ url: "https://www.spotify.com",
+ logo: "spotify.png",
+ },
+ {
+ name: "Atlassian",
+ url: "https://www.atlassian.com/",
+ logo: "atlassian.svg",
+ },
+ {
+ name: "NFL",
+ url: "http://www.nfl.com",
+ logo: "nfl.svg",
+ },
+ {
+ name: "Bocoup",
+ url: "http://bocoup.com/",
+ logo: "bocoup.png",
+ },
+ {
+ name: "SoundCloud",
+ url: "https://soundcloud.com",
+ logo: "soundcloud.png",
+ },
+ {
+ name: "Zendesk",
+ url: "http://www.zendesk.com",
+ logo: "zendesk.svg",
+ },
+ {
+ name: "Vimeo",
+ url: "https://vimeo.com",
+ logo: "vimeo.svg",
+ },
+ {
+ name: "npm",
+ url: "https://www.npmjs.com",
+ logo: "npm.svg",
+ attributes: {
+ openSource: true,
+ },
+ },
+ {
+ name: "Ember",
+ url: "http://emberjs.com/",
+ logo: "ember.png",
+ attributes: {
+ openSource: true,
+ },
+ },
+ {
+ name: "React",
+ url: "https://facebook.github.io/react/",
+ logo: "react.svg",
+ logoIcon: true,
+ attributes: {
+ openSource: true,
+ },
+ },
+ {
+ name: "Marionette",
+ url: "http://marionettejs.com/",
+ logo: "marionette.svg",
+ attributes: {
+ openSource: true,
+ },
+ },
+ {
+ name: "WalmartLabs",
+ url: "http://www.walmartlabs.com/",
+ logo: "walmartlabs.png",
+ },
+ {
+ name: "Slack",
+ url: "https://slack.com/",
+ logo: "slack.svg",
+ logoIcon: true,
+ },
+ {
+ name: "Ghost",
+ url: "https://ghost.org/",
+ logo: "ghost.svg",
+ attributes: {
+ openSource: true,
+ },
+ },
+ {
+ name: "Flipboard",
+ url: "https://flipboard.com/",
+ logo: "flipboard.svg",
+ },
+ {
+ name: "Atom",
+ url: "https://atom.io/",
+ logo: "atom.png",
+ attributes: {
+ openSource: true,
+ },
+ },
+ {
+ name: "WebStorm",
+ url: "https://www.jetbrains.com/webstorm/",
+ logo: "webstorm.svg",
+ },
+ {
+ name: "Evernote",
+ url: "https://evernote.com/",
+ logo: "evernote.svg",
+ },
+ {
+ name: "NodeSource",
+ url: "https://nodesource.com/",
+ logo: "nodesource.svg",
+ },
+ {
+ name: "MongoDB",
+ url: "https://www.mongodb.com/",
+ logo: "mongodb.svg",
+ },
+ {
+ name: "Envato",
+ url: "http://www.envato.com/",
+ logo: "envato.png",
+ },
+ {
+ name: "Impraise",
+ url: "http://impraise.com/",
+ logo: "impraise.svg",
+ },
+ {
+ name: "Thinkmill",
+ url: "http://thinkmill.com.au",
+ logo: "thinkmill.png",
+ },
+ {
+ name: "&yet",
+ url: "http://andyet.com",
+ logo: "andyet.svg",
+ },
+ {
+ name: "Skylight",
+ url: "https://www.skylight.io/",
+ logo: "skylight.png",
+ },
+ {
+ name: "Discourse",
+ url: "http://www.discourse.org/",
+ logo: "discourse.png",
+ },
+ {
+ name: "thoughtbot",
+ url: "https://thoughtbot.com/",
+ logo: "thoughtbot.svg",
+ },
+ {
+ name: "Segment",
+ url: "https://www.segment.com",
+ logo: "segment.svg",
+ },
+ {
+ name: "Flipkart",
+ url: "http://www.flipkart.com",
+ logo: "flipkart.png",
+ },
+ {
+ name: "Sprout Social",
+ url: "http://sproutsocial.com",
+ logo: "sprout-social.svg",
+ },
+ {
+ name: "AddThis",
+ url: "http://www.addthis.com",
+ logo: "addthis.svg",
+ },
+ {
+ name: "LinkedIn",
+ url: "https://www.linkedin.com",
+ logo: "linkedin.png",
+ },
+ {
+ name: "HubSpot",
+ url: "http://www.hubspot.com/",
+ logo: "hubspot.png",
+ },
+ {
+ name: "SmugMug",
+ url: "http://www.smugmug.com/",
+ logo: "smugmug.png",
+ },
+ {
+ name: "Kindling",
+ url: "https://www.kindlingapp.com/",
+ logo: "kindling.png",
+ },
+ {
+ name: "Hailo",
+ url: "https://www.hailoapp.com/",
+ logo: "hailo.png",
+ },
+ {
+ name: "Mapbox",
+ url: "https://www.mapbox.com/",
+ logo: "mapbox.svg",
+ },
+ {
+ name: "Lodash",
+ url: "https://lodash.com",
+ logo: "lodash.svg",
+ },
+ {
+ name: "Stampsy",
+ url: "http://stampsy.com/",
+ logo: "stampsy.svg",
+ },
+ {
+ name: "201 Created",
+ url: "http://www.201-created.com/",
+ logo: "201-created.svg",
+ },
+ {
+ name: "Ninja Squad",
+ url: "http://ninja-squad.fr/",
+ logo: "ninja-squad.png",
+ },
+ {
+ name: "Aurelia",
+ url: "http://aurelia.io/",
+ logo: "aurelia.png",
+ },
+ {
+ name: "Viget",
+ url: "http://viget.com/",
+ logo: "viget.png",
+ },
+ {
+ name: "Mango",
+ url: "https://getmango.com/",
+ logo: "mango.png",
+ logoIcon: true,
+ },
+ {
+ name: "Auth0",
+ url: "https://auth0.com/",
+ logo: "auth0.png",
+ },
+ {
+ name: "Broadly",
+ url: "https://broadly.com/",
+ logo: "broadly.svg",
+ },
+ {
+ name: "Vivaldi",
+ url: "https://vivaldi.com",
+ logo: "vivaldi.png",
+ },
+ {
+ name: "TipRanks",
+ url: "http://www.tipranks.com/",
+ logo: "tipranks.png",
+ },
+ {
+ name: "HZDG",
+ url: "http://www.hzdg.com/",
+ logo: "hzdg.svg",
+ },
+ {
+ name: "BoomTown",
+ url: "http://www.boomtownroi.com",
+ logo: "boomtown.svg",
+ },
+ {
+ name: "Codecademy",
+ url: "http://www.codecademy.com",
+ logo: "codecademy.svg",
+ },
+ {
+ name: "KeystoneJS",
+ url: "http://www.keystonejs.com",
+ logo: "keystonejs.svg",
+ },
+ {
+ name: "Autoprefixer",
+ url: "https://github.com/postcss/autoprefixer/",
+ logo: "autoprefixer.svg",
+ logoIcon: true,
+ attributes: {
+ openSource: true,
+ },
+ },
+ {
+ name: "PostCSS",
+ url: "https://github.com/postcss/postcss/",
+ logo: "postcss.svg",
+ logoIcon: true,
+ attributes: {
+ openSource: true,
+ },
+ },
+ {
+ name: "SassDoc",
+ url: "http://sassdoc.com/",
+ logo: "sassdoc.svg",
+ attributes: {
+ openSource: true,
+ },
+ },
+ {
+ name: "Portfolium",
+ url: "https://portfolium.com",
+ logo: "portfolium.png",
+ },
+ {
+ name: "Trapit",
+ url: "http://trap.it/",
+ logo: "trapit.png",
+ },
+ {
+ name: "Trunk Club",
+ url: "https://trunkclub.com",
+ logo: "trunk-club.svg",
+ },
+ {
+ name: "DotLabel",
+ url: "http://dotlabel.co.uk/",
+ logo: "dotlabel.png",
+ },
+ {
+ name: "Uken Games",
+ url: "http://www.uken.com",
+ logo: "uken-games.png",
+ },
+ {
+ name: "Spoqa",
+ url: "https://spoqa.com/",
+ logo: "spoqa.png",
+ },
+ {
+ name: "ProAppSoft",
+ url: "http://proappsoft.com/",
+ logo: "proappsoft.png",
+ logoIcon: true,
+ },
+ {
+ name: "Front End TV",
+ url: "http://www.frontend.tv",
+ logo: "frontend-tv.svg",
+ },
+ {
+ name: "Video.js",
+ url: "http://www.videojs.com",
+ logo: "video-js.png",
+ },
+ {
+ name: "Windsor Circle",
+ url: "http://www.windsorcircle.com/",
+ logo: "windsor-circle.png",
+ },
+ {
+ name: "WebbyLab",
+ url: "http://webbylab.com",
+ logo: "webby-lab.svg",
+ },
+ {
+ name: "REA Group",
+ url: "http://www.realestate.com.au",
+ logo: "rea-group.svg",
+ },
+ {
+ name: "Adfinis SyGroup AG",
+ url: "https://adfinis-sygroup.ch/",
+ logo: "adfinis-sygroup-ag.png",
+ },
+ {
+ name: "Harmonic",
+ url: "https://github.com/es6rocks/harmonic/",
+ logo: "harmonic.svg",
+ },
+ {
+ name: "Alianza Inc",
+ url: "http://www.alianza.com/",
+ logo: "alianza.png",
+ },
+ {
+ name: "PowerReviews",
+ url: "http://www.powerreviews.com",
+ logo: "power-reviews.png",
+ },
+ {
+ name: "angular-formly",
+ url: "http://angular-formly.com",
+ logo: "angular-formly.png",
+ logoIcon: true,
+ },
+ {
+ name: "QuizUp",
+ url: "https://quizup.com",
+ logo: "quizup.svg",
+ },
+ {
+ name: "Getable",
+ url: "https://getable.com",
+ logo: "getable.svg",
+ },
+ {
+ name: "Billogram",
+ url: "https://billogram.com",
+ logo: "billogram.png",
+ },
+ {
+ name: "Cinema6",
+ url: "http://cinema6.com/",
+ logo: "cinema6.png",
+ },
+ {
+ name: "HumongouS.io",
+ url: "https://www.humongous.io",
+ logo: "humongous.png",
+ },
+ {
+ name: "Product Health",
+ url: "http://producthealth.com/",
+ logo: "product-health.svg",
+ },
+ {
+ name: "SPHERE.IO",
+ url: "http://sphere.io/",
+ logo: "sphereio.svg",
+ },
+ {
+ name: "Impero",
+ url: "http://weareimpero.com",
+ logo: "impero.svg",
+ },
+ {
+ name: "Ticketmaster",
+ url: "http://www.ticketmaster.com/",
+ logo: "ticketmaster.svg",
+ },
+ {
+ name: "EveryDollar",
+ url: "https://www.everydollar.com",
+ logo: "everydollar.svg",
+ },
+ {
+ name: "Grove Labs",
+ url: "https://grovelabs.io/",
+ logo: "grove.svg",
+ },
+ {
+ name: "SEEK",
+ url: "http://www.seek.com.au",
+ logo: "seek.svg",
+ },
+ {
+ name: "ATTN",
+ url: "http://www.attn.com",
+ logo: "attn.svg",
+ },
+ {
+ name: "Bench",
+ url: "https://bench.co",
+ logo: "bench.svg",
+ },
+ {
+ name: "Brigade",
+ url: "https://www.brigade.com",
+ logo: "brigade.svg",
+ },
+ {
+ name: "Canopy",
+ url: "https://www.canopytax.com",
+ logo: "canopy.svg",
+ },
+ {
+ name: "Cyfrowy Polsat",
+ url: "http://www.cyfrowypolsat.pl/",
+ logo: "cyfrowy-polsat.png",
+ },
+ {
+ name: "React Bootstrap",
+ url: "https://react-bootstrap.github.io/",
+ logo: "react-bootstrap.png",
+ logoIcon: true,
+ attributes: {
+ openSource: true,
+ },
+ },
+ {
+ name: "YACHT",
+ url: "http://www.yacht.nl",
+ logo: "yacht.png",
+ },
+ {
+ name: "YPlan",
+ url: "https://yplanapp.com",
+ logo: "yplan.svg",
+ },
+ {
+ name: "freee",
+ url: "http://www.freee.co.jp",
+ logo: "freee.png",
+ },
+ {
+ name: "Meadow",
+ url: "https://getmeadow.com",
+ logo: "meadow.png",
+ },
+ {
+ name: "Money Forward",
+ url: "http://corp.moneyforward.com/",
+ logo: "moneyforward.png",
+ },
+ {
+ name: "Housing",
+ url: "https://housing.com/",
+ logo: "housing.png",
+ },
+ {
+ name: "MojoTech",
+ url: "https://mojotech.com",
+ logo: "mojotech.svg",
+ },
+ {
+ name: "Paperless Post",
+ url: "https://paperlesspost.com",
+ logo: "paperlesspost.png",
+ },
+ {
+ name: "Squarespace",
+ url: "https://www.squarespace.com",
+ logo: "squarespace.svg",
+ },
+ {
+ name: "Behance",
+ url: "https://www.myportfolio.com/",
+ logo: "behance.svg",
+ attributes: {
+ sponsor: true,
+ },
+ },
+ {
+ name: "Targetprocess",
+ url: "https://www.targetprocess.com/",
+ logo: "targetprocess.svg",
+ },
+ {
+ name: "GoDaddy",
+ url: "https://www.godaddy.com/",
+ logo: "godaddy.png",
+ },
+ {
+ name: "hackerYou",
+ url: "http://hackeryou.com/",
+ logo: "hackeryou.svg",
+ },
+ {
+ name: "KongGe",
+ url: "http://kongge.com/",
+ logo: "kongge.png",
+ },
+ {
+ name: "UrbanAirship",
+ url: "https://www.urbanairship.com/",
+ logo: "urbanairship.svg",
+ },
+ {
+ name: "Moneytree",
+ url: "https://moneytree.jp/",
+ logo: "moneytree.png",
+ },
+ {
+ name: "Social Tables",
+ url: "https://www.socialtables.com/",
+ logo: "socialtables.png",
+ },
+ {
+ name: "Nukomeet",
+ url: "http://nukomeet.com/",
+ logo: "nukomeet.png",
+ },
+ {
+ name: "Olapic",
+ url: "https://www.olapic.com/",
+ logo: "olapic.svg",
+ },
+ {
+ name: "Codinum",
+ url: "https://codinum.com/",
+ logo: "codinum.png",
+ },
+ {
+ name: "Wallaby.js",
+ url: "http://wallabyjs.com/",
+ logo: "wallaby.svg",
+ logoIcon: true,
+ },
+ {
+ name: "Schibsted Spain",
+ url: "http://www.schibsted.es/",
+ logo: "schibsted-spain.svg",
+ },
+ {
+ name: "pebble {code}",
+ url: "http://pebblecode.com",
+ logo: "pebblecode.png",
+ },
+ {
+ name: "FINN.no",
+ url: "https://finn.no/",
+ logo: "finn.svg",
+ },
+ {
+ name: "TES Global",
+ url: "https://www.tes.com",
+ logo: "tesglobal.svg",
+ },
+ {
+ name: "Cuvva",
+ url: "https://cuvva.co",
+ logo: "cuvva.svg",
+ logoIcon: true,
+ },
+ {
+ name: "Textalk",
+ url: "http://textalk.se",
+ logo: "textalk.svg",
+ },
+ {
+ name: "Avant",
+ url: "https://www.avant.com",
+ logo: "avant.svg",
+ },
+ {
+ name: "FanDuel",
+ url: "https://www.fanduel.com",
+ logo: "fanduel.svg",
+ },
+ {
+ name: "Kogan.com",
+ url: "https://www.kogan.com",
+ logo: "kogan-com.svg",
+ },
+ {
+ name: "SparkPost.com",
+ url: "https://www.sparkpost.com/",
+ logo: "sparkpost.svg",
+ },
+ {
+ name: "Under Armour",
+ url: "https://www.underarmour.com/",
+ logo: "ua.svg",
+ logoIcon: true,
+ },
+ {
+ name: "WIX",
+ url: "https://www.wix.com/",
+ logo: "wix.png",
+ },
+ {
+ name: "BestPrice",
+ url: "https://www.bestprice.gr/",
+ logo: "bestprice.svg",
+ },
+ {
+ name: "Deezer",
+ url: "https://www.deezer.com/",
+ logo: "deezer.svg",
+ },
+ {
+ name: "VersionOne",
+ url: "https://www.versionone.com/",
+ logo: "versionone.png",
+ },
+ {
+ name: "HolidayCheck",
+ url: "https://www.holidaycheck.de/",
+ logo: "holidaycheck.svg",
+ },
+ {
+ name: "Transloadit",
+ url: "https://transloadit.com",
+ logo: "transloadit.svg",
+ },
+ {
+ name: "BitMEX",
+ url: "https://www.bitmex.com",
+ logo: "bitmex.svg",
+ attributes: {
+ sponsor: true,
+ },
+ },
+ {
+ name: "Discord",
+ url: "https://discordapp.com",
+ logo: "discord.svg",
+ },
+ {
+ name: "Zillow Group",
+ url: "http://www.zillowgroup.com/",
+ logo: "zillowgroup.svg",
+ },
+ {
+ name: "Brightin",
+ url: "https://www.brightin.nl",
+ logo: "brightin.png",
+ },
+ {
+ name: "Kascale",
+ url: "http://www.kascale.com/",
+ logo: "kascale.svg",
+ },
+ {
+ name: "Lyst",
+ url: "https://www.lyst.com/",
+ logo: "lyst.svg",
+ },
+ {
+ name: "Redfin",
+ url: "https://www.redfin.com/",
+ logo: "redfin.svg",
+ },
+ {
+ name: "cssnano",
+ url: "http://cssnano.co",
+ logo: "cssnano.svg",
+ logoIcon: true,
+ },
+ {
+ name: "Funny Or Die",
+ url: "http://www.funnyordie.com",
+ logo: "funnyordie.svg",
+ },
+ {
+ name: "GeekPark",
+ url: "http://www.geekpark.net",
+ logo: "geekpark.svg",
+ },
+ {
+ name: "Phoenix Robotix",
+ url: "http://phoenixrobotix.com",
+ logo: "phoenixrobotix.png",
+ },
+ {
+ name: "CaiFuPai",
+ url: "https://www.caifupai.com",
+ logo: "caifupai.svg",
+ },
+ {
+ name: "FiveStars",
+ url: "http://www.fivestars.com",
+ logo: "fivestars.png",
+ },
+ {
+ name: "QuickSearch",
+ url: "http://www.quicksearch.in",
+ logo: "quicksearch.svg",
+ },
+ {
+ name: "AdPushup",
+ url: "https://www.adpushup.com/",
+ logo: "adpushup.png",
+ },
+ {
+ name: "clearTax",
+ url: "https://cleartax.in",
+ logo: "cleartax.svg",
+ },
+ {
+ name: "TradingView",
+ url: "https://www.tradingview.com/",
+ logo: "tradingview.svg",
+ },
+ {
+ name: "NodeXperts",
+ url: "http://www.nodexperts.com",
+ logo: "nodexperts.svg",
+ },
+ {
+ name: "ResearchGate",
+ url: "https://www.researchgate.net",
+ logo: "researchgate.svg",
+ },
+ {
+ name: "EVO.company",
+ url: "https://evo.company",
+ logo: "evocompany.svg",
+ },
+ {
+ name: "pixiv",
+ url: "http://www.pixiv.net",
+ logo: "pixiv.svg",
+ },
+ {
+ name: "Streamroot",
+ url: "https://www.streamroot.io",
+ logo: "streamroot.svg",
+ },
+ {
+ name: "RentoMojo",
+ url: "https://www.rentomojo.com",
+ logo: "rentomojo.svg",
+ },
+ {
+ name: "Zimp",
+ url: "https://zimp.me",
+ logo: "zimp.svg",
+ },
+ {
+ name: "Disqus",
+ url: "https://www.disqus.com",
+ logo: "disqus.svg",
+ },
+ {
+ name: "RTBF.be",
+ url: "https://www.rtbf.be",
+ logo: "rtbf.svg",
+ },
+ {
+ name: "9Technology",
+ url: "http://www.nineentertainmentco.com.au/brands/nine-digital",
+ logo: "9tech-logo.svg",
+ },
+ {
+ name: "Feedzai",
+ url: "https://feedzai.com/",
+ logo: "feedzai.svg",
+ },
+ {
+ name: "Zesty.io",
+ url: "https://www.zesty.io/",
+ logo: "zestyio.svg",
+ },
+ {
+ name: "Shoes of Prey",
+ url: "https://www.shoesofprey.com",
+ logo: "shoesofprey.svg",
+ },
+ {
+ name: "Work & Co",
+ url: "https://work.co",
+ logo: "workandco.svg",
+ },
+ {
+ name: "Paralect",
+ url: "https://paralect.com",
+ logo: "paralect.svg",
+ },
+ {
+ name: "Just Eat",
+ url: "https://www.just-eat.com",
+ logo: "justeat.svg",
+ },
+ {
+ name: "Snapdeal",
+ url: "https://www.snapdeal.com",
+ logo: "snapdeal.svg",
+ },
+ {
+ name: "Microsoft",
+ url: "https://www.microsoft.com",
+ logo: "microsoft.svg",
+ },
+ {
+ name: "Indigo",
+ url: "https://www.chapters.indigo.ca/",
+ logo: "indigo.svg",
+ },
+ {
+ name: "Namely",
+ url: "https://www.namely.com/",
+ logo: "namely.svg",
+ },
+ {
+ name: "Bevry",
+ url: "https://bevry.me",
+ logo: "bevry.svg",
+ },
+ {
+ name: "Concur",
+ url: "https://www.concur.com/",
+ logo: "concur.svg",
+ },
+ {
+ name: "Tanda",
+ url: "https://www.tanda.co/",
+ logo: "tanda.svg",
+ },
+ {
+ name: "Directlyrics",
+ url: "https://www.directlyrics.com/",
+ logo: "directlyrics.svg",
+ },
+ {
+ name: "Umanlife",
+ url: "http://us.umanlife.com",
+ logo: "umanlife.svg",
+ },
+ {
+ name: "Hooroo",
+ url: "https://hooroo.com/",
+ logo: "hooroo.svg",
+ },
+ {
+ name: "The New York Times",
+ url: "https://nytimes.com/",
+ logo: "nytimes.svg",
+ },
+ {
+ name: "Wave",
+ url: "https://waveapps.com",
+ logo: "wave.svg",
+ },
+ {
+ name: "Shelf.io",
+ url: "https://shelf.io/",
+ logo: "shelfio.svg",
+ },
+ {
+ name: "Nau Studio",
+ url: "https://naustud.io",
+ logo: "naustudio.svg",
+ },
+ {
+ name: "Triip",
+ url: "https://triip.me",
+ logo: "triip.svg",
+ },
+ {
+ name: "Overblog",
+ url: "https://over-blog.com",
+ logo: "overblog.svg",
+ },
+ {
+ name: "EXANTE",
+ url: "https://exante.eu",
+ logo: "exante.svg",
+ },
+ {
+ name: "Insider.pro",
+ url: "https://insider.pro",
+ logo: "insider.svg",
+ },
+ {
+ name: "JustWatch",
+ url: "https://www.justwatch.com",
+ logo: "justwatch.svg",
+ },
+ {
+ name: "HIJUP",
+ url: "https://www.hijup.com",
+ logo: "hijup.svg",
+ },
+ {
+ name: "Jane",
+ url: "https://jane.com",
+ logo: "jane.svg",
+ },
+ {
+ name: "Jobtalk",
+ url: "https://jobtalk.jp/",
+ logo: "jobtalk.svg",
+ },
+ {
+ name: "LIGADIGITAL",
+ url: "https://www.ligadigital.com/",
+ logo: "ligadigital.svg",
+ },
+ {
+ name: "Bitovi",
+ url: "https://www.bitovi.com/",
+ logo: "bitovi-logo.svg",
+ },
+ {
+ name: "Hootsuite",
+ url: "https://hootsuite.com/",
+ logo: "hootsuite.svg",
+ },
+ {
+ name: "SeatGeek",
+ url: "https://seatgeek.com",
+ logo: "seatgeek.svg",
+ },
+ {
+ name: "Hux",
+ url: "https://hux.com",
+ logo: "hux.svg",
+ },
+ {
+ name: "LeSalon",
+ url: "https://lesalon.com",
+ logo: "lesalon.svg",
+ },
+ {
+ name: "Refinery29",
+ url: "http://refinery29.com",
+ logo: "refinery29.svg",
+ },
+ {
+ name: "Aha!",
+ url: "https://www.aha.io",
+ logo: "aha.svg",
+ },
+ {
+ name: "Hashnode",
+ url: "https://hashnode.com",
+ logo: "hashnode.svg",
+ },
+ {
+ name: "Teachoo",
+ url: "https://www.teachoo.com",
+ logo: "teachoo.svg",
+ },
+ {
+ name: "Web Jam LLC",
+ url: "https://www.web-jam.com",
+ logo: "WebJamLLC.svg",
+ },
+ {
+ name: "Douban Read",
+ url: "https://read.douban.com",
+ logo: "ark.svg",
+ },
+ {
+ name: "Hasura",
+ url: "https://hasura.io",
+ logo: "hasura.svg",
+ },
+ {
+ name: "Yelp",
+ url: "https://www.yelp.com",
+ logo: "yelp.svg",
+ },
+ {
+ name: "N26",
+ url: "https://n26.com",
+ logo: "n26.svg",
+ },
+ {
+ name: "iLoveCoding",
+ url: "https://ilovecoding.org",
+ logo: "ilovecoding.svg",
+ },
+ {
+ name: "hipages",
+ url: "https://hipages.com.au",
+ logo: "hipages.svg",
+ },
+ {
+ name: "Weblio",
+ url: "https://ejje.weblio.jp/",
+ logo: "weblio.svg",
+ },
+ {
+ name: "UNCOVER TRUTH",
+ url: "https://www.uncovertruth.co.jp/",
+ logo: "uncovertruth.svg",
+ },
+ {
+ name: "Coupa",
+ url: "https://www.coupa.com",
+ logo: "coupa.svg",
+ },
+ {
+ name: "ePages",
+ url: "https://www.epages.com",
+ logo: "epages.svg",
+ },
+ {
+ name: "Digitalychee",
+ url: "https://www.lizhi.io",
+ logo: "digitalychee.svg",
+ added: "2018-09-19",
+ },
+ {
+ name: "CrowdSync",
+ url: "https://www.crowdsync.io",
+ logo: "crowdsync.svg",
+ added: "2018-09-20",
+ },
+ {
+ name: "FusionCharts",
+ url: "https://www.fusioncharts.com/",
+ logo: "fusioncharts.svg",
+ added: "2018-09-20",
+ },
+ {
+ name: "Yeti",
+ url: "https://yeti.co",
+ logo: "yeti.svg",
+ added: "2018-09-20",
+ },
+ {
+ name: "Kuali",
+ url: "https://www.kuali.co",
+ logo: "kuali.svg",
+ added: "2018-09-21",
+ },
+ {
+ name: "Sequence",
+ url: "https://sequence.work",
+ logo: "sequence.svg",
+ added: "2018-09-21",
+ },
+ {
+ name: "BitMidi",
+ url: "https://bitmidi.com",
+ logo: "bitmidi.svg",
+ added: "2018-09-21",
+ },
+];
+
+module.exports = users;
diff --git a/website/data/users.yml b/website/data/users.yml
deleted file mode 100644
index 787fa7979d..0000000000
--- a/website/data/users.yml
+++ /dev/null
@@ -1,679 +0,0 @@
-- name: Facebook
- url: https://facebook.com/
- logo: facebook.png
- pinned: true
-- name: CloudFlare
- url: https://cloudflare.com/
- logo: cloudflare.png
- pinned: true
-- name: Netflix
- url: https://www.netflix.com/
- logo: netflix.svg
- pinned: true
-- name: Mozilla
- url: https://www.mozilla.org/
- logo: mozilla.svg
- pinned: true
-- name: Yahoo!
- url: https://yahoo.com/
- logo: yahoo.png
- pinned: true
-- name: PayPal
- url: https://paypal.com
- logo: paypal.svg
- pinned: true
-- name: Airbnb
- url: https://www.airbnb.com/
- logo: airbnb.svg
- pinned: true
-- name: Reddit
- url: https://www.reddit.com
- logo: reddit.png
- pinned: true
-- name: Spotify
- url: https://www.spotify.com
- logo: spotify.png
- pinned: true
-- name: Atlassian
- url: https://www.atlassian.com/
- logo: atlassian.svg
- pinned: true
-- name: NFL
- url: http://www.nfl.com
- logo: nfl.svg
- pinned: true
-- name: Bocoup
- url: http://bocoup.com/
- logo: bocoup.png
- pinned: true
-- name: SoundCloud
- url: https://soundcloud.com
- logo: soundcloud.png
- pinned: true
-- name: Zendesk
- url: http://www.zendesk.com
- logo: zendesk.svg
- pinned: true
-- name: Vimeo
- url: https://vimeo.com
- logo: vimeo.svg
- pinned: true
-- name: npm
- url: https://www.npmjs.com
- logo: npm.svg
- pinned: true
-- name: Ember
- url: http://emberjs.com/
- logo: ember.png
-- name: React
- url: https://facebook.github.io/react/
- logo: react.svg
-- name: Marionette
- url: http://marionettejs.com/
- logo: marionette.svg
-- name: WalmartLabs
- url: http://www.walmartlabs.com/
- logo: walmartlabs.png
-- name: Slack
- url: https://slack.com/
- logo: slack.svg
-- name: Ghost
- url: https://ghost.org/
- logo: ghost.svg
-- name: Flipboard
- url: https://flipboard.com/
- logo: flipboard.svg
-- name: Atom
- url: https://atom.io/
- logo: atom.png
-- name: WebStorm
- url: https://www.jetbrains.com/webstorm/
- logo: webstorm.svg
-- name: Evernote
- url: https://evernote.com/
- logo: evernote.svg
-- name: NodeSource
- url: https://nodesource.com/
- logo: nodesource.svg
-- name: MongoDB
- url: https://www.mongodb.com/
- logo: mongodb.svg
-- name: Envato
- url: http://www.envato.com/
- logo: envato.png
-- name: Impraise
- url: http://impraise.com/
- logo: impraise.svg
-- name: Thinkmill
- url: http://thinkmill.com.au
- logo: thinkmill.png
-- name: &yet
- url: http://andyet.com
- logo: andyet.svg
-- name: Skylight
- url: https://www.skylight.io/
- logo: skylight.png
-- name: Discourse
- url: http://www.discourse.org/
- logo: discourse.png
-- name: thoughtbot
- url: https://thoughtbot.com/
- logo: thoughtbot.svg
-- name: Segment
- url: https://www.segment.com
- logo: segment.svg
-- name: Flipkart
- url: http://www.flipkart.com
- logo: flipkart.png
-- name: Sprout Social
- url: http://sproutsocial.com
- logo: sprout-social.svg
-- name: AddThis
- url: http://www.addthis.com
- logo: addthis.svg
-- name: LinkedIn
- url: https://www.linkedin.com
- logo: linkedin.png
-- name: HubSpot
- url: http://www.hubspot.com/
- logo: hubspot.png
-- name: SmugMug
- url: http://www.smugmug.com/
- logo: smugmug.png
-- name: Kindling
- url: https://www.kindlingapp.com/
- logo: kindling.png
-- name: Hailo
- url: https://www.hailoapp.com/
- logo: hailo.png
-- name: Mapbox
- url: https://www.mapbox.com/
- logo: mapbox.svg
-- name: Lodash
- url: https://lodash.com
- logo: lodash.svg
-- name: Stampsy
- url: http://stampsy.com/
- logo: stampsy.svg
-- name: 201 Created
- url: http://www.201-created.com/
- logo: 201-created.svg
-- name: Ninja Squad
- url: http://ninja-squad.fr/
- logo: ninja-squad.png
-- name: Aurelia
- url: http://aurelia.io/
- logo: aurelia.png
-- name: Viget
- url: http://viget.com/
- logo: viget.png
-- name: Mango
- url: https://getmango.com/
- logo: mango.png
-- name: Auth0
- url: https://auth0.com/
- logo: auth0.png
-- name: Broadly
- url: https://broadly.com/
- logo: broadly.svg
-- name: Vivaldi
- url: https://vivaldi.com
- logo: vivaldi.png
-- name: TipRanks
- url: http://www.tipranks.com/
- logo: tipranks.png
-- name: HZDG
- url: http://www.hzdg.com/
- logo: hzdg.svg
-- name: BoomTown
- url: http://www.boomtownroi.com
- logo: boomtown.svg
-- name: Codecademy
- url: http://www.codecademy.com
- logo: codecademy.svg
-- name: KeystoneJS
- url: http://www.keystonejs.com
- logo: keystonejs.svg
-- name: Autoprefixer
- url: https://github.com/postcss/autoprefixer/
- logo: autoprefixer.svg
-- name: PostCSS
- url: https://github.com/postcss/postcss/
- logo: postcss.svg
-- name: SassDoc
- url: http://sassdoc.com/
- logo: sassdoc.svg
-- name: Portfolium
- url: https://portfolium.com
- logo: portfolium.png
-- name: Trapit
- url: http://trap.it/
- logo: trapit.png
-- name: Trunk Club
- url: https://trunkclub.com
- logo: trunk-club.svg
-- name: DotLabel
- url: http://dotlabel.co.uk/
- logo: dotlabel.png
-- name: Uken Games
- url: http://www.uken.com
- logo: uken-games.png
-- name: Spoqa
- url: https://spoqa.com/
- logo: spoqa.png
-- name: ProAppSoft
- url: http://proappsoft.com/
- logo: proappsoft.png
-- name: Front End TV
- url: http://www.frontend.tv
- logo: frontend-tv.svg
-- name: Video.js
- url: http://www.videojs.com
- logo: video-js.png
-- name: Windsor Circle
- url: http://www.windsorcircle.com/
- logo: windsor-circle.png
-- name: WebbyLab
- url: http://webbylab.com
- logo: webby-lab.svg
-- name: REA Group
- url: http://www.realestate.com.au
- logo: rea-group.svg
-- name: Adfinis SyGroup AG
- url: https://adfinis-sygroup.ch/
- logo: adfinis-sygroup-ag.png
-- name: Harmonic
- url: https://github.com/es6rocks/harmonic/
- logo: harmonic.svg
-- name: Alianza Inc
- url: http://www.alianza.com/
- logo: alianza.png
-- name: PowerReviews
- url: http://www.powerreviews.com
- logo: power-reviews.png
-- name: angular-formly
- url: http://angular-formly.com
- logo: angular-formly.png
-- name: QuizUp
- url: https://quizup.com
- logo: quizup.svg
-- name: Getable
- url: https://getable.com
- logo: getable.svg
-- name: Billogram
- url: https://billogram.com
- logo: billogram.png
-- name: Cinema6
- url: http://cinema6.com/
- logo: cinema6.png
-- name: HumongouS.io
- url: https://www.humongous.io
- logo: humongous.png
-- name: Product Health
- url: http://producthealth.com/
- logo: product-health.svg
-- name: SPHERE.IO
- url: http://sphere.io/
- logo: sphereio.svg
-- name: Impero
- url: http://weareimpero.com
- logo: impero.svg
-- name: Ticketmaster
- url: http://www.ticketmaster.com/
- logo: ticketmaster.svg
-- name: EveryDollar
- url: https://www.everydollar.com
- logo: everydollar.svg
-- name: Grove Labs
- url: https://grovelabs.io/
- logo: grove.svg
-- name: SEEK
- url: http://www.seek.com.au
- logo: seek.svg
-- name: ATTN
- url: http://www.attn.com
- logo: attn.svg
-- name: Bench
- url: https://bench.co
- logo: bench.svg
-- name: Brigade
- url: https://www.brigade.com
- logo: brigade.svg
-- name: Canopy
- url: https://www.canopytax.com
- logo: canopy.svg
-- name: Cyfrowy Polsat
- url: http://www.cyfrowypolsat.pl/
- logo: cyfrowy-polsat.png
-- name: React Bootstrap
- url: https://react-bootstrap.github.io/
- logo: react-bootstrap.png
-- name: YACHT
- url: http://www.yacht.nl
- logo: yacht.png
-- name: YPlan
- url: https://yplanapp.com
- logo: yplan.svg
-- name: freee
- url: http://www.freee.co.jp
- logo: freee.png
-- name: Meadow
- url: https://getmeadow.com
- logo: meadow.png
-- name: Money Forward
- url: http://corp.moneyforward.com/
- logo: moneyforward.png
-- name: Housing
- url: https://housing.com/
- logo: housing.png
-- name: MojoTech
- url: https://mojotech.com
- logo: mojotech.svg
-- name: Paperless Post
- url: https://paperlesspost.com
- logo: paperlesspost.png
-- name: Squarespace
- url: https://www.squarespace.com
- logo: squarespace.svg
-- name: Behance
- url: https://www.myportfolio.com/
- logo: behance.svg
-- name: Targetprocess
- url: https://www.targetprocess.com/
- logo: targetprocess.svg
-- name: GoDaddy
- url: https://www.godaddy.com/
- logo: godaddy.png
-- name: AutoLotto
- url: https://www.autolotto.com/
- logo: autolotto.png
-- name: hackerYou
- url: http://hackeryou.com/
- logo: hackeryou.svg
-- name: KongGe
- url: http://kongge.com/
- logo: kongge.png
-- name: UrbanAirship
- url: https://www.urbanairship.com/
- logo: urbanairship.svg
-- name: Moneytree
- url: https://moneytree.jp/
- logo: moneytree.png
-- name: Social Tables
- url: https://www.socialtables.com/
- logo: socialtables.png
-- name: Nukomeet
- url: http://nukomeet.com/
- logo: nukomeet.png
-- name: Olapic
- url: https://www.olapic.com/
- logo: olapic.svg
-- name: Codinum
- url: https://codinum.com/
- logo: codinum.png
-- name: Wallaby.js
- url: http://wallabyjs.com/
- logo: wallaby.svg
-- name: Schibsted Spain
- url: http://www.schibsted.es/
- logo: schibsted-spain.svg
-- name: pebble {code}
- url: http://pebblecode.com
- logo: pebblecode.png
-- name: FINN.no
- url: https://finn.no/
- logo: finn.svg
-- name: TES Global
- url: https://www.tes.com
- logo: tesglobal.svg
-- name: Cuvva
- url: https://cuvva.co
- logo: cuvva.svg
-- name: Textalk
- url: http://textalk.se
- logo: textalk.svg
-- name: Avant
- url: https://www.avant.com
- logo: avant.svg
-- name: FanDuel
- url: https://www.fanduel.com
- logo: fanduel.svg
-- name: Kogan.com
- url: https://www.kogan.com
- logo: kogan-com.svg
-- name: SparkPost.com
- url: https://www.sparkpost.com/
- logo: sparkpost.svg
-- name: Under Armour
- url: https://www.underarmour.com/
- logo: ua.svg
-- name: WIX
- url: https://www.wix.com/
- logo: wix.png
-- name: BestPrice
- url: https://www.bestprice.gr/
- logo: bestprice.svg
-- name: Deezer
- url: https://www.deezer.com/
- logo: deezer.svg
-- name: VersionOne
- url: https://www.versionone.com/
- logo: versionone.png
-- name: HolidayCheck
- url: https://www.holidaycheck.de/
- logo: holidaycheck.svg
-- name: Transloadit
- url: https://transloadit.com
- logo: transloadit.svg
-- name: BitMEX
- url: https://www.bitmex.com
- logo: bitmex.svg
-- name: Discord
- url: https://discordapp.com
- logo: discord.svg
-- name: Zillow Group
- url: http://www.zillowgroup.com/
- logo: zillowgroup.svg
-- name: Brightin
- url: https://www.brightin.nl
- logo: brightin.png
-- name: Kascale
- url: http://www.kascale.com/
- logo: kascale.svg
-- name: Lyst
- url: https://www.lyst.com/
- logo: lyst.svg
-- name: Redfin
- url: https://www.redfin.com/
- logo: redfin.svg
-- name: cssnano
- url: http://cssnano.co
- logo: cssnano.svg
-- name: Funny Or Die
- url: http://www.funnyordie.com
- logo: funnyordie.svg
-- name: GeekPark
- url: http://www.geekpark.net
- logo: geekpark.svg
-- name: Phoenix Robotix
- url: http://phoenixrobotix.com
- logo: phoenixrobotix.png
-- name: CaiFuPai
- url: https://www.caifupai.com
- logo: caifupai.svg
-- name: FiveStars
- url: http://www.fivestars.com
- logo: fivestars.png
-- name: QuickSearch
- url: http://www.quicksearch.in
- logo: quicksearch.svg
-- name: AdPushup
- url: https://www.adpushup.com/
- logo: adpushup.png
-- name: clearTax
- url: https://cleartax.in
- logo: cleartax.svg
-- name: TradingView
- url: https://www.tradingview.com/
- logo: tradingview.svg
-- name: NodeXperts
- url: http://www.nodexperts.com
- logo: nodexperts.svg
-- name: ResearchGate
- url: https://www.researchgate.net
- logo: researchgate.svg
-- name: EVO.company
- url: https://evo.company
- logo: evocompany.svg
-- name: pixiv
- url: http://www.pixiv.net
- logo: pixiv.svg
-- name: Streamroot
- url: https://www.streamroot.io
- logo: streamroot.svg
-- name: RentoMojo
- url: https://www.rentomojo.com
- logo: rentomojo.svg
-- name: Zimp
- url: https://zimp.me
- logo: zimp.svg
-- name: Disqus
- url: https://www.disqus.com
- logo: disqus.svg
-- name: RTBF.be
- url: https://www.rtbf.be
- logo: rtbf.svg
-- name: 9Technology
- url: http://www.nineentertainmentco.com.au/brands/nine-digital
- logo: 9tech-logo.svg
-- name: Feedzai
- url: https://feedzai.com/
- logo: feedzai.svg
-- name: Zesty.io
- url: https://www.zesty.io/
- logo: zestyio.svg
-- name: Shoes of Prey
- url: https://www.shoesofprey.com
- logo: shoesofprey.svg
-- name: Work & Co
- url: https://work.co
- logo: workandco.svg
-- name: Paralect
- url: https://paralect.com
- logo: paralect.svg
-- name: Just Eat
- url: https://www.just-eat.com
- logo: justeat.svg
-- name: Snapdeal
- url: https://www.snapdeal.com
- logo: snapdeal.svg
-- name: Microsoft
- url: https://www.microsoft.com
- logo: microsoft.svg
-- name: Indigo
- url: https://www.chapters.indigo.ca/
- logo: indigo.svg
-- name: Namely
- url: https://www.namely.com/
- logo: namely.svg
-- name: Bevry
- url: https://bevry.me
- logo: bevry.svg
-- name: Concur
- url: https://www.concur.com/
- logo: concur.svg
-- name: Tanda
- url: https://www.tanda.co/
- logo: tanda.svg
-- name: Directlyrics
- url: http://www.directlyrics.com/join
- logo: directlyrics.svg
-- name: Umanlife
- url: http://us.umanlife.com
- logo: umanlife.svg
-- name: Hooroo
- url: https://hooroo.com/
- logo: hooroo.svg
-- name: The New York Times
- url: https://nytimes.com/
- logo: nytimes.svg
-- name: Wave
- url: https://waveapps.com
- logo: wave.svg
-- name: Shelf.io
- url: https://shelf.io/
- logo: shelfio.svg
-- name: Nau Studio
- url: https://naustud.io
- logo: naustudio.svg
-- name: Triip
- url: https://triip.me
- logo: triip.svg
-- name: Overblog
- url: https://over-blog.com
- logo: overblog.svg
-- name: EXANTE
- url: https://exante.eu
- logo: exante.svg
-- name: Insider.pro
- url: https://insider.pro
- logo: insider.svg
-- name: JustWatch
- url: https://www.justwatch.com
- logo: justwatch.svg
-- name: HIJUP
- url: https://www.hijup.com
- logo: hijup.svg
-- name: Jane
- url: https://jane.com
- logo: jane.svg
-- name: Jobtalk
- url: https://jobtalk.jp/
- logo: jobtalk.svg
-- name: LIGADIGITAL
- url: https://www.ligadigital.com/
- logo: ligadigital.svg
-- name: Bitovi
- url: https://www.bitovi.com/
- logo: bitovi-logo.svg
-- name: Hootsuite
- url: https://hootsuite.com/
- logo: hootsuite.svg
-- name: SeatGeek
- url: https://seatgeek.com
- logo: seatgeek.svg
-- name: Hux
- url: https://hux.com
- logo: hux.svg
-- name: LeSalon
- url: https://lesalon.com
- logo: lesalon.svg
-- name: Refinery29
- url: http://refinery29.com
- logo: refinery29.svg
-- name: Aha!
- url: https://www.aha.io
- logo: aha.svg
-- name: Hashnode
- url: https://hashnode.com
- logo: hashnode.svg
-- name: Teachoo
- url: https://www.teachoo.com
- logo: teachoo.svg
-- name: Web Jam LLC
- url: https://www.web-jam.com
- logo: WebJamLLC.svg
-- name: Douban Read
- url: https://read.douban.com
- logo: ark.svg
-- name: Hasura
- url: https://hasura.io
- logo: hasura.svg
-- name: Yelp
- url: https://www.yelp.com
- logo: yelp.svg
-- name: N26
- url: https://n26.com
- logo: n26.svg
-- name: iLoveCoding
- url: https://ilovecoding.org
- logo: ilovecoding.svg
-- name: hipages
- url: https://hipages.com.au
- logo: hipages.svg
-- name: Weblio
- url: https://ejje.weblio.jp/
- logo: weblio.svg
-- name: UNCOVER TRUTH
- url: https://www.uncovertruth.co.jp/
- logo: uncovertruth.svg
-- name: Coupa
- url: https://www.coupa.com
- logo: coupa.svg
-- name: ePages
- url: https://www.epages.com
- logo: epages.svg
-- name: Digitalychee
- url: https://www.lizhi.io
- logo: digitalychee.svg
-- name: CrowdSync
- url: https://www.crowdsync.io
- logo: crowdsync.svg
-- name: FusionCharts
- url: https://www.fusioncharts.com/
- logo: fusioncharts.svg
-- name: Yeti
- url: https://yeti.co
- logo: yeti.svg
-- name: Kuali
- url: https://www.kuali.co
- logo: kuali.svg
-- name: Sequence
- url: https://sequence.work
- logo: sequence.svg
-- name: BitMidi
- url: https://bitmidi.com
- logo: bitmidi.svg
-- name: Taskade
- url: https://taskade.com
- logo: taskade-logo.svg
diff --git a/website/pages/en/users.js b/website/pages/en/users.js
index dac46b5fac..d6d0c31c24 100644
--- a/website/pages/en/users.js
+++ b/website/pages/en/users.js
@@ -7,20 +7,6 @@ const siteConfig = require(process.cwd() + "/siteConfig.js");
class Users extends React.Component {
render() {
- const showcase = siteConfig.users.map((user, i) => {
- return (
-
- );
- });
-
return (
@@ -34,25 +20,36 @@ class Users extends React.Component {
organizations 🙂
-
- {showcase}
+
+ Who's Using
+
+
+
);
diff --git a/website/siteConfig.js b/website/siteConfig.js
index 3996ae265a..cfbd7ade62 100644
--- a/website/siteConfig.js
+++ b/website/siteConfig.js
@@ -27,13 +27,8 @@ function loadMD(fsPath) {
function loadYaml(fsPath) {
return parseYaml(fs.readFileSync(path.join(__dirname, fsPath), "utf8"));
}
-// move to website/data later
-const users = loadYaml("./data/users.yml").map(user => ({
- pinned: user.pinned,
- caption: user.name,
- infoLink: user.url,
- image: `/img/users/${user.logo}`,
-}));
+
+const users = require(path.join(__dirname, "/data/users.js"));
const sponsorsManual = loadYaml("./data/sponsors.yml").map(sponsor => ({
...sponsor,
diff --git a/website/static/css/users.css b/website/static/css/users.css
index 53c676153b..418bb9f519 100644
--- a/website/static/css/users.css
+++ b/website/static/css/users.css
@@ -1,46 +1,206 @@
-.showcaseSection .logos {
- background: #eee;
- border-radius: 5px;
- padding: 20px 30px;
+.showcaseSection .hr {
+ margin: 60px auto 20px auto;
+ border: none;
+ border-top: 1px solid #dfe2e5;
+ position: relative;
}
-.showcaseSection .babel-user {
- box-sizing: border-box;
- padding-left: 15px;
- padding-right: 15px;
- width: 33.33333%;
+.showcaseSection .hr span {
+ font-size: 1.5em;
+ position: absolute;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ left: 50%;
+ padding: 0px 15px;
+ background: #fff;
+ top: 0;
+ font-weight: 600;
+ white-space: nowrap;
}
-.mainContainer .showcaseSection .babel-user-link {
- background: #fff;
- border-radius: 5px;
+.showcaseSection a.button {
display: block;
- height: 120px;
- margin: 15px 0;
- padding: 10px;
+ max-width: 300px;
+ margin: 10px auto;
+}
+
+.showcaseSection .users {
position: relative;
}
-.showcaseSection .babel-user .babel-user-logo {
- left: 50%;
- max-height: 100px;
- max-width: 200px;
+/* reset existing a styling */
+.showcaseSection .users a,
+.showcaseSection .users a:hover {
+ background: none;
+ border: none;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+}
+
+.showcaseSection .users .filter {
+ display: block;
+ margin: 40px auto 20px 0;
+}
+
+.showcaseSection .users .filter a {
+ font-size: 16px;
+}
+
+.showcaseSection .users .filter a.active {
+ font-weight: 700;
+}
+
+.showcaseSection .users .stats {
position: absolute;
- top: 50%;
- transform: translate(-50%, -50%);
+ top: -30px;
+ right: 0;
+ font-weight: 300;
+ color: #a1a1a1;
+ font-size: 14px;
+}
+
+.showcaseSection .users ul {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ line-height: 1.5;
+ font-size: 1rem;
+ font-weight: initial;
+
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ flex-wrap: wrap;
+}
+
+.showcaseSection .users ul > li {
+ display: flex;
+ padding: 0;
+ margin: 0;
+}
+
+.showcaseSection .users ul > li.row {
+ display: block;
+ margin: 0 40px;
+ width: 100%; /* force horizontal space */
+}
+
+/* Testimonial */
+.showcaseSection .users ul > li.row .holder {
+ width: 100%;
+ margin-top: 10px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.showcaseSection .users ul > li.row button {
+ border: none;
+ background: none;
+ color: #7aaaff;
+ text-align: center;
+ border-bottom: 1px solid #7aaaff;
+ outline: none;
+ font-size: 16px;
+ cursor: pointer;
+ padding: 0;
+ margin: 20px;
}
-.mainContainer .showcaseSection .babel-user-link:hover {
+/* Each Company */
+.showcaseSection .users ul > li > .holder {
+ flex: 1;
+ width: 250px;
+ min-height: 50px;
background: #fff;
- box-shadow: 0px 0px 2px 0px #000;
- transform: scale3d(1.1, 1.1, 1);
+ box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.04);
+ padding: 18px;
+ margin: 30px 16px;
+ text-align: center;
+ border: 1px solid #e2e2e2;
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ font-size: 15px;
}
-@media only screen and (min-width: 360px) and (max-width: 736px) {
- .showcaseSection .babel-user {
- width: 100%;
+.showcaseSection .users ul > li > .holder a {
+ border: none;
+}
+
+/* Member Photo */
+.showcaseSection .users ul > li > .holder a .logo {
+ width: 120px;
+ height: auto;
+ background: #fff;
+ max-width: 120px;
+ max-height: 60px;
+ display: block;
+ border: 5px solid #fff;
+}
+
+.showcaseSection .users ul > li > .holder.icon {
+ margin-top: 30px;
+ padding-top: 70px;
+}
+
+.showcaseSection .users ul > li > .holder.icon > a {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ -webkit-transform: translate(-50%, -30%);
+ transform: translate(-50%, -30%);
+}
+
+.showcaseSection .users ul > li > .holder.icon > a .logo {
+ max-height: 50px;
+}
+
+.showcaseSection .users ul > li > .holder > a .name {
+ display: none;
+}
+
+.showcaseSection .users ul > li > .holder.icon > a .name {
+ margin-top: 10px;
+ font-weight: 600;
+ display: block;
+}
+
+.showcaseSection .users ul > li > .holder .attributes {
+ color: #a1a1a1;
+ line-height: 24px;
+}
+
+.showcaseSection .users ul > li > .holder .attributes .hr {
+ margin-top: 20px;
+}
+/*
+ * Two column view
+ */
+@media (max-width: 885px) {
+ .showcaseSection .users ul > li.row {
+ width: 530px;
+ }
+}
+/*
+ * Mobile view
+ */
+@media (max-width: 600px) {
+ .showcaseSection .users .stats {
+ position: initial;
+ text-align: center;
}
- .showcaseSection .babel-user .babel-user-logo {
+ .showcaseSection .users ul > li {
width: 100%;
}
+ .showcaseSection .users ul > li.row {
+ margin-top: 0;
+ margin-left: 0;
+ margin-right: 0;
+ }
+ .showcaseSection .users ul > li > .holder {
+ margin: 20px auto 20px auto;
+ }
+ .showcaseSection .users ul > li > .holder.icon {
+ margin-top: 40px;
+ }
}
diff --git a/website/static/img/users/facebook.png b/website/static/img/users/facebook.png
deleted file mode 100644
index 9e5501fb95..0000000000
Binary files a/website/static/img/users/facebook.png and /dev/null differ
diff --git a/website/static/img/users/facebook.svg b/website/static/img/users/facebook.svg
new file mode 100644
index 0000000000..85bca9a244
--- /dev/null
+++ b/website/static/img/users/facebook.svg
@@ -0,0 +1 @@
+f-ogo_RGB_HEX-58
\ No newline at end of file
diff --git a/website/static/img/users/paypal.svg b/website/static/img/users/paypal.svg
index 92a6ccf97c..26a5a5be39 100644
--- a/website/static/img/users/paypal.svg
+++ b/website/static/img/users/paypal.svg
@@ -1 +1,19 @@
-
\ No newline at end of file
+
+
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/static/img/users/slack.svg b/website/static/img/users/slack.svg
index 4856e7401e..a6f59bef96 100644
--- a/website/static/img/users/slack.svg
+++ b/website/static/img/users/slack.svg
@@ -1 +1,23 @@
-
\ No newline at end of file
+
+
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+