New: sgcCustomization HTML. We build your web application for you. Describe the application you need and our team builds it with sgcHTML + sgcWebSockets. Packages from €149.
Discover sgcCustomization HTML
Delphi 7 to 13, C++ Builder & .NET 110 components, ten families

sgcHTML: Web UI Components for Delphi, C++ Builder & .NET

Build complete, modern web UIs straight from Delphi, C++ Builder and .NET. sgcHTML is a server-side component framework with 110 ready-made widgets: charts, grids, forms, dashboards, chat and more. Many bind straight to a TDataSet, render to Bootstrap 5 markup and stay interactive through htmx. You write Object Pascal or C#, sgcHTML writes the HTML, CSS and JavaScript.

DelphiC++ Builder.NETBootstrap 5 + htmxData-aware / TDataSetNo JavaScript required

Rather not build it yourself? We build it for you →

ERP dashboard built with sgcHTML for Delphi, shown in a browser window: KPI cards, a revenue bar chart and a recent-invoices grid.

Getting Started →

One Application, Built Only from sgcHTML

Customers, products, providers and invoicing, with dashboard charts, role-based admin and passkey sign-in. A 7.7 MB Delphi executable, no DLLs beside it, serving a complete web ERP off SQLite.

A full ERP from one exe

ERP: a Delphi web application built with sgcHTML, shown running in a browser.

Customers

ERP: a Delphi web application built with sgcHTML, shown running in a browser.

Invoices

ERP: a Delphi web application built with sgcHTML, shown running in a browser.

Reports

110 Components, Ten Families

From navigation chrome to data grids, charts, forms, overlays and AI chat: the full Bootstrap 5 vocabulary as native components. Each links to its own page with Delphi, C++ Builder and .NET examples.

NavBar, Sidebar, Breadcrumb, Tabs, Pagination, Toolbar, TreeView, Stepper, Dropdown, ButtonGroup, ListGroup, DashboardLayout, Splitter.

View components →

Data & Tables

Grid, DataTable, TreeGrid, PivotTable, Calendar, Scheduler, Timeline, ActivityFeed, KanbanBoard, Gantt: sortable, filterable, exportable, dataset-bound.

View components →

Charts & Visualization

Chart (Chart.js), CandlestickChart, Gauge, Heatmap, Sparkline, TreeMap, Diagram (SVG flow), Map (Leaflet), QRCode, Barcode: data-driven visuals from your own datasets.

View components →

Forms & Inputs

Form, Edit, Memo, CheckBox, RadioGroup, Select, MultiSelect, InputGroup, AutoComplete, DatePicker, TimePicker, ColorPicker, Slider, FileUpload, RichEditor, Rating, SignaturePad, Transfer.

View components →

Content & Layout

Panel, StatCard, Accordion, Carousel, Image, Avatar, Video, Badge, PDFViewer: cards, media and KPI tiles for dashboards.

View components →

Overlays & Feedback

Modal, Offcanvas, Popover, Toast, Snackbar, Notification, Spinner, Placeholder, ContextMenu, ProgressBar, JobProgress, LogViewer: dialogs and status surfaces.

View components →

Chat & AI

ChatBox, Chat (WhatsApp-style), AIChat with provider selector, token streaming and RAG source citations, Presence for live online status.

View components →

Authentication

Login, SocialLogin (OAuth), OAuthCallback, WebAuthnLogin (passkeys), UserManagement, RolesPermissions: ready-made sign-in flows and admin screens.

View components →

Instruments & SCADA

Gauge, LinearGauge, LED, LEDBar, SegmentDisplay, Odometer, AnalogClock, Compass, VUMeter, Knob, ToggleSwitch, PushButton, NumericStepper, StripChart, Oscilloscope, Annunciator, SCADAPanel. Control room panels kept live by the server, with MQTT binding.

View components →

Infrastructure & Engine

EngineServer, HTMXEngine, PageBuilder, TemplateBootstrap, ThemeController, ThemeBuilder, HTMXFragment, HTMXRouter: the non-visual pieces that serve pages and keep them live.

View components →

See the full feature matrix →

You Write Pascal or C#. sgcHTML Writes the Front End.

sgcHTML turns your existing Delphi, C++ Builder or .NET back end into a web application server. Every component is a native class that emits Bootstrap 5 HTML; htmx keeps the page interactive and live without a single line of hand-written JavaScript.

