├── 2015
├── 208f2460eed49cb4545fe508acbde588.eot
├── 2980083682e94d33a66eef2e7d612519.svg
├── 2a70ad2c9432554ff6265c7222b80f84.svg
├── 33c44da872eb18f70cb6d821cd08e8f6.ttf
├── 45c73723862c6fc5eb3d6961db2d71fb.eot
├── 4b5a84aaf1c9485e060c503a0ff8cadb.woff2
├── 693654ac27ff0d90368b27037410b6f1.woff
├── 706450d7bba6374ca02fe167d86685cb.ttf
├── 76a4f23c6be74fd309e0d0fd2c27a5de.svg
├── 7c87870ab40d63cfb8870c1f183f9939.ttf
├── 97493d3f11c0a3bd5cbd959f5d19b699.woff2
├── api
│ ├── schedule
│ ├── speakers
│ └── sponsors
├── app
│ ├── App.js
│ ├── components
│ │ ├── ButtonLink.js
│ │ ├── Divider.js
│ │ ├── MenuItem.js
│ │ └── Navigation.js
│ ├── helpers
│ │ ├── borderRadius.js
│ │ ├── browser.js
│ │ ├── constants.js
│ │ ├── cssPrefix.js
│ │ ├── googleAnalytics.js
│ │ └── morph.js
│ └── screens
│ │ ├── About
│ │ └── index.js
│ │ ├── Conduct
│ │ └── index.js
│ │ ├── Home
│ │ ├── components
│ │ │ └── Icon.js
│ │ └── index.js
│ │ ├── Organizers
│ │ ├── components
│ │ │ └── Avatar.js
│ │ └── index.js
│ │ ├── Schedule
│ │ ├── components
│ │ │ └── Session.js
│ │ └── index.js
│ │ ├── Speakers
│ │ ├── components
│ │ │ └── Avatar.js
│ │ └── index.js
│ │ ├── Sponsors
│ │ ├── components
│ │ │ └── Sponsor.js
│ │ └── index.js
│ │ ├── Tickets
│ │ ├── components
│ │ │ └── Quantity.js
│ │ └── index.js
│ │ └── Venue
│ │ └── index.js
├── assets
│ ├── css
│ │ └── styles.css
│ ├── dist
│ │ └── img
│ │ │ ├── SLCBackground.png
│ │ │ ├── SLCcity.png
│ │ │ ├── avatarBackground.png
│ │ │ ├── cropCircle.png
│ │ │ ├── moon.png
│ │ │ ├── organizers
│ │ │ ├── aimee.jpeg
│ │ │ ├── jamison.jpeg
│ │ │ ├── joe.jpeg
│ │ │ ├── matt.jpeg
│ │ │ └── sunny.jpeg
│ │ │ ├── reactVenue.png
│ │ │ ├── robot.png
│ │ │ ├── robot_withLaser.png
│ │ │ ├── speakers
│ │ │ ├── abhinavrastogi.jpeg
│ │ │ ├── ccheever.jpeg
│ │ │ ├── djsmith42.jpg
│ │ │ ├── glenmaddern.jpg
│ │ │ ├── holtbt.jpg
│ │ │ ├── iPancreas.png
│ │ │ ├── immediatedelay.jpeg
│ │ │ ├── jakobdamjensen.png
│ │ │ ├── jamischarles.jpeg
│ │ │ ├── jemyoung.png
│ │ │ ├── jessitron.jpg
│ │ │ ├── johnkpaul.jpg
│ │ │ ├── lbljeffmo.jpeg
│ │ │ ├── leeb.jpg
│ │ │ ├── linclark.jpg
│ │ │ ├── peterpme.jpeg
│ │ │ ├── rickyvetter.jpeg
│ │ │ ├── ryoia.jpeg
│ │ │ ├── schrockn.jpg
│ │ │ └── vjeux.jpg
│ │ │ ├── speakersBackground.png
│ │ │ ├── sponsors
│ │ │ ├── MX-Square-Black.png
│ │ │ ├── canopy.jpg
│ │ │ ├── codeschool.jpg
│ │ │ ├── facebook.png
│ │ │ ├── hirevue.png
│ │ │ ├── instructure.png
│ │ │ ├── kualico.png
│ │ │ ├── kualicologo-small.png
│ │ │ ├── kualicologo.png
│ │ │ ├── mx.png
│ │ │ ├── pluralsight.jpg
│ │ │ ├── pluralsight.png
│ │ │ ├── rangle.jpg
│ │ │ ├── rangle.png
│ │ │ ├── raygun.jpg
│ │ │ └── redsky.png
│ │ │ ├── tentacle.png
│ │ │ ├── tweet-icon.png
│ │ │ ├── ufoDark.png
│ │ │ ├── ufoMain.png
│ │ │ ├── venue.jpg
│ │ │ └── weatheredBackground.png
│ ├── fonts
│ │ ├── true-crimes-webfont.eot
│ │ ├── true-crimes-webfont.svg
│ │ ├── true-crimes-webfont.ttf
│ │ └── true-crimes-webfont.woff
│ └── img
│ │ ├── SLCBackground.png
│ │ ├── SLCcity.png
│ │ ├── avatarBackground.png
│ │ ├── cropCircle.png
│ │ ├── moon.png
│ │ ├── organizers
│ │ ├── aimee.jpeg
│ │ ├── jamison.jpeg
│ │ ├── joe.jpeg
│ │ ├── matt.jpeg
│ │ └── sunny.jpeg
│ │ ├── reactVenue.png
│ │ ├── robot.png
│ │ ├── robot_withLaser.png
│ │ ├── speakers
│ │ ├── abhinavrastogi.jpeg
│ │ ├── ccheever.jpeg
│ │ ├── djsmith42.jpg
│ │ ├── glenmaddern.jpg
│ │ ├── holtbt.jpg
│ │ ├── iPancreas.png
│ │ ├── immediatedelay.jpeg
│ │ ├── jakobdamjensen.png
│ │ ├── jamischarles.jpeg
│ │ ├── jemyoung.png
│ │ ├── jessitron.jpg
│ │ ├── johnkpaul.jpg
│ │ ├── lbljeffmo.jpeg
│ │ ├── leeb.jpg
│ │ ├── linclark.jpg
│ │ ├── peterpme.jpeg
│ │ ├── rickyvetter.jpeg
│ │ ├── ryoia.jpeg
│ │ ├── schrockn.jpg
│ │ └── vjeux.jpg
│ │ ├── speakersBackground.png
│ │ ├── sponsors
│ │ ├── MX-Square-Black.png
│ │ ├── canopy.jpg
│ │ ├── codeschool.jpg
│ │ ├── facebook.png
│ │ ├── hirevue.png
│ │ ├── instructure.png
│ │ ├── kualico.png
│ │ ├── kualicologo-small.png
│ │ ├── kualicologo.png
│ │ ├── mx.png
│ │ ├── pluralsight.jpg
│ │ ├── pluralsight.png
│ │ ├── rangle.jpg
│ │ ├── rangle.png
│ │ ├── raygun.jpg
│ │ └── redsky.png
│ │ ├── tentacle.png
│ │ ├── tweet-icon.png
│ │ ├── ufoDark.png
│ │ ├── ufoMain.png
│ │ ├── venue.jpg
│ │ └── weatheredBackground.png
├── bundle.js
├── d9ee23d59d0e0e727b51368b458a0bff.woff
├── dfb02f8f6d0cedc009ee5887cc68f1f3.woff
├── docs
│ └── sponsor.pdf
├── f7c2b4b747b1a225eb8dee034134a1b0.eot
├── imagemin.js
├── index.html
├── index.js
├── package.json
├── scripts
│ └── deploy
└── webpack.config.js
├── 2016
├── 404.html
├── api
│ ├── schedule
│ ├── speakers
│ └── sponsors
├── app
│ ├── App.js
│ ├── components
│ │ ├── About.js
│ │ ├── Avatar.js
│ │ ├── Button.js
│ │ ├── Footer.js
│ │ ├── Header.js
│ │ ├── Icon.js
│ │ ├── Legend.js
│ │ ├── Newsletter.js
│ │ ├── Person.js
│ │ └── Tickets.js
│ ├── helpers
│ │ ├── DateUtils.js
│ │ ├── constants.js
│ │ ├── googleAnalytics.js
│ │ └── livestream.js
│ └── screens
│ │ ├── About
│ │ └── index.js
│ │ ├── Conduct
│ │ └── index.js
│ │ ├── Home
│ │ └── index.js
│ │ ├── Proposals
│ │ └── index.js
│ │ ├── Schedule
│ │ └── index.js
│ │ ├── Speakers
│ │ └── index.js
│ │ ├── Sponsors
│ │ └── index.js
│ │ ├── Stream
│ │ └── index.js
│ │ └── Venue
│ │ └── index.js
├── assets
│ ├── css
│ │ ├── responsive-500.scss
│ │ ├── responsive-800.scss
│ │ └── styles.scss
│ ├── dist
│ │ └── img
│ │ │ ├── ReactLogo.png
│ │ │ ├── ReactLogo.svg
│ │ │ ├── ReactLogoGreen.svg
│ │ │ ├── RoseWagnerDetail.png
│ │ │ ├── RoseWagnerMap.png
│ │ │ ├── SaltLakeCity.png
│ │ │ └── sponsors
│ │ │ ├── deque.png
│ │ │ ├── egghead.png
│ │ │ ├── egghead.svg
│ │ │ ├── facebook.png
│ │ │ ├── frontside.png
│ │ │ ├── instructure.png
│ │ │ ├── jane.png
│ │ │ ├── kuali.png
│ │ │ ├── mozilla.png
│ │ │ ├── netflix.png
│ │ │ ├── progress.png
│ │ │ ├── rangle.png
│ │ │ ├── react-training.png
│ │ │ ├── salesforce.png
│ │ │ └── walmart.png
│ └── img
│ │ ├── ReactLogo.png
│ │ ├── ReactLogo.svg
│ │ ├── ReactLogoGreen.svg
│ │ ├── RoseWagnerDetail.png
│ │ ├── RoseWagnerMap.png
│ │ ├── SaltLakeCity.png
│ │ └── sponsors
│ │ ├── deque.png
│ │ ├── egghead.png
│ │ ├── egghead.svg
│ │ ├── facebook.png
│ │ ├── frontside.png
│ │ ├── instructure.png
│ │ ├── jane.png
│ │ ├── kuali.png
│ │ ├── mozilla.png
│ │ ├── netflix.png
│ │ ├── progress.png
│ │ ├── rangle.png
│ │ ├── react-training.png
│ │ ├── salesforce.png
│ │ └── walmart.png
├── bundle.js
├── c9d00197123bb4610f5d43cb5e8f8b9a.png
├── docs
│ └── sponsor.pdf
├── fa71b257f4d3dbb315092fb69f18e0b4.png
├── index.html
├── index.js
├── package.json
├── scripts
│ ├── deploy
│ └── imagemin
└── webpack.config.js
├── 2017
├── .nvmrc
├── 404.html
├── api
│ ├── schedule
│ ├── speakers
│ └── sponsors
├── app
│ ├── App.js
│ ├── components
│ │ ├── About.js
│ │ ├── Avatar.js
│ │ ├── Button.js
│ │ ├── Card.js
│ │ ├── Footer.js
│ │ ├── Header.js
│ │ ├── Icon.js
│ │ ├── Legend.js
│ │ ├── Newsletter.js
│ │ ├── Person.js
│ │ └── Tickets.js
│ ├── helpers
│ │ ├── DateUtils.js
│ │ ├── constants.js
│ │ ├── googleAnalytics.js
│ │ ├── livestream.js
│ │ └── shuffle.js
│ └── screens
│ │ ├── About
│ │ └── index.js
│ │ ├── Conduct
│ │ └── index.js
│ │ ├── Home
│ │ └── index.js
│ │ ├── Proposals
│ │ └── index.js
│ │ ├── Schedule
│ │ └── index.js
│ │ ├── Speakers
│ │ └── index.js
│ │ ├── Sponsors
│ │ └── index.js
│ │ ├── Stream
│ │ └── index.js
│ │ └── Venue
│ │ └── index.js
├── assets
│ ├── css
│ │ ├── responsive-500.scss
│ │ ├── responsive-800.scss
│ │ └── styles.scss
│ └── img
│ │ ├── ReactLogo.png
│ │ ├── ReactLogo.svg
│ │ ├── ReactLogoGreen.svg
│ │ ├── RoseWagnerDetail.png
│ │ ├── RoseWagnerMap.png
│ │ ├── SaltLakeCity.png
│ │ ├── SaltLakeCitySkyline.png
│ │ ├── SheratonMap.png
│ │ ├── speakers
│ │ ├── BonnieMilianB.jpg
│ │ ├── TheLarkInn.jpg
│ │ ├── benmvp.jpg
│ │ ├── carakuei.jpg
│ │ ├── chantastic.jpg
│ │ ├── cmatheson.jpg
│ │ ├── czaplic.jpg
│ │ ├── daajust.jpg
│ │ ├── davidkpiano.jpg
│ │ ├── devonbl.jpg
│ │ ├── iPancreas.jpg
│ │ ├── iam_preethi.jpg
│ │ ├── left_pad.jpg
│ │ ├── linclark.jpg
│ │ ├── mjackson.jpg
│ │ ├── mxstbr.jpg
│ │ ├── necolas.jpg
│ │ ├── sugargreenbean.jpg
│ │ ├── sxywu.jpg
│ │ └── zackargyle.jpg
│ │ └── sponsors
│ │ ├── bugsnag.png
│ │ ├── egghead.svg
│ │ ├── facebook.png
│ │ ├── instructure.png
│ │ ├── jane.png
│ │ ├── netlify.png
│ │ ├── webflow.png
│ │ └── wordpress.png
├── c9d00197123bb4610f5d43cb5e8f8b9a.png
├── docs
│ └── sponsor.pdf
├── fa71b257f4d3dbb315092fb69f18e0b4.png
├── index.html
├── index.js
├── package.json
├── scripts
│ ├── deploy
│ └── imagemin
├── table-flip.sh
└── webpack.config.js
├── 2018
├── .nvmrc
├── 404.html
├── aedf3af8eab0485c6ee8abd7513bba95.png
├── api
│ ├── schedule
│ ├── speakers
│ ├── sponsors
│ └── tickets
├── app
│ ├── App.js
│ ├── components
│ │ ├── About.js
│ │ ├── Avatar.js
│ │ ├── Button.js
│ │ ├── Card.js
│ │ ├── Countdown.js
│ │ ├── Footer.js
│ │ ├── Header.js
│ │ ├── Icon.js
│ │ ├── Legend.js
│ │ ├── Newsletter.js
│ │ ├── Person.js
│ │ └── Tickets.js
│ ├── helpers
│ │ ├── DateUtils.js
│ │ ├── constants.js
│ │ ├── googleAnalytics.js
│ │ ├── livestream.js
│ │ └── shuffle.js
│ └── screens
│ │ ├── About
│ │ └── index.js
│ │ ├── Conduct
│ │ └── index.js
│ │ ├── Home
│ │ └── index.js
│ │ ├── Proposals
│ │ └── index.js
│ │ ├── Schedule
│ │ └── index.js
│ │ ├── Speakers
│ │ └── index.js
│ │ ├── Sponsors
│ │ └── index.js
│ │ ├── Stream
│ │ └── index.js
│ │ └── Venue
│ │ └── index.js
├── assets
│ ├── css
│ │ ├── responsive-500.scss
│ │ ├── responsive-800.scss
│ │ └── styles.scss
│ ├── dist
│ │ └── img
│ │ │ ├── ReactLogo.png
│ │ │ ├── ReactLogo.svg
│ │ │ ├── ReactLogoGreen.svg
│ │ │ ├── RoseWagnerDetail.png
│ │ │ ├── RoseWagnerMap.png
│ │ │ ├── SaltLakeCity.png
│ │ │ ├── SaltLakeCitySkyline.png
│ │ │ ├── SheratonMap.png
│ │ │ ├── speakers
│ │ │ ├── _jayphelps.jpg
│ │ │ ├── apvarun.jpg
│ │ │ ├── aweary.jpg
│ │ │ ├── carofine247.jpg
│ │ │ ├── chantastic.jpg
│ │ │ ├── eveporcello.jpg
│ │ │ ├── featherart.jpg
│ │ │ ├── holtbt.jpg
│ │ │ ├── jayphelps.jpg
│ │ │ ├── joshwcomeau.jpg
│ │ │ ├── ken_wheeler.jpg
│ │ │ ├── kentcdodds.png
│ │ │ ├── left_pad.jpg
│ │ │ ├── modernserf.jpg
│ │ │ ├── mybluewristband.jpg
│ │ │ ├── panicwhenever.jpg
│ │ │ ├── ryanflorence.jpg
│ │ │ ├── sugarpirate_.jpg
│ │ │ ├── swyx.jpg
│ │ │ ├── sxywu.jpg
│ │ │ ├── threepointone.jpg
│ │ │ └── wisecobbler.jpg
│ │ │ └── sponsors
│ │ │ ├── amex.png
│ │ │ ├── bugsnag.png
│ │ │ ├── echobind.svg
│ │ │ ├── egghead.png
│ │ │ ├── formidable.png
│ │ │ ├── hpe.svg
│ │ │ ├── instructure.png
│ │ │ ├── microsoft.png
│ │ │ ├── progress.png
│ │ │ ├── underbelly.svg
│ │ │ ├── usds.png
│ │ │ ├── webflow.png
│ │ │ └── workfront.png
│ └── img
│ │ ├── ReactLogo.png
│ │ ├── ReactLogo.svg
│ │ ├── ReactLogoGreen.svg
│ │ ├── RoseWagnerDetail.png
│ │ ├── RoseWagnerMap.png
│ │ ├── SaltLakeCity.png
│ │ ├── SaltLakeCitySkyline.png
│ │ ├── SheratonMap.png
│ │ ├── speakers
│ │ ├── apvarun.jpg
│ │ ├── aweary.jpg
│ │ ├── carofine247.jpg
│ │ ├── chantastic.jpg
│ │ ├── eveporcello.jpg
│ │ ├── featherart.jpg
│ │ ├── holtbt.jpg
│ │ ├── jayphelps.jpg
│ │ ├── joshwcomeau.jpg
│ │ ├── ken_wheeler.jpg
│ │ ├── kentcdodds.png
│ │ ├── left_pad.jpg
│ │ ├── modernserf.jpg
│ │ ├── mybluewristband.jpg
│ │ ├── panicwhenever.jpg
│ │ ├── ryanflorence.jpg
│ │ ├── sugarpirate_.jpg
│ │ ├── swyx.jpg
│ │ ├── sxywu.jpg
│ │ ├── threepointone.jpg
│ │ └── wisecobbler.jpg
│ │ └── sponsors
│ │ ├── amex.png
│ │ ├── bugsnag.png
│ │ ├── echobind.svg
│ │ ├── egghead.png
│ │ ├── formidable.png
│ │ ├── instructure.png
│ │ ├── microsoft.png
│ │ ├── progress.png
│ │ ├── underbelly.svg
│ │ ├── usds.png
│ │ ├── webflow.png
│ │ └── workfront.png
├── bundle.js
├── c9d00197123bb4610f5d43cb5e8f8b9a.png
├── docs
│ └── sponsor.pdf
├── e418e67b17ceb3fdd7de46debfdd37d8.png
├── fa71b257f4d3dbb315092fb69f18e0b4.png
├── index.html
├── index.js
├── package.json
├── scripts
│ ├── deploy
│ └── imagemin
├── table-flip.sh
├── webpack.config.js
└── yarn.lock
├── 2019
├── 404.html
├── api
│ ├── organizers
│ ├── schedule
│ ├── speakers
│ ├── sponsors
│ └── tickets
├── app
│ ├── App.js
│ ├── components
│ │ ├── About.js
│ │ ├── Avatar.js
│ │ ├── Button.js
│ │ ├── Card.js
│ │ ├── Countdown.js
│ │ ├── Footer.js
│ │ ├── Header.js
│ │ ├── Icon.js
│ │ ├── Legend.js
│ │ ├── Newsletter.js
│ │ ├── Person.js
│ │ └── Tickets.js
│ ├── helpers
│ │ ├── DateUtils.js
│ │ ├── constants.js
│ │ ├── googleAnalytics.js
│ │ ├── livestream.js
│ │ └── shuffle.js
│ └── screens
│ │ ├── About
│ │ └── index.js
│ │ ├── Conduct
│ │ └── index.js
│ │ ├── Home
│ │ └── index.js
│ │ ├── Proposals
│ │ └── index.js
│ │ ├── Schedule
│ │ └── index.js
│ │ ├── Speakers
│ │ └── index.js
│ │ ├── Sponsors
│ │ └── index.js
│ │ ├── Stream
│ │ └── index.js
│ │ └── Venue
│ │ └── index.js
├── assets
│ ├── css
│ │ ├── responsive-500.scss
│ │ ├── responsive-800.scss
│ │ └── styles.scss
│ ├── dist
│ │ └── img
│ │ │ ├── ReactLogo.png
│ │ │ ├── ReactLogo.svg
│ │ │ ├── ReactLogoGreen.svg
│ │ │ ├── RoseWagnerDetail.png
│ │ │ ├── RoseWagnerMap.png
│ │ │ ├── SaltLakeCity.png
│ │ │ ├── SaltLakeCitySkyline.png
│ │ │ ├── SheratonMap.png
│ │ │ └── speakers
│ │ │ ├── alex.jpg
│ │ │ ├── anjana.jpg
│ │ │ ├── anjana.png
│ │ │ ├── anthony.jpg
│ │ │ ├── brian.jpg
│ │ │ ├── danielle.jpg
│ │ │ ├── david.jpg
│ │ │ ├── emily.jpg
│ │ │ ├── feather.jpg
│ │ │ ├── glen.jpg
│ │ │ ├── jen.jpg
│ │ │ ├── joel.jpg
│ │ │ ├── johnny.jpg
│ │ │ ├── josh.jpg
│ │ │ ├── justin.jpg
│ │ │ ├── kent.jpg
│ │ │ ├── mihai.jpg
│ │ │ ├── nat.jpg
│ │ │ ├── nicole.jpg
│ │ │ ├── princiya.jpeg
│ │ │ ├── princiya.jpg
│ │ │ ├── revel.jpg
│ │ │ └── will.jpg
│ └── img
│ │ ├── ReactLogo.png
│ │ ├── ReactLogo.svg
│ │ ├── ReactLogoGreen.svg
│ │ ├── RoseWagnerDetail.png
│ │ ├── RoseWagnerMap.png
│ │ ├── SaltLakeCity.png
│ │ ├── SaltLakeCitySkyline.png
│ │ ├── SheratonMap.png
│ │ └── speakers
│ │ ├── alex.jpg
│ │ ├── anjana.jpg
│ │ ├── anthony.jpg
│ │ ├── brian.jpg
│ │ ├── danielle.jpg
│ │ ├── david.jpg
│ │ ├── emily.jpg
│ │ ├── feather.jpg
│ │ ├── glen.jpg
│ │ ├── jen.jpg
│ │ ├── joel.jpg
│ │ ├── johnny.jpg
│ │ ├── josh.jpg
│ │ ├── justin.jpg
│ │ ├── kent.jpg
│ │ ├── mihai.jpg
│ │ ├── nat.jpg
│ │ ├── nicole.jpg
│ │ ├── princiya.jpg
│ │ ├── revel.jpg
│ │ └── will.jpg
├── docs
│ └── sponsor.pdf
├── index.html
├── index.js
├── package-lock.json
├── package.json
├── scripts
│ ├── deploy
│ └── imagemin
├── table-flip.sh
├── webpack.config.js
└── yarn.lock
├── .gitignore
├── CNAME
├── README.md
├── favicon.ico
├── teaser
├── assets
│ ├── css
│ │ └── styles.css
│ ├── fonts
│ │ ├── true-crimes-webfont.eot
│ │ ├── true-crimes-webfont.svg
│ │ ├── true-crimes-webfont.ttf
│ │ └── true-crimes-webfont.woff
│ ├── img
│ │ ├── background.png
│ │ ├── city.png
│ │ ├── github.png
│ │ ├── mushroomCloud.png
│ │ ├── robotLasers.png
│ │ ├── slc-background.png
│ │ ├── tentacle_left.png
│ │ ├── tentacle_right.png
│ │ └── twitter.png
│ └── js
│ │ └── scripts.js
└── index.html
└── twitter.html
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | npm-debug.log
3 | node_modules/
4 |
--------------------------------------------------------------------------------
/2015/208f2460eed49cb4545fe508acbde588.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/208f2460eed49cb4545fe508acbde588.eot
--------------------------------------------------------------------------------
/2015/33c44da872eb18f70cb6d821cd08e8f6.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/33c44da872eb18f70cb6d821cd08e8f6.ttf
--------------------------------------------------------------------------------
/2015/45c73723862c6fc5eb3d6961db2d71fb.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/45c73723862c6fc5eb3d6961db2d71fb.eot
--------------------------------------------------------------------------------
/2015/4b5a84aaf1c9485e060c503a0ff8cadb.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/4b5a84aaf1c9485e060c503a0ff8cadb.woff2
--------------------------------------------------------------------------------
/2015/693654ac27ff0d90368b27037410b6f1.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/693654ac27ff0d90368b27037410b6f1.woff
--------------------------------------------------------------------------------
/2015/706450d7bba6374ca02fe167d86685cb.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/706450d7bba6374ca02fe167d86685cb.ttf
--------------------------------------------------------------------------------
/2015/7c87870ab40d63cfb8870c1f183f9939.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/7c87870ab40d63cfb8870c1f183f9939.ttf
--------------------------------------------------------------------------------
/2015/97493d3f11c0a3bd5cbd959f5d19b699.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/97493d3f11c0a3bd5cbd959f5d19b699.woff2
--------------------------------------------------------------------------------
/2015/app/components/ButtonLink.js:
--------------------------------------------------------------------------------
1 | import React, { Component, PropTypes } from 'react';
2 | import StyleSheet from 'react-style';
3 | import Radium from 'radium'
4 |
5 | const STYLES = StyleSheet.create({
6 | a: {
7 | backgroundColor: 'transparent',
8 | borderWidth: 1,
9 | borderStyle: 'solid',
10 | borderColor: '#fff',
11 | borderRadius: 5,
12 | color: '#fff',
13 | display: 'inline-block',
14 | fontSize: 20,
15 | padding: '10px 35px',
16 | margin: 25,
17 | whiteSpace: 'nowrap',
18 | textDecoration: 'none',
19 | ':hover': {
20 | backgroundColor: '#fff',
21 | color: '#000'
22 | }
23 | }
24 | });
25 |
26 | class ButtonLink extends Component {
27 | render() {
28 | return (
29 |
30 | {this.props.children}
31 |
32 | );
33 | }
34 | }
35 |
36 | ButtonLink.propTypes = {
37 | href: PropTypes.string.isRequired,
38 | style: PropTypes.object
39 | };
40 |
41 | ButtonLink = Radium.Enhancer(ButtonLink);
42 | export default ButtonLink;
43 |
44 |
--------------------------------------------------------------------------------
/2015/app/components/Divider.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import StyleSheet from 'react-style';
3 | import { Styles } from 'helpers/constants';
4 |
5 | const STYLES = StyleSheet.create({
6 | divider: {
7 | background: Styles.BG_COLOR_DIVIDER,
8 | height: 50,
9 | position: 'relative'
10 | }
11 | });
12 |
13 | export default class Divider extends Component {
14 | render() {
15 | return (
16 |
35 | {content}
36 |
37 | );
38 | }
39 |
40 | render() {
41 | return (
42 |
43 | {this.renderLink(
)}
44 |
45 | {this.renderLink(this.props.name)}
46 |
47 |
({this.props.role})
48 |
49 | );
50 | }
51 | }
52 |
53 | Avatar.propTypes = {
54 | url: PropTypes.string,
55 | name: PropTypes.string,
56 | role: PropTypes.string,
57 | twitter: PropTypes.string
58 | };
59 |
--------------------------------------------------------------------------------
/2015/app/screens/Speakers/index.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import StyleSheet from 'react-style';
3 | import { Styles, Links } from 'helpers/constants';
4 | import SpeakerData from '../../../api/speakers';
5 | import Avatar from './components/Avatar';
6 |
7 | const STYLES = StyleSheet.create({
8 | section: {
9 | background: `url(assets/dist/img/speakersBackground.png) ${Styles.BG_COLOR_SPEAKERS}`,
10 | paddingTop: 100
11 | },
12 | h2: {
13 | color: Styles.FONT_COLOR_SPEAKERS
14 | },
15 | content: {
16 | overflow: 'auto',
17 | textAlign: 'center'
18 | },
19 | a: {
20 | color: '#FFF'
21 | }
22 | });
23 |
24 | export default class Speakers extends Component {
25 | renderSpeakers() {
26 | return Object.keys(SpeakerData).map((key, i) => {
27 | var speaker = SpeakerData[key];
28 | return
32 | });
33 | }
34 |
35 | render() {
36 | return (
37 |
38 | Speakers
39 |
40 | {this.renderSpeakers()}
41 |
42 |
43 | );
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/2015/app/screens/Sponsors/components/Sponsor.js:
--------------------------------------------------------------------------------
1 | import React, { Component, PropTypes } from 'react';
2 | import StyleSheet from 'react-style';
3 |
4 | const STYLES = StyleSheet.create({
5 | img: {
6 | display: 'inline-block',
7 | margin: 25,
8 | verticalAlign: 'middle'
9 | }
10 | });
11 |
12 |
13 | export default class Sponsor extends Component {
14 | render() {
15 | return (
16 |
21 | )
22 | }
23 | }
24 |
25 | Sponsor.propTypes = {
26 | url: PropTypes.string.isRequired,
27 | image: PropTypes.string.isRequired,
28 | name: PropTypes.string.isRequired,
29 | style: PropTypes.object
30 | };
31 |
--------------------------------------------------------------------------------
/2015/app/screens/Tickets/components/Quantity.js:
--------------------------------------------------------------------------------
1 | import React, { Component, PropTypes } from 'react';
2 |
3 | export default class Quantity extends Component {
4 | constructor(props) {
5 | super(props);
6 | this.state = {
7 | value: parseInt(props.val || props.min, 10) || 0
8 | };
9 | }
10 |
11 | handleValueChange() {
12 | var value = parseInt(this.refs.value.getDOMNode().value, 10) || 0;
13 | value = Math.max(value, this.props.min);
14 | value = Math.min(value, this.props.max);
15 | this.setState({ value });
16 | }
17 |
18 | handleMinusClick() {
19 | this.setState({ value: Math.max(this.state.value - 1, this.props.min) });
20 | }
21 |
22 | handlePlusClick() {
23 | this.setState({ value: Math.min(this.state.value + 1, this.props.max) });
24 | }
25 |
26 | render() {
27 | return (
28 |
29 | -
30 |
31 | +
32 |
33 | );
34 | }
35 | }
36 |
37 | Quantity.propTypes = {
38 | max: PropTypes.number,
39 | min: PropTypes.number,
40 | val: PropTypes.number
41 | };
42 |
43 | Quantity.defaultProps = {
44 | max: 10,
45 | min: 0,
46 | val: 0
47 | };
48 |
--------------------------------------------------------------------------------
/2015/app/screens/Tickets/index.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import StyleSheet from 'react-style';
3 | import Radium from 'radium'
4 | import { Styles, Sizes, Links } from 'helpers/constants';
5 | import ButtonLink from 'components/ButtonLink';
6 |
7 | const STYLES = StyleSheet.create({
8 | section: {
9 | background: 'url(assets/dist/img/SLCBackground.png)',
10 | minHeight: 390,
11 | color: '#fff'
12 | },
13 | container: {
14 | position: 'relative'
15 | },
16 | h2: {
17 | color: Styles.FONT_COLOR_TICKETS
18 | },
19 | p: {
20 | marginRight: 500
21 | },
22 | a: {
23 | margin: '25px 0 0 33%'
24 | },
25 | img: {
26 | position: 'absolute',
27 | top: -150,
28 | right: 50
29 | }
30 | });
31 |
32 | class TicketsComponent extends Component {
33 | render() {
34 | return (
35 |
36 |
37 |
38 |
Tickets
39 |
40 | The Golden Ticket. Super Bowl tickets. Backstage passes to T Swizzle. React Rally tickets. High demand, limited supply.
41 |
42 |
43 | Tickets are now on sale. There are limited tickets available, so don't procrastinate, and miss out!
44 |
45 |
46 | Buy Tickets
47 |
48 |
49 |
50 | );
51 | }
52 | }
53 |
54 | var Tickets = Radium.Enhancer(TicketsComponent)
55 | export default Tickets
56 |
--------------------------------------------------------------------------------
/2015/assets/dist/img/SLCBackground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/SLCBackground.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/SLCcity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/SLCcity.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/avatarBackground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/avatarBackground.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/cropCircle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/cropCircle.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/moon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/moon.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/organizers/aimee.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/organizers/aimee.jpeg
--------------------------------------------------------------------------------
/2015/assets/dist/img/organizers/jamison.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/organizers/jamison.jpeg
--------------------------------------------------------------------------------
/2015/assets/dist/img/organizers/joe.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/organizers/joe.jpeg
--------------------------------------------------------------------------------
/2015/assets/dist/img/organizers/matt.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/organizers/matt.jpeg
--------------------------------------------------------------------------------
/2015/assets/dist/img/organizers/sunny.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/organizers/sunny.jpeg
--------------------------------------------------------------------------------
/2015/assets/dist/img/reactVenue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/reactVenue.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/robot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/robot.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/robot_withLaser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/robot_withLaser.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/abhinavrastogi.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/abhinavrastogi.jpeg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/ccheever.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/ccheever.jpeg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/djsmith42.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/djsmith42.jpg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/glenmaddern.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/glenmaddern.jpg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/holtbt.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/holtbt.jpg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/iPancreas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/iPancreas.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/immediatedelay.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/immediatedelay.jpeg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/jakobdamjensen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/jakobdamjensen.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/jamischarles.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/jamischarles.jpeg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/jemyoung.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/jemyoung.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/jessitron.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/jessitron.jpg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/johnkpaul.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/johnkpaul.jpg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/lbljeffmo.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/lbljeffmo.jpeg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/leeb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/leeb.jpg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/linclark.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/linclark.jpg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/peterpme.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/peterpme.jpeg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/rickyvetter.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/rickyvetter.jpeg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/ryoia.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/ryoia.jpeg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/schrockn.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/schrockn.jpg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakers/vjeux.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakers/vjeux.jpg
--------------------------------------------------------------------------------
/2015/assets/dist/img/speakersBackground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/speakersBackground.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/sponsors/MX-Square-Black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/sponsors/MX-Square-Black.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/sponsors/canopy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/sponsors/canopy.jpg
--------------------------------------------------------------------------------
/2015/assets/dist/img/sponsors/codeschool.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/sponsors/codeschool.jpg
--------------------------------------------------------------------------------
/2015/assets/dist/img/sponsors/facebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/sponsors/facebook.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/sponsors/hirevue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/sponsors/hirevue.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/sponsors/instructure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/sponsors/instructure.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/sponsors/kualico.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/sponsors/kualico.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/sponsors/kualicologo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/sponsors/kualicologo-small.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/sponsors/kualicologo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/sponsors/kualicologo.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/sponsors/mx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/sponsors/mx.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/sponsors/pluralsight.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/sponsors/pluralsight.jpg
--------------------------------------------------------------------------------
/2015/assets/dist/img/sponsors/pluralsight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/sponsors/pluralsight.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/sponsors/rangle.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/sponsors/rangle.jpg
--------------------------------------------------------------------------------
/2015/assets/dist/img/sponsors/rangle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/sponsors/rangle.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/sponsors/raygun.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/sponsors/raygun.jpg
--------------------------------------------------------------------------------
/2015/assets/dist/img/sponsors/redsky.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/sponsors/redsky.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/tentacle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/tentacle.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/tweet-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/tweet-icon.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/ufoDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/ufoDark.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/ufoMain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/ufoMain.png
--------------------------------------------------------------------------------
/2015/assets/dist/img/venue.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/venue.jpg
--------------------------------------------------------------------------------
/2015/assets/dist/img/weatheredBackground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/dist/img/weatheredBackground.png
--------------------------------------------------------------------------------
/2015/assets/fonts/true-crimes-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/fonts/true-crimes-webfont.eot
--------------------------------------------------------------------------------
/2015/assets/fonts/true-crimes-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/fonts/true-crimes-webfont.ttf
--------------------------------------------------------------------------------
/2015/assets/fonts/true-crimes-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/fonts/true-crimes-webfont.woff
--------------------------------------------------------------------------------
/2015/assets/img/SLCBackground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/SLCBackground.png
--------------------------------------------------------------------------------
/2015/assets/img/SLCcity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/SLCcity.png
--------------------------------------------------------------------------------
/2015/assets/img/avatarBackground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/avatarBackground.png
--------------------------------------------------------------------------------
/2015/assets/img/cropCircle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/cropCircle.png
--------------------------------------------------------------------------------
/2015/assets/img/moon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/moon.png
--------------------------------------------------------------------------------
/2015/assets/img/organizers/aimee.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/organizers/aimee.jpeg
--------------------------------------------------------------------------------
/2015/assets/img/organizers/jamison.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/organizers/jamison.jpeg
--------------------------------------------------------------------------------
/2015/assets/img/organizers/joe.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/organizers/joe.jpeg
--------------------------------------------------------------------------------
/2015/assets/img/organizers/matt.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/organizers/matt.jpeg
--------------------------------------------------------------------------------
/2015/assets/img/organizers/sunny.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/organizers/sunny.jpeg
--------------------------------------------------------------------------------
/2015/assets/img/reactVenue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/reactVenue.png
--------------------------------------------------------------------------------
/2015/assets/img/robot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/robot.png
--------------------------------------------------------------------------------
/2015/assets/img/robot_withLaser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/robot_withLaser.png
--------------------------------------------------------------------------------
/2015/assets/img/speakers/abhinavrastogi.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/abhinavrastogi.jpeg
--------------------------------------------------------------------------------
/2015/assets/img/speakers/ccheever.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/ccheever.jpeg
--------------------------------------------------------------------------------
/2015/assets/img/speakers/djsmith42.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/djsmith42.jpg
--------------------------------------------------------------------------------
/2015/assets/img/speakers/glenmaddern.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/glenmaddern.jpg
--------------------------------------------------------------------------------
/2015/assets/img/speakers/holtbt.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/holtbt.jpg
--------------------------------------------------------------------------------
/2015/assets/img/speakers/iPancreas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/iPancreas.png
--------------------------------------------------------------------------------
/2015/assets/img/speakers/immediatedelay.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/immediatedelay.jpeg
--------------------------------------------------------------------------------
/2015/assets/img/speakers/jakobdamjensen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/jakobdamjensen.png
--------------------------------------------------------------------------------
/2015/assets/img/speakers/jamischarles.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/jamischarles.jpeg
--------------------------------------------------------------------------------
/2015/assets/img/speakers/jemyoung.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/jemyoung.png
--------------------------------------------------------------------------------
/2015/assets/img/speakers/jessitron.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/jessitron.jpg
--------------------------------------------------------------------------------
/2015/assets/img/speakers/johnkpaul.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/johnkpaul.jpg
--------------------------------------------------------------------------------
/2015/assets/img/speakers/lbljeffmo.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/lbljeffmo.jpeg
--------------------------------------------------------------------------------
/2015/assets/img/speakers/leeb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/leeb.jpg
--------------------------------------------------------------------------------
/2015/assets/img/speakers/linclark.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/linclark.jpg
--------------------------------------------------------------------------------
/2015/assets/img/speakers/peterpme.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/peterpme.jpeg
--------------------------------------------------------------------------------
/2015/assets/img/speakers/rickyvetter.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/rickyvetter.jpeg
--------------------------------------------------------------------------------
/2015/assets/img/speakers/ryoia.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/ryoia.jpeg
--------------------------------------------------------------------------------
/2015/assets/img/speakers/schrockn.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/schrockn.jpg
--------------------------------------------------------------------------------
/2015/assets/img/speakers/vjeux.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakers/vjeux.jpg
--------------------------------------------------------------------------------
/2015/assets/img/speakersBackground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/speakersBackground.png
--------------------------------------------------------------------------------
/2015/assets/img/sponsors/MX-Square-Black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/sponsors/MX-Square-Black.png
--------------------------------------------------------------------------------
/2015/assets/img/sponsors/canopy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/sponsors/canopy.jpg
--------------------------------------------------------------------------------
/2015/assets/img/sponsors/codeschool.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/sponsors/codeschool.jpg
--------------------------------------------------------------------------------
/2015/assets/img/sponsors/facebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/sponsors/facebook.png
--------------------------------------------------------------------------------
/2015/assets/img/sponsors/hirevue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/sponsors/hirevue.png
--------------------------------------------------------------------------------
/2015/assets/img/sponsors/instructure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/sponsors/instructure.png
--------------------------------------------------------------------------------
/2015/assets/img/sponsors/kualico.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/sponsors/kualico.png
--------------------------------------------------------------------------------
/2015/assets/img/sponsors/kualicologo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/sponsors/kualicologo-small.png
--------------------------------------------------------------------------------
/2015/assets/img/sponsors/kualicologo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/sponsors/kualicologo.png
--------------------------------------------------------------------------------
/2015/assets/img/sponsors/mx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/sponsors/mx.png
--------------------------------------------------------------------------------
/2015/assets/img/sponsors/pluralsight.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/sponsors/pluralsight.jpg
--------------------------------------------------------------------------------
/2015/assets/img/sponsors/pluralsight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/sponsors/pluralsight.png
--------------------------------------------------------------------------------
/2015/assets/img/sponsors/rangle.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/sponsors/rangle.jpg
--------------------------------------------------------------------------------
/2015/assets/img/sponsors/rangle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/sponsors/rangle.png
--------------------------------------------------------------------------------
/2015/assets/img/sponsors/raygun.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/sponsors/raygun.jpg
--------------------------------------------------------------------------------
/2015/assets/img/sponsors/redsky.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/sponsors/redsky.png
--------------------------------------------------------------------------------
/2015/assets/img/tentacle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/tentacle.png
--------------------------------------------------------------------------------
/2015/assets/img/tweet-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/tweet-icon.png
--------------------------------------------------------------------------------
/2015/assets/img/ufoDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/ufoDark.png
--------------------------------------------------------------------------------
/2015/assets/img/ufoMain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/ufoMain.png
--------------------------------------------------------------------------------
/2015/assets/img/venue.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/venue.jpg
--------------------------------------------------------------------------------
/2015/assets/img/weatheredBackground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/assets/img/weatheredBackground.png
--------------------------------------------------------------------------------
/2015/d9ee23d59d0e0e727b51368b458a0bff.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/d9ee23d59d0e0e727b51368b458a0bff.woff
--------------------------------------------------------------------------------
/2015/dfb02f8f6d0cedc009ee5887cc68f1f3.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/dfb02f8f6d0cedc009ee5887cc68f1f3.woff
--------------------------------------------------------------------------------
/2015/docs/sponsor.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/docs/sponsor.pdf
--------------------------------------------------------------------------------
/2015/f7c2b4b747b1a225eb8dee034134a1b0.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2015/f7c2b4b747b1a225eb8dee034134a1b0.eot
--------------------------------------------------------------------------------
/2015/imagemin.js:
--------------------------------------------------------------------------------
1 | var Imagemin = require('imagemin');
2 | var pngquant = require('imagemin-pngquant');
3 |
4 | new Imagemin()
5 | .src('assets/img/**/*.{gif,jpg,jpeg,png,svg}')
6 | .dest('assets/dist/img')
7 | .use(Imagemin.jpegtran({progressive: true}))
8 | .use(pngquant({quality: '65-80', speed: 4}))
9 | .run(function (err, files) {
10 | console.log(err, files);
11 | });
12 |
--------------------------------------------------------------------------------
/2015/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | React Rally
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/2015/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './app/App';
3 | import fa from 'font-awesome/css/font-awesome.css';
4 | import styles from './assets/css/styles.css';
5 |
6 | React.render( , document.getElementById('container'));
7 |
--------------------------------------------------------------------------------
/2015/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-rally",
3 | "version": "2.0.0",
4 | "description": "React Rally website",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "start": "./node_modules/.bin/webpack-dev-server --inline --content-base ./",
9 | "imagemin": "node imagemin.js",
10 | "build": "npm run imagemin && NODE_ENV=production ./node_modules/.bin/webpack",
11 | "deploy": "./scripts/deploy"
12 | },
13 | "repository": {
14 | "type": "git",
15 | "url": "git@github.com:react-rally/www"
16 | },
17 | "author": "",
18 | "license": "MIT",
19 | "bugs": {
20 | "url": "https://github.com/react-rally/www/issues"
21 | },
22 | "homepage": "https://github.com/react-rally/www",
23 | "dependencies": {
24 | "classnames": "^2.1.3",
25 | "evtmgr": "^0.1.0",
26 | "font-awesome": "^4.3.0",
27 | "radium": "0.12.2",
28 | "react": "^0.13.3",
29 | "react-modal": "^0.3.0",
30 | "react-style": "^0.5.5"
31 | },
32 | "devDependencies": {
33 | "babel-core": "5.8.12",
34 | "babel-loader": "5.3.2",
35 | "css-loader": "0.15.6",
36 | "file-loader": "0.8.4",
37 | "imagemin": "3.2.0",
38 | "imagemin-pngquant": "4.1.2",
39 | "json-loader": "^0.5.2",
40 | "style-loader": "0.12.3",
41 | "webpack": "1.10.5",
42 | "webpack-dev-server": "1.10.1"
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/2015/scripts/deploy:
--------------------------------------------------------------------------------
1 | #!/bin/bash -e
2 |
3 | npm run build
4 | git add .
5 | git commit -m"Updating site"
6 | git push
7 |
--------------------------------------------------------------------------------
/2015/webpack.config.js:
--------------------------------------------------------------------------------
1 | var webpack = require('webpack');
2 | var plugins = [];
3 |
4 | if (process.env.NODE_ENV === 'production') {
5 | plugins.push(
6 | new webpack.optimize.UglifyJsPlugin()
7 | );
8 | }
9 |
10 | module.exports = {
11 | entry: './index.js',
12 | output: {
13 | filename: 'bundle.js'
14 | },
15 | module: {
16 | loaders: [
17 | { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' },
18 | { test: /\.css$/, loader: 'style-loader!css-loader' },
19 | { test: /\/api\//, loader: 'json-loader' },
20 | { test: /(\.eot|\.woff|\.ttf|\.svg)/, loader: 'file-loader' }
21 | ]
22 | },
23 | resolve: {
24 | modulesDirectories: [ 'app', 'node_modules' ]
25 | },
26 | plugins: plugins
27 | };
28 |
--------------------------------------------------------------------------------
/2016/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | React Rally
5 |
6 |
7 |
8 |
9 |
32 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/2016/app/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Footer from 'components/Footer'
3 | import Header from 'components/Header'
4 |
5 | export default (props) => {
6 | return (
7 |
8 |
9 |
10 | {props.children}
11 |
12 |
13 |
14 | )
15 | }
16 |
--------------------------------------------------------------------------------
/2016/app/components/About.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default function About() {
4 | return (
5 |
6 | React Rally is a two day single track conference for developers of all backgrounds using Facebook's React.js, React Native, and related tools.
7 | Speakers will cover topics such as React Native, Flux, ES6, isomorphic universal JavaScript, and so much more.
8 | Whether you're a seasoned developer who has been using React since before it was cool, or a newcomer to the scene, React Rally has something for everyone!
9 |
10 | )
11 | }
12 |
--------------------------------------------------------------------------------
/2016/app/components/Avatar.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | let size = props.size || 200
5 | return (
6 |
11 | )
12 | }
13 |
--------------------------------------------------------------------------------
/2016/app/components/Button.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | return (
5 |
6 | {props.children}
7 |
8 | )
9 | }
10 |
--------------------------------------------------------------------------------
/2016/app/components/Icon.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | return (
5 |
6 |
7 |
8 | )
9 | }
10 |
--------------------------------------------------------------------------------
/2016/app/components/Legend.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | return (
5 |
6 |
7 |
{props.children}
8 |
9 | )
10 | }
11 |
--------------------------------------------------------------------------------
/2016/app/components/Newsletter.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default () => {
4 | return (
5 |
10 | )
11 | }
12 |
--------------------------------------------------------------------------------
/2016/app/components/Person.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Avatar from 'components/Avatar'
3 | import Icon from 'components/Icon'
4 |
5 | export default (props) => {
6 | return (
7 |
8 |
9 | {props.name}
10 | {props.title}
11 |
12 | {props.twitter && (
13 |
14 | )}
15 | {props.github && (
16 |
17 | )}
18 |
19 |
20 | )
21 | }
22 |
23 |
--------------------------------------------------------------------------------
/2016/app/components/Tickets.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react'
2 | import constants from 'helpers/constants'
3 | import DateUtils, { MountainTime } from 'helpers/DateUtils'
4 | import Button from 'components/Button'
5 |
6 | const TICKET_RELEASE_TIME = Date.parse(constants.Dates.TICKET_RELEASE)
7 |
8 | export default class Tickets extends Component {
9 | render() {
10 | let ticketsAvailable = MountainTime.isNowAfterTime(TICKET_RELEASE_TIME)
11 | let diff
12 |
13 | if (!ticketsAvailable) {
14 | diff = TICKET_RELEASE_TIME - MountainTime.getTime()
15 | setTimeout(this.forceUpdate.bind(this), 1000)
16 | }
17 |
18 | return (
19 |
20 | {ticketsAvailable ? (
21 |
Buy Tickets
22 | ) : (
23 |
24 | Tickets on sale soon
25 |
{DateUtils.duration(diff)}
26 |
27 | )}
28 |
29 | )
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/2016/app/helpers/constants.js:
--------------------------------------------------------------------------------
1 | const constants = {}
2 | export default constants
3 |
4 | constants.Links = {
5 | CODE_OF_CONDUCT: 'http://confcodeofconduct.com/',
6 | TICKET_SALES: 'https://ti.to/trace-events/react-rally-2016',
7 | PROPOSAL_FORM: 'http://speak.reactrally.com/events/react-rally-2016',
8 | VENUE_DIRECTIONS: 'https://www.google.com/maps/dir//138+West+300+South,+Salt+Lake+City,+UT+84101/@40.7631303,-111.8964432,18.29z/data=!4m8!4m7!1m0!1m5!1m1!1s0x8752f5052002298f:0xf13b0bec7c31c1ab!2m2!1d-111.8955862!2d40.7631063',
9 | HOTEL_RESERVATION: 'http://bookings.ihotelier.com/bookings.jsp?groupID=1629467&hotelID=4650',
10 | HOTEL_DIRECTIONS: 'https://www.google.com/maps/dir//500+South+Main+Street,+Salt+Lake+City,+UT+84101/@40.7573935,-111.8947835,17z/data=!3m1!4b1!4m8!4m7!1m0!1m5!1m1!1s0x8752f510c9a96fd3:0xa6803ff714f0482d!2m2!1d-111.8925948!2d40.7573935',
11 | PARTY_DIRECTIONS: 'https://www.google.com/maps/place/239+Main+St,+Salt+Lake+City,+UT+84111/@40.7644077,-111.890665,18z/data=!4m5!3m4!1s0x8752f50fb887bf49:0x2a34ca1a9e86b09f!8m2!3d40.7644448!4d-111.8895774',
12 | LIVE_STREAM_PLACEHOLDER: 'https://youtu.be/5NNOrp_83RU',
13 | LIVE_STREAM_DAY_ONE: 'https://youtu.be/Fk--XUEorvc',
14 | LIVE_STREAM_DAY_TWO: 'https://youtu.be/nI0cQ-2YR1I',
15 | LIVE_STREAM_OVER: 'https://youtu.be/T1XgFsitnQw',
16 | YOUTUBE_CHANNEL: 'https://www.youtube.com/playlist?list=PLUD4kD-wL_zYSfU3tIYsb4WqfFQzO_EjQ',
17 | SPONSOR_PROSPECTUS: 'docs/sponsor.pdf'
18 | }
19 |
20 | constants.Dates = {
21 | CFP_OPEN: '2016-03-28T00:00:00-06:00',
22 | CFP_CLOSE: '2016-04-28T00:00:00-06:00',
23 | TICKET_RELEASE: '2016-04-15T12:00:00-06:00',
24 | CONF_DAY_ONE: '2016-08-25T00:00:00-06:00',
25 | CONF_DAY_TWO: '2016-08-26T00:00:00-06:00'
26 | }
27 |
--------------------------------------------------------------------------------
/2016/app/helpers/googleAnalytics.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
3 | (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
4 | m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
5 | })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
6 |
7 | ga('create', 'UA-60963027-1', 'auto');
8 | ga('send', 'pageview');
9 | })();
10 |
--------------------------------------------------------------------------------
/2016/app/helpers/livestream.js:
--------------------------------------------------------------------------------
1 | import constants from 'helpers/constants'
2 | import DateUtils, { MountainTime } from 'helpers/DateUtils'
3 |
4 | function getLiveStreamURL() {
5 | let url
6 |
7 | if (MountainTime.isNowBeforeTime(Date.parse(constants.Dates.CONF_DAY_ONE))) {
8 | url = constants.Links.LIVE_STREAM_PLACEHOLDER
9 | } else if (MountainTime.isNowBetweenTime(
10 | Date.parse(constants.Dates.CONF_DAY_ONE),
11 | Date.parse(constants.Dates.CONF_DAY_TWO))) {
12 | url = constants.Links.LIVE_STREAM_DAY_ONE
13 | } else if (MountainTime.isNowBetweenTime(
14 | Date.parse(constants.Dates.CONF_DAY_TWO),
15 | Date.parse(constants.Dates.CONF_DAY_TWO) + (DateUtils.DAYS * 1))) {
16 | url = constants.Links.LIVE_STREAM_DAY_TWO
17 | } else {
18 | url = constants.Links.LIVE_STREAM_OVER
19 | }
20 |
21 | return url
22 | }
23 |
24 | function getLiveStreamEmbedURL() {
25 | let url = getLiveStreamURL()
26 |
27 | if (url) {
28 | url = url.replace('youtu.be', 'youtube.com/embed')
29 | }
30 |
31 | return url
32 | }
33 |
34 | export { getLiveStreamURL, getLiveStreamEmbedURL }
35 |
--------------------------------------------------------------------------------
/2016/app/screens/About/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import About from 'components/About'
3 | import Legend from 'components/Legend'
4 | import Person from 'components/Person'
5 |
6 | export default () => {
7 | return (
8 |
9 |
About React Rally
10 |
11 |
12 |
Organizers
13 |
20 |
27 |
33 |
34 |
35 | )
36 | }
37 |
--------------------------------------------------------------------------------
/2016/app/screens/Home/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Link } from 'react-router'
3 | import About from 'components/About'
4 | import Button from 'components/Button'
5 | import Legend from 'components/Legend'
6 | import Person from 'components/Person'
7 | import SpeakerData from '../../../api/speakers'
8 |
9 | export default () => {
10 | return (
11 |
12 |
13 |
What is React Rally?
14 |
15 |
More about React Rally »
16 |
17 |
18 |
Keynote Speakers
19 | {Object.keys(SpeakerData).map(key => {
20 | return SpeakerData[key].keynote ?
: null
21 | })}
22 |
23 |
24 | )
25 | }
26 |
--------------------------------------------------------------------------------
/2016/app/screens/Speakers/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Legend from 'components/Legend'
3 | import Person from 'components/Person'
4 | import SpeakerData from '../../../api/speakers'
5 |
6 | export default () => {
7 | return (
8 |
9 |
Speakers
10 |
11 | {Object.keys(SpeakerData).length > 0 ? (
12 | Object.keys(SpeakerData).map(key =>
)
13 | ) : (
14 | We haven't selected any speakers yet. Why not check out this cat video while you wait?
15 | )}
16 |
17 |
18 | )
19 | }
20 |
--------------------------------------------------------------------------------
/2016/app/screens/Sponsors/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import constants from 'helpers/constants'
3 | import Button from 'components/Button'
4 | import Legend from 'components/Legend'
5 | import SponsorData from '../../../api/sponsors'
6 |
7 | export default () => {
8 | return (
9 |
10 |
Thank you to our fine sponsors. Want to help support React Rally? We'd love to talk with you.
11 |
Download Prospectus
12 | {Object.keys(SponsorData).filter(level => SponsorData[level].length > 0).map(level => {
13 | return (
14 |
15 |
{level}
16 | {SponsorData[level].map((sponsor, i) => {
17 | return sponsor.image ? (
18 |
19 |
20 |
21 | ) : (
22 |
{sponsor.name}
23 | )
24 | })}
25 |
26 | )
27 | })}
28 |
29 | )
30 | }
31 |
--------------------------------------------------------------------------------
/2016/app/screens/Stream/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import constants from 'helpers/constants'
3 | import { getLiveStreamEmbedURL } from 'helpers/livestream'
4 |
5 | export default () => {
6 | let url = getLiveStreamEmbedURL()
7 |
8 | return (
9 |
10 |
Live Stream
11 |
19 |
20 | )
21 | }
22 |
--------------------------------------------------------------------------------
/2016/assets/css/responsive-500.scss:
--------------------------------------------------------------------------------
1 | /* Responsive styles for max-width 500px */
2 | .Person {
3 | margin: 25px 0;
4 | }
5 |
6 | .Sponsors img {
7 | max-width: 200px !important;
8 | }
9 | .Sponsors img {
10 | margin: 25px 15px;
11 | }
12 |
13 | .Stream__Embedded {
14 | width: 254px;
15 | height: 143px;
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/2016/assets/dist/img/ReactLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/ReactLogo.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/RoseWagnerDetail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/RoseWagnerDetail.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/RoseWagnerMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/RoseWagnerMap.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/SaltLakeCity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/SaltLakeCity.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/sponsors/deque.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/sponsors/deque.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/sponsors/egghead.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/sponsors/egghead.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/sponsors/facebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/sponsors/facebook.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/sponsors/frontside.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/sponsors/frontside.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/sponsors/instructure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/sponsors/instructure.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/sponsors/jane.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/sponsors/jane.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/sponsors/kuali.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/sponsors/kuali.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/sponsors/mozilla.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/sponsors/mozilla.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/sponsors/netflix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/sponsors/netflix.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/sponsors/progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/sponsors/progress.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/sponsors/rangle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/sponsors/rangle.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/sponsors/react-training.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/sponsors/react-training.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/sponsors/salesforce.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/sponsors/salesforce.png
--------------------------------------------------------------------------------
/2016/assets/dist/img/sponsors/walmart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/dist/img/sponsors/walmart.png
--------------------------------------------------------------------------------
/2016/assets/img/ReactLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/ReactLogo.png
--------------------------------------------------------------------------------
/2016/assets/img/RoseWagnerDetail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/RoseWagnerDetail.png
--------------------------------------------------------------------------------
/2016/assets/img/RoseWagnerMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/RoseWagnerMap.png
--------------------------------------------------------------------------------
/2016/assets/img/SaltLakeCity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/SaltLakeCity.png
--------------------------------------------------------------------------------
/2016/assets/img/sponsors/deque.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/sponsors/deque.png
--------------------------------------------------------------------------------
/2016/assets/img/sponsors/egghead.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/sponsors/egghead.png
--------------------------------------------------------------------------------
/2016/assets/img/sponsors/facebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/sponsors/facebook.png
--------------------------------------------------------------------------------
/2016/assets/img/sponsors/frontside.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/sponsors/frontside.png
--------------------------------------------------------------------------------
/2016/assets/img/sponsors/instructure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/sponsors/instructure.png
--------------------------------------------------------------------------------
/2016/assets/img/sponsors/jane.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/sponsors/jane.png
--------------------------------------------------------------------------------
/2016/assets/img/sponsors/kuali.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/sponsors/kuali.png
--------------------------------------------------------------------------------
/2016/assets/img/sponsors/mozilla.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/sponsors/mozilla.png
--------------------------------------------------------------------------------
/2016/assets/img/sponsors/netflix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/sponsors/netflix.png
--------------------------------------------------------------------------------
/2016/assets/img/sponsors/progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/sponsors/progress.png
--------------------------------------------------------------------------------
/2016/assets/img/sponsors/rangle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/sponsors/rangle.png
--------------------------------------------------------------------------------
/2016/assets/img/sponsors/react-training.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/sponsors/react-training.png
--------------------------------------------------------------------------------
/2016/assets/img/sponsors/salesforce.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/sponsors/salesforce.png
--------------------------------------------------------------------------------
/2016/assets/img/sponsors/walmart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/assets/img/sponsors/walmart.png
--------------------------------------------------------------------------------
/2016/c9d00197123bb4610f5d43cb5e8f8b9a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/c9d00197123bb4610f5d43cb5e8f8b9a.png
--------------------------------------------------------------------------------
/2016/docs/sponsor.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/docs/sponsor.pdf
--------------------------------------------------------------------------------
/2016/fa71b257f4d3dbb315092fb69f18e0b4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2016/fa71b257f4d3dbb315092fb69f18e0b4.png
--------------------------------------------------------------------------------
/2016/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | React Rally
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/2016/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-rally",
3 | "version": "2.0.0",
4 | "description": "React Rally 2016 Conference Website",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "karma start --single-run",
8 | "start": "webpack-dev-server --inline --content-base ./",
9 | "build": "npm run imagemin && NODE_ENV=production webpack",
10 | "imagemin": "./scripts/imagemin",
11 | "deploy": "./scripts/deploy"
12 | },
13 | "repository": {
14 | "type": "git",
15 | "url": "github.com/react-rally/www"
16 | },
17 | "author": "Matt Zabriskie",
18 | "license": "MIT",
19 | "dependencies": {
20 | "classnames": "^2.2.5",
21 | "moment": "^2.14.1",
22 | "react": "^0.14.7",
23 | "react-dom": "^0.14.7",
24 | "react-router": "^2.0.1"
25 | },
26 | "devDependencies": {
27 | "babel-core": "^6.7.2",
28 | "babel-loader": "^6.2.4",
29 | "babel-preset-es2015": "^6.6.0",
30 | "babel-preset-react": "^6.5.0",
31 | "css-loader": "^0.23.1",
32 | "file-loader": "^0.8.5",
33 | "imagemin": "^4.0.0",
34 | "imagemin-pngquant": "^4.2.2",
35 | "json-loader": "^0.5.4",
36 | "karma": "^0.13.22",
37 | "mocha": "^2.4.5",
38 | "node-sass": "^3.4.2",
39 | "sass-loader": "^3.2.0",
40 | "style-loader": "^0.13.0",
41 | "webpack": "^1.12.14",
42 | "webpack-dev-server": "^1.14.1"
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/2016/scripts/deploy:
--------------------------------------------------------------------------------
1 | #!/bin/bash -e
2 |
3 | # delete old bundle images
4 | IMGRX="/[a-z0-9]{32}.png"
5 | find ../ -type f -maxdepth 2 | egrep $IMGRX | xargs rm
6 |
7 | # generate bundle
8 | npm run build
9 |
10 | # copy new bundle images
11 | find . -type f -maxdepth 1 | egrep $IMGRX | xargs -I{} cp {} ../
12 |
13 | # copy files
14 | cp bundle.js ../
15 | cp index.html ../
16 | cp 404.html ../
17 |
18 | # copy assets
19 | rm -rf ../assets
20 | mkdir ../assets
21 | cp -rf assets/dist ../assets
22 |
23 | # update github
24 | git add ../
25 | git commit -m "Updating site"
26 | git push
27 |
--------------------------------------------------------------------------------
/2016/scripts/imagemin:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | var Imagemin = require('imagemin');
4 | var pngquant = require('imagemin-pngquant');
5 |
6 | new Imagemin()
7 | .src('assets/img/**/*.{gif,jpg,jpeg,png,svg}')
8 | .dest('assets/dist/img')
9 | .use(Imagemin.jpegtran({progressive: true}))
10 | .use(pngquant({quality: '65-80', speed: 4}))
11 | .run(function (err, files) {
12 | console.log(err, files);
13 | });
14 |
--------------------------------------------------------------------------------
/2016/webpack.config.js:
--------------------------------------------------------------------------------
1 | var webpack = require('webpack');
2 | var plugins = [];
3 |
4 | if (process.env.NODE_ENV === 'production') {
5 | plugins.push(
6 | new webpack.optimize.UglifyJsPlugin()
7 | );
8 | }
9 |
10 | module.exports = {
11 | entry: './index.js',
12 | output: {
13 | filename: 'bundle.js'
14 | },
15 | module: {
16 | loaders: [
17 | {
18 | test: /\.js$/,
19 | exclude: /node_modules/,
20 | loader: 'babel',
21 | query: {
22 | presets: ['es2015', 'react']
23 | }
24 | },
25 | {
26 | test: /\.png$/,
27 | loader: 'file'
28 | },
29 | {
30 | test: /\.scss$/,
31 | loaders: ['style', 'css', 'sass']
32 | },
33 | {
34 | test: /\/api\//,
35 | loader: 'json-loader'
36 | }
37 | ]
38 | },
39 | resolve: {
40 | modulesDirectories: [ 'app', 'node_modules' ]
41 | },
42 | devServer: {
43 | historyApiFallback: true
44 | },
45 | plugins: plugins
46 | };
47 |
--------------------------------------------------------------------------------
/2017/.nvmrc:
--------------------------------------------------------------------------------
1 | 7.7.2
2 |
--------------------------------------------------------------------------------
/2017/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | React Rally
5 |
6 |
7 |
8 |
9 |
32 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/2017/api/sponsors:
--------------------------------------------------------------------------------
1 | {
2 | "Premier": [
3 | {
4 | "name": "Egghead.io",
5 | "url": "https://egghead.io/browse/frameworks/react",
6 | "image": "assets/dist/img/sponsors/egghead.svg",
7 | "style": {
8 | "width": "500px"
9 | }
10 | }
11 | ],
12 | "Platinum": [
13 | {
14 | "name": "Facebook",
15 | "url": "https://www.facebook.com/careers",
16 | "image": "assets/dist/img/sponsors/facebook.png"
17 | },
18 | {
19 | "name": "WordPress.com",
20 | "url": "https://wordpress.com",
21 | "image": "assets/dist/img/sponsors/wordpress.png"
22 | },
23 | {
24 | "name": "Webflow",
25 | "url": "https://webflow.com/",
26 | "image": "assets/dist/img/sponsors/webflow.png"
27 | }
28 | ],
29 | "Gold": [
30 | {
31 | "name": "Netlify",
32 | "url": "https://www.netlify.com/",
33 | "image": "assets/dist/img/sponsors/netlify.png"
34 | },
35 | {
36 | "name": "Instructure",
37 | "url": "https://www.instructure.com/careers/",
38 | "image": "assets/dist/img/sponsors/instructure.png"
39 | },
40 | {
41 | "name": "BugSnag",
42 | "url": "https://www.bugsnag.com/platforms/react-error-reporting/?utm_source=&utm_medium=conference&utm_content=logo&utm_campaign=reactrally-17&utm_term=",
43 | "image": "assets/dist/img/sponsors/bugsnag.png"
44 | },
45 | {
46 | "name": "Jane",
47 | "url": "http://www.jane.com/careers",
48 | "image": "assets/dist/img/sponsors/jane.png"
49 | }
50 | ],
51 | "Silver": [
52 | ],
53 | "Supporters": [
54 | ]
55 | }
56 |
--------------------------------------------------------------------------------
/2017/app/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Footer from 'components/Footer'
3 | import Header from 'components/Header'
4 |
5 | export default (props) => {
6 | return (
7 |
8 |
9 |
10 | {props.children}
11 |
12 |
13 |
14 | )
15 | }
16 |
--------------------------------------------------------------------------------
/2017/app/components/About.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default function About() {
4 | return (
5 |
6 | React Rally is a two day single track conference for developers of all backgrounds using Facebook's React.js, React Native, and related tools.
7 | Speakers will cover topics such as React Native, Flux, ES6, isomorphic universal JavaScript, and so much more.
8 | Whether you're a seasoned developer who has been using React since before it was cool, or a newcomer to the scene, React Rally has something for everyone!
9 |
10 | )
11 | }
12 |
--------------------------------------------------------------------------------
/2017/app/components/Avatar.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | let size = props.size || 200
5 | return (
6 |
11 | )
12 | }
13 |
--------------------------------------------------------------------------------
/2017/app/components/Button.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | return (
5 |
11 | {props.children}
12 |
13 | )
14 | }
15 |
--------------------------------------------------------------------------------
/2017/app/components/Card.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | return (
5 |
8 | {props.children}
9 |
10 | )
11 | }
12 |
--------------------------------------------------------------------------------
/2017/app/components/Icon.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | return (
5 |
6 |
7 |
8 | )
9 | }
10 |
--------------------------------------------------------------------------------
/2017/app/components/Legend.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | return (
5 |
6 |
7 |
{props.children}
8 |
9 | )
10 | }
11 |
--------------------------------------------------------------------------------
/2017/app/components/Newsletter.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default () => {
4 | return (
5 |
10 | )
11 | }
12 |
--------------------------------------------------------------------------------
/2017/app/components/Person.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Avatar from 'components/Avatar'
3 | import Icon from 'components/Icon'
4 |
5 | export default (props) => {
6 | return (
7 |
8 |
9 | {props.name}
10 | {props.title}
11 |
12 | {props.twitter && (
13 |
14 | )}
15 | {props.github && (
16 |
17 | )}
18 |
19 |
20 | )
21 | }
22 |
23 |
--------------------------------------------------------------------------------
/2017/app/components/Tickets.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react'
2 | import constants from 'helpers/constants'
3 | import DateUtils from 'helpers/DateUtils'
4 | import Button from 'components/Button'
5 | import moment from 'moment'
6 |
7 | const TICKET_RELEASE_TIME = moment.utc(constants.Dates.TICKET_RELEASE)
8 |
9 | export default class Tickets extends Component {
10 | render() {
11 | let ticketsAvailable = moment.utc().isSameOrAfter(TICKET_RELEASE_TIME)
12 | let diff
13 |
14 | if (!ticketsAvailable) {
15 | diff = TICKET_RELEASE_TIME.diff(moment.utc())
16 | setTimeout(this.forceUpdate.bind(this), 1000)
17 | }
18 |
19 | return (
20 |
21 | {ticketsAvailable ? (
22 |
Buy Tickets
23 | ) : (
24 |
25 | Tickets on sale soon
26 |
{DateUtils.duration(diff)}
27 |
28 | )}
29 |
30 | )
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/2017/app/helpers/DateUtils.js:
--------------------------------------------------------------------------------
1 | const DateUtils = {}
2 |
3 | DateUtils.SECONDS = 1000
4 | DateUtils.MINUTES = DateUtils.SECONDS * 60
5 | DateUtils.HOURS = DateUtils.MINUTES * 60
6 | DateUtils.DAYS = DateUtils.HOURS * 24
7 |
8 | DateUtils.duration = (timeInMillis) => {
9 | let intervals = {
10 | 'd': DateUtils.DAYS,
11 | 'h': DateUtils.HOURS,
12 | 'm': DateUtils.MINUTES,
13 | 's': DateUtils.SECONDS,
14 | }
15 | let sb = ''
16 |
17 | Object.keys(intervals).forEach((k) => {
18 | let v = intervals[k]
19 | let unit = Math.floor(timeInMillis / v)
20 | timeInMillis %= v
21 |
22 | if (sb.length === 0 && unit === 0) return
23 | if (sb.length > 0) sb += ':'
24 | if (String(unit).length === 1) unit = '0' + unit
25 | sb += unit + k
26 | })
27 | return sb
28 | }
29 |
30 | export default DateUtils
31 |
--------------------------------------------------------------------------------
/2017/app/helpers/constants.js:
--------------------------------------------------------------------------------
1 | const constants = {}
2 | export default constants
3 |
4 | constants.Links = {
5 | CODE_OF_CONDUCT: 'http://confcodeofconduct.com/',
6 | TICKET_SALES: 'https://ti.to/trace-events/react-rally-2017',
7 | PROPOSAL_FORM: 'http://speak.reactrally.com/events/react-rally-2017',
8 | VENUE_DIRECTIONS: 'https://www.google.com/maps/place/150+W+500+S,+Salt+Lake+City,+UT+84101/@40.7593099,-111.8967117,18z/data=!4m5!3m4!1s0x8752f51b0003c00d:0x3848c38225710a1!8m2!3d40.7593059!4d-111.8956174',
9 | HOTEL_RESERVATION: 'https://www.starwoodmeeting.com/Book/reactrally',
10 | PARTY_DIRECTIONS: 'https://www.google.com/maps/place/239+Main+St,+Salt+Lake+City,+UT+84111/@40.7644077,-111.890665,18z/data=!4m5!3m4!1s0x8752f50fb887bf49:0x2a34ca1a9e86b09f!8m2!3d40.7644448!4d-111.8895774',
11 | LIVE_STREAM_PLACEHOLDER: 'https://youtu.be/5NNOrp_83RU',
12 | LIVE_STREAM_DAY_ONE: 'https://www.youtube.com/embed/GverPLbSqEE',
13 | LIVE_STREAM_DAY_TWO: 'https://www.youtube.com/embed/HRJ_VjkmyiE',
14 | LIVE_STREAM_OVER: 'https://youtu.be/T1XgFsitnQw',
15 | YOUTUBE_CHANNEL: 'https://www.youtube.com/playlist?list=PLUD4kD-wL_zYSfU3tIYsb4WqfFQzO_EjQ',
16 | SPONSOR_PROSPECTUS: 'docs/sponsor.pdf'
17 | }
18 |
19 | constants.Dates = {
20 | CFP_OPEN: '2017-03-17T06:00:00-00:00',
21 | CFP_CLOSE: '2017-04-16T06:00:00-00:00',
22 | TICKET_RELEASE: '2017-04-14T18:00:00-00:00',
23 | CONF_DAY_ONE: '2017-08-24T06:00:00-00:00',
24 | CONF_DAY_TWO: '2017-08-25T06:00:00-00:00'
25 | }
26 |
--------------------------------------------------------------------------------
/2017/app/helpers/googleAnalytics.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
3 | (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
4 | m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
5 | })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
6 |
7 | ga('create', 'UA-60963027-1', 'auto');
8 | ga('send', 'pageview');
9 | })();
10 |
--------------------------------------------------------------------------------
/2017/app/helpers/livestream.js:
--------------------------------------------------------------------------------
1 | import constants from 'helpers/constants'
2 | import moment from 'moment';
3 |
4 | const isNowBetween = (one, two) => moment.utc().isBetween(moment.utc(one), moment.utc(two));
5 |
6 | function getLiveStreamURL() {
7 | let url
8 |
9 | if (moment.utc().isBefore(moment.utc(constants.Dates.CONF_DAY_ONE))) {
10 | url = constants.Links.LIVE_STREAM_PLACEHOLDER
11 | } else if (isNowBetween(constants.Dates.CONF_DAY_ONE, constants.Dates.CONF_DAY_TWO)) {
12 | url = constants.Links.LIVE_STREAM_DAY_ONE
13 | } else if (isNowBetween(constants.Dates.CONF_DAY_TWO, moment.utc(constants.Dates.CONF_DAY_TWO).add(1, 'd'))) {
14 | url = constants.Links.LIVE_STREAM_DAY_TWO
15 | } else {
16 | url = constants.Links.LIVE_STREAM_OVER
17 | }
18 |
19 | return url
20 | }
21 |
22 | function getLiveStreamEmbedURL() {
23 | let url = getLiveStreamURL()
24 |
25 | if (url) {
26 | url = url.replace('youtu.be', 'youtube.com/embed')
27 | }
28 |
29 | return url
30 | }
31 |
32 | export { getLiveStreamURL, getLiveStreamEmbedURL }
33 |
--------------------------------------------------------------------------------
/2017/app/helpers/shuffle.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Suffle an array immutably using Fisher-Yates shuffle
3 | *
4 | * @param {array} list The array to shuffle
5 | * @return {array} A new array containing shuffled values from list
6 | */
7 | export default function shuffle (list) {
8 | const result = [].concat(list)
9 |
10 | for (let i = list.length - 1; i > 0; i--) {
11 | const j = Math.floor(Math.random() * (i + 1))
12 | const temp = result[i]
13 |
14 | result[i] = result[j]
15 | result[j] = temp
16 | }
17 |
18 | return result
19 | }
20 |
--------------------------------------------------------------------------------
/2017/app/screens/About/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import About from 'components/About'
3 | import Legend from 'components/Legend'
4 | import Person from 'components/Person'
5 |
6 | export default () => {
7 | return (
8 |
9 |
About React Rally
10 |
11 |
12 |
Organizers
13 |
20 |
27 |
33 |
34 |
35 | )
36 | }
37 |
--------------------------------------------------------------------------------
/2017/app/screens/Speakers/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Legend from 'components/Legend'
3 | import Person from 'components/Person'
4 | import shuffle from 'helpers/shuffle'
5 | import SpeakerData from '../../../api/speakers'
6 |
7 | export default () => {
8 | return (
9 |
10 |
Speakers
11 |
12 | {Object.keys(SpeakerData).length > 0 ? (
13 | shuffle(Object.keys(SpeakerData)).map(key =>
)
14 | ) : (
15 | We haven't selected any speakers yet. Why not check out this adorable cat video while you wait?
16 | )}
17 |
18 |
19 | )
20 | }
21 |
--------------------------------------------------------------------------------
/2017/app/screens/Sponsors/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import constants from 'helpers/constants'
3 | import Button from 'components/Button'
4 | import Legend from 'components/Legend'
5 | import SponsorData from '../../../api/sponsors'
6 |
7 | export default () => {
8 | return (
9 |
10 |
Thank you to our fine sponsors. Want to help support React Rally? We'd love to talk with you.
11 |
Download Prospectus
12 | {Object.keys(SponsorData).filter(level => SponsorData[level].length > 0).map(level => {
13 | return (
14 |
15 |
{level}
16 | {SponsorData[level].map((sponsor, i) => {
17 | return sponsor.image ? (
18 |
19 |
20 |
21 | ) : (
22 |
{sponsor.name}
23 | )
24 | })}
25 |
26 | )
27 | })}
28 |
29 | )
30 | }
31 |
--------------------------------------------------------------------------------
/2017/app/screens/Stream/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import constants from 'helpers/constants'
3 | import { getLiveStreamEmbedURL } from 'helpers/livestream'
4 |
5 | export default () => {
6 | let url = getLiveStreamEmbedURL()
7 |
8 | return (
9 |
10 |
Live Stream
11 |
19 |
20 | )
21 | }
22 |
--------------------------------------------------------------------------------
/2017/assets/css/responsive-500.scss:
--------------------------------------------------------------------------------
1 | /* Responsive styles for max-width 500px */
2 | .Person {
3 | margin: 25px 0;
4 | }
5 |
6 | .Sponsors img {
7 | max-width: 200px !important;
8 | }
9 | .Sponsors img {
10 | margin: 25px 15px;
11 | }
12 |
13 | .Stream__Embedded {
14 | width: 254px;
15 | height: 143px;
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/2017/assets/img/ReactLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/ReactLogo.png
--------------------------------------------------------------------------------
/2017/assets/img/RoseWagnerDetail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/RoseWagnerDetail.png
--------------------------------------------------------------------------------
/2017/assets/img/RoseWagnerMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/RoseWagnerMap.png
--------------------------------------------------------------------------------
/2017/assets/img/SaltLakeCity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/SaltLakeCity.png
--------------------------------------------------------------------------------
/2017/assets/img/SaltLakeCitySkyline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/SaltLakeCitySkyline.png
--------------------------------------------------------------------------------
/2017/assets/img/SheratonMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/SheratonMap.png
--------------------------------------------------------------------------------
/2017/assets/img/speakers/BonnieMilianB.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/BonnieMilianB.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/TheLarkInn.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/TheLarkInn.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/benmvp.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/benmvp.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/carakuei.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/carakuei.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/chantastic.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/chantastic.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/cmatheson.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/cmatheson.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/czaplic.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/czaplic.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/daajust.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/daajust.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/davidkpiano.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/davidkpiano.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/devonbl.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/devonbl.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/iPancreas.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/iPancreas.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/iam_preethi.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/iam_preethi.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/left_pad.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/left_pad.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/linclark.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/linclark.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/mjackson.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/mjackson.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/mxstbr.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/mxstbr.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/necolas.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/necolas.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/sugargreenbean.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/sugargreenbean.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/sxywu.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/sxywu.jpg
--------------------------------------------------------------------------------
/2017/assets/img/speakers/zackargyle.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/speakers/zackargyle.jpg
--------------------------------------------------------------------------------
/2017/assets/img/sponsors/bugsnag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/sponsors/bugsnag.png
--------------------------------------------------------------------------------
/2017/assets/img/sponsors/facebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/sponsors/facebook.png
--------------------------------------------------------------------------------
/2017/assets/img/sponsors/instructure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/sponsors/instructure.png
--------------------------------------------------------------------------------
/2017/assets/img/sponsors/jane.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/sponsors/jane.png
--------------------------------------------------------------------------------
/2017/assets/img/sponsors/netlify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/sponsors/netlify.png
--------------------------------------------------------------------------------
/2017/assets/img/sponsors/webflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/sponsors/webflow.png
--------------------------------------------------------------------------------
/2017/assets/img/sponsors/wordpress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/assets/img/sponsors/wordpress.png
--------------------------------------------------------------------------------
/2017/c9d00197123bb4610f5d43cb5e8f8b9a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/c9d00197123bb4610f5d43cb5e8f8b9a.png
--------------------------------------------------------------------------------
/2017/docs/sponsor.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/docs/sponsor.pdf
--------------------------------------------------------------------------------
/2017/fa71b257f4d3dbb315092fb69f18e0b4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2017/fa71b257f4d3dbb315092fb69f18e0b4.png
--------------------------------------------------------------------------------
/2017/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | React Rally
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/2017/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-rally",
3 | "version": "2.0.0",
4 | "description": "React Rally 2016 Conference Website",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "karma start --single-run",
8 | "start": "webpack-dev-server --inline --content-base ./",
9 | "build": "npm run imagemin && NODE_ENV=production webpack",
10 | "imagemin": "./scripts/imagemin",
11 | "deploy": "./scripts/deploy"
12 | },
13 | "repository": {
14 | "type": "git",
15 | "url": "github.com/react-rally/www"
16 | },
17 | "author": "Matt Zabriskie",
18 | "license": "MIT",
19 | "dependencies": {
20 | "classnames": "^2.2.5",
21 | "moment": "^2.14.1",
22 | "react": "^0.14.7",
23 | "react-dom": "^0.14.7",
24 | "react-router": "^2.0.1"
25 | },
26 | "devDependencies": {
27 | "babel-core": "^6.7.2",
28 | "babel-loader": "^6.2.4",
29 | "babel-preset-es2015": "^6.6.0",
30 | "babel-preset-react": "^6.5.0",
31 | "css-loader": "^0.23.1",
32 | "file-loader": "^0.8.5",
33 | "imagemin": "^4.0.0",
34 | "imagemin-pngquant": "^4.2.2",
35 | "json-loader": "^0.5.4",
36 | "karma": "^0.13.22",
37 | "mocha": "^2.4.5",
38 | "node-sass": "^3.4.2",
39 | "sass-loader": "^3.2.0",
40 | "style-loader": "^0.13.0",
41 | "webpack": "^1.12.14",
42 | "webpack-dev-server": "^1.14.1"
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/2017/scripts/deploy:
--------------------------------------------------------------------------------
1 | #!/bin/bash -e
2 |
3 | # delete old bundle images
4 | IMGRX="/[a-z0-9]{32}.png"
5 | find ../ -type f -maxdepth 2 | egrep $IMGRX | xargs rm
6 |
7 | # generate bundle
8 | npm run build
9 |
10 | # copy new bundle images
11 | find . -type f -maxdepth 1 | egrep $IMGRX | xargs -I{} cp {} ../
12 |
13 | # copy files
14 | cp bundle.js ../
15 | cp index.html ../
16 | cp 404.html ../
17 |
18 | # copy assets
19 | rm -rf ../assets
20 | mkdir ../assets
21 | cp -rf assets/dist ../assets
22 |
23 | # copy docs
24 | rm -rf ../docs
25 | cp -rf docs ../
26 |
27 | # update github
28 | git add ../
29 | git commit -m "Updating site"
30 | git push
31 |
--------------------------------------------------------------------------------
/2017/scripts/imagemin:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | var Imagemin = require('imagemin');
4 | var pngquant = require('imagemin-pngquant');
5 |
6 | new Imagemin()
7 | .src('assets/img/**/*.{gif,jpg,jpeg,png,svg}')
8 | .dest('assets/dist/img')
9 | .use(Imagemin.jpegtran({progressive: true}))
10 | .use(pngquant({quality: '65-80', speed: 4}))
11 | .run(function (err, files) {
12 | console.log(err, files);
13 | });
14 |
--------------------------------------------------------------------------------
/2017/table-flip.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash -e
2 |
3 | echo '(╯°□°)╯︵ ┻━┻'
4 |
5 | echo "-- install node"
6 | export NVM_DIR="$HOME/.nvm"
7 | [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
8 |
9 | nvm install && nvm use
10 |
11 | echo "-- installing dependencies"
12 | rm -rf node_modules
13 | npm cache clean
14 | npm install
15 |
--------------------------------------------------------------------------------
/2017/webpack.config.js:
--------------------------------------------------------------------------------
1 | var webpack = require('webpack');
2 | var plugins = [];
3 |
4 | if (process.env.NODE_ENV === 'production') {
5 | plugins.push(
6 | new webpack.DefinePlugin({
7 | 'process.env': {
8 | NODE_ENV: JSON.stringify('production')
9 | }
10 | })
11 | );
12 | plugins.push(
13 | new webpack.optimize.UglifyJsPlugin()
14 | );
15 | }
16 |
17 | module.exports = {
18 | entry: './index.js',
19 | output: {
20 | filename: 'bundle.js'
21 | },
22 | module: {
23 | loaders: [
24 | {
25 | test: /\.js$/,
26 | exclude: /node_modules/,
27 | loader: 'babel',
28 | query: {
29 | presets: ['es2015', 'react']
30 | }
31 | },
32 | {
33 | test: /\.png$/,
34 | loader: 'file'
35 | },
36 | {
37 | test: /\.scss$/,
38 | loaders: ['style', 'css', 'sass']
39 | },
40 | {
41 | test: /\/api\//,
42 | loader: 'json-loader'
43 | }
44 | ]
45 | },
46 | resolve: {
47 | modulesDirectories: [ 'app', 'node_modules' ]
48 | },
49 | devServer: {
50 | historyApiFallback: true
51 | },
52 | plugins: plugins
53 | };
54 |
--------------------------------------------------------------------------------
/2018/.nvmrc:
--------------------------------------------------------------------------------
1 | 7.7.2
2 |
--------------------------------------------------------------------------------
/2018/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | React Rally
5 |
6 |
7 |
8 |
9 |
32 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/2018/aedf3af8eab0485c6ee8abd7513bba95.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/aedf3af8eab0485c6ee8abd7513bba95.png
--------------------------------------------------------------------------------
/2018/api/tickets:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "Early Bird - Round One",
4 | "price": 400,
5 | "description": "Early bird tickets for React Rally! 20% off because we love early bird ticket buyers.",
6 | "soldOut": true
7 | },
8 | {
9 | "name": "Early Bird - Round Two",
10 | "price": 450,
11 | "description": "One last chance to grab a React Rally ticket at a discounted price.",
12 | "soldOut": true
13 | },
14 | {
15 | "name": "Standard",
16 | "price": 500,
17 | "description": "The real deal. One ticket to React Rally.",
18 | "soldOut": true
19 | },
20 | {
21 | "name": "Significant Other Activity Ticket",
22 | "price": 20,
23 | "description": "Activities will be held both August 16 and August 17 in the evening after the conference. Purchase this ticket and bring your significant other along for the fun."
24 | },
25 | {
26 | "name": "Charitable Donation",
27 | "price": "-",
28 | "description": "All proceeds from this ticket will be donated to Black Girls Code. This won't grant you entrance to the conference, but it will help you feel good."
29 | }
30 | ]
31 |
--------------------------------------------------------------------------------
/2018/app/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Footer from 'components/Footer'
3 | import Header from 'components/Header'
4 |
5 | export default (props) => {
6 | return (
7 |
8 |
9 |
10 | {props.children}
11 |
12 |
13 |
14 | )
15 | }
16 |
--------------------------------------------------------------------------------
/2018/app/components/About.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default function About() {
4 | return (
5 |
6 | React Rally is a two day single track conference for developers of all backgrounds using Facebook's React.js, React Native, and related tools.
7 | Speakers will cover topics such as React Native, Flux, ES6, isomorphic universal JavaScript, and so much more.
8 | Whether you're a seasoned developer who has been using React since before it was cool, or a newcomer to the scene, React Rally has something for everyone!
9 |
10 | )
11 | }
12 |
--------------------------------------------------------------------------------
/2018/app/components/Avatar.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | let size = props.size || 200
5 | return (
6 |
11 | )
12 | }
13 |
--------------------------------------------------------------------------------
/2018/app/components/Button.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | return (
5 |
11 | {props.children}
12 |
13 | )
14 | }
15 |
--------------------------------------------------------------------------------
/2018/app/components/Card.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | return (
5 |
8 | {props.children}
9 |
10 | )
11 | }
12 |
--------------------------------------------------------------------------------
/2018/app/components/Countdown.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react'
2 | import moment from 'moment'
3 |
4 | import DateUtils from 'helpers/DateUtils'
5 |
6 | export default class Tickets extends Component {
7 | componentDidMount () {
8 | this.timer = setInterval(this.forceUpdate.bind(this), 1000)
9 | }
10 |
11 | componentWillUnmount () {
12 | clearInterval(this.timer)
13 | }
14 |
15 | render() {
16 | const diff = moment.utc(this.props.date).diff(moment.utc())
17 |
18 | return (
19 |
20 | {this.props.label}
21 |
{DateUtils.duration(diff)}
22 |
23 | )
24 | }
25 | }
26 |
27 |
--------------------------------------------------------------------------------
/2018/app/components/Icon.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | return (
5 |
6 |
7 |
8 | )
9 | }
10 |
--------------------------------------------------------------------------------
/2018/app/components/Legend.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | return (
5 |
6 |
7 |
{props.children}
8 |
9 | )
10 | }
11 |
--------------------------------------------------------------------------------
/2018/app/components/Newsletter.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default () => {
4 | return (
5 |
10 | )
11 | }
12 |
--------------------------------------------------------------------------------
/2018/app/components/Person.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Avatar from 'components/Avatar'
3 | import Icon from 'components/Icon'
4 |
5 | export default (props) => {
6 | return (
7 |
8 |
9 | {props.name}
10 | {props.title}
11 |
12 | {props.twitter && (
13 |
14 | )}
15 | {props.github && (
16 |
17 | )}
18 |
19 |
20 | )
21 | }
22 |
23 |
--------------------------------------------------------------------------------
/2018/app/components/Tickets.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react'
2 | import moment from 'moment'
3 |
4 | import constants from 'helpers/constants'
5 | import Button from 'components/Button'
6 | import Countdown from 'components/Countdown'
7 |
8 | const TICKET_RELEASE_TIME = moment.utc(constants.Dates.TICKET_RELEASE)
9 |
10 | export default class Tickets extends Component {
11 | render() {
12 | const ticketsAvailable = moment.utc().isSameOrAfter(TICKET_RELEASE_TIME)
13 |
14 | if (!ticketsAvailable) {
15 | setTimeout(this.forceUpdate.bind(this), 1000)
16 | }
17 |
18 | return (
19 |
20 | {ticketsAvailable ? (
21 | Buy Tickets
22 | ) : (
23 |
24 | )}
25 |
26 | )
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/2018/app/helpers/DateUtils.js:
--------------------------------------------------------------------------------
1 | const DateUtils = {}
2 |
3 | DateUtils.SECONDS = 1000
4 | DateUtils.MINUTES = DateUtils.SECONDS * 60
5 | DateUtils.HOURS = DateUtils.MINUTES * 60
6 | DateUtils.DAYS = DateUtils.HOURS * 24
7 |
8 | DateUtils.duration = (timeInMillis) => {
9 | let intervals = {
10 | 'd': DateUtils.DAYS,
11 | 'h': DateUtils.HOURS,
12 | 'm': DateUtils.MINUTES,
13 | 's': DateUtils.SECONDS,
14 | }
15 | let sb = ''
16 |
17 | Object.keys(intervals).forEach((k) => {
18 | let v = intervals[k]
19 | let unit = Math.floor(timeInMillis / v)
20 | timeInMillis %= v
21 |
22 | if (sb.length === 0 && unit === 0) return
23 | if (sb.length > 0) sb += ':'
24 | if (String(unit).length === 1) unit = '0' + unit
25 | sb += unit + k
26 | })
27 | return sb
28 | }
29 |
30 | export default DateUtils
31 |
--------------------------------------------------------------------------------
/2018/app/helpers/constants.js:
--------------------------------------------------------------------------------
1 | const constants = {}
2 | export default constants
3 |
4 | constants.Links = {
5 | CODE_OF_CONDUCT: 'http://confcodeofconduct.com/',
6 | TICKET_SALES: 'https://ti.to/trace-events/react-rally-2018',
7 | PROPOSAL_FORM: 'http://speak.reactrally.com/events/react-rally-2018',
8 | HOTEL_RESERVATION: 'https://www.starwoodmeeting.com/Book/reactrally2018',
9 | VENUE_DIRECTIONS: 'https://goo.gl/maps/V1kpixDA8DF2',
10 | PARTY_DIRECTIONS: 'https://goo.gl/maps/AeYKJrkAFZG2',
11 | LIVE_STREAM_PLACEHOLDER: 'https://www.youtube.com/embed/5NNOrp_83RU',
12 | LIVE_STREAM_DAY_ONE: 'https://www.youtube.com/embed/nUhN03Uo6go',
13 | LIVE_STREAM_DAY_TWO: 'https://www.youtube.com/embed/ii-T6HrkZFM',
14 | LIVE_STREAM_OVER: 'https://www.youtube.com/embed/T1XgFsitnQw',
15 | YOUTUBE_CHANNEL: 'https://www.youtube.com/playlist?list=PLUD4kD-wL_zYSfU3tIYsb4WqfFQzO_EjQ',
16 | SPONSOR_PROSPECTUS: 'docs/sponsor.pdf'
17 | }
18 |
19 | constants.Prices = {
20 | HOTEL_RATE: 165
21 | }
22 |
23 | constants.Dates = {
24 | CFP_OPEN: '2018-02-11T06:00:00-00:00',
25 | CFP_CLOSE: '2018-03-31T06:00:00-00:00',
26 | TICKET_RELEASE: '2018-04-11T18:00:00-00:00',
27 | CONF_DAY_ONE: '2018-08-16T06:00:00-00:00',
28 | CONF_DAY_TWO: '2018-08-17T06:00:00-00:00',
29 | HOTEL_DISCOUNT: '2018-07-16T06:00:00-00:00'
30 | }
31 |
--------------------------------------------------------------------------------
/2018/app/helpers/googleAnalytics.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
3 | (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
4 | m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
5 | })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
6 |
7 | ga('create', 'UA-60963027-1', 'auto');
8 | ga('send', 'pageview');
9 | })();
10 |
--------------------------------------------------------------------------------
/2018/app/helpers/livestream.js:
--------------------------------------------------------------------------------
1 | import constants from 'helpers/constants'
2 | import moment from 'moment';
3 |
4 | const isNowBetween = (one, two) => moment.utc().isBetween(moment.utc(one), moment.utc(two));
5 |
6 | function getLiveStreamURL() {
7 | let url
8 |
9 | if (moment.utc().isBefore(moment.utc(constants.Dates.CONF_DAY_ONE))) {
10 | url = constants.Links.LIVE_STREAM_PLACEHOLDER
11 | } else if (isNowBetween(constants.Dates.CONF_DAY_ONE, constants.Dates.CONF_DAY_TWO)) {
12 | url = constants.Links.LIVE_STREAM_DAY_ONE
13 | } else if (isNowBetween(constants.Dates.CONF_DAY_TWO, moment.utc(constants.Dates.CONF_DAY_TWO).add(1, 'd'))) {
14 | url = constants.Links.LIVE_STREAM_DAY_TWO
15 | } else {
16 | url = constants.Links.LIVE_STREAM_OVER
17 | }
18 |
19 | return url
20 | }
21 |
22 | function getLiveStreamEmbedURL() {
23 | let url = getLiveStreamURL()
24 |
25 | if (url) {
26 | url = url.replace('youtu.be', 'youtube.com/embed')
27 | }
28 |
29 | return url
30 | }
31 |
32 | export { getLiveStreamURL, getLiveStreamEmbedURL }
33 |
--------------------------------------------------------------------------------
/2018/app/helpers/shuffle.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Suffle an array immutably using Fisher-Yates shuffle
3 | *
4 | * @param {array} list The array to shuffle
5 | * @return {array} A new array containing shuffled values from list
6 | */
7 | export default function shuffle (list) {
8 | const result = [].concat(list)
9 |
10 | for (let i = list.length - 1; i > 0; i--) {
11 | const j = Math.floor(Math.random() * (i + 1))
12 | const temp = result[i]
13 |
14 | result[i] = result[j]
15 | result[j] = temp
16 | }
17 |
18 | return result
19 | }
20 |
--------------------------------------------------------------------------------
/2018/app/screens/Speakers/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Legend from 'components/Legend'
3 | import Person from 'components/Person'
4 | import shuffle from 'helpers/shuffle'
5 | import SpeakerData from '../../../api/speakers'
6 |
7 | export default () => {
8 | return (
9 |
10 |
Speakers
11 |
12 | {Object.keys(SpeakerData).length > 0 ? (
13 | shuffle(Object.keys(SpeakerData)).map(key =>
)
14 | ) : (
15 | We haven't selected any speakers yet. Why not check out this adorable cat video while you wait?
16 | )}
17 |
18 |
19 | )
20 | }
21 |
--------------------------------------------------------------------------------
/2018/app/screens/Sponsors/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import constants from 'helpers/constants'
3 | import Button from 'components/Button'
4 | import Legend from 'components/Legend'
5 | import SponsorData from '../../../api/sponsors'
6 |
7 | export default () => {
8 | return (
9 |
10 |
Thank you to our fine sponsors. Want to help support React Rally? We'd love to talk with you.
11 |
Download Prospectus
12 | {Object.keys(SponsorData).filter(level => SponsorData[level].length > 0).map(level => {
13 | return (
14 |
15 |
{level}
16 | {SponsorData[level].map((sponsor, i) => {
17 | return sponsor.image ? (
18 |
19 |
20 |
21 | ) : (
22 |
{sponsor.name}
23 | )
24 | })}
25 |
26 | )
27 | })}
28 |
29 | )
30 | }
31 |
--------------------------------------------------------------------------------
/2018/app/screens/Stream/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import constants from 'helpers/constants'
3 | import { getLiveStreamEmbedURL } from 'helpers/livestream'
4 |
5 | export default () => {
6 | let url = getLiveStreamEmbedURL()
7 |
8 | return (
9 |
10 |
Live Stream
11 |
20 |
21 | )
22 | }
23 |
--------------------------------------------------------------------------------
/2018/assets/css/responsive-500.scss:
--------------------------------------------------------------------------------
1 | /* Responsive styles for max-width 500px */
2 | .Person {
3 | margin: 25px 0;
4 | }
5 |
6 | .Sponsors img {
7 | max-width: 200px !important;
8 | }
9 | .Sponsors img {
10 | margin: 25px 15px;
11 | }
12 |
13 | .Stream__Embedded {
14 | width: 254px;
15 | height: 143px;
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/2018/assets/dist/img/ReactLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/ReactLogo.png
--------------------------------------------------------------------------------
/2018/assets/dist/img/RoseWagnerDetail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/RoseWagnerDetail.png
--------------------------------------------------------------------------------
/2018/assets/dist/img/RoseWagnerMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/RoseWagnerMap.png
--------------------------------------------------------------------------------
/2018/assets/dist/img/SaltLakeCity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/SaltLakeCity.png
--------------------------------------------------------------------------------
/2018/assets/dist/img/SaltLakeCitySkyline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/SaltLakeCitySkyline.png
--------------------------------------------------------------------------------
/2018/assets/dist/img/SheratonMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/SheratonMap.png
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/_jayphelps.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/_jayphelps.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/apvarun.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/apvarun.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/aweary.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/aweary.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/carofine247.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/carofine247.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/chantastic.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/chantastic.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/eveporcello.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/eveporcello.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/featherart.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/featherart.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/holtbt.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/holtbt.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/jayphelps.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/jayphelps.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/joshwcomeau.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/joshwcomeau.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/ken_wheeler.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/ken_wheeler.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/kentcdodds.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/kentcdodds.png
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/left_pad.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/left_pad.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/modernserf.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/modernserf.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/mybluewristband.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/mybluewristband.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/panicwhenever.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/panicwhenever.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/ryanflorence.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/ryanflorence.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/sugarpirate_.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/sugarpirate_.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/swyx.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/swyx.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/sxywu.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/sxywu.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/threepointone.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/threepointone.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/speakers/wisecobbler.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/speakers/wisecobbler.jpg
--------------------------------------------------------------------------------
/2018/assets/dist/img/sponsors/amex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/sponsors/amex.png
--------------------------------------------------------------------------------
/2018/assets/dist/img/sponsors/bugsnag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/sponsors/bugsnag.png
--------------------------------------------------------------------------------
/2018/assets/dist/img/sponsors/egghead.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/sponsors/egghead.png
--------------------------------------------------------------------------------
/2018/assets/dist/img/sponsors/formidable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/sponsors/formidable.png
--------------------------------------------------------------------------------
/2018/assets/dist/img/sponsors/instructure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/sponsors/instructure.png
--------------------------------------------------------------------------------
/2018/assets/dist/img/sponsors/microsoft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/sponsors/microsoft.png
--------------------------------------------------------------------------------
/2018/assets/dist/img/sponsors/progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/sponsors/progress.png
--------------------------------------------------------------------------------
/2018/assets/dist/img/sponsors/usds.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/sponsors/usds.png
--------------------------------------------------------------------------------
/2018/assets/dist/img/sponsors/webflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/sponsors/webflow.png
--------------------------------------------------------------------------------
/2018/assets/dist/img/sponsors/workfront.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/dist/img/sponsors/workfront.png
--------------------------------------------------------------------------------
/2018/assets/img/ReactLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/ReactLogo.png
--------------------------------------------------------------------------------
/2018/assets/img/RoseWagnerDetail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/RoseWagnerDetail.png
--------------------------------------------------------------------------------
/2018/assets/img/RoseWagnerMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/RoseWagnerMap.png
--------------------------------------------------------------------------------
/2018/assets/img/SaltLakeCity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/SaltLakeCity.png
--------------------------------------------------------------------------------
/2018/assets/img/SaltLakeCitySkyline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/SaltLakeCitySkyline.png
--------------------------------------------------------------------------------
/2018/assets/img/SheratonMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/SheratonMap.png
--------------------------------------------------------------------------------
/2018/assets/img/speakers/apvarun.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/apvarun.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/aweary.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/aweary.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/carofine247.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/carofine247.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/chantastic.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/chantastic.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/eveporcello.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/eveporcello.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/featherart.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/featherart.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/holtbt.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/holtbt.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/jayphelps.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/jayphelps.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/joshwcomeau.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/joshwcomeau.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/ken_wheeler.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/ken_wheeler.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/kentcdodds.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/kentcdodds.png
--------------------------------------------------------------------------------
/2018/assets/img/speakers/left_pad.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/left_pad.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/modernserf.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/modernserf.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/mybluewristband.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/mybluewristband.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/panicwhenever.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/panicwhenever.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/ryanflorence.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/ryanflorence.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/sugarpirate_.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/sugarpirate_.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/swyx.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/swyx.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/sxywu.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/sxywu.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/threepointone.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/threepointone.jpg
--------------------------------------------------------------------------------
/2018/assets/img/speakers/wisecobbler.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/speakers/wisecobbler.jpg
--------------------------------------------------------------------------------
/2018/assets/img/sponsors/amex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/sponsors/amex.png
--------------------------------------------------------------------------------
/2018/assets/img/sponsors/bugsnag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/sponsors/bugsnag.png
--------------------------------------------------------------------------------
/2018/assets/img/sponsors/egghead.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/sponsors/egghead.png
--------------------------------------------------------------------------------
/2018/assets/img/sponsors/formidable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/sponsors/formidable.png
--------------------------------------------------------------------------------
/2018/assets/img/sponsors/instructure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/sponsors/instructure.png
--------------------------------------------------------------------------------
/2018/assets/img/sponsors/microsoft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/sponsors/microsoft.png
--------------------------------------------------------------------------------
/2018/assets/img/sponsors/progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/sponsors/progress.png
--------------------------------------------------------------------------------
/2018/assets/img/sponsors/usds.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/sponsors/usds.png
--------------------------------------------------------------------------------
/2018/assets/img/sponsors/webflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/sponsors/webflow.png
--------------------------------------------------------------------------------
/2018/assets/img/sponsors/workfront.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/assets/img/sponsors/workfront.png
--------------------------------------------------------------------------------
/2018/c9d00197123bb4610f5d43cb5e8f8b9a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/c9d00197123bb4610f5d43cb5e8f8b9a.png
--------------------------------------------------------------------------------
/2018/docs/sponsor.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/docs/sponsor.pdf
--------------------------------------------------------------------------------
/2018/e418e67b17ceb3fdd7de46debfdd37d8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/e418e67b17ceb3fdd7de46debfdd37d8.png
--------------------------------------------------------------------------------
/2018/fa71b257f4d3dbb315092fb69f18e0b4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2018/fa71b257f4d3dbb315092fb69f18e0b4.png
--------------------------------------------------------------------------------
/2018/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | React Rally
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/2018/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-rally",
3 | "version": "2.0.0",
4 | "description": "React Rally 2018 Conference Website",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "karma start --single-run",
8 | "start": "webpack-dev-server --inline --content-base ./",
9 | "build": "npm run imagemin && NODE_ENV=production webpack",
10 | "imagemin": "./scripts/imagemin",
11 | "deploy": "./scripts/deploy"
12 | },
13 | "repository": {
14 | "type": "git",
15 | "url": "github.com/react-rally/www"
16 | },
17 | "author": "Matt Zabriskie",
18 | "license": "MIT",
19 | "dependencies": {
20 | "classnames": "^2.2.5",
21 | "moment": "^2.14.1",
22 | "prop-types": "15.6.1",
23 | "react": "^16.4.2",
24 | "react-dom": "^16.4.2",
25 | "react-router": "^3.2.0"
26 | },
27 | "devDependencies": {
28 | "babel-core": "^6.7.2",
29 | "babel-loader": "^6.2.4",
30 | "babel-preset-es2015": "^6.6.0",
31 | "babel-preset-react": "^6.5.0",
32 | "css-loader": "^0.23.1",
33 | "file-loader": "^0.8.5",
34 | "imagemin": "^4.0.0",
35 | "imagemin-pngquant": "^4.2.2",
36 | "json-loader": "^0.5.4",
37 | "karma": "^0.13.22",
38 | "mocha": "^2.4.5",
39 | "node-sass": "^3.4.2",
40 | "sass-loader": "^3.2.0",
41 | "style-loader": "^0.13.0",
42 | "webpack": "^1.12.14",
43 | "webpack-dev-server": "^1.14.1"
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/2018/scripts/deploy:
--------------------------------------------------------------------------------
1 | #!/bin/bash -e
2 |
3 | # delete old bundle images
4 | IMGRX="/[a-z0-9]{32}.png"
5 | find ../ -type f -maxdepth 2 | egrep $IMGRX | xargs rm
6 |
7 | # generate bundle
8 | npm run build
9 |
10 | # copy new bundle images
11 | find . -type f -maxdepth 1 | egrep $IMGRX | xargs -I{} cp {} ../
12 |
13 | # copy files
14 | cp bundle.js ../
15 | cp index.html ../
16 | cp 404.html ../
17 |
18 | # copy assets
19 | rm -rf ../assets
20 | mkdir ../assets
21 | cp -rf assets/dist ../assets
22 |
23 | # copy docs
24 | rm -rf ../docs
25 | cp -rf docs ../
26 |
27 | # update github
28 | git add ../
29 | git commit -m "Updating site"
30 | git push
31 |
--------------------------------------------------------------------------------
/2018/scripts/imagemin:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | var Imagemin = require('imagemin');
4 | var pngquant = require('imagemin-pngquant');
5 |
6 | new Imagemin()
7 | .src('assets/img/**/*.{gif,jpg,jpeg,png,svg}')
8 | .dest('assets/dist/img')
9 | .use(Imagemin.jpegtran({progressive: true}))
10 | .use(pngquant({quality: '65-80', speed: 4}))
11 | .run(function (err, files) {
12 | console.log(err, files);
13 | });
14 |
--------------------------------------------------------------------------------
/2018/table-flip.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash -e
2 |
3 | echo '(╯°□°)╯︵ ┻━┻'
4 |
5 | echo "-- install node"
6 | export NVM_DIR="$HOME/.nvm"
7 | [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
8 |
9 | nvm install && nvm use
10 |
11 | echo "-- installing dependencies"
12 | rm -rf node_modules
13 | npm cache clean
14 | npm install
15 |
--------------------------------------------------------------------------------
/2018/webpack.config.js:
--------------------------------------------------------------------------------
1 | var webpack = require('webpack');
2 | var plugins = [];
3 |
4 | if (process.env.NODE_ENV === 'production') {
5 | plugins.push(
6 | new webpack.DefinePlugin({
7 | 'process.env': {
8 | NODE_ENV: JSON.stringify('production')
9 | }
10 | })
11 | );
12 | plugins.push(
13 | new webpack.optimize.UglifyJsPlugin()
14 | );
15 | }
16 |
17 | module.exports = {
18 | entry: './index.js',
19 | output: {
20 | filename: 'bundle.js'
21 | },
22 | module: {
23 | loaders: [
24 | {
25 | test: /\.js$/,
26 | exclude: /node_modules/,
27 | loader: 'babel',
28 | query: {
29 | presets: ['es2015', 'react']
30 | }
31 | },
32 | {
33 | test: /\.png$/,
34 | loader: 'file'
35 | },
36 | {
37 | test: /\.scss$/,
38 | loaders: ['style', 'css', 'sass']
39 | },
40 | {
41 | test: /\/api\//,
42 | loader: 'json-loader'
43 | }
44 | ]
45 | },
46 | resolve: {
47 | modulesDirectories: [ 'app', 'node_modules' ]
48 | },
49 | devServer: {
50 | historyApiFallback: true
51 | },
52 | plugins: plugins
53 | };
54 |
--------------------------------------------------------------------------------
/2019/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | React Rally
5 |
6 |
7 |
8 |
9 |
32 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/2019/api/organizers:
--------------------------------------------------------------------------------
1 | {
2 | "mzabriskie": {
3 | "name": "Matt Zabriskie",
4 | "title": "Co-organizer",
5 | "avatar": "https://avatars2.githubusercontent.com/u/199035",
6 | "twitter": "mzabriskie",
7 | "github": "mzabriskie"
8 | },
9 | "jergason": {
10 | "name": "Jamison Dance",
11 | "title": "Co-organizer",
12 | "avatar": "https://avatars0.githubusercontent.com/u/72027",
13 | "twitter": "jergason",
14 | "github": "jergason"
15 | },
16 | "sunny4days": {
17 | "name": "Sunny Legget",
18 | "title": "Event manager",
19 | "avatar": "https://pbs.twimg.com/profile_images/648946319013212160/z1_mkLp4_400x400.jpg",
20 | "twitter": "sunny4days"
21 | },
22 | "": {
23 | "name": "Shyloh Belnap",
24 | "title": "Event manager",
25 | "avatar": "https://pbs.twimg.com/profile_images/859536726292922368/HTVnE9tc_400x400.jpg",
26 | "twitter": "shylohb"
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/2019/api/schedule:
--------------------------------------------------------------------------------
1 | {
2 | "dayOne": [
3 | ],
4 | "dayTwo": [
5 | ]
6 | }
7 |
8 |
9 |
--------------------------------------------------------------------------------
/2019/api/sponsors:
--------------------------------------------------------------------------------
1 | {
2 | "Premier": [
3 | ],
4 | "Platinum": [
5 | ],
6 | "Gold": [
7 | ],
8 | "Silver": [
9 | ],
10 | "Supporters": [
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/2019/api/tickets:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "Early Bird - Round One",
4 | "price": 400,
5 | "description": "Early bird tickets for React Rally! 20% off because we love early bird ticket buyers.",
6 | "soldOut": false
7 | },
8 | {
9 | "name": "Early Bird - Round Two",
10 | "price": 450,
11 | "description": "One last chance to grab a React Rally ticket at a discounted price.",
12 | "soldOut": false
13 | },
14 | {
15 | "name": "Standard",
16 | "price": 500,
17 | "description": "The real deal. One ticket to React Rally.",
18 | "soldOut": false
19 | },
20 | {
21 | "name": "Significant Other Activity Ticket",
22 | "price": 20,
23 | "description": "Activities will be held both August 16 and August 17 in the evening after the conference. Purchase this ticket and bring your significant other along for the fun."
24 | },
25 | {
26 | "name": "Charitable Donation",
27 | "price": "-",
28 | "description": "All proceeds from this ticket will be donated to Black Girls Code. This won't grant you entrance to the conference, but it will help you feel good."
29 | }
30 | ]
31 |
--------------------------------------------------------------------------------
/2019/app/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Footer from 'components/Footer'
3 | import Header from 'components/Header'
4 |
5 | export default (props) => {
6 | return (
7 |
8 |
9 |
10 | {props.children}
11 |
12 |
13 |
14 | )
15 | }
16 |
--------------------------------------------------------------------------------
/2019/app/components/About.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default function About() {
4 | return (
5 |
6 | React Rally is a two day single track conference for developers of all backgrounds using Facebook's React.js, React Native, and related tools.
7 | Speakers will cover topics such as React Native, Flux, ES6, isomorphic universal JavaScript, and so much more.
8 | Whether you're a seasoned developer who has been using React since before it was cool, or a newcomer to the scene, React Rally has something for everyone!
9 |
10 | )
11 | }
12 |
--------------------------------------------------------------------------------
/2019/app/components/Avatar.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | let size = props.size || 200
5 | return (
6 |
11 | )
12 | }
13 |
--------------------------------------------------------------------------------
/2019/app/components/Button.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | return (
5 |
11 | {props.children}
12 |
13 | )
14 | }
15 |
--------------------------------------------------------------------------------
/2019/app/components/Card.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | return (
5 |
8 | {props.children}
9 |
10 | )
11 | }
12 |
--------------------------------------------------------------------------------
/2019/app/components/Countdown.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react'
2 | import moment from 'moment'
3 |
4 | import DateUtils from 'helpers/DateUtils'
5 |
6 | export default class Tickets extends Component {
7 | componentDidMount () {
8 | this.timer = setInterval(this.forceUpdate.bind(this), 1000)
9 | }
10 |
11 | componentWillUnmount () {
12 | clearInterval(this.timer)
13 | }
14 |
15 | render() {
16 | const diff = moment.utc(this.props.date).diff(moment.utc())
17 |
18 | return (
19 |
20 | {this.props.label}
21 |
{DateUtils.duration(diff)}
22 |
23 | )
24 | }
25 | }
26 |
27 |
--------------------------------------------------------------------------------
/2019/app/components/Icon.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | return (
5 |
6 |
7 |
8 | )
9 | }
10 |
--------------------------------------------------------------------------------
/2019/app/components/Legend.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default (props) => {
4 | return (
5 |
6 |
7 |
{props.children}
8 |
9 | )
10 | }
11 |
--------------------------------------------------------------------------------
/2019/app/components/Newsletter.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default () => {
4 | return (
5 |
10 | )
11 | }
12 |
--------------------------------------------------------------------------------
/2019/app/components/Person.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Avatar from 'components/Avatar'
3 | import Icon from 'components/Icon'
4 |
5 | export default (props) => {
6 | return (
7 |
8 |
9 | {props.name}
10 | {props.title}
11 |
12 | {props.twitter && (
13 |
14 | )}
15 | {props.github && (
16 |
17 | )}
18 |
19 |
20 | )
21 | }
22 |
23 |
--------------------------------------------------------------------------------
/2019/app/components/Tickets.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react'
2 | import moment from 'moment'
3 |
4 | import constants from 'helpers/constants'
5 | import Button from 'components/Button'
6 | import Countdown from 'components/Countdown'
7 |
8 | const TICKET_RELEASE_TIME = moment.utc(constants.Dates.TICKET_RELEASE)
9 |
10 | export default class Tickets extends Component {
11 | render() {
12 | const ticketsAvailable = moment.utc().isSameOrAfter(TICKET_RELEASE_TIME)
13 |
14 | if (!ticketsAvailable) {
15 | setTimeout(this.forceUpdate.bind(this), 1000)
16 | }
17 |
18 | return (
19 |
20 | {ticketsAvailable ? (
21 | Buy Tickets
22 | ) : (
23 |
24 | )}
25 |
26 | )
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/2019/app/helpers/DateUtils.js:
--------------------------------------------------------------------------------
1 | const DateUtils = {}
2 |
3 | DateUtils.SECONDS = 1000
4 | DateUtils.MINUTES = DateUtils.SECONDS * 60
5 | DateUtils.HOURS = DateUtils.MINUTES * 60
6 | DateUtils.DAYS = DateUtils.HOURS * 24
7 |
8 | DateUtils.duration = (timeInMillis) => {
9 | let intervals = {
10 | 'd': DateUtils.DAYS,
11 | 'h': DateUtils.HOURS,
12 | 'm': DateUtils.MINUTES,
13 | 's': DateUtils.SECONDS,
14 | }
15 | let sb = ''
16 |
17 | Object.keys(intervals).forEach((k) => {
18 | let v = intervals[k]
19 | let unit = Math.floor(timeInMillis / v)
20 | timeInMillis %= v
21 |
22 | if (sb.length === 0 && unit === 0) return
23 | if (sb.length > 0) sb += ':'
24 | if (String(unit).length === 1) unit = '0' + unit
25 | sb += unit + k
26 | })
27 | return sb
28 | }
29 |
30 | export default DateUtils
31 |
--------------------------------------------------------------------------------
/2019/app/helpers/constants.js:
--------------------------------------------------------------------------------
1 | const constants = {}
2 | export default constants
3 |
4 | constants.Links = {
5 | CODE_OF_CONDUCT: 'http://confcodeofconduct.com/',
6 | TICKET_SALES: 'https://ti.to/trace-events/react-rally-2019',
7 | PROPOSAL_FORM: 'http://speak.reactrally.com/events/react-rally-2019',
8 | HOTEL_RESERVATION: 'https://www.starwoodmeeting.com/Book/reactrally2019',
9 | VENUE_DIRECTIONS: 'https://goo.gl/maps/V1kpixDA8DF2',
10 | PARTY_DIRECTIONS: 'https://goo.gl/maps/AeYKJrkAFZG2',
11 | LIVE_STREAM_PLACEHOLDER: 'https://www.youtube.com/embed/5NNOrp_83RU',
12 | LIVE_STREAM_DAY_ONE: 'https://www.youtube.com/embed/nUhN03Uo6go',
13 | LIVE_STREAM_DAY_TWO: 'https://www.youtube.com/embed/ii-T6HrkZFM',
14 | LIVE_STREAM_OVER: 'https://www.youtube.com/embed/T1XgFsitnQw',
15 | YOUTUBE_CHANNEL: 'https://www.youtube.com/playlist?list=PLUD4kD-wL_zYSfU3tIYsb4WqfFQzO_EjQ',
16 | SPONSOR_PROSPECTUS: 'docs/sponsor.pdf'
17 | }
18 |
19 | constants.Prices = {
20 | HOTEL_RATE: 165
21 | }
22 |
23 | constants.Dates = {
24 | CFP_OPEN: '2019-03-01T06:00:00-00:00',
25 | CFP_CLOSE: '2019-03-31T06:00:00-00:00',
26 | TICKET_RELEASE: '2019-04-10T18:00:00-00:00',
27 | CONF_DAY_ONE: '2019-08-22T06:00:00-00:00',
28 | CONF_DAY_TWO: '2019-08-23T06:00:00-00:00',
29 | HOTEL_DISCOUNT: '2019-07-16T06:00:00-00:00'
30 | }
31 |
--------------------------------------------------------------------------------
/2019/app/helpers/googleAnalytics.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
3 | (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
4 | m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
5 | })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
6 |
7 | ga('create', 'UA-60963027-1', 'auto');
8 | ga('send', 'pageview');
9 | })();
10 |
--------------------------------------------------------------------------------
/2019/app/helpers/livestream.js:
--------------------------------------------------------------------------------
1 | import constants from 'helpers/constants'
2 | import moment from 'moment';
3 |
4 | const isNowBetween = (one, two) => moment.utc().isBetween(moment.utc(one), moment.utc(two));
5 |
6 | function getLiveStreamURL() {
7 | let url
8 |
9 | if (moment.utc().isBefore(moment.utc(constants.Dates.CONF_DAY_ONE))) {
10 | url = constants.Links.LIVE_STREAM_PLACEHOLDER
11 | } else if (isNowBetween(constants.Dates.CONF_DAY_ONE, constants.Dates.CONF_DAY_TWO)) {
12 | url = constants.Links.LIVE_STREAM_DAY_ONE
13 | } else if (isNowBetween(constants.Dates.CONF_DAY_TWO, moment.utc(constants.Dates.CONF_DAY_TWO).add(1, 'd'))) {
14 | url = constants.Links.LIVE_STREAM_DAY_TWO
15 | } else {
16 | url = constants.Links.LIVE_STREAM_OVER
17 | }
18 |
19 | return url
20 | }
21 |
22 | function getLiveStreamEmbedURL() {
23 | let url = getLiveStreamURL()
24 |
25 | if (url) {
26 | url = url.replace('youtu.be', 'youtube.com/embed')
27 | }
28 |
29 | return url
30 | }
31 |
32 | export { getLiveStreamURL, getLiveStreamEmbedURL }
33 |
--------------------------------------------------------------------------------
/2019/app/helpers/shuffle.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Suffle an array immutably using Fisher-Yates shuffle
3 | *
4 | * @param {array} list The array to shuffle
5 | * @return {array} A new array containing shuffled values from list
6 | */
7 | export default function shuffle (list) {
8 | const result = [].concat(list)
9 |
10 | for (let i = list.length - 1; i > 0; i--) {
11 | const j = Math.floor(Math.random() * (i + 1))
12 | const temp = result[i]
13 |
14 | result[i] = result[j]
15 | result[j] = temp
16 | }
17 |
18 | return result
19 | }
20 |
--------------------------------------------------------------------------------
/2019/app/screens/About/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import About from 'components/About'
3 | import Legend from 'components/Legend'
4 | import Person from 'components/Person'
5 | import shuffle from 'helpers/shuffle'
6 |
7 | import OrganizerData from '../../../api/organizers'
8 |
9 | export default () => {
10 | return (
11 |
12 |
About React Rally
13 |
14 |
15 |
Attendee Experience
16 |
17 | As an attendee of React Rally you will enjoy two full days of talks where you will learn and keep your React knowledge current. You will also have built-in downtime throughout the day so you can discuss what you're learning with other developers, spend time catching up with old friends, or find opportunities to meet new friends. You will be provided with catered breakfast, and you will receive a gift card for lunch so that you can go out and explore Salt Lake City and enjoy some of the local fare. At the end of the day you can unwind and enjoy karaoke, dessert, board games, live music, or lawn games at the conference after parties held each evening.
18 |
19 |
20 |
Organizers
21 | {shuffle(Object.keys(OrganizerData)).map(key => {
22 | return
23 | })}
24 |
25 |
26 | )
27 | }
28 |
--------------------------------------------------------------------------------
/2019/app/screens/Speakers/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Legend from 'components/Legend'
3 | import Person from 'components/Person'
4 | import shuffle from 'helpers/shuffle'
5 | import SpeakerData from '../../../api/speakers'
6 |
7 | export default () => {
8 | return (
9 |
10 |
Speakers
11 |
12 | {Object.keys(SpeakerData).length > 0 ? (
13 | shuffle(Object.keys(SpeakerData)).map(key =>
)
14 | ) : (
15 | We haven't selected any speakers yet. Why not check out this adorable cat video while you wait?
16 | )}
17 |
18 |
19 | )
20 | }
21 |
--------------------------------------------------------------------------------
/2019/app/screens/Sponsors/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import constants from 'helpers/constants'
3 | import Button from 'components/Button'
4 | import Legend from 'components/Legend'
5 | import SponsorData from '../../../api/sponsors'
6 |
7 | export default () => {
8 | return (
9 |
10 |
Thank you to our fine sponsors. Want to help support React Rally? We'd love to talk with you.
11 |
Download Prospectus
12 | {Object.keys(SponsorData).filter(level => SponsorData[level].length > 0).map(level => {
13 | return (
14 |
15 |
{level}
16 | {SponsorData[level].map((sponsor, i) => {
17 | return sponsor.image ? (
18 |
19 |
20 |
21 | ) : (
22 |
{sponsor.name}
23 | )
24 | })}
25 |
26 | )
27 | })}
28 |
29 | )
30 | }
31 |
--------------------------------------------------------------------------------
/2019/app/screens/Stream/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import constants from 'helpers/constants'
3 | import { getLiveStreamEmbedURL } from 'helpers/livestream'
4 |
5 | export default () => {
6 | let url = getLiveStreamEmbedURL()
7 |
8 | return (
9 |
10 |
Live Stream
11 |
20 |
21 | )
22 | }
23 |
--------------------------------------------------------------------------------
/2019/assets/css/responsive-500.scss:
--------------------------------------------------------------------------------
1 | /* Responsive styles for max-width 500px */
2 | .Person {
3 | margin: 25px 0;
4 | }
5 |
6 | .Sponsors img {
7 | max-width: 200px !important;
8 | }
9 | .Sponsors img {
10 | margin: 25px 15px;
11 | }
12 |
13 | .Stream__Embedded {
14 | width: 254px;
15 | height: 143px;
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/2019/assets/dist/img/ReactLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/ReactLogo.png
--------------------------------------------------------------------------------
/2019/assets/dist/img/RoseWagnerDetail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/RoseWagnerDetail.png
--------------------------------------------------------------------------------
/2019/assets/dist/img/RoseWagnerMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/RoseWagnerMap.png
--------------------------------------------------------------------------------
/2019/assets/dist/img/SaltLakeCity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/SaltLakeCity.png
--------------------------------------------------------------------------------
/2019/assets/dist/img/SaltLakeCitySkyline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/SaltLakeCitySkyline.png
--------------------------------------------------------------------------------
/2019/assets/dist/img/SheratonMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/SheratonMap.png
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/alex.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/alex.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/anjana.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/anjana.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/anjana.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/anjana.png
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/anthony.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/anthony.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/brian.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/brian.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/danielle.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/danielle.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/david.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/david.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/emily.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/emily.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/feather.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/feather.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/glen.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/glen.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/jen.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/jen.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/joel.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/joel.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/johnny.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/johnny.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/josh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/josh.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/justin.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/justin.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/kent.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/kent.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/mihai.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/mihai.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/nat.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/nat.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/nicole.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/nicole.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/princiya.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/princiya.jpeg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/princiya.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/princiya.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/revel.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/revel.jpg
--------------------------------------------------------------------------------
/2019/assets/dist/img/speakers/will.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/dist/img/speakers/will.jpg
--------------------------------------------------------------------------------
/2019/assets/img/ReactLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/ReactLogo.png
--------------------------------------------------------------------------------
/2019/assets/img/RoseWagnerDetail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/RoseWagnerDetail.png
--------------------------------------------------------------------------------
/2019/assets/img/RoseWagnerMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/RoseWagnerMap.png
--------------------------------------------------------------------------------
/2019/assets/img/SaltLakeCity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/SaltLakeCity.png
--------------------------------------------------------------------------------
/2019/assets/img/SaltLakeCitySkyline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/SaltLakeCitySkyline.png
--------------------------------------------------------------------------------
/2019/assets/img/SheratonMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/SheratonMap.png
--------------------------------------------------------------------------------
/2019/assets/img/speakers/alex.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/alex.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/anjana.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/anjana.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/anthony.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/anthony.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/brian.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/brian.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/danielle.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/danielle.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/david.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/david.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/emily.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/emily.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/feather.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/feather.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/glen.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/glen.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/jen.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/jen.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/joel.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/joel.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/johnny.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/johnny.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/josh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/josh.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/justin.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/justin.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/kent.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/kent.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/mihai.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/mihai.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/nat.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/nat.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/nicole.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/nicole.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/princiya.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/princiya.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/revel.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/revel.jpg
--------------------------------------------------------------------------------
/2019/assets/img/speakers/will.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/assets/img/speakers/will.jpg
--------------------------------------------------------------------------------
/2019/docs/sponsor.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/2019/docs/sponsor.pdf
--------------------------------------------------------------------------------
/2019/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | React Rally
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/2019/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-rally",
3 | "version": "2.0.0",
4 | "description": "React Rally 2019 Conference Website",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "karma start --single-run",
8 | "start": "webpack-dev-server --inline --content-base ./",
9 | "build": "npm run imagemin && NODE_ENV=production webpack",
10 | "imagemin": "./scripts/imagemin",
11 | "deploy": "./scripts/deploy"
12 | },
13 | "repository": {
14 | "type": "git",
15 | "url": "github.com/react-rally/www"
16 | },
17 | "author": "Matt Zabriskie",
18 | "license": "MIT",
19 | "dependencies": {
20 | "classnames": "^2.2.5",
21 | "moment": "^2.14.1",
22 | "prop-types": "15.6.1",
23 | "react": "^16.4.2",
24 | "react-dom": "^16.4.2",
25 | "react-router": "^3.2.0"
26 | },
27 | "devDependencies": {
28 | "babel-core": "^6.7.2",
29 | "babel-loader": "^6.2.4",
30 | "babel-preset-es2015": "^6.6.0",
31 | "babel-preset-react": "^6.5.0",
32 | "css-loader": "^0.23.1",
33 | "file-loader": "^0.8.5",
34 | "imagemin": "^4.0.0",
35 | "imagemin-pngquant": "^4.2.2",
36 | "json-loader": "^0.5.4",
37 | "karma": "^0.13.22",
38 | "mocha": "^2.4.5",
39 | "node-sass": "^3.4.2",
40 | "sass-loader": "^3.2.0",
41 | "style-loader": "^0.13.0",
42 | "webpack": "^1.12.14",
43 | "webpack-dev-server": "^1.14.1"
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/2019/scripts/deploy:
--------------------------------------------------------------------------------
1 | #!/bin/bash -e
2 |
3 | # delete old bundle images
4 | IMGRX="/[a-z0-9]{32}.png"
5 | find ../ -type f -maxdepth 2 | egrep $IMGRX | xargs rm
6 |
7 | # generate bundle
8 | npm run build
9 |
10 | # copy new bundle images
11 | find . -type f -maxdepth 1 | egrep $IMGRX | xargs -I{} cp {} ../
12 |
13 | # copy files
14 | cp bundle.js ../
15 | cp index.html ../
16 | cp 404.html ../
17 |
18 | # copy assets
19 | rm -rf ../assets
20 | mkdir ../assets
21 | cp -rf assets/dist ../assets
22 |
23 | # copy docs
24 | rm -rf ../docs
25 | cp -rf docs ../
26 |
27 | # update github
28 | git add ../
29 | git commit -m "Updating site"
30 | git push
31 |
--------------------------------------------------------------------------------
/2019/scripts/imagemin:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | var Imagemin = require('imagemin');
4 | var pngquant = require('imagemin-pngquant');
5 |
6 | new Imagemin()
7 | .src('assets/img/**/*.{gif,jpg,jpeg,png,svg}')
8 | .dest('assets/dist/img')
9 | .use(Imagemin.jpegtran({progressive: true}))
10 | .use(pngquant({quality: '65-80', speed: 4}))
11 | .run(function (err, files) {
12 | console.log(err, files);
13 | });
14 |
--------------------------------------------------------------------------------
/2019/table-flip.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash -e
2 |
3 | echo '(╯°□°)╯︵ ┻━┻'
4 |
5 | echo "-- install node"
6 | export NVM_DIR="$HOME/.nvm"
7 | [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
8 |
9 | nvm install && nvm use
10 |
11 | echo "-- installing dependencies"
12 | rm -rf node_modules
13 | npm cache clean
14 | npm install
15 |
--------------------------------------------------------------------------------
/2019/webpack.config.js:
--------------------------------------------------------------------------------
1 | var webpack = require('webpack');
2 | var plugins = [];
3 |
4 | if (process.env.NODE_ENV === 'production') {
5 | plugins.push(
6 | new webpack.DefinePlugin({
7 | 'process.env': {
8 | NODE_ENV: JSON.stringify('production')
9 | }
10 | })
11 | );
12 | plugins.push(
13 | new webpack.optimize.UglifyJsPlugin()
14 | );
15 | }
16 |
17 | module.exports = {
18 | entry: './index.js',
19 | output: {
20 | filename: 'bundle.js'
21 | },
22 | module: {
23 | loaders: [
24 | {
25 | test: /\.js$/,
26 | exclude: /node_modules/,
27 | loader: 'babel',
28 | query: {
29 | presets: ['es2015', 'react']
30 | }
31 | },
32 | {
33 | test: /\.png$/,
34 | loader: 'file'
35 | },
36 | {
37 | test: /\.scss$/,
38 | loaders: ['style', 'css', 'sass']
39 | },
40 | {
41 | test: /\/api\//,
42 | loader: 'json-loader'
43 | }
44 | ]
45 | },
46 | resolve: {
47 | modulesDirectories: [ 'app', 'node_modules' ]
48 | },
49 | devServer: {
50 | historyApiFallback: true
51 | },
52 | plugins: plugins
53 | };
54 |
--------------------------------------------------------------------------------
/CNAME:
--------------------------------------------------------------------------------
1 | www.reactrally.com
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## Developing
2 |
3 | ```bash
4 | git clone git@github.com:react-rally/www.git react-rally
5 | cd react-rally
6 | cd [YEAR]
7 | npm install
8 | npm start
9 | open http://127.0.0.1:8080
10 | ```
11 |
12 | ## Deploying
13 |
14 | ```bash
15 | # Make your changes on master
16 | git add .
17 | git commit -m"[DESCRIPTION]"
18 | git push
19 |
20 | # Merge changes into gh-pages branch
21 | git checkout gh-pages
22 | git merge master
23 |
24 | # Once your changes have been merged
25 | cd [YEAR]
26 | npm run deploy
27 |
28 | # Move back to master
29 | git checkout master
30 | ```
31 |
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/favicon.ico
--------------------------------------------------------------------------------
/teaser/assets/fonts/true-crimes-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/teaser/assets/fonts/true-crimes-webfont.eot
--------------------------------------------------------------------------------
/teaser/assets/fonts/true-crimes-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/teaser/assets/fonts/true-crimes-webfont.ttf
--------------------------------------------------------------------------------
/teaser/assets/fonts/true-crimes-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/teaser/assets/fonts/true-crimes-webfont.woff
--------------------------------------------------------------------------------
/teaser/assets/img/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/teaser/assets/img/background.png
--------------------------------------------------------------------------------
/teaser/assets/img/city.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/teaser/assets/img/city.png
--------------------------------------------------------------------------------
/teaser/assets/img/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/teaser/assets/img/github.png
--------------------------------------------------------------------------------
/teaser/assets/img/mushroomCloud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/teaser/assets/img/mushroomCloud.png
--------------------------------------------------------------------------------
/teaser/assets/img/robotLasers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/teaser/assets/img/robotLasers.png
--------------------------------------------------------------------------------
/teaser/assets/img/slc-background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/teaser/assets/img/slc-background.png
--------------------------------------------------------------------------------
/teaser/assets/img/tentacle_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/teaser/assets/img/tentacle_left.png
--------------------------------------------------------------------------------
/teaser/assets/img/tentacle_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/teaser/assets/img/tentacle_right.png
--------------------------------------------------------------------------------
/teaser/assets/img/twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/react-rally/www/37ecf434ae3d631bb5d1ecd8a83c8e7d3501e15a/teaser/assets/img/twitter.png
--------------------------------------------------------------------------------
/teaser/assets/js/scripts.js:
--------------------------------------------------------------------------------
1 | // Analytics
2 | (function () {
3 | (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
4 | (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
5 | m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
6 | })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
7 |
8 | ga('create', 'UA-60963027-1', 'auto');
9 | ga('send', 'pageview');
10 | })();
11 |
12 | // User Agent
13 | (function () {
14 | var className = document.body.className;
15 | var PATTERNS = {
16 | firefox: /firefox/i,
17 | chrome: /chrome\/(.*) safari\//i,
18 | safari: /version\/(.*) safari\//i,
19 | ie: /(msie|trident)/i
20 | };
21 |
22 | for (var agent in PATTERNS) {
23 | if (PATTERNS.hasOwnProperty(agent) &&
24 | PATTERNS[agent].test(navigator.userAgent)) {
25 | className += ' ' + agent;
26 | break;
27 | }
28 | }
29 |
30 | document.body.className = className.replace(/(^ | $)/, '');
31 | })();
32 |
--------------------------------------------------------------------------------