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.
SaaS on OSS
Building Lamplighter.io on Laravel
• Masuga Design
Client work, mostly EE
Marketplace for EE
Guy who stands by in awe
• Builds conﬁdence
• Cures boredom
• Satisﬁes urge to grow
• Increases productivity
Benefits of the New
Mike Taber, @SingleFounder
Speaking at MicroConf
Let’s Make a Product!
1. devot:ee Monitor
Started with a “basic” project.
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
Monitor all your sites in one place.
Solve our own problem(s)
Help other shops like ourselves
From $0 to money quickly
What’s Our Purpose?
What to Use?
• Too rigid
• Sole purpose: content
• Lots of unused code
• Potential license
• Time sink
• Little ROI
• Why recreate wheel?
• Legwork is done
• Blank slate
• How to decide?
CMS Hand Roll Framework
Stay within the realm of feasibility
• What do we already know?
• This is a business. Let’s not go oﬀ a
cliﬀ “just because.”
• A few options: Zend 2, Symfony 2,
• Well documented
• Good community support base
• Logical, reasonable learning curve
• Template language is easy (for front-end people)
• Dev friendly stuﬀ: Composer and migrations
Modern, scalable, powerful routing,
We can use the most up-to-date
PHP libraries and packages.
We can use best-in-class stuff.
Beer Truck Rule
Let’s Use the Best
SSD Drives, CDN, scalable, Nevin.
We’re now ready for the Apocalypse.
Making the Product
Use the Right Tool
for the Job
• Commands (Artisan)
• Eloquent ORM
• Front Templating
• Nice URLs
• Custom Subdomains
• Before and after ﬁlters
Nice URLs: Custom Landing Pages
Nested: SSL, Subdomains, Auth, Permissions
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
php artisan deploy:heavy --stage=prod
ORM (Object-Relational Mapping) is a tool that lets you
query and manipulate data from a database using an
What could go wrong?
“...not a widespread issue”
“...not a widespread issue”
• 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
January February March April
• Laracasts - https://laracasts.com/
SaaS (+Bootstrapping) Resources
• @patio11, kalzumeus.com
• Bootstrapped.fm Forums - http://discuss.bootstrapped.fm/
• Jason Lemkin @SaaStr - http://saastr.com/
50% off ﬁrst 3 months (until May 15, 2014)