SlideShare a Scribd company logo
START ME UP
1
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
Building an MVP
with Ember, Firebase
and Material Design
3
This is a 2 Part
Presentation
4
PART 1
Laying the groundwork
5
• Who am I?
• Definition of an MVP
• Who I think you might be
• MVP to me: What it is and what it isn't
• Why Ember.js: Run faster on solid ground
• Why Firebase: Commoditization & Innovation
• Why Material Design: Best of Breed GIANT
• Setting up the Project: AddOn and On
• Setting up Firebase: Hosting and Database
• Setting up Authorization: Can we talk?
• Run FirePaper test App and Login
• Where do we go from here?
PART 2
Putting it all together
8
• Review where we are at
• Managing the Forge: The Happy Vulcan
• Seeding Firebase: BYO Data
• Person Model - Form’s and Autosave
• Animations with LiquidFire
• Dilemma: What problems are we solving?
• Build out a basic Chat Client
• Sidebar’s and Ember Wormhole
• How to fit your MVP needs into FirePaper
• How much MVP: When is enough enough?
Brendan OHara
Consultant @ViaCapita
MBA
15 years Dev / 3 years Ember
Involved in many Start-ups
Dog lover
from Philadelphia
Live in New York
Berlin, Germany
Sofia, Bulgaria
Waterford, Ireland
London, England
Port au Prince, Haiti
TL;DR
Enough about me
40 Minutes
260 Slides
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
Don’t worry…
1 Slide / 6.5 Seconds
Time for Questions
if GEM does that sort of thing…
Here we go…
I want to establish
the the basic premise
of this presentation
We are talking about
building an MVP
What’s an MVP?
Minimum
Viable
Product
Let’s define that
a version of a new product
which allows a team to
collect the maximum
amount of validated
learning about customers
with the least effort.
Minimum
Viable
Product
Some people will say a
Landing Page is an MVP
Less isn’t inherently better
Minimum
Viable
Product
Some people will try to
build everything in an MVP
But then you are just
building a product.
You wont get any
feedback before you
build each feature
Minimum
VIABLE
Product
It has to have enough but
not too much
Enough value that early
adopters will use it
Enough value that early
adopters will pay for it
Goldilocks Zone
Goldilocks Zone
for Software
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
So where are we so far
I told you who I am
I have defined an MVP
I am making some
assumptions about who
you are.
You are a
front end developer
You are a
Ember.js developer
You are a
product manager
You are a
UX designer
Or maybe you are an
entrepreneur
Those are all
good answers
The key is that we all
want the same thing
To build applications
that people can use
and get real tangible
value from
That is a good
starting point
But let’s not get 

ahead of ourselves
We are NOT building
the next Facebook
We are NOT building
the next Twitter
We are NOT building
the next Instagram
Almost no one is…
But even if you ARE…
Or think you are…
You need to start
somewhere
You need to start
small
… or risk spending all
your time on features…
that you wont
need for years…
if EVER
There is a quote
from John Locke
We have to get off this island
John Locke
No man's knowledge …

can go beyond his experience.
John Locke
When you are building 

a business
When you are building 

an MVP
We have knowledge and
we have experience
And hopefully we 

have a strong vision
But we all believe we are
the average user.
We never are.
Ever.
Or even worse…
We think we know more
than the average user.
Even if that is true…
So we need to gain
experience
That we can only get from
REAL users
To increase our knowledge
Of what matters to 

REAL users
That is what an MVP is for
What about Agile?
Agile

having a quick, resourceful 

and adaptable character
I Release Early

and

I Release Often
That is fine for a
development process
Best case scenario

The first release is your

MVP
Agile

having a quick, resourceful 

and adaptable character
You cannot adapt if no
one uses it.
If it isn’t viable then no
one will actually use it
So from my POV

That is an MVP
Perhaps you knew all that and
if you did hurray!!
Give yourself a cookie
See we are 100 slides in
and we haven’t even
started on code yet…
But that’s good
There is so much to
decide before you write
the first line of code
We will get there
Eventually
Why EMBERJS
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
114
Convention over configuration
Routes & Ember Data
Mental Models or Community
115
But this is the
GLOBAL EMBER MEETUP
You already know that

