Configuration
Revela stores all project settings in project.json. This file is created automatically when you initialize a project with revela config project.
Quick Configuration
Use the interactive config menu:
revela config
Or configure specific settings directly:
revela config theme --set Lumina
revela config paths --source "D:\Photos" --output "dist"
revela config site --title "My Portfolio" --author "John Doe"
Configuration File Structure
{
"name": "my-portfolio",
"paths": {
"source": "source",
"output": "output"
},
"theme": {
"name": "Lumina"
},
"generate": {
"images": {
"formats": { "webp": 85, "jpg": 90 },
"sizes": [640, 1024, 1920]
},
"sorting": {
"galleries": "asc",
"images": { "field": "dateTaken", "direction": "desc" }
}
}
}
Custom Paths
By default, Revela uses a source/ folder for your images and output/ for the generated site. You can customize these paths for advanced workflows.
Configure via CLI
# Interactive
revela config paths
# Direct
revela config paths --source "D:\OneDrive\Photos\Portfolio" --output "dist"
Use Cases
☁️ Cloud Storage Source
Point source to a OneDrive, Dropbox, or iCloud folder. Your photos sync automatically, Revela generates from them.
🌐 Direct Deployment
Output directly to your webserver directory (/var/www/html) without copying files.
📁 Shared Photo Library
Multiple Revela projects can share the same source folder with different filters.
Example: OneDrive Integration
{
"paths": {
"source": "D:\\OneDrive\\Photos\\Portfolio",
"output": "output"
}
}
Your workflow:
- Add photos to OneDrive on any device
- They sync to your computer
- Run
revela generate allto rebuild
Example: Direct Server Deployment
{
"paths": {
"source": "source",
"output": "/var/www/html/photos"
}
}
After revela generate all, your site is immediately live—no file copying needed.
Path Resolution
| Path Type | Example | Resolves To |
|---|---|---|
| Relative | source |
{project}/source |
| Relative | ../photos |
{parent}/photos |
| Absolute | D:\Photos |
D:\Photos |
| Absolute | /var/www/html |
/var/www/html |
Available Config Commands
| Command | Description |
|---|---|
revela config |
Interactive configuration menu |
revela config project |
Project name and URL |
revela config theme |
Select site theme |
revela config site |
Site metadata (title, author, description) |
revela config paths |
Source and output directories |
revela config image |
Image formats and quality |
revela config sorting |
Gallery and image sort order |
revela config feed |
NuGet package sources |
Site Metadata
Site-specific content (title, description, copyright) is stored separately in site.json:
{
"title": "My Photography Portfolio",
"author": "Jane Smith",
"description": "Landscapes and nature photography",
"copyright": "© 2026 Jane Smith"
}
Configure with:
revela config site
This separation allows you to:
- Share
project.jsonsettings across projects - Keep personal branding in
site.json - Use different site metadata for staging/production