8f165afcc9
- SiteWideMusicDock component at app level; persists across all routes - Dock + player merged into single expandable panel - Remove non-functional Hide button; one Minimize/Open control - Swing Music label and action button on same row - Mobile: dock z-index above player, larger touch target on iPad - entrypoint.sh: seeds admin-content.json only on first boot/fresh volume - Dockerfile: seed in /app/data-seed; live data in /app/data (volume) - shell-with-music-bar padding on project and admin pages
400 lines
15 KiB
JSON
400 lines
15 KiB
JSON
{
|
|
"projects": [
|
|
{
|
|
"slug": "weather",
|
|
"title": "NeCloud Weather",
|
|
"domain": "weather.necloud.us",
|
|
"url": "https://weather.necloud.us",
|
|
"readmeUrl": "https://raw.githubusercontent.com/nmemmert/weather/main/README.md",
|
|
"category": "Weather",
|
|
"access": "Public",
|
|
"ownership": "built",
|
|
"status": "Live",
|
|
"summary": "Weather dashboard with hourly forecasts, radar, and practical daily details.",
|
|
"details": "The homepage highlights Open-Meteo and RainViewer data, current conditions, high/low, daylight windows, and quick bring-along suggestions.",
|
|
"features": [
|
|
"Hourly forecast",
|
|
"Radar view",
|
|
"Wind and atmosphere panel"
|
|
],
|
|
"scanSource": "scanned",
|
|
"featured": {
|
|
"headline": "Fast weather checks with useful details at a glance.",
|
|
"problem": "Most weather tools either feel too basic or too noisy when you only want quick, actionable updates.",
|
|
"solution": "NeCloud Weather combines clean current conditions, practical recommendation blocks, and rapid forecast scanning in one view.",
|
|
"stack": [
|
|
"React",
|
|
"TypeScript",
|
|
"Open-Meteo",
|
|
"RainViewer"
|
|
],
|
|
"highlights": [
|
|
"Location search",
|
|
"Hero weather card",
|
|
"24-hour timeline",
|
|
"Radar shortcut"
|
|
],
|
|
"nextSteps": [
|
|
"Add severe weather alerts",
|
|
"Save favorite locations",
|
|
"Add sunrise trend charts"
|
|
],
|
|
"updateNote": "Edit this content in src/data/projects.ts under the weather project."
|
|
}
|
|
},
|
|
{
|
|
"slug": "capsule",
|
|
"title": "Capsule",
|
|
"domain": "capsule.necloud.us",
|
|
"url": "https://capsule.necloud.us",
|
|
"readmeUrl": "https://raw.githubusercontent.com/nmemmert/capsule/main/README.md",
|
|
"category": "Finance",
|
|
"access": "Mixed",
|
|
"iconUrl": "https://capsule.necloud.us/images/capsule-logo.svg",
|
|
"ownership": "built",
|
|
"status": "Live",
|
|
"summary": "Smart envelope budgeting app focused on planning and income allocation.",
|
|
"details": "The site presents guided setup, envelope-based spending controls, and paycheck auto-allocation to keep budgets structured.",
|
|
"features": [
|
|
"Envelope budgeting",
|
|
"Income auto-allocation",
|
|
"Offline-ready data"
|
|
],
|
|
"scanSource": "scanned",
|
|
"featured": {
|
|
"headline": "A practical budgeting workflow built around envelope control.",
|
|
"problem": "Traditional budget tools can feel rigid or overwhelming for everyday spending decisions.",
|
|
"solution": "Capsule uses guided setup and smart allocation so users can organize spending with clear envelope categories.",
|
|
"stack": [
|
|
"React",
|
|
"TypeScript",
|
|
"Local-first storage"
|
|
],
|
|
"highlights": [
|
|
"Guided setup wizard",
|
|
"Envelope categories",
|
|
"Auto-allocation rules"
|
|
],
|
|
"nextSteps": [
|
|
"Add recurring bill templates",
|
|
"Import transaction feeds",
|
|
"Monthly budget snapshots"
|
|
],
|
|
"updateNote": "Edit this content in src/data/projects.ts under the capsule project."
|
|
}
|
|
},
|
|
{
|
|
"slug": "nexusbible",
|
|
"title": "Nexus Bible",
|
|
"domain": "nexusbible.necloud.us",
|
|
"url": "https://nexusbible.necloud.us",
|
|
"readmeUrl": "https://raw.githubusercontent.com/nmemmert/nexusbible/main/README.md",
|
|
"category": "Study",
|
|
"access": "Mixed",
|
|
"ownership": "built",
|
|
"status": "Live",
|
|
"summary": "Bible reader for reading, comparison, and study using Free Use Bible API data.",
|
|
"details": "The app exposes navigation, reader controls, bookmarks, and daily-focus tooling to support regular scripture study.",
|
|
"features": [
|
|
"Reader modes",
|
|
"Bookmarks",
|
|
"Daily focus workflow"
|
|
],
|
|
"scanSource": "scanned",
|
|
"featured": {
|
|
"headline": "Scripture reading designed for depth, rhythm, and clarity.",
|
|
"problem": "Switching between apps for reading, comparison, and planning breaks study flow.",
|
|
"solution": "Nexus Bible unifies reader tools, bookmarks, and daily focus controls for a single focused study experience.",
|
|
"stack": [
|
|
"React",
|
|
"TypeScript",
|
|
"Free Use Bible API"
|
|
],
|
|
"highlights": [
|
|
"Reader mode",
|
|
"Passage navigation",
|
|
"Bookmarks",
|
|
"Daily focus entry points"
|
|
],
|
|
"nextSteps": [
|
|
"Add multi-translation compare view",
|
|
"Personal note collections",
|
|
"Reading streak tracking"
|
|
],
|
|
"updateNote": "Edit this content in src/data/projects.ts under the nexusbible project."
|
|
}
|
|
},
|
|
{
|
|
"slug": "prayer",
|
|
"title": "Haver",
|
|
"domain": "prayer.necloud.us",
|
|
"url": "https://prayer.necloud.us",
|
|
"readmeUrl": "https://raw.githubusercontent.com/nmemmert/haver/main/README.md",
|
|
"category": "Faith",
|
|
"access": "Mixed",
|
|
"ownership": "built",
|
|
"status": "Live",
|
|
"summary": "Prayer journal app for daily entries, requests, and answered-prayer tracking.",
|
|
"details": "Landing content emphasizes a minimalist prayer workflow with dashboards, calendar history, and Google Calendar reminder sync.",
|
|
"features": [
|
|
"Prayer journal",
|
|
"Prayer dashboard",
|
|
"Calendar integration"
|
|
],
|
|
"scanSource": "scanned",
|
|
"featured": {
|
|
"headline": "A calm daily prayer workflow with meaningful tracking.",
|
|
"problem": "Prayer journaling often lives across scattered notes and reminders, making consistency difficult.",
|
|
"solution": "Haver centralizes requests, daily entries, answered prayers, and reminder sync into one simple interface.",
|
|
"stack": [
|
|
"React",
|
|
"Firebase",
|
|
"Google Calendar integration"
|
|
],
|
|
"highlights": [
|
|
"Prayer composer",
|
|
"Answered prayer tracking",
|
|
"Calendar view",
|
|
"Reminder sync"
|
|
],
|
|
"nextSteps": [
|
|
"Add shared prayer groups",
|
|
"Voice prayer entry",
|
|
"Weekly summary digest"
|
|
],
|
|
"updateNote": "Edit this content in src/data/projects.ts under the prayer project."
|
|
}
|
|
},
|
|
{
|
|
"slug": "skywatch",
|
|
"title": "Skywatch",
|
|
"domain": "skywatch.necloud.us",
|
|
"url": "https://skywatch.necloud.us",
|
|
"category": "Sky and Space",
|
|
"access": "Public",
|
|
"ownership": "built",
|
|
"status": "Live",
|
|
"summary": "Skywatch project in your NeCloud stack.",
|
|
"details": "Live page content could not be scanned automatically because the endpoint responded with 401; this entry is currently a manual placeholder.",
|
|
"features": [
|
|
"Manual metadata fallback",
|
|
"Live endpoint available via domain"
|
|
],
|
|
"scanSource": "manual",
|
|
"featured": {
|
|
"headline": "Skywatch project overview placeholder.",
|
|
"problem": "Automated scanning could not access this project because the endpoint returned 401.",
|
|
"solution": "This featured page is intentionally editable so you can replace placeholder copy with your exact app details.",
|
|
"stack": [
|
|
"Update manually"
|
|
],
|
|
"highlights": [
|
|
"Placeholder content",
|
|
"Manual metadata fallback"
|
|
],
|
|
"nextSteps": [
|
|
"Add full description",
|
|
"Add stack details",
|
|
"Add feature highlights"
|
|
],
|
|
"updateNote": "Edit this content in src/data/projects.ts under the skywatch project."
|
|
}
|
|
},
|
|
{
|
|
"slug": "spellinghub",
|
|
"title": "Spelling Hub",
|
|
"domain": "spellinghub.necloud.us",
|
|
"url": "https://spellinghub.necloud.us",
|
|
"readmeUrl": "https://raw.githubusercontent.com/nmemmert/spellinghub/main/README.md",
|
|
"category": "Education",
|
|
"access": "Mixed",
|
|
"ownership": "built",
|
|
"status": "Live",
|
|
"summary": "Modern spelling practice application with account-based learning flows.",
|
|
"details": "Homepage messaging presents a clean practice platform with login and registration for user progress.",
|
|
"features": [
|
|
"Practice workflows",
|
|
"User auth",
|
|
"Simple home dashboard"
|
|
],
|
|
"scanSource": "scanned",
|
|
"featured": {
|
|
"headline": "Focused spelling practice with lightweight account flow.",
|
|
"problem": "Many spelling tools are cluttered and do not support structured, repeatable daily practice.",
|
|
"solution": "Spelling Hub keeps onboarding simple and centers the product on practical, repeatable learning loops.",
|
|
"stack": [
|
|
"React",
|
|
"TypeScript",
|
|
"Auth-backed workflow"
|
|
],
|
|
"highlights": [
|
|
"Login/register flow",
|
|
"Practice-first design",
|
|
"Simple navigation"
|
|
],
|
|
"nextSteps": [
|
|
"Add custom word lists",
|
|
"Teacher/student modes",
|
|
"Progress analytics dashboard"
|
|
],
|
|
"updateNote": "Edit this content in src/data/projects.ts under the spellinghub project."
|
|
}
|
|
},
|
|
{
|
|
"slug": "mealie",
|
|
"title": "Mealie",
|
|
"domain": "mealie.necloud.us",
|
|
"url": "https://mealie.necloud.us",
|
|
"category": "Self-hosted Tools",
|
|
"access": "Mixed",
|
|
"ownership": "hosted",
|
|
"status": "Live",
|
|
"summary": "Self-hosted recipe manager with categories, tags, and kitchen planning tools.",
|
|
"details": "Scanned content confirms a full Mealie interface with home feed, recipe browsing, and account login flow.",
|
|
"features": [
|
|
"Recipe library",
|
|
"Tags and categories",
|
|
"User login"
|
|
],
|
|
"scanSource": "scanned",
|
|
"featured": {
|
|
"headline": "Recipe organization and planning through your self-hosted stack.",
|
|
"problem": "Recipe collections get scattered across browser bookmarks and notes without centralized organization.",
|
|
"solution": "Your Mealie instance provides structured categories, tags, and searchable recipes for day-to-day meal planning.",
|
|
"stack": [
|
|
"Mealie",
|
|
"Self-hosted deployment"
|
|
],
|
|
"highlights": [
|
|
"Recipe catalog",
|
|
"Category and tag views",
|
|
"Account login"
|
|
],
|
|
"nextSteps": [
|
|
"Add meal plan snapshots",
|
|
"Import bookmark recipes",
|
|
"Shopping list workflows"
|
|
],
|
|
"updateNote": "Edit this content in src/data/projects.ts under the mealie project."
|
|
}
|
|
},
|
|
{
|
|
"slug": "music",
|
|
"title": "Swing Music",
|
|
"domain": "music.necloud.us",
|
|
"url": "https://music.necloud.us",
|
|
"category": "Self-hosted Tools",
|
|
"access": "Mixed",
|
|
"ownership": "hosted",
|
|
"status": "Live",
|
|
"summary": "Self-hosted music streaming interface with folders, playlists, and favorites.",
|
|
"details": "Homepage scan identifies Swing Music with library navigation, playlists, favorites, and guest/standard access options.",
|
|
"features": [
|
|
"Library browsing",
|
|
"Playlists",
|
|
"Guest mode"
|
|
],
|
|
"scanSource": "scanned",
|
|
"featured": {
|
|
"headline": "Swing Music streaming from your own infrastructure.",
|
|
"problem": "Centralized music services can limit control over personal libraries and hosting preferences.",
|
|
"solution": "Your Swing Music instance provides library browsing, playlists, and favorites with local hosting control.",
|
|
"stack": [
|
|
"Swing Music",
|
|
"Self-hosted deployment"
|
|
],
|
|
"highlights": [
|
|
"Library navigation",
|
|
"Playlist support",
|
|
"Favorites",
|
|
"Guest mode"
|
|
],
|
|
"nextSteps": [
|
|
"Improve mobile now-playing UI",
|
|
"Add listening history",
|
|
"Playlist sharing links"
|
|
],
|
|
"updateNote": "Edit this content in src/data/projects.ts under the music project."
|
|
}
|
|
},
|
|
{
|
|
"slug": "seafile",
|
|
"title": "Seafile Instance",
|
|
"domain": "seafile.necloud.us",
|
|
"url": "https://seafile.necloud.us",
|
|
"category": "Self-hosted Tools",
|
|
"access": "Login required",
|
|
"iconUrl": "https://seafile.necloud.us/media/custom/mylogo.png",
|
|
"ownership": "hosted",
|
|
"status": "Live",
|
|
"summary": "Your self-hosted Seafile instance for secure sync, sharing, and account-based access.",
|
|
"details": "Scanned landing view exposes the Seafile login portal with account signup and password reset features.",
|
|
"features": [
|
|
"File sync platform",
|
|
"Account login",
|
|
"Password recovery"
|
|
],
|
|
"scanSource": "scanned",
|
|
"featured": {
|
|
"headline": "A private file sync and sharing system you host yourself.",
|
|
"problem": "Cloud storage options often reduce control over data location and account governance.",
|
|
"solution": "Your Seafile instance gives you direct ownership of file sync, sharing access, and user account management.",
|
|
"stack": [
|
|
"Seafile",
|
|
"Self-hosted deployment"
|
|
],
|
|
"highlights": [
|
|
"Secure login",
|
|
"Account management",
|
|
"Password reset flow"
|
|
],
|
|
"nextSteps": [
|
|
"Add team spaces",
|
|
"Automated backup checks",
|
|
"Storage usage dashboard"
|
|
],
|
|
"updateNote": "Edit this content in src/data/projects.ts under the seafile project."
|
|
}
|
|
}
|
|
],
|
|
"siteContent": {
|
|
"theme": "sand",
|
|
"homeEyebrow": "Siteforge",
|
|
"homeTitle": "Sites and Apps I Build",
|
|
"homeIntro": "Live links generated from your domain list. Use the Admin panel to update cards and About pages without editing code.",
|
|
"projectEyebrow": "Project Details",
|
|
"quickTipsTitle": "Quick edit tips",
|
|
"quickTipsBody": "Open /admin to update card and featured page content. Changes are saved in your project data file via the API server.",
|
|
"downloadsTitle": "Downloads",
|
|
"downloadsIntro": "Add shared files, installers, or documents here. Seafile share links work well for this section.",
|
|
"downloads": [
|
|
{
|
|
"title": "Shared File",
|
|
"url": "https://seafile.necloud.us",
|
|
"description": "Replace this with a direct Seafile share link or another download URL."
|
|
}
|
|
],
|
|
"showSidebar": true,
|
|
"showWeatherWidget": true,
|
|
"showMusicBar": true,
|
|
"homeSections": [
|
|
{
|
|
"id": "summary",
|
|
"placement": "main"
|
|
},
|
|
{
|
|
"id": "projects",
|
|
"placement": "main"
|
|
},
|
|
{
|
|
"id": "downloads",
|
|
"placement": "sidebar"
|
|
},
|
|
{
|
|
"id": "quickTips",
|
|
"placement": "sidebar"
|
|
}
|
|
]
|
|
},
|
|
"updatedAt": "2026-03-19T19:19:04.291Z"
|
|
} |