That is the why
of EMBERJS
Why Ember.js?
Why Firebase?
Commoditization
Innovation
Commoditization: 

the process where
today’s Innovation

becomes tomorrows 

Cost of doing business
Let’s see that in
a cool diagram
New Idea
Custom
Built
Products
Service
COMMODITIZATION
Utility
INNOVATION
Ideas start out ‘bleeding edge’, then
‘custom built’ versions. As adoption
increases they become ‘products’ and
eventually ‘services’ or even ‘utilities’
New Idea
Custom
Built
Products
Service
COMMODITIZATION
Utility
INNOVATION
Let’s map this to
something we know a
little better.
Real Time
Web &
Mobile
SPA’s
Server Side
Applications
Server APIs
COMMODITIZATION
Database
File Storage
INNOVATION
Real Time
Web &
Mobile
SPA’s
Server Side
Applications
Server APIs
COMMODITIZATION
Database
File Storage
INNOVATION
Firebase acts as
your API / Database
Firebase Hosting
Serves your files
Firebase Hosting
Manages Authentication
All this without
having to run your
own server
That allows Ember.js
devs to focus only
on where they can
provide the most

Innovation
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
Tim Stirrat
Firebase guy in charge of Emberfire
Will I regret not having
my own server?!?
And neither should you
139
Not an architectural limitation.
It just gives you a starting point.
You can still do anything.
140
Add API services like
FileStack or Mailchimp
Add a Node.js Server to run
Elastic Search or
whatever you want or need
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
You still have your
imagination
That is the why
of FIREBASE
Why Firebase?
Why Material Design?
Sir Isaac Newton
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
148
If I have seen further, 

it is by standing on the
shoulders of giants.
Google === Giant
149
150
They have put together a
best of breed collection of
UX and UI design elements
Material Design
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
153
Material is the metaphor…

yada yada yada
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
155
MD has gotten the most
press on Android but it
looks beautiful on laptops
and desktops too
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
Rico Monteiro
https://www.behance.net/ricomonteiro
https://dribbble.com/Rico_Monteiro
159
You may say:
They look great but I use
Foundation or Bootstrap
160
If that is true…
I am so sorry for you.
161
Twitter Bootstrap does have
a Material Design library
162
But instead of that I suggest
looking at the options in the
next few slides…
163
There must be a 12 step
program for users of
Twitter Bootstrap
164
There are many
implementations of
Material Design
as a framework
Materialize CSS
HTML / CSS with Javascript
Ember-Materialize
Ember implementation/wrapper of Materialize CSS
Ember-CLI-Materialize
https://github.com/mike-north/ember-cli-materialize
Material Design Lite
HTML / CSS with Javascript
Ember-Material-Lite
Ember implementation/wrapper of Material Design Lite
Ember-Material-Lite
https://github.com/mike-north/ember-material-lite
Mike North
He is responsible for Ember versions of Materialize
and Material Lite along with many other contributors
Angular Material
This is however not Ember
Ember-Paper
Ember implementation of Angular Material
Ember-Paper
https://github.com/miguelcobain/ember-paper
Miguel Andrade
He is responsible for Ember-Paper
along with many, many other contributors
176
They all have a similar but not
identical array of controls.


Your choice may depend on the
project you are working on. 



I have used all 3 and now use
Ember-Paper for most projects
177
Why?
Because it doesn’t wrap an
external library.
More Ember friendly.
Will I regret not writing
all the CSS myself?!?
Never regret not writing CSS
180
This does not limit your design
It just gives you a baseline.
High ground to stand on so you
can see and DO more
That is the why of
MATERIAL DESIGN
Why Material Design?
See we are 180 slides in
and we haven’t even
started on code yet…
That ends now
Mostly
Project Setup

