Build and deploy custom web apps and dashboards inside ARPIA, powered by the built-in code editor and AI assistant.
Overview
Single-Page Apps (SPA) let you build and deploy custom web apps inside your ARPIA Workarea — dashboards, tools, and visualizations that run in the browser and can read your ARPIA data.
You can build a SPA two ways:
- Inside ARPIA with the built-in Edit Code editor and the ARPIA Codex AI assistant — no external tools needed. (Recommended.)
- On your own computer, then upload a ZIP. (For people with an existing IDE/toolchain.)
New here? Jump to the Quickstart below. Everything after it is reference material you can read later.
Quickstart: Build Your First SPA in 5 Steps
The fastest path to a working app — no setup, no data wiring, no ZIP files.
- Create the app. Go to AI Apps Studio → + CREATE APP. Name it, pick Private, click CREATE.
- Open the editor. On your app's page, click Edit Code. A starter
index.htmlis already built for you. - Ask Codex to build it. Open the ARPIA Codex panel, set mode to Build, and type what you want — e.g. "Make a page with a title and three cards."
- Preview it. Click Preview to see it live. Use Console if something looks off.
- Publish. Click Save a Version, then Actions → Publish Version. Your app is live.
✅ That's a working SPA. To connect data, add AI tools, or develop locally, read on.
Key Terms (read once, then move on)
| Term | What it means |
|---|---|
| Node | A table in ARPIA's knowledge base. Where your data lives. |
| Action | A tool that saves, updates, or deletes data on a node. |
| Knowledge Ontology Relationship | The screen where you pick which nodes your app can read and which Actions it can run. |
| ARPIA Codex | The built-in AI assistant inside Edit Code that writes/edits your app code. |
| Workarea | Your workspace in ARPIA. "Private" apps are limited to its members. |
How to Create a Single-Page App
Prerequisites
Minimum to start (Quickstart / Path A):
- An ARPIA account with access to a Workarea
Also needed for data-connected apps:
- MCP configured in ARPIA with the nodes/workspaces you'll use — required only for private SPAs that expose MCP Collections or a Workshop API
- (Path B only) An external IDE such as Cursor or VS Code
Step 1: Create the SPA in ARPIA
- Navigate to AI Apps Studio in your Workarea

- Click "+ CREATE APP"

- Enter a name for your application
- (Optional) Add it to a group to stay organized — select an existing group, or type a new name and press Add
- In Privacy, choose Public or Private.
Not sure? Pick Private if you'll use AI tools or Workshop APIs, or want it limited to your Workarea. Pick Public for a read-only widget any ARPIA user can open.
- (Optional) Add a Description of what your SPA does
- Click "CREATE"

You'll land on your SPA's main configuration page.

Step 2: Choose Your Path
New here? Use Path A. It's the recommended path and needs no external tools. Skip Path B until you specifically need an offline/IDE workflow.
- Path A — In-Platform (Edit Code): Build inside ARPIA with Edit Code, Codex, live preview, and native data wiring. Recommended for most users.
- Path B — External + ZIP Upload: Develop locally in your own IDE, then upload a ZIP. Advanced / optional.
Both paths share the same publishing and access steps (Step 3 and Step 4).
Path A — In-Platform Development with Edit Code
The fastest way to build. Everything happens inside ARPIA.
A1. Open the Editor
From your SPA configuration page, click Edit Code.
A new SPA opens pre-scaffolded with:
index.html— your entry point (keep it at the root)arpia-font.css— ARPIA fontsspa.css— ARPIA UX SDK styling
A2. Work With Your Files
Create and organize .html, .css, and .js files, edit them side by side, and keep index.html at the root.
A3. Build With ARPIA Codex
- Open the Codex panel
- Select the model to use
- Pick a mode:
- Explore — reads and explains your code, changes nothing
- Planning — drafts a plan and waits for your OK
- Build — applies changes to your files
- Review, refine your prompt, re-run
A4. Connect Your Data — Knowledge Ontology Relationship
Advanced — skip this on your first app. Only needed when your SPA reads or writes ARPIA data.
This is where you let your app (and Codex) use your data.
- Open the Knowledge Ontology Relationship button
- Choose which nodes the SPA can read
- Attach the Actions the SPA is allowed to run
- For private SPAs, you can also attach:
- MCP Collections — groups of endpoints with context for AI models
- Workshop API — a POST endpoint that runs a workflow of code + native ARPIA objects
Once set, Codex automatically knows your node structures and API schemas.
A5. Preview and Debug
- Preview — see and use your app live
- Console — read logs and debug JavaScript, in-platform
A6. Keep ARPIA Modules Up to Date
Advanced. When a new SDK ships, click Update ARPIA Modules to regenerate
spa.css,arpia-sdk.js, and (public apps only)ARPIA_ONTOLOGY.MD.
A7. Save a Version
Click Save a Version. Publishing and rollback work as in Step 3 and Step 4.
Path B — External Development & ZIP Upload
Advanced / optional. Use this only if you prefer your own IDE. Most people should use Path A.
B1: Configure MCP in Your IDE (Cursor example)
- Cursor settings → Tools & MCP → New MCP Server
- In
mcp.json, add:
{
"mcpServers": {
"MCP Arpia": {
"url": "https://cloud.arpia.ai/mcp/?token=INSERT_TOKEN_HERE"
}
}
}
- Replace
INSERT_TOKEN_HEREwith your ARPIA MCP token, then save.
B2: Download the ARPIA UX SDK
On your SPA page, open the dropdown next to "UPLOAD VERSION" → "Download UX SDK".

