Create a project
Overview
A project is the fundamental container for your Oblax application. It organizes your code, configuration, and resources into a single deployable unit. Project initialization creates a directory with oblax.json configuration and the standard /app filesystem structure.
The project structure enables offline-first development, deterministic serialization, and version control readiness. All application data lives under /app, with each module mapping to specific subdirectories.
Installation
Project creation requires the Oblax CLI to be installed and authenticated.
Verify CLI Installation
obx versionExpected output:
obx version 0.1.0Authenticate
obx loginConfiguration
Project Initialization
obx project create my-first-projectWhat happens:
- A new directory
my-first-project/is created - An
oblax.jsonconfiguration file is generated inside it - The standard
/appfilesystem structure is scaffolded - You’re positioned inside the new project directory
Success output:
| SUCCESS: Project created
| Project 'my-first-project' has been initialized.
|
| Directory structure:
| ├── oblax.json
| └── app/
| ├── forms/
| ├── bookmarks/
| ├── flux/
| ├── templates/
| └── acl/
|
| Next steps:
| 1. cd my-first-project
| 2. Review the generated oblax.json
| 3. Start building with `obx app forms init`The oblax.json Configuration File
Every Oblax project must contain an oblax.json at its root. This file is the single source of truth for your project’s identity and configuration.
Minimal oblax.json:
{
"name": "my-first-project",
"description": "My first Oblax project",
"version": "0.1.0"
}Full oblax.json reference:
| Field | Type | Description |
|---|---|---|
name | string | Required. Project display name. Lowercase, no spaces. |
description | string | Optional human-readable description. |
version | string | Optional semantic version (e.g., 0.1.0). |
owner | string | Email or ID of the project owner. Auto-filled from your account. |
modules | array | List of enabled modules (forms, bookmarks, etc.). |
The /app Filesystem Model
Oblax projects use a filesystem-synced local state. All application data lives under the /app directory. This design enables:
- Offline-first development — all data is local until you push
- Deterministic serialization — files map directly to platform records
- Version control readiness — project directories git-ready out of the box
Standard /app directory structure:
/app
/forms → ID-based CRUD collections (objects have `id`)
/bookmarks → ID-based CRUD collections
/flux → Key-based semantic singletons (flux scripts)
/templates → Key-based semantic singletons
/acl → HTTP-key-based (API permissions)Module identity systems:
| Module | Identity Type | Example |
|---|---|---|
forms | ID-based | obx app forms get 123 |
bookmarks | ID-based | obx app bookmarks list |
flux:scripts | Key-based | obx app flux:scripts push user.created |
templates | Key-based | obx app templates push my-template_html |
acl | HTTP-key-based | obx app acl push post@/api/v1/users |
Project Workflow Patterns
1. Initialize a Record Template
obx app forms initThis creates ./app/forms/init.json with the structure of a form record, ready for you to fill in.
Output:
| SUCCESS: Role file initialized
| Edit the initialized role file ./app/forms/init.json2. Push to Platform
obx app forms push initThis does four things:
- Pushes the data to the Oblax platform
- Writes the response to a file with platform-generated ID (e.g.,
./app/forms/f2837hfd17q3phc3.json) - Deletes the local
initfile - You now refer to the record by its ID:
f2837hfd17q3phc3
Output:
| SUCCESS: Role created
| The role 'role' has been successfully created on the platform.
|
| Local copy of the record is saved in ./app/forms/f2837hfd17q3phc3.json3. Pull from Platform
obx app forms pull d28a7hfz17q4p2c0Pulls data for the record and creates/overwrites the local file. If a local file with that ID already exists, use --override:
obx app forms pull d28a7hfz17q4p2c0 --override4. Delete a Record
obx app forms delete d28a7hfz17q4p2c0Deletes the record via the API and removes the local file ./app/forms/d28a7hfz17q4p2c0.json.
Usage
Project Checklist
| Item | Why It Matters |
|---|---|
oblax.json exists at project root | Required for the CLI to recognize this as an Oblax project |
/app directory structure present | Holds all your application data |
CLI authenticated (obx login) | All platform operations require authentication |
| At least one module initialized | Start with obx app forms init or obx app bookmarks init |
Next Steps
Your project is ready. Now:
- Build your first app — scaffold your application
- Make your first API call — authenticate and interact with your data
- Run your first CLI command — practice the CRUD workflows