Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building Lamplighter.io on Laravel

Building Lamplighter.io on Laravel

We had a great idea for a web-based software application. Now what? The idea was the easy part. Now it's time to execute. Should we use a framework? Should we try something new? How comfortable are we in tying a product to an open source tool?

I discuss the decision-making process behind developing Lamplighter.io on Laravel, the lessons we learned (and are learning) along the way, and why we weren't afraid to shift gears and dive in.

Ryan Masuga

April 24, 2014
Tweet

Other Decks in Business

Transcript

  1. @masuga
    @masugadesign
    @lamplighterapp
    SaaS on OSS
    Building Lamplighter.io on Laravel

    View full-size slide

  2. • Masuga Design
    Owner
    Client work, mostly EE
    • devot-ee.com
    Proprietor
    Marketplace for EE
    • placeimg.com
    Advisor
    Side Project
    • lamplighter.io
    Guy who stands by in awe
    Ryan Masuga

    View full-size slide

  3. Comfort Zone

    View full-size slide

  4. • Builds confidence
    • Cures boredom
    • Satisfies urge to grow
    • Increases productivity
    Benefits of the New
    Mike Taber, @SingleFounder
    Speaking at MicroConf

    View full-size slide

  5. Let’s Make a Product!

    View full-size slide

  6. 1. devot:ee Monitor
    Started with a “basic” project.
    2. expressionmonitor.com
    Expand the idea: tie in w/site to see in one place
    What’s the Big Idea?
    We could gather information from—and
    store information about—all your sites in a
    centralized spot...

    View full-size slide

  7. Monitor all your sites in one place.

    View full-size slide

  8. • Selfish
    Solve our own problem(s)
    • Altruistic
    Help other shops like ourselves
    • Realistic
    From $0 to money quickly
    What’s Our Purpose?

    View full-size slide

  9. What to Use?
    Endless choices.
    • Too rigid
    • Sole purpose: content
    • Lots of unused code
    • Potential license
    restrictions
    • Security
    • Time sink
    • Little ROI
    • Why recreate wheel?
    • Legwork is done
    • Blank slate
    • How to decide?
    CMS Hand Roll Framework

    View full-size slide

  10. Decisions, Decisions...
    Stay within the realm of feasibility
    • What do we already know?
    • This is a business. Let’s not go off a
    cliff “just because.”
    • A few options: Zend 2, Symfony 2,
    and...

    View full-size slide

  11. • Well documented
    • Good community support base
    • Logical, reasonable learning curve
    • Template language is easy (for front-end people)
    • Dev friendly stuff: Composer and migrations
    Laravel
    It has
    haters!

    View full-size slide

  12. Laravel Benefits
    Modern, scalable, powerful routing,
    Composer integration.
    We can use the most up-to-date
    PHP libraries and packages.
    We can use best-in-class stuff.

    View full-size slide

  13. Beer Truck Rule

    View full-size slide

  14. Let’s Use the Best
    LARAVEL
    SSD Drives, CDN, scalable, Nevin.
    We’re now ready for the Apocalypse.

    View full-size slide

  15. Making the Product

    View full-size slide

  16. Use the Right Tool
    for the Job

    View full-size slide

  17. Laravel Highlights
    Determining Factors
    • Routing
    • Commands (Artisan)
    • Eloquent ORM
    • Front Templating

    View full-size slide

  18. • Nice URLs
    • Custom Subdomains
    COMPANY.lamplighter.io
    • Before and after filters
    (SSL, authentication,
    permissions)
    Routing

    View full-size slide

  19. Routing
    Nice URLs: Custom Landing Pages
    https://lamplighter.io/expressionengine/devotee
    https://lamplighter.io/expressionengine/peers

    View full-size slide

  20. Routing
    Nested: SSL, Subdomains, Auth, Permissions

    View full-size slide

  21. 1. Put site in maintenance mode
    2. Deploy the code changes
    3. Install, update, or remove necessary dependencies
    4. Make database changes
    5. Bring site back up
    Commands (Artisan)
    php artisan deploy:heavy --stage=prod

    View full-size slide

  22. Eloquent ORM
    Relationship-Heavy Application
    ORM (Object-Relational Mapping) is a tool that lets you
    query and manipulate data from a database using an
    object paradigm.
    What.

    View full-size slide

  23. Eloquent ORM
    Relationship-Heavy Application

    View full-size slide

  24. Eloquent ORM
    Relationship-Heavy Application

    View full-size slide

  25. Templating (Blade)

    View full-size slide

  26. One man.
    One framework.
    What could go wrong?

    View full-size slide

  27. “...not a widespread issue”

    View full-size slide

  28. “...not a widespread issue”

    View full-size slide

  29. • Don’t Trap Yourself
    Don’t dig yourself into a hole.
    • Find the Time to Try Something New
    If solo, carve out time to learn. If team, experiment!
    • Don’t be a Fanboy.
    Moderation in all things, always beware of the Kool Aid.
    • Use the Right Tool for the Job
    EE for large client sites; Craft for newer sites.
    Slim or Laravel for internal projects...when it’s right
    Conclusion

    View full-size slide

  30. We Shipped!
    January February March April
    ?
    ?
    ?

    View full-size slide

  31. 6%
    7%
    7%
    80%
    4
    months
    5,755
    add-ons/plugins
    321
    sites

    View full-size slide

  32. Laravel Resources
    • Laracasts - https://laracasts.com/
    • leanpub.com/codebright
    • laravel.com
    SaaS (+Bootstrapping) Resources
    • @patio11, kalzumeus.com
    • @brennandunn
    • Bootstrapped.fm Forums - http://discuss.bootstrapped.fm/
    • Jason Lemkin @SaaStr - http://saastr.com/
    Resources

    View full-size slide

  33. Thank You.
    https://lamplighter.io/peers
    50% off first 3 months (until May 15, 2014)
    @masuga
    @masugadesign
    @lamplighterapp
    http://masugadesign.com
    https://lamplighter.io

    View full-size slide