Subscribe to GEN
Login to GEN
GENFrame is an adaptive web framework that is designed to provide highly secure and customisable websites.
GENFrame is built in php and javascript, the two systems working together to provide a rapid development environment, but with an entire catalogue of protections. This Framework, can be broken down into several modules, each with its own unique purpose and function.
The GENFrame system relies on json files to store and retrieve menus, layouts, blog posts, and other data but still uses a backend database for things like IP Blacklists, statistics and auditing.
At the heart of the Framework, is the index, a single php page that is the only page ever called. Index is responsible for establishing headers, pulling styles and fonts, reading configurations and initialising sessions, and rendering the requested page.
Index brings with it javascript that runs clientside and provides many of the adaptive functions we can see in the Framework, but it is extensible, and if you wanted to add custom javascript, you only need to add it once, to INDEX.
Index loads several CSS files and a collection of fonts. The CSS files apply all the styling and colours to the site, the entire site, and the fonts are just there to provide more flexibility and aesthetics to the site.
BulmaCSS is the core CSS Framework used and this is loaded first, followed by root.css which defines overrides and additional styles, and fonts.css which includes the various fonts and makes them available.
ALL pages available on the site are defined in three files, pages defines the main pages and menu structure, its simple JSON in the form of
Pages clearly defines the menu structure and primary pages, and INDEX constructs the menu, dropdowns and options from this JSON. The format is simple, top level menu's, then under each a list of options, the actual file to be used, Title, Subtitle, and meta information.
Links defines any other pages that can be called or used, ONLY pages in "pages" and "links" are able to be retrieved on the site, nothing else is possible, thus eliminating pretty much all leaks and exploits.
This simple structure allows the definition of support files that can be called and are NOT in the menu system. The optional "include" determines if these pages will be included in the sitemap and siteindex.
Blog contains a list of all blog posts and associated meta-data, it is built periodically by the Framework and provides a quick way to load blog posts into the system.
The system is built to protect against a wide range of threats, and the following are some of the protections it provides:
Automated scraping of the site is detected and defeated as required. Crawlers like Google are of course allowed, but other scraping is not. This is fully configurable on what is and isn't allowed.
The script kiddies are relentlessly throwing queries at sites with % characters, unicode, poorly embedded sql and some such, we detect this and simply blacklist the IP address.
For every request to the site, we track from what IP Address, and how many requests per second, minute, hour, day, and how many of those resulted in a 404, 403, etc. Using this data an automation runs to add IPs to the blacklist for abusive behaviour. This is of course configurable, but generally it does a great job.
Requests to the site are checked against IP reputation providers, and IPs known to be VPNs or Proxies, or that have a high risk or fraud score are automatically blocked, and blacklisted. This is configurable, both the levels at which IPs are blocked, but also on what grounds.
The Framework contains many features that make it fast and efficient to build from, these include client-side and server-side as we'll discuss below.
Users can register, login, logout and have access to hidden pages. Users can be automatically managed, managed through the admin interface, or through the GENFrame API.
Contact Pages are pre-built, and only need styling and configuring. You don't need to use the pre-built code and can of course just code your own.
Unless told otherwise, once the page has loaded, client-side code will search the page looking for words that match the pages and links data, and if found a hyperlink is inserted. Manual hyperlinks can be added using short-code such as
{{See this page|Home,NewPage}}
Blog posts are just html files, places in a specific folder, they don't need adding to pages or links and are indexed periodically. Blog posts are handled by the GENFrame framework quickly and efficiently with full statistics, comments, search, Thumbs up and down, and author attribution. The blog post html is heavily supported through custom classes and client-side helpers to make writing blog posts very simple.
Tools like Google Analytics are just a massive privacy concern, so we don't do that, what we do is track access to all pages from any IPs, and the outcome of that page serve. We don't track any user behaviour or mouse movements or any of the other stuff that Google does, we simply need to know what IP is access what page(s). This data is used to analyse page popularity over time, but also to track abuse.
As with anything that we build, GEN has a dedicated technical support term who are very familiar with the codebase, and are able to help with any issues you may have, be that configuration, deployment, updates, security and development.
Index v1.038 Standard v1.114 Module v1.000 Copyright © 2025 GEN Partnership. All Rights Reserved, Content Policy, E&OE. ^sales^ 0115 933 9000 Privacy Notice 440 Current Users, 45 Hits