Project Editor (.ppro)
The Project Editor is opened whenever you double-click a .ppro file. It is
the central configuration hub for your Apleno Designer app. It stores metadata
(name, company, description), runtime settings, visual customisation, and a
version changelog.
There is normally one .ppro file per project, located at the root of your
workspace.
Opening the Editor
Double-click any .ppro file in the Explorer. To create a new one, run
Apleno: Create new Project file from the Command Palette.
Sections
General Information
| Field | Description |
|---|---|
| Name | The display name of your application. |
| Company | The author or organisation name. |
| Description | A short description of the application. |
| Icon | Path to an image file used as the application icon. (will be used in a future update for Apleno Server) |
| Sidebar Logo | Path to an image file displayed in the app's sidebar. |
Entry Sequence
| Field | Description |
|---|---|
| Sequence Start | The .pseq file that acts as the entry point when the app launches. Defaults to main.pseq. |
Runtime Settings
| Field | Options | Description |
|---|---|---|
| Default Working Directory | app / output |
Sets the working directory for R/Python scripts at runtime. app means the app's root folder; output means the generated output folder. |
| Output Folder Name | Template string | Name of the folder created for app output. Supports the template variables {{name}} (app name) and {{datetime}} (current date/time). Example: {{name}}_{{datetime}}. |
| Console Access | enabled / disabled |
Whether the user can access the R console inside the running app. Useful during development; typically disabled for distribution. |
| Step List | shown / hidden |
Whether the workflow step list is visible in the app's sidebar at runtime. |
Tip
Please note that using the output folder is not a good coding practice. You might want to use it only if your app need to write a lot of files during runtime.
Warning
Please note the step list is deprecated and will be removed in a future update.
Custom Styling
You can inject custom CSS to style the app's interface. This is applied on top of the default Apleno theme.
Warning
Please note that directly writing CSS in the ppro file is deprecated and will be removed in a future update. Use the Custom Files fields to load a custom CSS file instead.
Inline CSS and file-based CSS can be used independently or together.
Custom Files
A list of additional Javascript or CSS files to bundle with the exported app, that will be loaded at the start of the app.
Click Add to pick a file and Remove to delete a row.
Changelog
Maintain a version history of your application. Each entry records:
| Field | Description |
|---|---|
| Date | The date of the change (ISO format, e.g. 2024-03-15). |
| Author | The name of the person who made the change. |
| Version | The version string (e.g. 1.0.0, 2.3-beta). |
| Message | A short description of what changed. |
Use the Add entry button to append a new row. Entries can be removed with the delete button on each row.
File Format
The .ppro file is a JSON document. You can also edit it directly as text
(right-click → Open With → Text Editor):
{
"name": "My Application",
"company": "ACME Corp",
"description": "A sample Apleno application.",
"icon": "assets/icon.png",
"sidebarLogo": "assets/logo.png",
"sequenceStart": "main.pseq",
"defaultWorkingDirectory": "app",
"outputFolderName": "{{name}}_{{datetime}}",
"consoleAccess": "disabled",
"stepListType": "hidden",
"customCSSLightCode": "",
"customCSSDarkCode": "",
"customCSSLightFile": "",
"customCSSDarkFile": "",
"customFiles": [],
"changelog": [
{
"date": "2024-03-15",
"author": "Alice",
"version": "1.0.0",
"message": "Initial release"
}
],
"dateCreated": 1710500000000
}
Tips
- The
sequenceStartfield is critical. It tells the runtime which sequence to execute first when the app launches. Make sure this file exists. - Keep
consoleAccessset to"enabled"during development so you can inspect the R and/or Python console, then set it to"disabled"before distributing. - Custom CSS is applied after the default Apleno styles, so you can use it to override any default styling. Target Apleno's internal CSS class names or elements.