Components that render HTML

Every widget is a class: TsgcHTMLComponent_Chart, TsgcHTMLComponent_Grid, TsgcHTMLComponent_Form and 86 more. Set its properties, then read its HTML property to get clean, Bootstrap 5 markup ready to serve.

Served by your own server

Drop a TsgcHTMLEngine_Server (or wire the HTML to an existing TsgcWebSocketHTTPServer). Requests arrive in your OnCommandGet handler; you answer with a page built from components. No external web stack.

WebBroker & DataSnap hosting

sgcHTML is not tied to the sgcWebSockets server. Serve the same component-built pages from any Embarcadero WebBroker application via TsgcHTMX_Engine_Server_WebBroker, or from a DataSnap server with live WebSocket push on the same port as your REST endpoints.

WebBroker & DataSnap hosting →

Interactive through htmx

Add a TsgcHTMX_Engine_Server and clicks, form posts and live updates round-trip to your Pascal/C# event handlers. The server swaps HTML fragments in place. The SPA feel, none of the JavaScript build chain.

Real-time over WebSockets

Because htmx runs over the sgcWebSockets server, you can push live HTML to every connected browser. Dashboards, monitors and chat windows update the instant your data changes, server-driven, no polling. Where a proxy blocks WebSockets, the same page can receive its updates over server-sent events instead.

Theming & templates

TsgcHTMLTemplate_Bootstrap wraps your content in a complete responsive document; TsgcHTMLThemeController and TsgcHTMLThemeBuilder provide light/dark themes and a shared stylesheet. Bootstrap 5.3 and htmx ship embedded: no CDN at runtime.

Direct database binding

Grid, DataTable, Chart, Select, TreeView, Scheduler, Timeline and Form bind straight to a TDataSet via LoadFromDataSet / DataSource. Point a component at a query and it renders the rows.

Localized UI, 17 languages

sgcHTML ships built-in UI text (buttons, labels, validation messages) in 17 languages: English, Spanish, French, German, Portuguese, Italian, Dutch, Swedish, Norwegian, Polish, Czech, Turkish, Russian, Chinese, Japanese, Korean and Arabic. Pick one with sgcHTMLSetLanguage and components render in the visitor's language with correct native scripts, including CJK, Cyrillic and Arabic. Right-to-left languages such as Arabic and Hebrew flip the whole page automatically: it renders with dir="rtl", loads Bootstrap's RTL stylesheet and mirrors the sidebar, grid, steppers, chat and the other components, with no code changes.

Safe output by default

Every component routes its dynamic text, attributes, inline JavaScript and URLs through automatic HTML, attribute, JavaScript and URL encoding plus URL sanitization (sgcHTMLEncode, sgcHTMLAttrEncode, sgcJSEncode, sgcHTMLSanitizeURL), so user data cannot break out of its context and inject script. XSS and injection protection is on without extra work.

Right to Left Languages: Arabic and Hebrew

Arabic and Hebrew flip the whole page right-to-left automatically: dir="rtl", Bootstrap's RTL stylesheet and mirrored components, with no code changes.

Right-to-left (RTL)

One page in English, Arabic and Hebrew. Pick Arabic or Hebrew and the whole layout turns right-to-left, from the sidebar to the grid. No code changes, only the language.

Built-in UI text (buttons, labels, validation messages) in English, Spanish, French, German, Portuguese, Italian, Dutch, Swedish, Norwegian, Polish, Czech, Turkish, Russian, Chinese, Japanese, Korean and Arabic. Pick one with sgcHTMLSetLanguage.

Open the live demo →

Read the localization help topic

What's New in sgcHTML

Every addition is off until you use it, so a page that does not use one renders exactly as before. The full list is in the feature matrix.

Your page inside ChatGPT and Claude

An MCP tool answers with a page instead of text, built from the same components you use for any web page and rendered by ChatGPT, Claude and VS Code. Needs the Enterprise or All-Access edition, or the sgcAI pack. See MCPApp.

AI page generator

Describe a page or hand the designer a screenshot, and it builds the page out of your own components. It answers from a schema built from your registry, so it cannot name a class you did not offer, and nothing is applied until you accept it. It needs the AI units of the Enterprise or All-Access edition, or the sgcAI pack. Read the guide.

