dhtml

Compare · fairly

What you stop assembling

Most stacks are a framework plus a long list of packages and services you pick, connect and keep updated. dhtml is one language, on one hosting service, that already contains the parts most apps need. The columns on the right describe typical setups, written by the dhtml project; check them against what you use.

§ 01 · Side by side

QuestiondhtmlNext.js on Node, with hosted Postgres (for example Neon)Plain PHP on shared hosting
Shape of a projectOne fixed layout: pages, api, layouts, partials, migrations, data. The same in every project.A conventional layout plus the config of your tools.Whatever you decide.
What you installNothing. You upload a folder to dhtml.net; your app adds no packages.Node, a package manager and a dependency tree that you keep updated.Usually nothing; the host provides PHP.
Build stepNone. Every upload is checked and compiled for you.Yes.None.
Language of a pageHTML with a few tags. SQL is written as SQL.JavaScript or TypeScript, JSX.PHP mixed with HTML.
DatabaseA SQLite database that is part of your site.A networked database that many servers can share.Usually MySQL provided by the host.
Safety by defaultOutput escaped by place, SQL values always bound, CSRF automatic, outbound hosts declared, no raw output.React escapes output by default; most of the rest is up to the libraries you pick.Up to you and your libraries.
Accounts, mail, AI calls, signed webhooksBuilt in, as tags.Libraries and services, chosen by you.Libraries, or a CMS.
Where it runsOn dhtml.net.Node hosts and serverless platforms.Nearly every shared host.
Client-side interactivityComponents, islands of client state, live updates over server-sent events, htmx-style fragments, and your own JavaScript in public/. The server renders the page first.Strong. This is what it is built for.Whatever you add yourself.
ScaleOne machine per site, sized by your plan.Many machines, regions, caches.One host, usually small.
Ecosystem and people who know itNew, with accounts, payments, jobs and AI built in rather than added from packages.Very large.Very large.

§ 02 · Good fit

Where dhtml is good

  • Apps you want to still understand in two years. Marketing sites, blogs, internal tools, SaaS products with accounts, payments, webhooks, background jobs and AI features, shops of the kind in the examples. What decides the fit is the shape of the product, not its size.
  • Teams of any size that would rather read a page than keep a build pipeline working.
  • Cheap hosting. One process, one file for the data, no separate database server.
  • Code written by or with an AI. The vocabulary is small and written down, which makes the result easier to read back, and the runtime refuses the classes of mistake that are easiest to make (injection, unescaped output, unlisted outbound calls).
  • Apps where a mistake should be loud. Every error names a file, a line and a hint, and the check on every upload finds most of them before a visitor does.

§ 03 · Parts you do not add

One program instead of a list

Usually a package or a serviceIn dhtml
Web framework, router, template enginePart of the language. The file path is the URL.
Auth library, session store, password hashing<d:login />, <d:register />, magic links, bans, an account log.
ORM and migration toolSQL as SQL, bound parameters, checksummed migrations.
AI SDK, streaming plumbing, usage tracking<d:ai>, streamed to the page, usage and history as data.
Payments SDK and a webhook handler<d:http> and a signed webhook that runs each event once.
Queue, scheduler, worker processJobs with retries, scheduled or queued.
Backup scripts and cronA backup of your database before every upload that changes it.
Client router, state library, websocket layerFast navigation, components, islands, live updates over server-sent events.
CSRF, escaping and header middlewareOn by default, in every response.

The short version: dhtml is one readable folder and one hosting service that do the work of the whole list. If you would rather choose each part yourself, or you want many machines sharing one database, a stack built around that fits that shape. For everything else, this is less to build and less to keep alive.