Fundamental Concepts

Philosophy

You know 4D? You know BWEB.

BWEB is not a framework that requires JavaScript expertise. It is a component purely based on 4D. A 4D developer should be able to create a website without changing worlds.

BWEB targets public portals and CMS with potentially 300,000+ users - not internal dashboards (for that, there is Qodly).

Tailwind can be learned in a day. React takes several months.

Hierarchy: Domain - Page - Block

Everything in BWEB is organized into 3 levels:

Level Table Description Example
DomainBSPK_WEB_DOMAINA complete websitemonsite.fr
PageBSPK_WEB_DOMAIN_MENUAn accessible URL or a reusable component/suppliers, header, footer
BlockBSPK_WEB_CONTENTA UI element forming a tree via parentUuidwrapper, text, button, listbox

The template assembles components (header, footer, sidebars) around each page's content.

Pages vs Components

Category Page Component
Accessible via URLYes (/suppliers, /contact)No
ReusableNoYes (header, footer, sidebar)
Displayed viaDirect navigationDomain template

Responsive Design

BWEB uses Tailwind CSS mobile-first approach. Each block stores its styles per breakpoint in cssProperties.

Breakpoint Min. width Target
default0pxMobile
sm640pxSmall screen
md768pxTablet
lg1024pxLaptop
xl1280pxDesktop
2xl1536pxLarge screen

Example: a container in column on mobile, in row on desktop:

{bspk: {default: {customClass: flex flex-col gap-2}, md: {customClass: flex-row gap-4}, lg: {customClass: gap-6}}}

Conditional Display

3 mechanisms to control block visibility:

Mechanism Description Example
linkedLinks the visibility of one block to anotherA detail panel appears when a row is selected
effectAppearance effectfade, slide
conditionalDisplayCondition based on dataEntity#null, isPublished=true

Process Variables and Persistence

BWEB manages state server-side, not client-side:

  • The Entity persists during the session via process variables

  • No client-side state (no Redux, Zustand, etc.)

  • The server is the single source of truth

  • STAMP (optimistic locking) is natively managed by ORDA

  • 4D sessions are scalable and preemptive

Claude does not replace BWEB, it powers it.