CRUD as one component

The list, search, paging, form, delete and write path of one table as a single component, over a dataset or over your own SQL. An IDE wizard creates it. See CRUD.

Ask a grid a question

A question in plain language becomes filters, sorts, groupings and highlights, validated against your own columns before anything is applied. It works with no API key through a built-in parser, and with seven providers when the AI units are in your edition. See AIAssistant.

Reach a closed browser

Server-sent events for networks that block WebSockets, Web Push for a browser that is not running, a notification inbox and a preferences table. Web Push needs the Enterprise or All-Access edition. See WebPush.

Sessions, routing and testing

Cookie sessions, CSRF tokens, login throttling and route protection by role. Path parameters and method filters on routes, single page navigation from the page template, and helpers to test the markup you produce. See Auth.

ASP.NET Core Razor Tag Helpers

If you build ASP.NET Core MVC or Razor Pages applications the Telerik or DevExpress way, sgcHTML now speaks the same language. Tag Helpers such as <sgc-grid>, <sgc-form>, <sgc-dialog> and <sgc-chart>, and their fluent twins under Html.Sgc(), render server side Bootstrap 5 HTML and talk to your controllers over htmx. There is no JavaScript framework to learn and no JSON data source to write. The Razor layer ships in the esegece.sgcHTML.AspNetCore NuGet package, the Community edition included.

A grid over IQueryable

<sgc-grid> pages, sorts, filters (text and range), searches and exports to XLSX and PDF on the server. The controller answers with this.SgcGrid(request, query), and EF Core turns every click into parameterised SQL. push-url keeps the page, sort and filters in the address bar, so reload and the back button work.

Forms bound with asp-for

<sgc-textbox>, <sgc-select>, <sgc-datepicker>, <sgc-checkbox> and <sgc-autocomplete> bind to your model with asp-for and show the ModelState errors under each input. <sgc-form hx="true"> posts over htmx, and this.SgcRedirect(url) navigates after a valid save.

Edit in a dialog

Any element with sgc-dialog="name" loads its URL into an <sgc-dialog>. After a valid post, this.SgcCloseDialog("edit-order", refresh: "orders") closes the dialog and reloads the grid, the popup editing pattern with no script of your own.

Charts pushed live, no SignalR

<sgc-chart> renders static data, polls an action with refresh-every="5s", or goes live="true": a background service calls hub.BroadcastChartAsync(...) and every open browser redraws over the sgcHTML WebSocket. Telerik and DevExpress charts need SignalR plumbing for server push, sgcHTML has it built in.

@* Views/Orders/Index.cshtml, page 1 renders inline from the model *@
@model IQueryable<OrderRow>

<sgc-grid name="orders" key="Id" items="Model"
          asp-action="Read" asp-export-action="Export" export="xlsx,pdf"
          page-size="15" sortable="true" filterable="true"
          searchable="true" push-url="true">
    <sgc-column field="Reference" searchable="true" />
    <sgc-column field="Customer" searchable="true" />
    <sgc-column field="OrderDate" title="Date" format="{0:yyyy-MM-dd}" filter="range" />
    <sgc-column field="Total" format="{0:N2}" align="right" filter="range" />
    <sgc-column field="Paid" />
</sgc-grid>
// Program.cs
builder.Services.AddControllersWithViews();
builder.Services.AddSgcHtml(o => o.ServeRootPage = false);  // the MVC app owns "/"
builder.Services.AddSgcHtmlRazor();   // SgcDataRequest binder, grid state, /sgcHTML.css
// ...
app.UseWebSockets();   // before UseSgcHtml, needed by live charts
app.UseSgcHtml();
app.MapDefaultControllerRoute();

// Controllers/OrdersController.cs
public class OrdersController : Controller
{
    private readonly ShopDb FDb;

    public OrdersController(ShopDb db) { FDb = db; }

    // An IQueryable projection: EF Core turns paging, sort and filters into SQL.
    private IQueryable<OrderRow> Rows() =>
        FDb.Orders.AsNoTracking().Select(o => new OrderRow
        {
            Id = o.Id, Reference = o.Reference, Customer = o.Customer.Name,
            OrderDate = o.OrderDate, Total = o.Total, Paid = o.Paid
        });

    public IActionResult Index() => View(Rows());

