MainJS Project
Unlock your next javascript project with Main.JS; an async headless framework and serverless library for local web development.
Project Summary
The objective of MainJS is to deliver the best possible experience for website users, developers and owners. To achieve this, MainJS creates a few easy to follow standards that when applied in web development, help streamline the complex processes of fetching resources, rendering layout, applying personalisation and measuring performance.
This functionality is platform agnostic, accessibility aware and has no need for backend software packages, costly infrastructure or connectivity requirements. From Android, Chromebooks to Windows, MainJS works everywhere you do! Combining free download and installation with an open source licence (GPL-v3) has a democratisation effect on web development, making MainJS suitable for business, personal, students, education, and research web projects.
Coming Soon:
- Change Log
- Snippet
- Portablability
- Layout Engine
- Functions
- Variables
- DOM
- Objects
- Parameters
- Fonts
- Google Fonts
- Other Font Providers
- Navigation
Developer Features
Centralise javascript controls
Main reserves the main javascript namespace to consolidate all functionality and centralise website controls, this is used for JavaScript and objects, arrays, variables and functions.
Meta properties reduce JS functions
Main includes special meta properties support that allow you to change the most common MainJS functions, controls and settings without using ANY JS scripts or <script> tags.
Best possible security
MainJS is written and maintained by one developer (with a tonne of oversight) with no package managers, no automated dependencies and everything is ‘batteries included’ for best possible security and performance.
Javascript adaptability
MainJS pre-defines all data tag/elements and attributes, data types, classes, event listeners and common selectors for flexibility and adaptability in any web development environment.
Develop in any environment
MainJS manages protocols, source and href paths for all elements on the webpage to ensure pages render correctly in any environment; online, offline, local file systems or multi framework hosts.
Smart engagment tracking
MainJS page level data storage and persistence offers detailed engagement, focus, scroll, page depth, screen orientation, statefulness and all stages of user timings.
Javascript managed fonts
MainJS manages your font provider (like Google fonts) and handles seamless font resource loading and glyph updating and rendering, and font family rules via JS controlled CSS rules.
Headless page hydration
MainJS headless page hydration offers you a powerful flexible fetcher() function, streamlining async request and responses for all major mime types, server configurations and storage environments.
Easy offline development
MainJS automatically decorates links and forms based on your hosting environment, allowing easy development even on local devices and offline web-hosting states.
Seamless page navigation
MainJS hydration systems achieve seamless page navigation, by using fully flexible ‘function arrays,’ allowing easy injection of hydration requirements with push() calls to passive and active listeners to complete rendering processes.
Common HTML elements sorted
MainJS automatically binds listeners to common HTML elements for easy customisation; includes main body, navigation bars, footers, logo, links, account and breadcrumbs.
Developer friendly
MainJS features developer friendly tools; like automatic cloning containers, hide when empty, global ‘for’ attributes as well as opener & relative link attributes for internal tech-stack isolation.
MainHTML & Main.JS Founding Statement
First commitment; MainJS is free and open source and will always be, my goal is to give everyone possible a first class ticket to the most well known and well-written markup language on earth; HTML.
Second commitment: relates my first commitment that it is not just because of the projects chosen licence (GPL,) but it's a commitment to remain impartial and community focused and to never sell out or steer MainJS away from the core focus of portability and maintainability.