tekBlueprint.frame

tb.frame aka tekBlueprint Application Framework
The idea is to create a set of ready-made components for rapid web application development using a current technology stack.
By and large, many projects implement the same functionality over and over again. Large companies create their own internal frameworks, some open source them, others don’t. The idea behind this project is similar: to reduce development costs. This is especially relevant when time and human resources are limited.
This is currently a pilot project to create a such framework, primarily for the needs of tekBlueprint projects.
Basic principles
| Rule | Example |
|---|---|
| Each block is a complete library and can be used without requiring any connection to other blocks. | frame-security - contains basic functionality for managing users, access groups, and permissions: entities (e.g., Hibernate), services (e.g., Spring Boot), and views (e.g., ReactJS).If necessary, it can be implemented as a separate microservice function. |
| A block can contain one or more modules: SPI, data model (entities), services (business logic), presentation (UI). | - SPI – implements a specific set of interfaces for interacting with modules on all layers (business logic, UI) - Data Storage Layer – persistent data storage, can be any (NoSQL, RDBMS, Graph DB) for each module. - Service Layer – implemented in one of the development languages and frameworks. Naturally, blocks of the same type must match when assembling the overall application. - View – user UI on any of the frameworks. |
| An optional SPI can be used to connect blocks and expand functionality. | - For the data layer, relationships between entities are implemented via identifiers without the use of constraints at the DB level. Data consistency is monitored on the application side. - The service layer uses automatic detection of connected functionality (e.g., Java Service Loader, Spring Boot autoconfiguration). - At the presentation layer, component/microfrontend mounting is also performed automatically using various JS tools (importmaps, module federation, etc.). |
| Blocks are implemented for various development languages. | There is no binding to any specific development language. The frame-security module can be implemented in two repositories:- frame-security-java- @tb-frame/components-react- frame-security-rustWhile maintaining the same general approach and functionality, the required module is included in the application. |
| There is no mandatory platform and no restrictions dictated by this platform | All communication between modules is performed exclusively via SPI. While this may complicate initial assembly and configuration, it does not impose additional restrictions on future expansion. It also provides additional isolation between modules. |
Core technical stack
| Category | Name | Vendor |
|---|---|---|
| Backend | Language | Java 21+ |
| Services Layer | Spring Boot 4+ | |
| Data Access Layer | Hibernate 7+ (via Spring Boot BOM) | |
| Serialization | Jackson 3 | |
| Code Generation | MapStruct, Lombok | |
| SPI | Service Loader, Spring DI | |
| Test | Spock (Groovy 4), JUnit Jupiter | |
| RDBMS | PostgreSQL | |
| Frontend | Language | TypeScript (~6.0) |
| Framework | React 19 | |
| UI | PrimeReact 10 | |
| State & Data | TanStack React Query, Axios | |
| Routing | react-router 7 | |
| Forms | react-hook-form | |
| i18n | i18next | |
| Build | Vite (~8.0), lerna, Biome (lint) | |
| Test | Vitest |