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

Building Lamplighter.io on Laravel

Ryan Masuga
April 24, 2014

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 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 Slide

  3. Comfort Zone

    View Slide

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

    View Slide

  5. Let’s Make a Product!

    View 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 Slide

  7. Monitor all your sites in one place.

    View 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 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 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 Slide

  11. Laravel

    View Slide

  12. • 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 Slide

  13. 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 Slide

  14. Beer Truck Rule

    View Slide

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

    View Slide

  16. Making the Product

    View Slide

  17. Use the Right Tool
    for the Job

    View Slide

  18. LARAVEL

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  23. 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 Slide

  24. 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 Slide

  25. Eloquent ORM
    Relationship-Heavy Application

    View Slide

  26. Eloquent ORM
    Relationship-Heavy Application

    View Slide

  27. Templating (Blade)

    View Slide

  28. Drawbacks

    View Slide

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

    View Slide

  30. “...not a widespread issue”

    View Slide

  31. “...not a widespread issue”

    View Slide

  32. • 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 Slide

  33. Ship It.

    View Slide

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

    View Slide

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

    View Slide

  36. 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 Slide

  37. 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 Slide