Write UI code just like writing domain code

Forget about the painful update logic you need to write for the UI. With linkki, implementing dynamic UI feels just like writing domain logic. All you need to do is to give linkki little hints about which UI element you want to use, and what should be updated.

private CalenderEvent event; // domain model object

@UITextField(position = 10, label = "Titel")
public String getTitel() {
    return event.getTitle();
public void setTitel(String title) {

@UIDateField(position = 20, label = "Date")
public LocalDate getDate() {
    return event.getDate();
public void setDate(LocalDate date) {

@UIButton(position = 30, caption = "Create Event")
public void createEvent() {
Create Event

Maintain full control

Sometimes, using tools to make your life simple also means giving up control. Not with linkki.
linkki creates Vaadin controls that you can modify however you want to. Whatever you can do with Vaadin components, you can still do it with linkki.

// Create component with linkki
CalenderEventPmo pmo = new CalenderEventPmo();
BindingContext context = new BindingContext();
Component section = PmoBasedSectionFactory
                      .createAndBindSection(pmo, context);

// Use it as usual
VerticalLayout layout =  new VerticalLayout(section);

Not convinced yet?

Ready to start

Choose from linkki's built-in components or create new ones easily.

Fits in any environment

Use linkki in plain Java, JEE, Jakarta EE or Spring projects.

Focus on quality

Write well structured UI code using linkki.
Benefit from existing test frameworks.

Ready to try it out?