--- title: "Why Elements" author: "@chris" author_url: https://elements.dev/u/chris published: 2026-10-02T15:11:56.385Z url: https://elements.dev/feed/01a0fd2c-05f5-7fdc-a0fc-fbca0820d15c kind: lesson format: article --- # Why Elements by [@chris](https://elements.dev/u/chris) ยท 2026-10-02 ## Description AI can bring software to every corner of the earth. Elements is the app environment that gets us there. AI gives us the chance to bring software to every corner of the earth. For most of its history, custom software was something only large companies could pay for. Now an AI agent can build an app in an afternoon, so the optometrist can have their own scheduling, the coffee roaster their own store, the studio class packs that work the way it does, and the school, the clinic and the family business on the other side of the world can have software made for them, too. All of that software needs somewhere to be built, tested and run. Elements is that environment: the app environment AI-built software targets, from the first prompt on your laptop to the servers it runs on. It is built for the people who will make that software, and for the agents they work with. ## One coherent system A web app usually means a framework, a bundler, a package manager, a test runner, a database, a migration tool, a job queue, an email service and a deploy pipeline, each with its own config, its own versions and its own seams. Keeping those parts working together is a job of its own. Elements brings them together as one coherent system: a project server that runs while you work, and a default framework that just works. They were designed together, so a new app has a database, tests, jobs, email and live reload before you write a line of code. ## Built for people and their agents The project server knows the state of your app at every moment and answers in microseconds. Your terminal, your editor and your agent all connect to the same server. They see the same errors, and the server runs their commands one after another, so they never step on each other. An agent that can check its work after every edit stops guessing. That is why an agent can build a store with Stripe checkout, or a chess site with clocks and ratings, and hand it over with its tests passing. ## The right thing by default Elements gets the details right without configuration: - Every page has an ETag computed from its source, its data and the session, so an unchanged page answers in a few bytes. - Every asset has a hash in its file name, so browsers and any CDN in between cache it forever, and a new release changes only the urls that changed. - A page for a signed-in visitor is marked private, so no shared cache or CDN stores it. - A query cannot reach the browser: calling `sql()` from browser code is a build error. Secrets in config stay on the server unless you tag them for the browser. - A release goes live only when every test passes. ## Yours Your app runs on Node.js, on servers you choose, with your data in your Postgres database. Elements charges for the tooling, not the framework. The code your app runs on, the app framework and runtime packages such as `@elements/app`, is MIT licensed, and everything you build is yours, even if you stop paying ([licenses](/learn/man/licenses)). ## Start building AI did not end the need for software engineers. It changed their tools. An engineer with an AI agent builds what used to take a team, and software that can now reach every corner of the earth needs more of those builders than ever before. It is time to build. ```prompt ``` Paste that into your AI agent, or pick a [demo](https://elements.dev/demos) that looks like what you want to build and paste its prompt instead.