--- title: "Build a Slack clone and deploy to DigitalOcean" author: "@chris" author_url: https://elements.dev/u/chris published: 2026-09-04T17:00:00.000Z url: https://elements.dev/feed/01a02bea-29f7-7182-a998-3381fe4dc9fb kind: post format: video video: https://elements.dev/feed/01a02bea-29f7-7182-a998-3381fe4dc9fb/video.mp4 poster: https://elements.dev/feed/01a02bea-29f7-7182-a998-3381fe4dc9fb/poster.jpg duration: "1:37" transcript_vtt: https://elements.dev/feed/01a02bea-29f7-7182-a998-3381fe4dc9fb/transcript.vtt --- # Build a Slack clone and deploy to DigitalOcean by [@chris](https://elements.dev/u/chris) ยท 2026-09-04 ## Description A tour of Elements: the build server, instant builds, the reactive HTML language, and one-command deploys, demoed on a chat app running on a $6 droplet. ## Notes A real time chat app with accounts, live messages and Postgres, running on a $6/month Linux box I own. SSL terminated, load balanced, built by Claude Code in about ten minutes. Elements replaces your build server, your build tooling, and your deploy pipeline. Write your app, run one command, and it's live on any Linux server you choose. In this tour: - the app itself: sign up, post, and the message is on every other screen - a project server running in the background, so the app starts almost instantly - a TypeScript error appearing and clearing in milliseconds, in the editor and the build client at once - your agent as just another client, asking for build results with -json and getting them back in microseconds - tests as part of the build, updating live as you edit them - Postgres migrations syncing automatically, with SQL errors in the same build results - a new reactive HTML language, type checked, a decade in the making - deploy in a few seconds over a peer to peer protocol that does the minimum work possible ## Transcript This is a real-time chat app. I can create a new user account, post messages, and they're instantly visible to other users. It's deployed to a cheap $6 per month Linux box on Digital Ocean. Claude Code built this with elements, a simple prompt, 10 minutes, zero mistakes. Elements is a new way of building web applications. Our project server runs in the background, so our app starts almost instantly. The elements build command connects to that same server. When I introduce a TypeScript error, the editor shows the error immediately because it's connected too. Save the file and the build client updates in milliseconds. Fix the syntax and just as quickly the error goes away in both the editor and the build client. Agents are just another client and use the JSON fly to get structured build results. It's already built by the time the agent asks, so results come back in microseconds. Tests are part of the build and the test client connects the same way. Change a test and watch as the state updates in real time. Database migrations sync with the built-in Postres database automatically. SQL migration errors are in the same build results as everything else. The app framework has a lot in it, including a brand new HTML language a decade in the making. It's fast. It's type checked It's reactive Deploy takes a few seconds. It uses a peer to peer protocol to do the minimum work possible. When you build an app with elements, it'll work the first time and it'll work as the app grows larger. Install elements for yourself, go build and deploy something insanely great.