    // Every page, sort, filter and search click of the grid lands here.
    public IActionResult Read(SgcDataRequest request) => this.SgcGrid(request, Rows());

    // The toolbar export links: the filtered and sorted rows as XLSX or PDF.
    public IActionResult Export(SgcDataRequest request) =>
        this.SgcGridExport(request, Rows(), "orders");
}
@* The same grid with the fluent builder, the twin of Html.Kendo().Grid<T>() *@
@(Html.Sgc().Grid<OrderRow>("orders")
    .Key(o => o.Id)
    .Columns(c =>
    {
        c.Bound(o => o.Reference).Searchable();
        c.Bound(o => o.Customer).Searchable();
        c.Bound(o => o.OrderDate).Title("Date").Format("{0:yyyy-MM-dd}").Filter(SgcGridFilterKind.Range);
        c.Bound(o => o.Total).Format("{0:N2}").Align("right").Filter(SgcGridFilterKind.Range);
        c.Bound(o => o.Paid);
    })
    .Items(Model)
    .Read("Read")
    .Export(SgcExportFormat.Xlsx, SgcExportFormat.Pdf)
    .ExportAction("Export")
    .Pageable(15)
    .Sortable().Filterable().Searchable().PushUrl())
@* _Layout.cshtml: live="ws" opens the WebSocket that live charts listen to *@
<sgc-scripts live="ws" />

@* The view *@
<sgc-chart name="live-orders" type="line" height="260" live="true">
    <sgc-series name="Orders / s" data="new double[] { 0 }" color="#dc3545" />
</sgc-chart>
// builder.Services.AddHostedService<LiveSalesFeed>();
public sealed class LiveSalesFeed : BackgroundService
{
    private readonly ISgcHtmlHub FHub;
    private readonly Queue<string> FLabels = new Queue<string>();
    private readonly Queue<double> FValues = new Queue<double>();

    public LiveSalesFeed(ISgcHtmlHub hub) { FHub = hub; }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        var oRandom = new Random();
        while (!stoppingToken.IsCancellationRequested)
        {
            await Task.Delay(1000, stoppingToken);
            FLabels.Enqueue(DateTime.Now.ToString("HH:mm:ss"));
            FValues.Enqueue(oRandom.Next(0, 20));
            if (FValues.Count > 20) { FLabels.Dequeue(); FValues.Dequeue(); }

            // One WebSocket message redraws the chart in every open browser.
            await FHub.BroadcastChartAsync("live-orders", FLabels.ToArray(),
                new SgcChartSeries("Orders / s", FValues.ToArray(), "#dc3545"));
        }
    }
}

Coming from Telerik UI for ASP.NET Core or DevExpress? [DataSourceRequest] becomes SgcDataRequest, ToDataSourceResult becomes this.SgcGrid(request, query) (or query.ToSgcDataResult(request) for the data only), and Html.Kendo().TextBoxFor(m => m.X) becomes Html.Sgc().TextBoxFor(m => m.X). The runnable MVC demo, 22.RazorMvc, is the Telerik orders sample written with sgcHTML over EF Core.

A Web Dashboard in a Few Lines

Start an HTTP server, attach the htmx engine, and answer requests with a page built from components. The same API in Delphi, C++ Builder and .NET.

uses
  sgcWebSocket_Server, sgcHTMX_Engine_Server,
  sgcHTML_Template_Bootstrap, sgcHTML_Component_Chart;

// 1. Start a server and attach the htmx engine
FServer := TsgcWSHTTPServer.Create(nil);
FServer.Port := 8080;
FServer.OnCommandGet := HandleGet;

FHTMX := TsgcHTMX_Engine_Server.Create(nil);
FHTMX.Server := FServer;        // realtime htmx over WebSocket

FServer.Active := True;

// 2. Build the page from components
function TForm1.BuildDashboard: string;
var
  oChart: TsgcHTMLComponent_Chart;
  oPage: TsgcHTMLTemplate_Bootstrap;
begin
  oChart := TsgcHTMLComponent_Chart.Create(nil);
  oPage := TsgcHTMLTemplate_Bootstrap.Create(nil);
  try
    oChart.ChartType := ctBar;
    oChart.AddLabel('Q1'); oChart.AddLabel('Q2'); oChart.AddLabel('Q3');
    oChart.AddDataset('Revenue', [1200, 1900, 1500],
      '#7C3AED', 'rgba(124,58,237,.25)', True);

    oPage.Title := 'Dashboard';
    oPage.BodyContent := oChart.HTML;   // component -> HTML
    Result := oPage.GetHTML;            // full Bootstrap document
  finally
    oPage.Free;
    oChart.Free;
  end;
