Official collection of apps for Moldable - your personal software factory.
Website: moldable.sh
| App | Description | Category |
|---|---|---|
| 📓 Scribo Languages | Language learning journal with AI-powered translations | Productivity |
| 🎙️ Meetings | Record, transcribe, and summarize meetings | Productivity |
| ✅ Todo | Simple task management with quick add | Productivity |
| 🗓️ Calendar | Integrated calendar with Google Calendar | Productivity |
| 📝 Notes | Google Keep-style notes with markdown | Productivity |
| 🛠️ Git | Simple Git client for branch management | Developer |
Apps are installed directly through the Moldable desktop app. Browse available apps and click "Install" to add them to your workspace.
Manifest URL: https://raw.githubusercontent.com/moldable-ai/apps/main/manifest.json
| Repository | Description |
|---|---|
| moldable-ai/moldable | Desktop app & shared packages |
| moldable-ai/apps | Official apps collection (this repo) |
Apps use shared packages from npm:
| Package | Description |
|---|---|
@moldable-ai/ui |
UI components, theme system, shadcn |
@moldable-ai/editor |
Rich text markdown editor (Lexical) |
@moldable-ai/storage |
Filesystem storage utilities |
See AGENTS.md for detailed development guidelines.
Each app is a self-contained Vite + Hono + React application:
app-name/
├── moldable.json # App manifest (required)
├── package.json # Dependencies
├── index.html # Full app HTML entry
├── widget.html # Widget HTML entry
├── vite.config.ts # Vite config
├── eslint.config.js # Shared Moldable app ESLint config
├── src/
│ ├── client/
│ │ ├── app.tsx # Main app view
│ │ ├── widget.tsx # Widget view (required)
│ │ └── main.tsx # React entry
│ ├── server/
│ │ ├── app.ts # Hono routes, including /api/moldable/health
│ │ └── index.ts # Server entry
│ ├── components/
│ └── lib/
└── scripts/
└── moldable-dev.mjs # Startup script (required)
{
"name": "App Name",
"version": "1.0.0",
"visibility": "public",
"description": "What the app does",
"author": "Your Name",
"license": "FSL-1.1-ALv2",
"repository": "moldable-ai/apps",
"icon": "📦",
"iconPath": "public/icon.png",
"widgetSize": "medium",
"category": "productivity",
"tags": ["tag1", "tag2"],
"moldableDependencies": {
"@moldable-ai/ui": "^0.1.0",
"@moldable-ai/storage": "^0.1.0"
},
"env": [
{
"key": "API_KEY",
"name": "API Key",
"description": "Required for...",
"url": "https://example.com/get-key",
"required": true
}
]
}The visibility field controls whether an app is included in the public release:
"public"- App will be copied when runningpnpm apps:releaseorpnpm app:copy:all"private"- App will not be copied (useful for local-only apps)
Apps are developed locally in ~/.moldable/shared/apps and released to this repo:
# Full release (copy, conditional patch bump, checks, commits, backfill all public apps)
pnpm apps:release
# Preview what would happen
pnpm release --dry-run
# Finalize apps you already copied into this repo
pnpm release# Copy specific apps from ~/.moldable/shared/apps to this repo
pnpm app:copy scribo
pnpm app:copy todo notes
# Copy all public apps
pnpm app:copy:allAfter a manual copy, use pnpm release rather than calling
pnpm generate-manifest directly. The release command commits app content
first, generates a registry that references that exact commit, and records the
released version and hash baseline back in the local source apps.
Sync changes from this repo back to your local development apps:
# Update specific local apps from this repo
pnpm app:update scribo
pnpm app:update todo notes
# Update all local apps
pnpm app:update:allThis preserves local dependencies, lockfiles, and Moldable runtime metadata.
- Create a new directory in
~/.moldable/shared/appswith your app name (kebab-case) - Copy structure from an existing app (e.g.,
todo) - Create your
moldable.jsonmanifest with"visibility": "public" - Implement your app (see AGENTS.md for guidelines)
- Run
pnpm apps:releaseto copy, validate, commit, and backfill - Push and submit a PR
Built by Desiderata LLC