Data and screens. Configured in minutes.

Real PostgreSQL and SQL Server tables underneath. Add custom fields, relations and saved queries without code or redeploys.

The problem

A customer asks for one more field.

In a hand-built product that is a migration, a backend change, a form change and a release.

Customer request“Can we have a cost centre on every order?”
Hand-built product
  1. Database migration
  2. Backend change
  3. Form change
  4. Release
A sprint you schedule. Another special case.
On TechAppForce
  1. Add the field (configuration)
  2. Review the change
  3. Release it
No code change, no redeploy

How we solve it

One entity model. Every screen and query reads it.

Fields, lookups and child records configure once. Lists, forms, dashboards and your code read from the same model.

1 Entity: Vendor
  • Nametext
  • Countrylookup
  • Categorychoice
  • Tax numbertext
  • Documentschild records
Country → Countries
2 Saved queryDocuments expiring in 30 daysVendor.NameExpiry ≤ 30 dayssort: Expiry Tested against real rows
3 Everything reads it
  • Vendor listfilters, search, export
  • Vendor formdocuments underneath
  • Dashboardvendors by category
  • Workflow or SDKruns the query by name
Real PostgreSQL or SQL Server tables, or the ones you already have A data API per entity, access applied to every row

What you get

Real database tables. Zero migration scripts to write.

Entities become real PostgreSQL or SQL Server tables. The platform safely adds columns and manages foreign keys.

Vendor

FieldTypeRules
NameTextRequired, searchable
ReferenceNextNumberVEN-{5n}
CountryPickListRequired
Account managerUserLookup
ContractsChild recordsContract
TextNumberCurrencyDatePick listLookupUserJSONAuto-number
Change trackingSearchSharingCommentsLifecyclesApprovalsSoft deleteLayouts
CREATE TABLE "Vendor" (
  "Id"        uuid PRIMARY KEY,
  "Name"      varchar(200) NOT NULL,
  "Country"   varchar(100),
  "Reference" varchar(40)
);
-- 0 columns dropped. Nothing has run yet.
CreateAddAlterDrop: never

Saved queries & data API

Build queries visually. Run them from screens and code.

Saved queries join relations, filter by current user or parameters, and enforce row-level access automatically.

Saved query · Open_PurchaseOrdersIllustration
FieldsPurchaseOrder.NumberPurchaseOrder.Amount Vendor.Name CostCentre.Owner
FiltersStatus = OpenCreated this monthOwner = @currentUser Run on real rows · 12 rows
List screenDashboardReportWorkflowClient SDK

Saved queries, created for you

  • Default_Vendorevery field
  • List_Vendorfor list screens and grids
  • Detail_Vendorfor detail screens
Create · read · update · delete22 operators, groupedCurrent user, this monthLookups joinedChild records includedGroup and aggregateSort and page

Rows outside the caller's access never come back

Extensibility

Extend with code when configuration isn't enough

TypeScript lifecycle hooks on forms, custom React components, or client SDK calls.

Screen extension hooks

  • beforeFormLoad
  • afterFormLoad
  • onBeforeSubmit
  • onAfterSubmit
  • onChange
  • onCustomEvent
  • onScreenDestroy
TypeScript screen extensionYour own componentsCustom front end on the client SDK

Start configuring your application

See how fast you can model your business data, design screens, and connect workflows on TechAppForce.