Ship fast or ship safe - Why not both?
Security by design: By baking business logic and authorization directly into the core of your stack, NOUMENA helps you build secure online applications - faster, safer, and easier than ever before.
Learn more about NOUMENA technology, or see it in action with the quick tour below:
Try out the Hello World demo
See this Hello World application code below? It's only 20 lines. And yet it powers a full backend, with storage and access management.
This NPL code running in an NPL Runtime and the matching vibe-coded frontend are hosted on NOUMENA Cloud, the managed cloud platform for NPL.
Try out the Hello World demo by clicking on the embedded application screen above.
The learn more about NPL and why to use it, please check out the What is NPL explainer.
Run Hello World locally
What you will achieve: Download the Hello World example from the npl-demo
repository and spin it up locally
Prerequisites: git
, docker
and npm
installed. Windows Subsystem for Linux (WSL) recommended if using Windows
Steps:
-
Clone the NPL Hello World repository:
git clone https://github.com/NoumenaDigital/npl-demo.git
-
Get the CLI (MacOS/Linux/Windows with WSL):
curl -s https://documentation.noumenadigital.com/get-npl-cli.sh | bash
After installing the NPL CLI, please restart the terminal to ensure the CLI is available in your PATH. If using Windows without WSL, follow instructions here.
-
Start the NPL Runtime locally. From the root of the cloned repository:
docker compose up -d
-
Deploy NPL to the NPL Runtime:
npl deploy --sourceDir api/src/main/
-
Install frontend dependencies and run the frontend server locally:
cd webapp && npm i && npm run dev
-
Navigate to the frontend URL
http://localhost:5173/
to try out the Hello World application running locally
Note that the local deployment uses an embedded OIDC server with seeded users. The embedded OIDC server should be used for development purposes only.
Deploy to NOUMENA Cloud
What you will achieve: Deploy the Hello World app to your own NOUMENA Cloud managed application
Prerequisites: Hello World application code cloned from repository (see above), npm
installed
Steps:
-
Sign up to NOUMENA Cloud
-
Create a new tenant and a new application in the NOUMENA Cloud portal (more details here on application creation, if needed)
-
Zip the NPL source code in the
api/src/main
directory, e.g. by running the following command from the root of the cloned repository:cd api/src/main && zip -r npl-demo.zip .
-
Upload the zip file to the NOUMENA Cloud portal (make sure to first clear the package using the Settings tab if you already uploaded an NPL package previously; as an alternative, you may also write a migration - let's keep this for later)
-
Change the
webapp/.env
file to match your NOUMENA Cloud tenant and application -
Build the frontend:
cd webapp && npm i && npm run build
-
Zip the frontend distribution in the
webapp/dist
directory -
Upload the zip file to the NOUMENA Cloud portal, selecting "Upload frontend zip" from the Frontend tab
-
Configure users on the NOUMENA Cloud portal. You will need to create
alice
,bob
andcarol
users with passwordpassword123
for the application to work as it does locally using the embedded OIDC. This requires lowering the minimum password length to 11 in the Authentication Policies of NOUMENA Cloud application's keycloak realm. For details on user creation, please refer to this guide -
Navigate to the frontend URL of your NOUMENA Cloud application and try out the Hello World application flow
Edit Hello World in your IDE
What you will achieve: Edit the Hello World to start coding your own app
Prerequisites: Hello World application code cloned from repository and NPL CLI
installed (see
above), docker
and npm
installed. Windows Subsystem for Linux recommended if using
Windows
Steps:
-
Install the NPL-Dev Plugin in your IDE (IntelliJ, VS Code, or VS Code-derived)
-
Edit the NPL code in the
api/src/main
directory. You may for example start by changing the string (Text
) returned by thesayHello
permission -
Start the NPL Runtime locally
docker compose up -d
-
Clear and upload the NPL code to the NPL Runtime
npl deploy --sourceDir api/src/main/ --clear
-
Update the frontend code in the
webapp
directory -
Install frontend dependencies
cd webapp && npm i && npm run dev
Edit Hello World on Codespaces
What you will achieve: Edit the Hello World on Codespaces without the need for an IDE
Follow this
link to open Codespaces on the GitHub npl-demo
repository. Install the NPL-Dev for VS Code
extension and sign in
to NOUMENA Cloud from the NOUMENA Cloud sidebar menu item. Your NOUMENA Cloud tenants and applications should be listed
in the NOUMENA Cloud pane. Hover over an application and select the upload button to upload the NPL code. Frontend
upload is not yet available but will be provided soon.
Learn more with the Getting Started guide
Check out the Getting Started guide to get acquainted with NOUMENA technology and find step-by-step instruction to get started.