Beautifully manage your code's complexity
A new dimension in coding with layers and code-processing.
Universal customization, deep integrations. Teams that works better together - empowering developers and business users alike.
 

Java transpiler
Reads your code, makes incremental, type-aware changes before compiling (e.g. converting field to getX/setX property)
StrataCode language
Java with properties, data binding, objects, multiple inheritance, templates, and more.
Java to javascript
Robust, efficient Java in the browser. Produces readable, usable Javascript.
Customization with layers
Powerful improvement to object-oriented design without losing static typed integrity.
Rules
More declarative apps empowers business and technical user customization.
Data synchronization
Efficient, declarative, debuggable, reliable and manageable client/server applications.
HTML templates
Dynamic HTML templates with flexibility and performance.
Live programming
Live, real-time programming for business and technical users.
IDE and management UI
IntelliJ plugin and annotation driven UIs built from domain models.

Just over ten years ago, Jeff Vroom (jeff@jvroom.com) began this project, an ambitious attempt to build a framework based on layers and code-processing that he prefers over other available tools. After finally achieving that goal, a beta release of StrataCode is now available. For those who like developing frameworks, it's a relatively small, readable, maintainable code base with no core dependencies.

StrataCode makes a great build and configuration management tool for existing Java projects. Less copying, more configuration and customization flexibility.

Use code-processing features and APIs for better control over code. Leverage data binding with three new operators: forward, reverse, and bi-directional bindings between properties and expressions. The dynamic Java runtime gives you one language for build files, customized code, configuration and adds an API to create frameworks and tools. Build quick and customizable management UIs from your domain models. Build apps from scratch with declarative frameworks that leverage the layered pattern, data sync, Java to JS, HTML to Java. Deploy apps as static html/js, server-only or client/server using the same code: fully isomorphic Java. Provides an efficient state model for declarative state lifecycle management: global, per-session, per-window, per-request, multi-tenant, etc.

To get started, StrataCode supports git, maven, and an IntelliJ plugin that integrates well with Java. The test-suite processes code from dozens of standard Java projects, validating type references and catching most errors before compilation.

Grammars in StrataCode are debuggable, making it easier to add new languages and to transform or transpile code. The API lets you make incremental changes to source files by changing properties in the AST objects. For example, to change the type name, set the ClassDeclaration.typeName property or to edit the statements of a method, add or remove statements from the MethodDefinition.body property.

The IntelliJ plugin is also built on top of this API, supporting several languages: scj, sc, schtml, sct, scr, and sccss.

Integrated with HTML/Javascript, Swing, Android, OpenGL, OpenCV, JUnit, Servlets, Jetty, JPA. Designed for rapid and flexible future integrations.

StrataCode's runtime and IntelliJ plugin will be free to download during the trial period. It is not yet open source. We are looking for feedback on the right license but we'd like to make a sustainable developer's tool that has some way to compensate the developers who build great tools. We are looking for projects to build with StrataCode so if you need something built, contact Jeff and perhaps he can help you build it.

Although still in beta-ish quality (status), it is already great tool and set of frameworks for building apps from scratch, with a fairly high level of support. It would also be useful to refactor large existing Java code bases, supporting continual evolution during the refactoring process. It can also be used to build or upgrade an existing SaaS platform, or build your own language oriented tools in Java. Extend the IntelliJ plugin, add your own formats and features.

Everyone wants faster software, that takes less work to build and more pleasant to use. StrataCode helps that goal by empowering not only end-users but also back-office employees, administrators, operations, designers, and other people that use and customize the solution. We believe it can empower a new class of applications, built from layered domain models, annotated with layered configuration, driven by management UIs that can reach down into the code for customized rules and operations.

Read more in these articles.