Platform for building rich dynamic web apps — Java server, JS client, plugin architecture.
- [README.md] — installation, Docker, Maven usage
- [doc/index.html] — platform documentation index
- [Makefile] — run
maketo list available targets - [pom.xml] — Java dependency manifest
- [package.json] — JS tooling dependencies
- [.github/workflows/] — GitHub Actions; publishes to
ghcr.io/baraverkstad/rapidcontext
- Radical brevity
- Safe-by-design
- Stable APIs
- Minimal dependencies
- Line length: soft 80, hard 120
- Comments: explain why, not what; no code flow narration
- API docs: Javadoc/JSDoc in public APIs, never in test code
- Variables: short but descriptive; single-char for loops, etc
- Code flow: minimal ceremony, no factory patterns
- Java: Java 21; prefer standard Java APIs over Apache Commons
- JS: ongoing migration to ESM modules (
.mjs)
- File I/O: use
org.rapidcontext.utilclasses for file operations - Escaping: use
TextEncoding.encodeXml, notStringEscapeUtils
- Java layers:
org.rapidcontext.app/org.rapidcontext.core/org.rapidcontext.util - Auth: JWT login tokens signed with HMAC-SHA256; password changes invalidate tokens
- App manifests:
procedureskey auto-mapped tothis.proc.*via camelCase transform (my-app/proc-name→this.proc.myApp.procName) - Logging:
java.util.loggingwith custom extensions inorg.rapidcontext.util.logging; default config inlib/logging.properties - Documentation:
doc/*.htmlfiles; also viewable via platform Help App - JS engine: Rhino; use
LambdaFunction(not deprecatedNativeJavaMethod) to expose Java methods to JavaScript
make # show top-level build targets (read Makefile for all)
make clean setup doc build test # full build (use on dependency changes)
make build test # build and test (use on code changes)
make test-java-unit # unit tests only (fastest iteration)