Skip to main content

Tessel: A Tiny Declarative Language for Building Native Desktop Apps

Tessel — a tiny declarative language for native desktop apps

Most tools for building a desktop app ask you to make a lot of decisions before you've written a single line that does anything: pick a framework, wire up a build system, set up a project structure, manage dependencies, configure a packager. Tessel throws all of that out. It's a small declarative programming language where a folder of .tsl files is the program — and the whole thing compiles down to a tiny native app for macOS and Windows. Here's a tour of what makes it interesting.

A whole app in one block

The clearest way to understand Tessel is to look at a complete program. This is a working counter app — not a snippet, the entire thing:

A complete Tessel counter program compiling to a native window

You declare an app with a window size, a piece of state, and a tree of views — VStack, HStack, Text, Button — described the way they should look. Run it with tessel run counter.tsl and a real window opens. There are no project files, no imports, and no build configuration to write. If you've ever bounced off desktop development because of the ceremony involved just to get a window on screen, that absence is the whole point.

Declarative by design

Tessel is declarative: you describe what the screen should show for the current state, and when the state changes, Tessel updates the window for you. You don't manually reach into the UI and mutate a label when the count changes — you change count, and the Text that depends on it re-renders. If that sounds like SwiftUI or React, the mental model is similar, but Tessel folds it into a language small enough to hold in your head.

That smallness is deliberate. Tessel advertises just a handful of rules to learn: one kind of block, value types only, no imports, and errors handled as optionals. And when something does go wrong, the design goal is that every error message tells you what to do next — a philosophy more languages should steal.

Native and genuinely small

Here's the part that surprised me most. Tessel programs don't ship an entire browser engine or a heavy runtime. They compile through LLVM to small native executables — roughly 1 MB for an app — and Tessel draws the UI itself using the system's own graphics. The same source builds a .app bundle on macOS and an .exe on Windows, with no code changes.

A one-megabyte, dependency-free native binary from a dozen readable lines of code is a genuinely different trade-off from the Electron-style status quo, where "hello world" can weigh in at a hundred megabytes.

More than a toy

The counter is the hello-world, but the language reaches further. Out of the box it has structs, enums, lists, and dictionaries; UI building blocks like text fields, toggles, pickers, tabs, and even a code editor; over 100 built-in icons; and access to files, processes, and the network, with callbacks that update your UI safely when work finishes. That's enough to build the kind of small, focused desktop tools that are genuinely tedious to make any other way — there's a todo-list tutorial on the site that walks through a real one.

The IDE is written in Tessel

The most quietly convincing detail: type tessel in a project folder and it opens the Tessel IDE — a file explorer, a tabbed editor with syntax colors and live errors, and one-click run, build, and packaging. And that IDE is itself a Tessel app. A language whose own tooling is written in the language is making a confident claim: this isn't a toy, it's something you can build a real, interactive, stateful application with.

Worth a look

Tessel is a bet that desktop development got too complicated, and that a small declarative language with a tiny native output could win back a lot of the joy. If you want to see it for yourself — the counter above, the todo tutorial, and the IDE — it all lives at tessel-lang.syncster.dev.


🔗 Explore more from Syncster

Comments

Popular posts from this blog

Cursor AI Review: Is the AI Code Editor Worth It?

I've been using Cursor as my main code editor for a while now, and enough people have asked whether it's worth switching to that a proper review felt overdue. Short version: for me, yes — but with caveats. What is Cursor? Cursor is an AI-first code editor built as a fork of VS Code. That means every extension, theme, and keybinding you already use in VS Code works here, but with AI woven directly into the editing experience instead of bolted on as a plugin. It's made by Anysphere and can run models from OpenAI and Anthropic under the hood. What I like Tab completion is uncanny. Cursor predicts your next edit — not just the rest of the line, but the next change across the file. Once you get used to hitting Tab, going back to a plain editor feels slow. The Composer / Agent mode. You describe a change in plain language and it edits multiple files at once, showing you a diff to accept or reject. For refactors and boilerplate, this saves real time. It unde...

MacBook Pro M5 vs M5 Pro: Which One Should You Actually Buy?

Apple's latest 14-inch MacBook Pro comes in two very different flavors: the base M5 and the step-up M5 Pro . On paper they look similar — same gorgeous Liquid Retina XDR display, same design — but under the hood the gap is bigger than the names suggest. Here's a clear, no-hype breakdown, with concrete use cases so you can match the chip to your work. Quick spec comparison Spec M5 M5 Pro CPU 10-core (4 performance + 6 efficiency) Up to 18-core (6 performance + 12 efficiency) GPU 10-core Up to 20-core Neural Engine 16-core 16-core Memory bandwidth 153 GB/s 307 GB/s (roughly double) Unified memory 16 / 24 / 32 GB 24 / 48 / 64 GB Max storage Up to 4 TB SSD Up to 8 TB SSD Battery (video playback) Up to 24 hours Up to 22 hours Media engines Single encode/ProRes engine More encode/ProRes engines (higher configs) What actually changes between them More cores — the M5 Pro nearly doubles CPU cores and adds GPU cores, so sustained, multi-threaded work finishe...

Running a Server on a Mac Mini: Apple Silicon vs the Home-Server Field

The Mac Mini has quietly become one of the most interesting home-server boxes you can buy. It’s tiny, nearly silent, sips power, and Apple Silicon punches far above its weight. But is it actually the right machine to run your services on — or are you paying an Apple tax for a job a $400 mini PC does better? Let’s put it head-to-head. Why a Mac Mini makes a surprisingly good server Three things make Apple Silicon compelling as an always-on machine: Performance per watt. This is the headline. An M4 Mini idles at just a few watts and rarely pushes past ~35W under load, while delivering multicore performance that embarrasses machines drawing twice the power. Silence. Under typical server loads the fan is inaudible. If your “server” lives in a living room or bedroom, this matters more than any benchmark. Footprint. It’s the size of a coaster and runs cool, so it tucks anywhere. The honest catch It’s not all upside: macOS isn’t...