Advertisement
  1. Code
  2. Open Source
Code

Building Your Startup: The Open-Source Foundation Behind Meeting Planner

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called Building Your Startup With PHP.
Building Your Startup: Exporting iCal Files into Calendar Events
Building Your Startup: Security Basics
Final product image
What You'll Be Creating

This tutorial is part of the Building Your Startup With PHP series on Envato Tuts+. In this series, I'm guiding you through launching a startup from concept to reality using my Meeting Planner app as a real-life example. Every step along the way, I'll release the Meeting Planner code as open-source examples you can learn from. I'll also address startup-related business issues as they arise.

In today's episode, I'd like to take a step back and reflect on how it is that I've managed to build a sophisticated, easy-to-use scheduling service by myself in a matter of months, my actual programming time accounting for interruptions from brain surgeryradiation, and other consulting).

Clearly, like Donald Trump, I'm an amazing "winner!" or not; I win so much you're just not able to take it—you say, stop, please stop the winning. And I'm just another example of the potential for "one-man startups" to launch products out of garages. I can't believe Steve Jobs needed Steve Wozniak or Paul Allen needed Bill Gates—what pathetic couplings! Overstaffed they were!

The truth is that I'd never have been able to build all this without the brilliant enabling efforts of the open-source community.

Today, I'm going to take a look at all the open-source components that provide the foundation for Meeting Planner, the application I've been building and writing about at Envato Tuts+. If you haven't tried out Meeting Planner yet, go ahead and schedule your first meeting right now—ask a friend out for coffee or lunch.

I do participate in the comment threads below, so please share your feedback. Today, I'm especially interested in whether there are other open-source components within Meeting Planner than I mention below. I'm also open to new feature ideas and topic suggestions for future tutorials.

As a reminder, all of the code for Meeting Planner is written in the Yii2 Framework for PHP (two big open-source elements). If you'd like to learn more about Yii2, check out our parallel series, Programming With Yii2.

Does the "One-Man Startup" Still Exist?

Unfortunately, there are so many men in technology as a result of our culture and discrimination that the familiar phrase, "one man startup", has a built-in gender bias. The drop in women studying computer science actually began in the 1980s. Before then, women were equally involved in technology!

SmallBizTrends has a fun infographic of the Top 10 Most Successful One "Man" Startups, some of which were questionably individual enterprises. For example, the story of the first Amazon employee hire seems to indicate its one-man phase was brief, and doesn't give Bezos's wife much credit from the early days. Other startups have evidence of longer one-person phases.

Top 10 Most Successful One Man Startups
via Small Biz Trends, Top 10 Most Successful One Man Startups

Blogger and developer Steve Ridout's been working on ReadLang solo for three years and counting. 

One-person startups are out there, but it's rare they make it big. Funders look for teams more than individuals. Teams are generally more effective, well because, teamwork—oh yeah, and collaboration.

Thus far, my team for Meeting Planner has encompassed a tremendous amount of free, open-source software, for which I'm incredibly grateful.

Let's review what powers Meeting Planner and its services.

Open Source Code Used With Meeting Planner

"I am what I am because of who we all are."

Hosting

Meeting Planner (MP) runs at Digital Ocean, which also runs and supports open-source software, and they offered me a few months of service credit while building up Meeting Planner on its own droplet.

Foundational Code

Operating System

MP runs on a flavor of Linux, the most popular open-source operating system that almost all of us know and love. Developer Linus Torvalds created Linux in 1981 while attending the University of Helsinki, in response to the lack of open licenses with other operating systems. 

The MP flavor is Ubuntu, based on another flavor, Debian. According to Wikipedia, Debian was first announced in 1993 by Ian Murdock, Debian 0.01 was released in August 1993, and the first stable release was made in 1996. Ubuntu, released in 2004, is "named after the Southern African philosophy of ubuntu (literally, 'human-ness'), which [lead developer] Canonical Ltd suggests can be loosely translated as 'humanity to others' or 'I am what I am because of who we all are'." 

Web Server

The Apache HTTP server, one of the earliest, powers Meeting Planner. Wikipedia reports Apache became "the first web server software to serve more than 100 million websites." It began development in 1995 while I was helping Microsoft's new online service run news sites powered by media view, based on its proprietary CD content business. For example, you may remember the amazing Microsoft Dogs CD-ROM, powered by media view:

Microsoft Dogs CD-ROM

Frankly, I don't know the history of media view, but it appears Microsoft's was based on an early NeXT standard.

Microsoft Dogs. But, I digress...

Programming Language and Framework

Meeting Planner is written in open-source PHP, a language written in the C programming language with open-source compilers.

However, it's the open-source Yii Framework for PHP which has been fundamentally the most empowering aspect for me in building Meeting Planner. First released in 2010, Yii makes MVC programming fast and efficient in PHP.

Yeah, I know Laravel's good too, but when I dove deeper into programming, it didn't seem as mature as Yii. And, frankly, Yii 2.0 has met all of my needs. 