The SDK ZIP contains template.html, instructions.md, README.md, an assets/ folder, and a css/ framework.
B3: Set Up Your Project
- Create a project folder and open it in your IDE
- Extract the SDK ZIP into it:
my-spa-project/
├── arpia-ux-sdk/
│ ├── assets/
│ ├── css/
│ ├── instructions.md
│ ├── README.md
│ └── template.html
├── (your app files go here)
Use the SDK's
template.htmlas the basis for yourindex.htmlat the project root, and link the SDK's CSS/JS with relative paths.index.htmlmust sit at the root of the ZIP (see B5), not insidearpia-ux-sdk/.
Before coding, read instructions.md (design rules) and README.md (implementation) and check template.html (required DOM).
B4: Develop Your App
If you use an AI IDE, this prompt keeps it on the rails:
# SPA Development Prompt – ARPIA / Cursor
## Objective
Act as a Frontend Developer using the Arpia UX SDK to develop a **Single Page Application (SPA)** using the **Cursor platform**. Reference `@instructions.md` for class rules and `@template.html` for the DOM structure.
Static assets only (HTML, CSS, JS, images). The server-side request will be managed by the ARPIA platform, so there's no need to create server-side functions or files.
## Context & Resources
- The project includes an **ARPIA-provided UX SDK**.
- Inside the project folder you will find:
- An **HTML template** that must be used as the base of the application.
- An `instructions.md` file containing **design guidelines, UX patterns, and conventions**.
⚠️ **You must read and follow both `instructions.md` and `README.md` before making any architectural or implementation decisions.**
## Application Domain
- The application is built on **MCP Arpia**.
- Core entities:
- **[List your entities, e.g., Leads, Opportunities, Customers]**
- The application must:
- Display and manage information related to [your entities]
- Provide tools to **create, update, and manage** [your entities] using MCP Arpia capabilities.
## Development Guidelines
- Follow the **file structure, UX patterns, and conventions** defined by the ARPIA UX SDK.
- Reuse existing templates and components whenever possible.
- Do not introduce new architectural patterns unless clearly justified.
- Keep the codebase **modular, readable, and maintainable**.
- Follow SPA best practices appropriate for the Cursor platform.
- **For the REST API calls, use static Endpoint calls based on these endpoints. Put the `collection_id` in the URL path, and use your ARPIA Personal Token as the Bearer token:**
"resources": "https://cloud.arpia.ai/mcp/api/v1/collections/{collection_id}/resources",
"tools": "https://cloud.arpia.ai/mcp/api/v1/collections/{collection_id}/tools"
## Assumptions & Clarifications
- **The index.html should be in the root of the folder.**
- **The css file should use relative paths.**
- **Do not assume missing requirements or behaviors.**
- If any part of the scope, data model, APIs, or UX flows is unclear, **ask for clarification before proceeding**.
Best practices: keep it lightweight, use relative paths, handle errors, and test in Chrome/Firefox/Safari/Edge.
B5: Package It
ZIP all your files with index.html at the root.
- ✅
index.htmlat root level - ✅ Static assets only (no server-side code)
- ✅ Under 25 MB compressed
- ✅
.zipformat only
B6: Upload It
- On your SPA page, click "UPLOAD VERSION"
- Drop the ZIP, add a Version Name and Changelog
- Click "PROCESS VERSION" and wait for extraction
Step 3: Publish & Deploy (both paths)
For any version, use Actions:
- Publish Version — make it the live version
- Open — preview in browser
- Download — get a ZIP backup
- Delete — remove it (can't delete the live version)
To go live: find your version → Actions → Publish Version → confirm.
Step 4: Access Your App
- Direct link:
https://cloud.arpia.ai/spax/[your-app-id]/[app_version](on the app details page) - Workarea Apps menu: appears in your applications list
- Share / bookmark the link with authorized users
Managing Your Apps
Update a Version
Path A: Edit Code → make changes → Preview → (if needed) Update ARPIA Modules → Save a Version → Publish.
Path B: update local files → new ZIP → UPLOAD VERSION → name + changelog → PROCESS VERSION → publish when ready.
Roll Back
Version history → pick the version → Actions → Publish Version → confirm. It goes live immediately.
Delete a Version
Version management → select → Actions → Delete → confirm. (Can't delete the live version.)
Change Access
App settings → choose Public (any ARPIA user) or Private (Workarea members) → save.
Note: MCP Collections and Workshop API attach to private SPAs only.
ARPIA_ONTOLOGY.MDis generated for public apps only.
Monitor Usage
See total opens, access timeline, active-version usage, and engagement patterns.
Integration with ARPIA
Advanced. Read this when you're ready to connect your app to live data.
The Knowledge Model
Your data lives in nodes (tables). You change it through Actions (save/update/delete tools). The Knowledge Ontology Relationship controls which nodes your app can read and which Actions it can run. Private SPAs can also expose MCP Collections and a Workshop API.
Ways to Access Data
- ARPIA JavaScript SDK (
arpia-sdk.js) — regenerated via Update ARPIA Modules - MCP API calls — authenticated requests to MCP endpoints
- Knowledge Node queries
- Actions / Workshop API
MCP API Example
Put the collection_id in the URL path and pass your ARPIA Personal Token as the Bearer token:
const ARPIA_API = {
resources: "https://cloud.arpia.ai/mcp/api/v1/collections/{collection_id}/resources",
tools: "https://cloud.arpia.ai/mcp/api/v1/collections/{collection_id}/tools"
};
async function fetchResources(collectionId, bearerToken) {
try {
const response = await fetch(
ARPIA_API.resources.replace('{collection_id}', collectionId),
{
headers: {
'Authorization': `Bearer ${bearerToken}`,
'Content-Type': 'application/json'
}
}
);
return await response.json();
} catch (error) {
console.error('Error fetching resources:', error);
throw error;
}
}
Generate a Personal Token under "My Profile" in the ARPIA Platform. Same-domain calls inherit your ARPIA session.
Supported & Not Supported
Supported: HTML5, CSS3 (Tailwind, Bootstrap), JavaScript (vanilla + React/Vue/Angular), client-side libraries, static assets, JSON files.
Note: Framework apps (React/Vue/Angular) must be compiled to static files before upload — ARPIA serves static assets only and runs no build step.
Not supported: server-side code (Python, PHP, Node.js, Ruby), backend APIs/databases, server-side rendering or auth, file-system operations, non-.zip archives.
Limits
- ZIP ≤ 25 MB compressed
index.htmlmust be at the root- No server-side languages
- MCP Collections / Workshop API → private SPAs only
ARPIA_ONTOLOGY.MD→ public apps only
Troubleshooting
Upload fails — ZIP under 25 MB, index.html at root, .zip only, no server-side files.
App won't load — check the Console, use relative paths, include all dependencies, test in Preview first.
API calls fail — verify the collection_id (URL path) and Personal Token (Bearer), check endpoints, confirm nodes/Actions are attached in the Knowledge Ontology Relationship.
Codex can't see your data/tools — confirm the ontology defines the nodes/Actions; for MCP Collections/Workshop API the SPA must be private; re-run Update ARPIA Modules; use Build mode to apply changes.
Styling looks off — check relative CSS paths, confirm spa.css and arpia-font.css are linked, run Update ARPIA Modules, test other browsers.
