AR Content Management System for Mobile Apps
You launched an AR application, but every 3D model update turns into a two-week quest: a Jira task, file replacement, build, review, publication. The new product appears in AR only a month later. With our CMS, a content manager uploads a new USDZ model via a web interface, and the app pulls it on the next launch. No App Store updates needed. Contact us to assess your project — we'll help cut content release time by 80%.
How the Scene Manifest Works
The key idea is a scene manifest. On launch (or on a schedule), the app requests manifest.json from the server. We compare updatedAt with the local cache — if changed, new assets are downloaded. Storage: iOS — FileManager in Caches (purged by the system), Android — getCacheDir() (similar). Critical content goes to Documents/filesDir. Lazy loading: models are downloaded only when the AR screen is opened; large files (>10 MB) are fetched via URLSession.downloadTask with a progress indicator. Average manifest load time is 200 ms, 95th percentile is 500 ms. According to Apple ARKit documentation, a scene manifest allows dynamic content management.
How a Content Manager Updates a Scene
The update process consists of several steps:
- The content manager logs into the CMS web admin.
- Selects the desired scene from the list.
- Uploads a new 3D model (USDZ or glTF) via a form with validation.
- The system automatically generates a preview and checks the format.
- After confirmation, the CMS updates the manifest and publishes the new version. The entire cycle takes less than a minute, without involving developers.
AR Content Management System Architecture
Server side. The CMS for AR content is a file manager with metadata and a CDN. Minimum stack:
- Storage: S3 or alternative (Cloudflare R2) for USDZ/glTF/video
- Database: PostgreSQL with
ar_scenes,ar_objects,ar_triggerstables - API: REST or GraphQL for CRUD operations on scenes
- CDN: CloudFront for fast delivery worldwide
- Admin UI: React for content managers
Example AR scene structure in JSON
```json { "sceneId": "product-launch-q4", "trigger": { "type": "image", "referenceImageUrl": "...", "physicalWidth": 0.2 }, "objects": [ { "modelUrl": "https://cdn.../model.usdz", "iosUrl": "https://cdn.../model.usdz", "androidUrl": "https://cdn.../model.glb", "position": [0, 0.1, 0], "scale": [1, 1, 1], "animation": "idle_loop" } ], "publishedAt": "2024-01-01T00:00:00Z", "expiresAt": "2024-06-01T00:00:00Z" } ```Mobile side. Asset loading with progress, caching, offline operation (last synchronization). For iOS we use SwiftUI + ARKit, for Android — Jetpack Compose + ARCore. Offline vs online comparison: with an offline cache, scene open time is 0.5 s; with online loading, it's 1.5 s (CDN with 50 ms ping). Our CMS switches modes automatically.
Why Validation of Uploaded Models Is Critical
A content manager might upload a broken USDZ. Without validation, the app will crash on the user's device. We implement server-side validation:
- Format: USDZ must be a ZIP containing
.usdc/.usdainside; we parse the header. - Size: limit 50 MB per model.
- Preview: automatic thumbnail generation via Reality Composer CLI on a macOS server.
- Polygon count: calculated via USD Python API — warning when exceeding 100k polygons.
| Check Type | Action on Error |
|---|---|
| Format | Reject upload + notification |
| Size | Warning, compression option |
| Polygon count | Recommendation to simplify model |
Versioning and Rollback
Versioning is a necessity. Each publication creates a new version in the CMS. The API accepts ?version=latest or a specific ID. Rollback — changing the current_version pointer without deleting files. A/B testing: a variant parameter in the API response determines content for a user segment. Thanks to versioning, we reduced rollback time from 2 days to 10 seconds in a project for a retail chain.
What's Included in the Work
- Architectural audit of your current AR application (analysis of caching, update scenarios)
- CMS development: server side (REST/GraphQL, admin panel), CDN integration
- Mobile SDK: a library for iOS and Android (synchronization, caching, progress bars)
- Content validation: automated checks of formats, size, polygon count
- Documentation: API specification, content manager guide
- Support: team training, 2 weeks of free post-launch support
Timelines and Cost
| Stage | Duration |
|---|---|
| Basic CMS + iOS client | 6–10 weeks |
| Full system (Android, approval, analytics) | 3–5 months |
Cost is calculated individually. On average, the project pays for itself in 3–4 months by saving on repeated publications and reducing content release time. Get a consultation: we'll assess your project and propose the optimal solution. Order CMS development for your AR project — we'll help accelerate content delivery. Over 5 years we have developed AR solutions for retail and industry — 20+ projects delivered, guaranteeing stable work with certified iOS and Android specialists.







