{"id":36415547,"url":"https://github.com/juiproject/jui-stack","last_synced_at":"2026-05-29T03:04:45.878Z","repository":{"id":258000752,"uuid":"860820633","full_name":"juiproject/jui-stack","owner":"juiproject","description":"A platform for building web-based UI’s in Java.","archived":false,"fork":false,"pushed_at":"2026-01-20T02:48:48.000Z","size":8589,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-20T09:35:17.416Z","etag":null,"topics":["gwt","java","webapp"],"latest_commit_sha":null,"homepage":"https://juiproject.github.io/jui-stack/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/juiproject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support/README.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-21T08:55:59.000Z","updated_at":"2025-12-09T09:15:32.000Z","dependencies_parsed_at":"2025-06-28T11:24:47.232Z","dependency_job_id":"2d0c3114-820c-40cf-a385-986c5abaac3d","html_url":"https://github.com/juiproject/jui-stack","commit_stats":null,"previous_names":["juiproject/jui-stack"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/juiproject/jui-stack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juiproject%2Fjui-stack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juiproject%2Fjui-stack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juiproject%2Fjui-stack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juiproject%2Fjui-stack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juiproject","download_url":"https://codeload.github.com/juiproject/jui-stack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juiproject%2Fjui-stack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29060943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T23:14:54.203Z","status":"ssl_error","status_checked_at":"2026-02-03T23:14:50.873Z","response_time":96,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gwt","java","webapp"],"created_at":"2026-01-11T16:58:07.861Z","updated_at":"2026-05-29T03:04:45.857Z","avatar_url":"https://github.com/juiproject.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Table of contents\n\n1. [Introduction](#introduction) provide a basic overview of JUI and the JUI project structure.\n2. [Getting started](#getting-started) familiarises youself with JUI and JUI based application. \n3. [Building JUI](#building-jui) describes how to setup your environment to both build JUI and to develop with JUI.\n4. [Contributing](#contributing) describes how you can contribute to the JUI project.\n\n# Introduction\n\n## Overview\n\nJUI is a Java to JavaScript suite of libraries and tools for building web UI's in Java. It has its origins in [GWT](https://www.gwtproject.org/) however has been largely decoupled from this as it heads towards becoming a standalone platform. JUI does continue to employ the GWT compiler as it remains mature and relevant (with the intention of continuing to do so as long as is feasible; this is currently being maintained under the [GWT Project](https://github.com/gwtproject/gwt)).\n\n\n## Libraries\n\nJUI consists of the following libraries:\n\n1. [jui-platform](./jui-platform/) provides the core runtime for JUI code (including code needed to interface with the transpiler).\n2. [jui-platform-codeserver](./jui-platform-codeserver/) is a debugging tool used during development.\n3. [jui-maven-plugin](./jui-maven-plugin/) provides the ability to compile within a Maven project.\n4. [jui-core](./jui-core/) builds on `jui-platform` and provides a component framework with supporting functionality.\n5. [jui-ui](./jui-ui/) builds on `jui-core` providing a minimal suite of core components (including controls).\n6. [jui-remoting](./jui-remoting/) provides an RPC remoting framework (this is a bit historical and not a requirement for using JUI) along with server-side harness for handling queries and commands.\n7. [jui-text](./jui-text/) provides a simple rich text format (that is serialiable) and an associated editor.\n8. [jui-validation](./jui-validation/) a convenience to perform validation both client and server side in a portable manner.\n9. [jui-test](./jui-test/) a collection of tools to perform testing of UI components and applications.\n10. [jui-playground](./jui-playground/) delivers a component explorer to elucidate the various JUI concepts and core components and controls along with a number of examples (see [Playground](#playground) below).\n11. [jui-filter](./jui-filter/) is an experimental project to provide a simple generic query filter that is parsable.\n12. [jui-skills](./jui-skills/) holds a collection of Claude skills that can be referenced by a JUI project to guide Claude in the use of JUI.\n\nThese are all released against the same version (generated from this multi-module project).\n\n## License\n\nThis code is licensed under [Apache License v2.0](https://www.apache.org/licenses/LICENSE-2.0). Dependencies are licensed separately and any code that is attributable is marked as such with any license exceptions made explicitly.\n\n# Getting started\n\nThe best way to get started is to follow the [getting started](https://juiproject.github.io/jui-stack/#/intro_gettingstarted) guide in the [product documentation](https://juiproject.github.io/jui-stack/). This will:\n\n1. Ensure you have the required software installed.\n2. Guide you through creating a simple JUI project.\n3. Introduce you to some of the core JUI principles.\n4. Provide a foundation for further experimentation and a place for you to implement the practical activities of the lessons.\n\nAs alluded to in (4) there are also a number of lessons that you can work through. These will expand on the core principles covered in the getting started guide, introduce and develop knowledge of components and provide practical guidance for specific topics (such as navigation and dialogs). It is recommended that you work through at least lessons 1 and 2.\n\n## Playground\n\nThe [Getting started](https://juiproject.github.io/jui-stack/#/intro_gettingstarted) will walk you through the creation of a Spring Boot based JUI project that also provides a basis for the lesson practicums as well as for your own experimentation. However a JUI does come with an playground ([jui-playground](./jui-playground/)) project that includes solutions to the various lesson exercises as well as a variety of examples that make use of JUI components.\n\nThe playground can be run directly from the associated JAR, which can be installed directly from the Maven Central repository (replace `\u003cversion\u003e` with the version you want to retrieve):\n\n```bash\nVERSION=\u003cversion\u003e\nmvn dependency:get -DgroupId=com.effacy.jui \\\n                   -DartifactId=jui-playground \\\n                   -Dversion=$VERSION \\\n                   -Dpackaging=jar\n```\n\nOnce installed, open a terminal and run the following (again, replace `\u003cversion\u003e` with the relevant version of JUI):\n\n```bash\nVERSION=\u003cversion\u003e\njava -jar ~/.m2/repository/com/effacy/jui/jui-playground/$VERSION/jui-playground-$VERSION.jar\n```\n\nThis will start a Spring Boot application that when you point a browser to [localhost:8080](http://localhost:8080) you will access the **documentation** (for convenience) and to [localhost:8080/playground](http://localhost:8080/playground) you will access the **playground**.\n\nOnce you are done, the server can be stopped with `CTL+C`.\n\n# Building JUI\n\n*In general you should not need to build JUI from source (unless you are interested in [contributing](./CONTRIBUTING.md), or just interested).*\n\nJUI is a Maven multimodule project that generates the [libraries](#libraries) as described above (along with the [playground](#playground)), under the same version number (locally this is `LOCAL-SNAPSHOT`). In order to build the project you will need the following to be installed to successfully perform a build:\n\n1. Git\n2. JDK (17 or greater)\n3. Maven (3.8 or greater)\n4. Chrome browser (optional, for running UI tests)\n\nIn all likelihood, if you have made it this far, you will have (at least some variant) the the above installed. If not there are installation guides provided in [DEVELOPMENT.MD](./DEVELOPMENT.md).\n\nWith these in place you can build a local version of JUI from a checked out version by running `mvn clean install` from the project root. If you haven't installed Chrome (in all likelihood it will be installed on your system already) then you will need to skip the tests with `mvn clean install -Dtests.skip=true`.\n\n## Documentation\n\nThe main application documentation is available [online](https://juiproject.github.io/jui-stack/) with source under [docs](/docs/). Although this is pedagogical in nature (learning how to use JUI) some detailed implementation guides are included.\n\nWith respect to design and implementation documentation, these are relegated to README files located in the various packages and directories. Additional documentation (though mainly from a usage perspective) is included in the classes themselves.\n\n# Contributing\n\nIf your would like to contribute to the project then have a look at [CONTRIBUTING.MD](./CONTRIBUTING.md) for more details.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuiproject%2Fjui-stack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuiproject%2Fjui-stack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuiproject%2Fjui-stack/lists"}