Meeting Planner demonstrates the quality of Yii better than any other work I've done. 

Want to learn more about Yii? Not just because I wrote it, I recommend the Envato Tuts+ series How to Program with Yii2; well, okay, mostly because I wrote it. Another Yii-based product I've covered is the WordPress-alternative, Craft CMS, an outstanding CMS for developers that want more power and control over their publishing platform.

A couple of the Yii team members have also helped me out personally over the years, which I greatly appreciate. 

Database

Meeting Planner also uses polyamorous PHP's primary database partner, MySQL, another famous open-source database launched in 1994.

Yii's ActiveRecord support makes writing code to work with MySQL generally easy and manageable.

Email Delivery

MP relies on email to announce meeting invitations and changes to meetings and to deliver iCal attachments for people's calendars. It sends its emails using Yii's extension for popular SwiftMailer via the open SMTP standard to proprietary Mailgun for outbound delivery. To work with Mailgun's API, MP uses open-source Guzzle.

And, to send beautiful HTML emails compatible with all those pesky mail clients, it uses Send With Us's open-source Oxygen templates. One day, MP will be able to dynamically use OpenBuilding's open-source CSS inliner for SwiftMailer; it's just not quite working for me yet.

Meeting Planners Open Source Foundation - SendWithUs Oxygen Templates

Application Extensions and Plugins

In addition to those mentioned above, Meeting Planner uses a ton of other components, extensions and plugins that are all open source. Let's take a look at this .json file:

You probably noticed that's a portion of MP's composer.json file. What's that, you ask? It's a file used by our open-source package manager.

Package Managers

Integrating and managing the usage of all of the above components would be a lot more difficult without composer, the open-source community package manager. 

HTML5 and CSS Frameworks

For HTML5 and CSS, Yii2 integrates Bootstrap 3 out of the box. Your Yii site looks awesome and behaves responsibly on mobile devices and tablets from the beginning.

According to Wikipedia, Bootstrap is the second most-starred project on GitHub, with over 95,000 stars and more than 40,000 forks. Bootstrap was developed by Mark Otto and Jacob Thornton while working at Twitter. 

To me, it's one of the most important common components of good web development which makes everyone's life easier; Bootstrap allows developers without design skills to build great sites—just look at Meeting Planner (I do not have good design skills). And it allows us to focus on our products rather than basic design. Bootstrap lets you start with the foundation of a big design team and saves untold time and money.

Bootstrap Extensions

Meeting Planners Open Source Foundation - Kartiks Bootstrap Switches

Meeting Planner also uses a handful of Bootstrap extensions integrated with Yii by some popular community-oriented developers:

These and other plugins build on popular open-source libraries and widgets:

These plugins are key elements of Meeting Planner's user experience for scheduling.

Yii Extensions

Yii also offers some additional open-source extensions. For example, its AuthClient extension allows me to easily integrate Facebook, Google and LinkedIn social login to Meeting Planner. And MP uses Yii's advanced template that provides database-driven user management out of the box.

Services

There's also the occasional "open service" such as Gravatar which offers default user profile images.

Text Editors

Recently, I finally switched from proprietary, dated TextMate to GitHub-supported, open-source Atom editor. My productivity has taken off. There's only one aspect of TextMate's AutoComplete I haven't had time to google for a replacement for yet. See, the Atom community has built a zillion packages which are easy to search for and install. 

Meeting Planners Open Source Foundation - Atom Packager

What Else?

That's all I can think of at the moment. There are probably a lot of other pieces that are open source within Meeting Planner that I didn't realize or mention here. Please post your additions in the comments! You can also reach me on Twitter @reifman directly.

And I didn't mention all the online communities found through Google searches with questions and answers that I regularly rely on for programming tips. Or the fact that our computers and mobile devices rely on a lot of open-source software themselves.

An Open-Source Ownership Stake

If you're a developer, you likely can't make it through the day without interacting with some open-source component or tool. I encourage you to consider ways you can show support for the community's efforts.

One Percent for Open Source

As I look ahead to raising funds from investors, I've decided to carve out a one percent stake just for open source. In other words, one percent of Meeting Planner will be used to support open-source projects and foundations, directed by our eventual board of directors.

I'm also beginning to experiment with crowdfunding. I've been exploring the WeFunder service. Its success may grow with the implementation of the SEC's new crowdfunding rules. Please consider following our WeFunder profile. I plan to write about this more as part of our series.

What's Next?

There's simply no way I'd have been able to build Meeting Planner without open-source software and the community's historical and ongoing efforts. 

Let me say it again. It would not have been possible.

If you haven't yet, try out Meeting Planner right now by scheduling your first meeting, knowing that planning your day has been made faster and easier by men and women of the open-source community. 

Thank you to everyone who has ever checked in code to an open repository!

Watch for upcoming tutorials in the Building Your Startup With PHP series. There are a few more big features coming up.

Related Links

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.