General

1. What is GenHelm?

GenHelm is comprised of two main components:

  1. A comprehensive PHP Web Framework (runtime).
  2. A web-based Integrated Generation Environment used to build websites that utilize the PHP Framework.
2. What type of websites can be built using GenHelm?

GenHelm can build almost any website. What sets GenHelm apart from other web development environments is its ability to develop sophisticated websites involving forms, dynamic content, database updates, etc., with little or no programming.

3. What does it cost to use GenHelm?

Developers who use GenHelm need to pay for a subscription to use the Integrated Generation Environment. The websites they develop can be deployed without incurring any additional costs. See our Pricing page to learn about subscription fees.

4. Why should I use GenHelm to build my next website?

In addition to being a software product, GenHelm is also a development methodology that allows you to build extremely high-quality websites in a fraction of the time required when using traditional methods.

If you, or your web development team, struggle from low productivity, poor quality, a lack of standards or inefficient websites, these are the types of problems that can be solved by switching to GenHelm.

Once your team becomes familiar with the way GenHelm web applications are built and architected, they can easily maintain sites that they have never worked on before since all sites are developed in a consistent way.

Integrated Generation Environment

5. What is the difference between an Integrated Development Environment (IDE) and an Integrated Generation Environment (IGE)?

An Integrated Generation Environment extends the concept of an IDE to include code generation capabilities. Typical IDEs include code editors that may offer minor programming assistance such as autocomplete. GenHelm's IGE goes beyond the capabilities of IDEs in that much of the code that is created is completely generated.

Other systems that support code generation treat generation as a one-time event to create some starting code that you can then maintain by hand.

Developers using GenHelm maintain code at a higher level of abstraction. If you are a PHP developer, you may know that PHP source compiles to an intermediate bytecode that is interpreted by the PHP runtime engine. You never maintain bytecode or even care what it looks like. GenHelm takes this one step further by generating the PHP (as well as other languages). As with bytecode, the PHP created by GenHelm is not something you maintain directly. As a web developer, you are mainly filling in the rules that control how the code will be built.

6. What is a model?

The GenHelm IGE includes a generic generation framework that supports any number of use-case specific models. A model is a generator that knows how to build a certain class of program. For example, the FAQ page you are now reading was built by the FAQ model. All this model knows about is how to create FAQ pages. To create the PHP code to render an FAQ page, the model needs to know what questions and answers you want to show on the page. These questions and answers are the "specification" for the page not the PHP code, which is incidental and unimportant. In fact, if you accidentally delete the PHP code it is not a big deal, you can just create it again from the specification.

7. What if GenHelm does not have a model that does what I need?

Many of the models supplied by GenHelm are general purpose models. For example, there is a page model named custom that allows you to create a page using PHP directly. This model could be used to create any page.

If you have an ongoing requirement to build certain types of pages for which a model is not supplied, the best option is to write your own model to create this type of page.

8. I am a programmer so why don't I just write the code myself instead of using GenHelm to generate it?

There are lots of reasons why generating code is better than writing code. Let's review some of them.

  1. If you have never written a certain type of component, there is a steep learning curve when doing so. It can take a long time to design the component, write the necessary code, test it, et cetera.
  2. If you are part of a large team of programmers, it is often difficult for one programmer to perform maintenance on code written by other programmers.
  3. Writing code by hand is extremely error prone, even for seasoned programmers. It is possible for a generated program to contain a bug, however, if a bug is discovered within a generated component, it is corrected within the model so that it can never happen again. Once corrected, you can just regenerate the programs that were created by the model to eradicate the bug.
  4. Consider the FAQ page you are now reading. This page was implemented using HTLM 5's <details> and <summary> tags. Suppose you prefer a different method for rendering FAQ pages or perhaps HTML 6 introduces new <question> and <answer> tags designed for FAQ pages. In such a case, it would be reasonably trivial to change the FAQ model implementation to use a different set of tags or styles to render the FAQ pages. The actual specification (the questions and answers) would not change, only what is generated. Therefore, we could "upgrade" all of our FAQ pages simply by regenerating them. In actual fact, in this example we likely would not even need to regenerate the FAQ pages since the technical implementation of FAQ pages is part of the GenHelm runtime which could be altered to change the look and feel of the FAQ pages without necessarily changing the FAQ model.
  5. Writing code that can be generated is not a productive use of a developer's time. Developers should be focused on things like implementing the correct business rules, improving user productivity, SEO, et cetera.
9. What types of components can GenHelm build?

Models can theoretically build any type of component. The supplied models generate the following types of components:

10. In what environments does the IGE run?

GenHelm is a web application that is built in itself. It can be hosted on any web server platform that supports PHP such as Linix, Windows and Macintosh.

The GenHelm front end can run within Chrome, Edge, Safari or FireFox.

11. Can GenHelm be installed in the cloud?

Yes, GenHelm, as well as applications developed in GenHelm, can be hosted under AWS, Google Cloud, Azure or other cloud-based services.

12. How are websites updated?

In most cases, GenHelm is installed within a sandbox environment where all website updates are implemented and tested. GenHelm includes a promotion model which allows collections of updates to be copied to a production server. As part of the promotion model, you can compare the code in the sandbox with what is in the live site to help decide what to promote.

GenHelm also includes a database-driven blog application that allows end-users to code blog pages directly within the live website. Blogs can be saved in draft form until they are ready to be published.

13. I am not a PHP programmer; can I still use the IGE?

Yes, most of the pages that you build don't involve actual programming. If you are just building a brochure style of website, you likely won't need any programming skills whatsoever.

If you want to build sites that interact with a database and forms, it would be helpful to have someone on your team who knows SQL and PHP.

Runtime Framework

14. Why do I need a runtime framework?

All websites perform standard functions like:

Rather than having to rebuild this type of functionality for each and every website, it makes sense to develop this once and leverage the same runtime for all new websites.

By using a common runtime, developers can focus on solving business problems not figuring out how best to architect an efficient page serving platform.

15. What is the runtime developed in?

The runtime framework is developed in GenHelm itself. Therefore, if you want to extend or change the runtime you can use the very same models that you use to build your websites.

The runtime mainly consists of PHP classes, but it also includes JavaScript and CSS stylesheets.

One of the goals of the GenHelm runtime is to avoid "reinventing the wheel". Therefore, if there is already a well-functioning open-source component to handle certain functionality, the framework may incorporate this rather than trying to rebuild something that already exists.

16. Does the runtime framework include actual web pages?

The runtime can include web pages where it makes sense. This is mainly for standard pages that all websites should have. An example of one such page is a privacy-policy page. Google recommends having a privacy-policy page, however, for many sites this can be a "boiler plate" that speaks to the collection and use of user data.

By defining this page as part of the runtime, all sites can make use of this content. Sites that require a more specific or detailed policy can simply create their own privacy-policy page and this will override the shared runtime page.