end;
// includes: sgcWebSocket_Server.hpp, sgcHTMX_Engine_Server.hpp,
//           sgcHTML_Template_Bootstrap.hpp, sgcHTML_Component_Chart.hpp

// 1. Start a server and attach the htmx engine
FServer = new TsgcWSHTTPServer(this);
FServer->Port = 8080;
FServer->OnCommandGet = HandleGet;

FHTMX = new TsgcHTMX_Engine_Server(this);
FHTMX->Server = FServer;          // realtime htmx over WebSocket

FServer->Active = true;

// 2. Build the page from components
String __fastcall TForm1::BuildDashboard()
{
  TsgcHTMLComponent_Chart *oChart = new TsgcHTMLComponent_Chart(NULL);
  TsgcHTMLTemplate_Bootstrap *oPage = new TsgcHTMLTemplate_Bootstrap(NULL);
  try
  {
    oChart->ChartType = ctBar;
    oChart->AddLabel("Q1"); oChart->AddLabel("Q2"); oChart->AddLabel("Q3");
    oChart->AddDataset("Revenue", OPENARRAY(double, (1200, 1900, 1500)),
      "#7C3AED", "rgba(124,58,237,.25)", true);

    oPage->Title = "Dashboard";
    oPage->BodyContent = oChart->HTML;   // component -> HTML
    return oPage->GetHTML();             // full Bootstrap document
  }
  __finally
  {
    delete oPage;
    delete oChart;
  }
}
using esegece.sgcWebSockets;

// 1. Start a server and attach the htmx engine
var server = new TsgcWebSocketHTTPServer();
server.Port = 8080;
server.OnCommandGet += HandleGet;

var htmx = new TsgcHTMX_Engine_Server();
htmx.Server = server;            // realtime htmx over WebSocket

server.Active = true;

// 2. Build the page from components
string BuildDashboard()
{
    var chart = new TsgcHTMLComponent_Chart();
    chart.ChartType = TsgcHTMLChartType.ctBar;
    chart.AddLabel("Q1"); chart.AddLabel("Q2"); chart.AddLabel("Q3");
    chart.AddDataset("Revenue", new double[] { 1200, 1900, 1500 },
        "#7C3AED", "rgba(124,58,237,.25)", true);

    var page = new TsgcHTMLTemplate_Bootstrap();
    page.Title = "Dashboard";
    page.BodyContent = chart.HTML;   // component -> HTML
    return page.GetHTML();            // full Bootstrap document
}

See sgcHTML in Two Minutes

Build a complete web UI from Delphi with server-side components, Bootstrap 5 markup and htmx, with no JavaScript build step.

High-Level Components or Low-Level Nodes

Reach for ready-made components when you want a widget in one line, or drop to the node layer when you need full control over the markup.

Component layer

The 110 TsgcHTMLComponent_* widgets. Configure properties, optionally bind a dataset, read HTML. Many also expose a static Build(...) helper for one-line inline use.

Node / composition layer

Primitives like TsgcHTMLContainer (with a Void flag for self-closing tags), TsgcHTMLCard, TsgcHTMLForm, TsgcHTMLField, TsgcHTMLButton and TsgcHTMLTable compose into any layout, then render with TsgcHTMLTemplate_Bootstrap. The node set also includes Bootstrap building blocks such as TsgcHTMLModal, TsgcHTMLOffcanvas, TsgcHTMLAccordion, TsgcHTMLCarousel, TsgcHTMLToast, TsgcHTMLProgress, TsgcHTMLSpinner, TsgcHTMLListGroupNode, TsgcHTMLInputGroup, TsgcHTMLButtonGroupNode, TsgcHTMLRadio, TsgcHTMLBreadcrumb, TsgcHTMLNavbarNode and TsgcHTMLImage.

Visual page builder

TsgcHTMLPageBuilder with its design-time editor lets you assemble pages in the IDE, while TsgcHTMLThemeController manages light/dark theming across the whole app.

