Java web framework

Build data-driven web apps
at the speed of your data model.

TreasureBoat turns your database model into a running web application — a model-driven ORM, rule-based UI, and reusable components. Proven WebObjects ideas, rebuilt for modern Java, with first-class IntelliJ tooling.

Java 21 Maven-native Docker-ready IntelliJ plugin
Product.wod
// Bind a component to your objects with KVC —
// no glue code, no boilerplate.

Name: TBString {
    value = product.name;
}

Price: TBString {
    value = product.price;
    formatter = app.currency;
}

Category: TBHyperlink {
    string = product.category.name;
    action = showCategory;
}
Why TreasureBoat

Less plumbing. More product.

Describe your data and your rules — TreasureBoat wires the rest. The pieces are small, composable, and have worked in production for decades.

🗄️

Enterprise Objects

A model-driven ORM. Define entities, attributes and relationships in .eomodeld — no annotations, no XML wrangling. Your objects just have the data.

🧭

Sangria: rule-driven UI

List, edit and query pages are generated from your model and a handful of rules — then customized only where you need to. Describe the screen once, reuse it everywhere.

🧩

TBComponents

Reusable UI as an .wo folder — HTML template + bindings + API. Compose screens from your own components, themed and localized.

🔗

Key-Value Coding

Bind anything to anything by name. product.category.name resolves through your object graph — the backbone of data binding and rules.

🌍

Localization built-in

Ship in every language from day one. .lproj folders keep strings and resources per-locale; entity and attribute names localize too.

⚙️

Modern Java stack

Java 21, Maven builds, Docker deployment, self-contained .woa bundles. Old-school productivity, current-day toolchain.

✍️

Model Data Creation

Prefer annotations? MDC builds your .eomodeld straight from annotated Java classes — code-first modeling, right alongside the visual editor.

📱

Server to Mobile Coming soon

Server-driven native clients. Your models and rules drive iOS, macOS and beyond — one backend, many surfaces, no per-platform rewrite.

🗃️

Database freedom

Works with your database. First-class adaptors for PostgreSQL, MySQL/MariaDB, Oracle, MS SQL, DB2, FrontBase, H2, Derby and more — swap without touching your model.

A taste of the code

From model to page in a few rules.

You describe what the app is — the entities and the rules that display them. TreasureBoat handles the how. Flip through a model, a rule, and a component — right down to inline $keypath bindings that drop live values straight into your markup.

Product.eomodeld
// Product entity — model, not annotations
entity Product {
  attribute name      : String   (columnName="NAME")
  attribute price     : BigDecimal
  relationship category -> Category  (toOne)
  relationship reviews  -> Review    (toMany)
}
// One Sangria rule → a whole screen, model-aware
100 : (task = 'list' AND EN = 'Product')
      => DPK =
         ("name", ":price:", "category", "reviews.@count")

100 : PK = 'price'
      => d2wType = "currency"
<!-- Product.html — mix HTML with live values inline -->
<div class="card ${product.onSale ? 'sale' : ''}">
  <h2><tb:str value="$product.name" /></h2>
  <p class="price">
    <tb:str value="Only $product.price today." />
  </p>
</div>
First-class tooling

An IntelliJ plugin that knows your project.

TreasureBoat isn't just a framework — it's a development experience. Visual editors for your models, components, rules, localization and navigation, plus generators that scaffold the boilerplate. The IDE works with the framework, not around it.

Build & run

From your machine to a live server — in one command.

Maven builds produce self-contained .woa bundles. Ship a lightweight deploy jar or an all-in embedded bundle, front it with Apache or nginx, and keep an eye on it with the built-in monitor and task daemon.

zsh
$ mvn clean package tb:legacy-build

BUILD SUCCESS
  → AppGWare-1.0-20260802.woa  ·  self-contained, ready to deploy
mvn tb:legacy-build Maven Embedded (.woa) Maven Deploy (.woa) Docker TBMonitor TBTaskd Apache / nginx

Ready to build?

Spin up a TreasureBoat project in IntelliJ, point it at a database, and watch a working web app take shape from your model.