The Story of a Hero

Do you have a web-based business idea? Have you found it incredibly difficult to find a technical co-founder who understands how Web and mobile apps are built? Are you a developer weary of repeating the same common tasks again and again (connecting Database tables to back-end code, validations, linking back-end with front-ends etc)? Or are you a non-technical person looking for the way to realize your web-development idea? iBuild allows you to cut the time required to get your idea from your head to a working application.

I have been a professional developer for many years. I am passionate about startups and I have had my share of successes and failures. I meet many bright, intelligent and very ambitious entrepreneurs, some with great ideas. Most of these startup owners seem to have one common obstacle when they start: finding a good developer who can help them bring their idea to life. Some resort to outsourcing, others look for a risk-taking developer who would venture with them for a share in the business and a promise for high potential future return. Too often, the ones who go for outsourcing (for obvious reasons) end up with with code that is badly written, not exactly what they wanted, and not ready to deploy. The ones who search for a developer to partner with, almost never find one.

When I hear such stories one question always pops into my mind: if I only have time I would have loved to be part of this project, or that startup. But unfortunately I don’t have time. The only other solution I can come up with to solve this dilemma was to clone myself! But lets be realistic, who wants to have to deal with someone just like them?

Emergence of an Idea

Since early 2011, I had been actively thinking about a way to address this problem… I’ve been searching for a solution to kick-start startups and businesses into developing their web or mobile applications without initially requiring a professional developer! A way that will allow them to build a working prototype of their idea, a concrete web/mobile application that is the realization of their core business model. Something they can be shown to potential investors, or which can be used as the basis for further development.

And, for developers, like myself, a new approach to build web/mobile applications – using Application Templates – in a collaborative and social settings, where you can share your code and applications structures with others in an integrated environment. And what if that environment happens to do all the hard repetitive work such as Database realization, Api generation and Admin back-end (to name few) for you? Potentially, cutting on the time of development and saving you time and money!

A Hero is Born

While browsing ThemeForest late 2011, a website that empowers Graphics Designers to sell quality HTML themes and other web related resources for small fee, an idea fell on my head! The answer to all my prays.

I thought, can a collaborative tool that would take an HTML theme -from Themes Forest- and convert that into a working web application in simple steps for the average computer user be built? What about using something like Sencha Touch for example, to build mobile apps? The answer to that question – I believe – resulted into the birth of iBuild.

This was very early stage in the thinking process behind iBuild which has grown since into a mature new concept for building web and mobile applications.

Initial Design Concepts

What you are about to read is the original text dated back to 2011. It has not been updated to the current state of iBuild but it helps to understand my original motivations and aspiration for where I want to take iBuild.

Building a web/mobile Application

Building a web or mobile application resembles constructing an art piece (oh yah). The developer has to use the right tools for the job from a palette of different programming languages and frameworks/technologies out there. I personally prefer to use PHP as the main programming language and any major MVC frameworks (Codeigniter, Yii etc) to build a web application. Recently, I started to use PyroCMS as my default framework. PyroCMS is an MVC framework on steroids, powered by Streams, it is a must for any PHP developer.

I noticed that entrepreneurs with no programming skills but who have a business idea that they would like to realize, although facing the same obstacles I discussed above, seem to think, maybe I should learn PHP and build the web application myself. I admire the ambition that such people have but it is not a great business decision never the less. Regardless, I am not sure what is it so attractive about PHP but it seems that PHP has become the lingua-franca of web Application development, at least for the startup and small businesses sector.

Anyway, a web application that is been built without a structure has no value because it would be understood only by the developer(s) who wrote it. This is the problem many fast prototyping applications out-there suffer from. This is the reason why I decided that for any code generated, using any programming language, it has to follow a structure. For example, MVC seems just right as a starting point, however, it is not a must.

Usage Scenario

A typical example of using iBuild may involve a startup business. The founder would use iBuild to construct a working prototype of the web application that would be used for the business. With an intuitive user interface and with the high level of abstract concepts iBuild is being designed on, the non-technical business owner would create the initial data model of the business idea, aided with a step by step help. After few hours of using iBuild, the user would end up with somewhat acceptable data model of his business and immediately he/she can instruct iBuild to ‘build’ a web application from that data model,.. voila.

Yes, all iBuild requires to construct a fully working web Application is the Data Model of the business. No database schema is required, no coding, no configuration, just one easy step, click on ‘Run’ and your application prototype is ready.

Initially, iBuild will construct (code generate) all the Database tables, their keys and relationships automatically and link that to the generated application. It will also build all the back-end Admin side of your application allowing the user to interact with the data model; to create, update, read and remove.

iBuild also allows for higher level of customization after the user is happy with their generated web or mobile application (add a theme, create layouts, controllers, views etc).

The code generated by iBuild follows a pre-made Application Template. iBuild does not dictate the programming language nor the structure (i.e. MVC etc) of the application generated from the Application Template. There’s endless possibilities for how these Application Templates are built, and that’s the true power of iBuild.

Content Management Systems

I hear some say, well, you can use Drupal or Workpress to build your web application, there is no problem to solve here. And no technical skills are required.

Obviously, I have to disagree. While Drupal and WordPress etc are very popular and do provide some value when one builds a website, but I beleive that comes with a hefty price. Most of these Content Management Systems have turned into big hungry monsters, a cumbersome with steep learning curves which adds unnecessary complexity to any to-be light-weight, lean, optimized and fast web/mobile applications.

Fast Prototyping

Finally, iBuild falls under this category of applications. Essentially, iBuild Code Generate / Code Scaffold an application from a Data Model. So why reinvent the wheel. Well, most of the Fast Prototyping applications have three limitations that iBuild addresses: (1) They target specific programming language, (2) The generated code is custom made (not built on a well-known framework).

Four Months Later

After the conception of the initial idea, I went on building my first working prototype of iBuild (initially called, iBuild).

The prototype allowed users to build data models of their idea, and successfully build a working application. There was support for the Yii framework to build web applications, and Sencha Touch for Mobile apps. The following slides give an idea of how that looked like back then:

However, there were serious problems with the initial prototype that had led me to do more research to address them, and those challenges were:

(1) The initial prototype generated user applications on the server, which is a huge security risk.
(2) The system was limited to generate PHP and Javascript applications only.
(3) All Application Templates used to generate code (for yii, sencha touch for example) had to be tightly linked with iBuild code, which meant, only myself can build these templates (which was not the intention).

I had to abandon the initial prototype of iBuild and engage into an extensive research to address the above serious concerns.

The Hero Has Arrived

After over two years from the initial idea and working prototype, and with over 8000 hours of stright development time, I have successfully addressed the problems from the initial development stage. iBuild is being built using an array of technologies and amazing Open Source projects (OpenShift, PyroCMS, Dojo Toolkit to name few). Without Open Source, iBuild would’ve never seen the light.

The Revised iBuild Goals

(1) Enable non‑technically skilled business owner build high quality application prototypes of their ideas faster, using open source technologies directly on the cloud while being able to maintain ownership of the produced code for further development,
(2) Cut development time for professional developers,
(3) Empower open‑source software providers remove the barriers that stoped potential non‑technical users from using their technology, while enabling them to build applications faster.

A sneaky peak on how iBuild looks today:

Development is still underway and hopefully in few months I will be releasing a Beta release of iBuild!