Where sgcHTML Runs

TargetDetails
Delphi 7 to 13Delphi 7, 2007, 2009, 2010, XE through XE8, 10 Seattle through 10.4 Sydney, 11 Alexandria, 12 Athens and 13 Florence. Windows, macOS and Linux are all supported.
C++ BuilderC++ Builder (matching versions)
.NET.NET 8, .NET 9, .NET 10, .NET Standard 2.0, on Windows, Linux and macOS hosts, with ASP.NET Core Razor Tag Helpers.
HostingThe sgcWebSockets HTTP server, any WebBroker application, a DataSnap server or ASP.NET Core.
BrowserBootstrap 5 and htmx assets embedded. No CDN required at runtime.

sgcHTML is a server-side library: the phone receives HTML over the network, so Android and iOS are not build targets.

Fifteen Real Applications, Running Right Now

Every screen below is a Delphi application serving its own HTML through sgcHTML. No JavaScript build step, no separate front-end project. Sign in with the credentials already filled in on each login page.

ERP: a Delphi web application built with sgcHTML, shown running in a browser.

ERP

Customers, products, providers and invoicing, with dashboard charts, role-based admin and passkey sign-in.

Open the live demo →
Reporting & BI: a Delphi web application built with sgcHTML, shown running in a browser.

Reporting & BI

Dashboards, a report catalogue, an ad-hoc pivot builder and an explore view over 27,000 order lines, queried in-process.

Open the live demo →
Point of sale: a Delphi web application built with sgcHTML, shown running in a browser.

Point of sale

A touch till with categories, promotions, parked sales, shift handling and a live customer display.

Open the live demo →
Warehouse (WMS): a Delphi web application built with sgcHTML, shown running in a browser.

Warehouse (WMS)

Inbound, outbound, stock on hand, movements and cycle counts, plus a handheld terminal layout for scanners.

Open the live demo →
Field service: a Delphi web application built with sgcHTML, shown running in a browser.

Field service

A dispatch board, Gantt planner and live technician map for scheduling engineers and jobs.

Open the live demo →
Admin console: a Delphi web application built with sgcHTML, shown running in a browser.

Admin console

Search-as-you-type, inline add and edit, and delete, all swapped in as htmx fragments with no page reload.

Open the live demo →
Live monitor: a Delphi web application built with sgcHTML, shown running in a browser.

Live monitor

Server metrics pushed over WebSocket into out-of-band htmx fragments, updating KPI cards and charts in real time.

Open the live demo →
Right-to-left: a Delphi web application built with sgcHTML, shown in Arabic with the whole layout mirrored.

Right-to-left (RTL)

One page in English, Arabic and Hebrew. Pick Arabic or Hebrew and the whole layout turns right-to-left, from the sidebar to the grid. No code changes, only the language.

Open the live demo →
Customer portal: a Delphi web application built with sgcHTML, shown running in a browser.

Customer portal

A self-service area where customers see their own orders, profile and support tickets behind a login.

Open the live demo →
Multi-tenant SaaS: a Delphi web application built with sgcHTML, shown running in a browser.

Multi-tenant SaaS

A public marketing site, pricing page and signup flow in front of a per-tenant isolated control plane.

Open the live demo →

More Online Demos: AI, Instruments and SCADA

AI Data Pack

A data grid, a pivot table and a form driven by plain language: filters, sorts and groupings over 26,000 order lines, an AI column assistant and smart paste. Runs without an API key.

Open the live demo →

Shop Assistant

A storefront built entirely from sgcHTML components, with a floating chat assistant whose answers are grounded in the product catalog. The online version needs no LLM API key.

Open the live demo →

MCP Apps

A Delphi application rendered inside ChatGPT, Claude or VS Code: MCP tools return sgcHTML pages that the host displays, and their buttons keep working there.

Open the live demo →

Instruments

A control room for a simulated boiler loop: gauges, displays, operator controls, strip charts and an oscilloscope kept live by the server, with no polling.

Open the live demo →

SCADA / IoT

A cooling water plant mimic with tanks, valves, pumps and animated flow, plus gauges, a strip chart and alarms, all driven by MQTT. Online it runs a simulated plant.

Open the live demo →

See all online demos →

Short Videos, No Slides

Every clip is a screen recording of one of these applications actually running, narrated and captioned. Nothing downloads until you press play.

