Create NosDav profiles and apps with unlimited templates from the community ecosystem.
# Create a new profile
npx create-nosdav init my-profile
# Create apps with built-in templates
cd my-profile
npx create-nosdav app todo --template preact-todo
npx create-nosdav app dashboard --template dashboard
# Use community templates from GitHub
npx create-nosdav app auth-app --template github:nosdav/preact-auth-starter
npx create-nosdav app blog --template gh:user/[email protected]
π Unlimited Templates - Access thousands of community templates from any Git repository
βοΈ Modern Development - Preact, HTM, and ES modules with no build step required
π Multi-File Support - Templates can include multiple components, utilities, and assets
πΎ Smart Caching - Templates cached locally for fast repeated use
π― Simple Workflow - No transpilers, bundlers, or complex tooling
π NosDav Integration - Apps automatically register in your profile's type index
npx create-nosdav list
- basic - Simple static HTML app
- crud - CRUD operations with localStorage
- dashboard - Analytics dashboard with live stats
- preact-todo - Modern todo app with Preact & HTM
GitHub Shortcuts:
# GitHub shorthand
npx create-nosdav app my-app --template github:user/template-repo
npx create-nosdav app my-app --template gh:user/repo
# With specific version/branch
npx create-nosdav app my-app --template github:user/[email protected]
npx create-nosdav app my-app --template github:user/repo@main
Full Git URLs:
# Any Git repository
npx create-nosdav app my-app --template https://github.com/user/template.git
npx create-nosdav app my-app --template https://gitlab.com/user/template.git
npx create-nosdav app my-app --template [email protected]:user/repo.git
Initialize a new NosDav profile with decentralized identity structure.
npx create-nosdav init my-profile
cd my-profile
Options:
-d, --dir <directory>
- Target directory (default: current)
Creates:
- Profile metadata (
index.json
) - Public type index (
settings/publicTypeIndex.json
) - Directory structure for apps and data
- Crypto-secure identity keys
Create a new app from any template source.
# Built-in templates
npx create-nosdav app todo --template preact-todo
npx create-nosdav app dashboard --template dashboard
# Community templates
npx create-nosdav app auth --template github:nosdav/auth-starter
npx create-nosdav app blog --template https://github.com/user/blog.git@v2
Options:
-t, --template <template>
- Template source (local name, github:user/repo, git URL)-d, --dir <directory>
- Profile directory (default: current)
List available built-in templates.
npx create-nosdav list
Templates can include multiple files for complex applications:
templates/preact-todo/
βββ index.html # Entry point with imports
βββ components.js # Preact components
βββ utils.js # Utilities and helpers
βββ styles.css # Optional styles
Example multi-file app:
npx create-nosdav app todos --template preact-todo
Creates:
public/apps/todos/
βββ app.json # App metadata
βββ index.html # HTML entry point
βββ components.js # TodoApp component
βββ utils.js # Storage utilities
βββ assets/ # Static resources
my-profile/
βββ index.json # Profile identity & metadata
βββ index.html # Profile homepage
βββ public/
β βββ apps/ # Your applications
β β βββ todo/ # Multi-file app
β β β βββ index.html
β β β βββ components.js
β β β βββ utils.js
β β βββ dashboard/ # Single-file app
β β βββ index.html
β βββ images/ # Profile assets
β βββ todo/ # Default data storage
βββ settings/
βββ publicTypeIndex.json # App & data registry
Apps are automatically registered in your profile's type index for discoverability:
{
"type": "TypeRegistration",
"forClass": "WebApp",
"instance": "../public/apps/todo/app.json",
"registeredWith": "../public/apps/todo/"
}
Git templates are cached locally for performance:
~/.create-nosdav/cache/
βββ a1b2c3d4e5f6.../ # github:user/repo@main
βββ f6e5d4c3b2a1.../ # github:user/[email protected]
Cache behavior:
- First use: Clone from Git repository
- Subsequent uses: "Using cached template"
- Different branches/tags create separate cache entries
- Automatic cleanup removes
.git
directories
my-template/
βββ index.html # Template with {{variables}}
my-template/
βββ index.html # Entry point
βββ components.js # Reusable components
βββ utils.js # Shared utilities
βββ styles.css # Styling
βββ assets/ # Static resources
βββ logo.png
Variable substitution:
<title>{{title}}</title>
<h1>Welcome to {{name}}</h1>
Share templates by creating a Git repository:
# Create template repo
git init my-awesome-template
# Add template files
git add .
git commit -m "Initial template"
git push origin main
# Others can use it
npx create-nosdav app cool-app --template github:yourname/my-awesome-template
Discover Templates:
- Browse GitHub topics:
nosdav-template
,create-nosdav-template
- Check community showcases and examples
- Share your own templates with the community
Template Ideas:
- Authentication systems with various providers
- Dashboard templates for different use cases
- E-commerce storefronts
- Blog and content management
- Real-time chat applications
- Data visualization tools
Local Development:
git clone https://github.com/nosdav/create-nosdav.git
cd create-nosdav
npm install
npm link
# Test locally
create-nosdav init test-profile
cd test-profile
create-nosdav app demo --template preact-todo
Template Testing:
# Test local template
create-nosdav app test --template ./path/to/template
# Test Git template
create-nosdav app test --template github:user/repo@branch
Template with specific branch:
npx create-nosdav app app1 --template github:user/repo@feature-branch
npx create-nosdav app app2 --template github:user/[email protected]
Private repositories:
# Using SSH (requires Git credentials)
npx create-nosdav app private --template [email protected]:user/private-template.git
# Using HTTPS with token (set in Git config)
npx create-nosdav app private --template https://github.com/user/private-repo.git
Multiple profiles:
npx create-nosdav init work-profile --dir ~/work
npx create-nosdav init personal-profile --dir ~/personal
# Create apps in specific profiles
npx create-nosdav app project --template github:company/template --dir ~/work/work-profile
- Node.js 16+
- Git (for community templates)
- Modern web browser (for running apps)
MIT
Ready to build the decentralized web? π
Start with npx create-nosdav init my-profile
and explore the unlimited template ecosystem!