- firepaper -
npm install -g ember-cli
ember new firepaper
Terminal Install
Install ember fire
ember install ember-paper
I am using some
other add-ons…
We won’t need
them but…
ember install ember-cli-document-title
ember install ember-cli-file-picker
ember install ember-cli-star-rating
ember install ember-google-charts
ember install ember-i18n
ember install ember-cli-preloader
ember install ember-leaflet
ember install ember-moment
ember install ember-pikaday
ember install ember-pluralize
ember install liquid-fire
ember install ember-sortable
ember install ember-trix-editor
ember install ember-truth-helpers
ember install moment-timezone
I am going to release some
shorter videos on youtube
talking about add ons
You should have an
empty project with all the
add ons I am using.
Actually just clone my project



git clone https://github.com/brendanoh/firepaper.git
Firebase CLI Tools
Signup &
Configure

Firebase
firebase.com
Click Sign Up with Google
Firebase Dashboard
List your active projects / sites —- Add new on Left
App Name and URL
firepaper and firepaper.firebaseIO.com are what I chose
Takes you to App Dashboard
Normally the Data section will be empty
Hosting with Firebase
Taxi back to 

the Terminal
Firebase Init
You need to do it before you go on
Ember Build Prod
Even with an empty project
Firebase Deploy
Your site is usually live within 30-60 seconds
OK back to 

firebase.com
Click on the hosting tab
You can review and revert deployments and add your
custom domain name on this page
Use your own domain
Included with all paid plans - even 5$ Spark
Enter your custom domain
Click DONE :-)
Add DNS Record
This is 101domains.com
Add TXT file
Pretty easy
Verify Ownership
By adding some TXT files
They give you DNS Settings
A Records and C Name for setup on your registrar / host
24 Hours later ~
You have your app on your custom domain.
One last thing about
Firebase setup
Add rewrites section
That allows reloading of nested routes
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
Pudding is sacrosanct…
A few more
firebase.com

features
NoSQL Style Data Drill downs
More about this in PART 2
Editing data is easy
More about this in PART 2
You can configure security rules
More about this in PART 2
You can configure validations
More about this in PART 2
You can manage presence
More about this in PART 2
You can mock requests against Firebase
More about this in PART 2
Some basic analytics
More about this in PART 2
Create Google
App for Social
Authentication
Configure Google Authentication
add URL here
Google Developers Console
New Project
Your new App
Now we need to create OAuth ID
OAuth Consent Info
Create OAuth ID
Grab your data
We are on the move people
Paste in the Client ID
And Client Secret
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
DEMO 

https://fire-paper.com
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
We have only gotten so
far but we are doing
something significant
Start Me Up - Building an MVP with EmberJS, Firebase and Material Design
https://fire-paper.com

https://github.com/brendanoh/firepaper
Building an MVP
with Ember, Firebase
and Material Design
245
PART 2
in 3 or 6 weeks
AND BEYOND
246
• Review where we are at
• Managing the Forge: The Happy Vulcan
• Seeding Firebase: BYO Data
• i18n Localization First
• Person Model - Form’s and Autosave
• Animations with LiquidFire
• Dilemma: What problems are we solving?
• Build out a basic Chat Client
• Sidebar’s and Ember Wormhole
• How to fit your MVP needs into FirePaper
• How much MVP: When is enough enough?
Chat Client
Example from CV Resume
Localization First
Example from CV Resume
Person Form with Autosave
Example from CV Resume
Animated Transitions with LiquidFire
Example from CV Resume
Avatars and Personalization
Example from CV Resume
Cards, Tags and Chips
Example from CV Resume
Progress Bars
Example from CV Resume
Google Charts in a way you expect
Example from CV Resume
Google Charts in a way you don’t expect
Example from CV Resume
Online
youtube and my blog
258
Signup at
https://viacapita.com/blog
Email with all updates
259
Sincere thanks to
• Tim Stirrat
• Miguel Andrade
• Mike North
• And whoever made these gifs
Thanks!
Available for Consulting visit https://viacapita.com
brendan@OHaras.org Twitter: @BrendanOHara GitHub: @BrendanOH

More Related Content

Start Me Up - Building an MVP with EmberJS, Firebase and Material Design