The component catalogue

A tour of the 110 components, from grids and charts to Kanban boards and signature pads.

The grid, nine behaviours deep

Sorting, filtering, paging, inline edit, selection and dataset binding, all driven from Pascal.

htmx in a hurry

How a fragment swap replaces a page reload, and what that looks like in your Delphi code.

Real time over WebSocket

Server metrics pushed into out-of-band fragments, updating cards and charts as they change.

A till with no REST tier

The point-of-sale demo reading the database in-process, with no JSON API in the middle.

Reporting straight off the data

Dashboards, a pivot builder and an explore view over 27,000 order lines.

Fifty components in one app

The warehouse demo, counting up the component library it leans on screen by screen.

Dispatcher and technician, side by side

The same application on a desktop board and a phone, staying in sync.

Multi-tenant isolation, proved

One binary, one database, strict per-tenant separation, demonstrated rather than asserted.

A customer portal

Self-service orders, profile and support tickets behind a login.

Live CRUD without a reload

Search-as-you-type, inline add and edit, and delete, swapped in as htmx fragments.

A helpdesk with a ticket flow

Registration, ticket threads and status changes, all server-rendered.

An AI assistant grounded in your data

A shop assistant answering from the product catalogue rather than inventing an answer.

Whole-site layouts

Navigation, sidebars and page composition built from the Site component.

Dropping into WebBroker

Adding sgcHTML output to an existing Delphi WebBroker application.

WebBroker and DataSnap together

Serving a modern front end from a service layer you already have.

Choose Your License

All licenses include full source code, 1 year of updates, and 70% renewal discount.

Delphi & C++ Builder

Includes sgcWebSockets Core

€299 / developer

1 Year Updates

  • 110 HTML/UI components
  • Delphi & C++ Builder
  • Bootstrap 5 + htmx engine
  • Data-aware TDataSet binding
  • Full Source Code
  • Free binary redistribution
Single — €299 Team — €449 Site — €749

.NET

.NET Framework, .NET Core and .NET 5+ (NuGet)

€299 / developer

1 Year Updates

  • Server-side HTML/UI components
  • Bootstrap 5 + htmx engine
  • Full Source Code
  • Free binary redistribution
Single — €299 Team — €449 Site — €749

sgcCustomization HTML

We build your web application for you.

€149

Three one-time packages

With sgcCustomization HTML you describe the application you need and the eSeGeCe team builds it for you with the sgcHTML + sgcWebSockets components.

Discover sgcCustomization HTML

sgcHTML is a standalone component pack. The price above already includes the sgcWebSockets Core runtime it is built on, so there is nothing else to add to your order.

Start from Where You Are

Coming from another web framework?

Already have a web application built with IntraWeb, uniGUI, TMS WEB Core, Elevate Web Builder or D2Bridge? Step-by-step guides walk you through moving it to sgcHTML, with a concept mapping for each framework. There is also a migration assistance form if you want our team to help plan or do the move.

Open the Migration Guides →
Framework Comparison →

Already on WebBroker or DataSnap?

Serve the same component-built pages from any Embarcadero WebBroker application, or from a DataSnap server with live WebSocket push on the same port as your REST endpoints.

WebBroker & DataSnap hosting →

Don't want to build it yourself?

With sgcCustomization HTML you describe the application you need and the eSeGeCe team builds it for you with the sgcHTML + sgcWebSockets components. Three one-time packages from €149, and you receive a complete project you can compile, extend and restyle with your licensed components.

Discover sgcCustomization HTML →

Try sgcHTML

sgcHTML is bundled inside the sgcWebSockets All-Access trial. One installer, both products.

RAD Studio / Delphi Downloads

Trial version works for a limited time on a single workstation. Includes all sgcHTML components.

Download the trial →

C++ Builder Downloads

C++ Builder (matching versions)

Download the trial →

NuGet Package

Install directly from nuget.org for all .NET targets.

View on NuGet →

Demos

Source code of the sgcHTML for ASP.NET Core demos on GitHub.

View on GitHub →

Frequently Asked Questions

No. The library emits Bootstrap 5 markup and htmx attributes, and htmx is what makes a button post back and swap part of the page without a reload. You describe the interaction in Pascal and the attributes are generated for you. You can still add your own script when you want to, through CustomHead and BodyEndHTML.

