Bricks for a RAD, data- and domain-driven, intuitive web application development framework.
it.rocks is currently under active development, with exciting features and improvements being crafted.
I'm working hard to bring you a usable first release.
Feel free to check back soon, as an initial usable version will be available!
In the meantime, you can explore already deployed building blocks and use them in your projects.
Thank you for your patience and interest.
Visit deployed bricks
Here are 78 foundational bricks that form the initial version of the framework:
- account Business entity representing a client or user account with login credentials
- action-bar CSS for action button bars with flexible layout and basic styling
- action-pack Bundle to define actions and render views for business objects
- action-request Domain-oriented action request with path decoding, business object preloading, and action extracting
- action An abstract class for applying actions in your framework, with @Actions and @Need decorators for assignment
- air-datepicker Simplifies the integration of the air-datepicker component into a web page
- app-dir A Node.js library to determine the root directory of your project
- asset-loader Dynamically loads CSS and JavaScript files from your modules and appends them to the
- auto-focus Sets focus on the first form field within a specified DOM element
- auto-redirect Automatically triggers a redirect by simulating a click on a DOM link
- autocomplete Editable combobox component featuring smart autocomplete from a list of id-caption pairs for it.rocks
- autocompleter Simplifies the integration of the autocompleter component into a web page
- breadcrumb Dynamically updates the breadcrumb based on containers with data-action 'list' or 'view'
- build Permanently apply javascript modifiers to your dynamic DOM
- business-pack Tools to structure business objects with storage, validation, and view decorators
- class-file Retrieve the absolute file path of an imported class
- class-type Helper types and functions to identify, validate, and manipulate classes, objects, prototypes and their properties
- class-view Decorators for user-friendly identification of domain classes and objects
- collapse Handles adding and removing the 'collapse' class on a .app.menu
- collection Identify classes containing collections of objects using decorators
- compose Class compositions via configuration file, enabling mixins addition and module exports replacement
- composition Manage and query composite and component property structures
- config Loads and merges config.yaml files from all dependencies for unified, project-wide configuration
- confirm Seamlessly adds a user confirmation step before executing an action
- contained-auto-width Automatically adjusts the width of elements based on their text content within a list
- contenteditable Respectful contenteditable: avoids <div>, respects white-space: pre* styles line breaks
- core-responses Prefabricated HTTP it.rocks responses for HTML, JSON, and PDF formats
- core-transformers Prefabricated HTML and SQL data transformers for it.rocks primitives and basic types
- crud-pack The it.rocks default CRUD pack
- data-to-object Transforms raw string-based data into a business object with type-safe values
- decorator A library that simplifies the declaration, persistence, and retrieval of decorator values
- default-action-workflow Defines shared actions across domain objects of your app
- delete Deletion action handling the button, user confirmation, data source deletion, and visual feedback
- edit Generic action-based object edit form in HTML and JSON
- email-address An @EmailAddress() decorator to validate that a property contains a valid email address
- fastify-file-session-store Simple session data persistence for Fastify using JSON files
- fastify Converts Fastify requests to it.rocks agnostic requests and responses back to Fastify
- forgot-password Forgot password management for @itrocks/user, including form, token generation, email sending, and secure reset
- form-fetch AJAX fetch for HTML form submissions using form DOM data
- framework RAD framework for intuitive web application development, blending data and domain-driven design with modular architecture
- home Default responsive it.rocks app container with navigation, user session, breadcrumb and notifications
- lazy-loading Integrates lazy loading for objects and collections in TypeScript classes
- list Generic action-based object list navigation in HTML and JSON
- menu A flexible and accessible customizable main menu component with sidebar layout
- modal Lightweight modal with default styling and auto-close on form submit or link click
- mysql Transforms model objects to and from MySQL database records
- new Generic action-based new object form in HTML and JSON
- notifications Visual management of a notification list: recent, hidden/visible, read/unread
- output Generic action-based object output in HTML and JSON
- parameter-name Runtime parameter name reflection from TypeScript declaration files
- password @Password() decorator for secure formatting of password fields
- plugin A structure that allows classes to be extended with new behaviors via plugin
- prepare-module Prepare your front-end module with @itrocks dependencies for npm publishing
- print Generic action-based PDF representation of object
- property-type Runtime type reflection from TypeScript declaration files for properties
- property-view Decorators for user-friendly identification of domain properties
- real-viewport-height Maintains a CSS variable --real-vh with the actual visible viewport height
- reflect Runtime introspection of TypeScript classes and their properties, including property type
- rename Switch the formatting of names stored in strings between different naming conventions
- request-response Framework-agnostic module for crafting and handling HTTP requests and responses in TypeScript
- required @Required decorator to enforce mandatory properties in data validation
- route Domain-driven route manager with automatic generation, decorators, and static routes
- save Persist object data, processing input from HTML or JSON sources
- signup Handles user sign-up for @itrocks/user, with account creation and secure onboarding flow
- sorted-array Array subclasses that remain continuously sorted on insert() or push() calls, featuring optimized includes() and indexOf()
- sql-functions Library of SQL functions mapping logical expressions to SQL syntax
- storage Transforms model objects to and from storage systems
- store Marks domain classes for named storage, associates transformers to properties of these class types
- summary Generic action-based object summary in JSON
- table A lightweight, modular HTML table offering near-spreadsheet features such as edit, freeze, lock, scroll, and more
- template The W3C-valid, browser-previewable, concise, and fast HTML template engine that enables delimiter-less translations
- template-insight Extends @itrocks/template with decorator parsing, reflection, and translation features
- transformer Transform property values dynamically, enabling data formatting for versatile use cases
- translate Manage dynamic string translations with support for variables and composite patterns
- user Business entity representing a user with a login form, authentication, and logout actions
- uses Apply reusable mixins to your classes effortlessly with the @Uses decorator
- ux-core UI component providing a basic it.rocks app container with navigation, title bar, and logout support
- xtarget The simplest way to choose any element in your DOM as a target for your anchors and forms
Additional bricks for business logic
These are non-foundational bricks which are frequently used in business applications:
- domain-components Reusable business components to enrich domain entities with common attributes like active, name, and more
- length Decorators @Length, @minlength, @MaxLength to enforce fixed or flexible string length limits on class properties
- precision @Precision decorator to define fixed or adaptive decimal precision for numeric values
- range A property decorator to specify min-max value ranges, date, numeric or string-based
- unit Associates a custom unit with a class property
- value Limit property values with @MinValue, @MaxValue, @Values, @Signed
Visit additional deployed bricks
These are non-foundational low-level bricks which improve your app productivity:
- class-to-table Converts a TypeScript class structure into a table schema
- former-name Stores previous property names to help manage schema changes, legacy data access, and so on
- mysql-to-table Extracts a MySQL table structure and converts it into a table schema
- table-schema Structured representation of an RDB table, including columns, indexes, constraints
- webstorm Facilitates developments on the it.rocks framework's source code within a single WebStorm project
More bricks to code
These are upcoming bricks still to be developed:
- mysql-maintainer Reactively maintains database structure by updating schema and retrying on MySQL errors
- table-schema-diff Compares two table schemas and returns their differences as a structured object
- table-diff-to-mysql Translates table differences into ALTER TABLE MySQL statements
- table-to-mysql Converts a table schema into MySQL statements for table creation
More projects for tomorrow
The framework is just the starting point.
I'll push the boundaries of fast, large-scale application development even further:
- RAD Instantly generate data-driven applications with minimal, maintainable code
- Spreadsheet Effortlessly create spreadsheet-based applications backed by databases
- Graphs Seamlessly integrate graphical visualizations with your data, right out of the box
- ... and this is just the beginning.