GenHelm is comprised of two main components:
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.
GenHelm is free when used to build non-commercial websites. Developers who use GenHelm to build business websites 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.
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.
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.
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.
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.
There are lots of reasons why generating code is better than writing code. Let's review some of them.
Models can theoretically build any type of component. The supplied models generate the following types of components:
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.
Yes, GenHelm, as well as applications developed in GenHelm, can be hosted under AWS, Google Cloud, Azure or other cloud-based services.
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.
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.
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.
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.
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.