You write it to an HTTP response yourself. HTML is a plain string property, so any server will do. The shipped demo uses TsgcWSHTTPServer on a Professional build and falls back to TIdHTTPServer otherwise, sets ResponseNo := 200 and ContentType := 'text/html; charset=utf-8', and assigns the string to ContentText.

TsgcHTMLComponent_Site, from the unit sgcHTML_Component_Site.pas. It renders a complete page shell, so you get navigation, a sidebar, a theme and a content area without assembling them yourself. Build it, call AddMenu and AddContent or AddSection, then read the HTML property. The shipped Site demo does exactly that.

When you build the page as nodes, yes, because the node writes the text and escapes it. The risk appears when you bypass the nodes and concatenate markup yourself, for example through AddContent with a string you built from user input. Prefer the node units for anything that carries user data.

No, and that is deliberate. SGC_HTML is defined on line 885 inside {$IFNDEF ANDROID} at line 883 and {$IFNDEF IOS} at line 884, so on those targets every sgcHTML unit compiles to an empty unit. It is a server-side library: the phone receives HTML over the network, which is why the mobile target does not need the renderer. Windows, macOS and Linux are all supported.

The download ships more than fifteen runtime demos under Demos\60.HTML\01.RunTime, including an ERP dashboard, a helpdesk, a point of sale, a warehouse, a reports app and a field service app. The gallery has a short video of each.

Help and Resources

Online help

Every component, with Delphi, C++ Builder and .NET examples.

Online help →

Getting Started

Start an HTTP server, attach the htmx engine, and answer requests with a page built from components.

Quick Start →

PDF guide

The Getting Started guide: design a page on a VCL form, run Delphi code from Surface actions, and follow the six QuickStart demos.

Getting Started guide (PDF) →

Feature matrix

110 Components, Ten Families

See the full feature matrix →

Fifteen Real Applications, Running Right Now

Gallery →
3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
30-Day Money-Back GuaranteeNot satisfied? Request a full refund within 30 days of purchase. See refund policy

Ship a Web UI Without Leaving Your IDE

Add charts, grids, forms, dashboards and real-time pages to your Delphi, C++ Builder or .NET application, with the language you already use.

Other Products by eSeGeCe

Pair sgcHTML with our other Delphi, C++ Builder and .NET component libraries.

sgcWebSockets

Enterprise WebSocket, HTTP/2, MQTT, AMQP, WebRTC and AI/LLM components. Add realtime messaging and the full networking stack to your sgcHTML application.

Learn more →

sgcQUIC

QUIC and HTTP/3 client and server components for Delphi, C++ Builder and .NET. Serve sgcHTML's rendered UI over HTTP/3 for lower-latency page loads on lossy networks.

Learn more →

sgcWebRTC

Full WebRTC media engine for Delphi and C++ Builder: audio/video calls, data channels and screen share. An add-on for sgcWebSockets Enterprise.

Learn more →

sgcSign

Enterprise digital signatures: XAdES, PAdES, CAdES and ASiC with 10 key providers and 21 EU country profiles.

Learn more →

sgcOpenAPI

OpenAPI 3.0 parser and SDK generator. Turn any OpenAPI spec into a strongly-typed Delphi client in seconds.

Learn more →

sgcBiometrics

Native Windows Hello, fingerprint and Windows Biometric Framework components for Delphi and C++ Builder.

Learn more →

sgcIndy

Updated Indy TCP/IP components with modern TLS, IPv6 and HTTP/2 support for Delphi 7 through 13.

Learn more →

sgcAI

15 AI, LLM and MCP components for Delphi and C++ Builder. One chat component reaches OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok and Mistral. Standalone, the sgcWebSockets Core runtime is bundled in.

Learn more →

sgcMQ

MQTT 3.1.1 and 5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka and STOMP client components for Delphi and C++ Builder. Standalone, the sgcWebSockets Core runtime is bundled in.

Learn more →

sgcCrypto

General-purpose cryptography library for Delphi and C++ Builder: symmetric and asymmetric ciphers, hashing and post-quantum algorithms. Ships free from sgcWebSockets Standard up.

Learn more →

sgcSocial

WhatsApp Business Cloud API and Telegram TDLib clients. Standalone, the sgcWebSockets Core runtime is included.

Learn more →