Skip to content

APPNEURAL-OSs/WebsiteOS

Repository files navigation

WebsiteOS

WebsiteOS is a complete TypeScript starter for reusable website infrastructure across Appneural platforms.

It manages websites, CMS pages, page blocks, navigation menus, themes, media assets, blog posts, forms, submissions, redirects, SEO audits, sitemaps, robots.txt, publish snapshots, web analytics, event logs, audit logs, and role-based permissions.

Run

npm run build
npm start

Default server:

http://localhost:5500

Health:

http://localhost:5500/health

Docs:

http://localhost:5500/docs

Demo tenant

demo-tenant

Useful demo IDs:

site_demo_appneural
dom_appneural_primary
theme_appneural_light
page_home
page_products
block_home_hero
block_home_features
menu_header
media_hero_ai
post_os_architecture
form_demo_contact
redir_old_products
snap_demo_initial
seo_home_demo

Auth headers

WebsiteOS uses simple role headers for this starter implementation.

x-tenant-id: demo-tenant
x-user-id: admin-user
x-role: admin

Supported roles:

viewer
content_editor
seo_manager
designer
publisher
forms_manager
admin
owner

Main modules

Sites
Domains
Themes
Pages
Page Blocks
Menus
Media Assets
Blog Posts
Forms
Form Submissions
Redirects
SEO Audits
Publishing
Sitemap
Robots.txt
Analytics Events
Audit Logs
Events
RBAC

Example API calls

Create a page:

curl -X POST http://localhost:5500/websiteos/pages \
  -H 'Content-Type: application/json' \
  -H 'x-role: admin' \
  -d '{
    "siteId": "site_demo_appneural",
    "title": "Solutions",
    "path": "/solutions",
    "pageType": "landing",
    "seo": {
      "title": "Solutions | Appneural",
      "description": "Explore Appneural OS solutions."
    }
  }'

Add a block:

curl -X POST http://localhost:5500/websiteos/pages/page_home/blocks \
  -H 'Content-Type: application/json' \
  -H 'x-role: admin' \
  -d '{
    "type": "cta",
    "content": {
      "heading": "Start building with WebsiteOS",
      "button": { "label": "Contact", "url": "/contact" }
    }
  }'

Run SEO audit:

curl -X POST http://localhost:5500/websiteos/seo/pages/page_home/audit \
  -H 'x-role: admin'

Create a publish snapshot:

curl -X POST http://localhost:5500/websiteos/publish/snapshots \
  -H 'Content-Type: application/json' \
  -H 'x-role: admin' \
  -d '{
    "siteId": "site_demo_appneural",
    "title": "Production publish"
  }'

View sitemap data:

curl http://localhost:5500/websiteos/sitemap/site_demo_appneural -H 'x-role: admin'

Submit a form:

curl -X POST http://localhost:5500/websiteos/forms/form_demo_contact/submit \
  -H 'Content-Type: application/json' \
  -H 'x-role: admin' \
  -d '{
    "sourceUrl": "/contact",
    "data": {
      "name": "Asha",
      "email": "asha@example.com",
      "message": "Need WebsiteOS demo"
    }
  }'

Production notes

This starter uses a JSON file store so it can run without dependencies. For production:

  1. Replace DataStore with PostgreSQL using database/schema.sql.
  2. Put file uploads behind S3, Cloudflare R2, GCS, or Azure Blob Storage.
  3. Add real user authentication and integrate with SecurityOS for RBAC.
  4. Add CDN cache invalidation to publish deployments.
  5. Connect form submissions to ClientOS, GrowthOS, AutomationOS, and SalesOS.
  6. Connect analytics events to AnalyticsOS.
  7. Add rendering/export workers for static site generation when needed.

Test

npm test

Planning Alignment

  • Official package: @appneurox/websiteos
  • Manifest: manifest.json
  • Domain API namespace: /v1/website
  • Modes: standalone and PlatformOS integrated
  • Related systems: BrandOS, ContentOS, GrowthOS

See docs/planning.md for the planning contract applied from APPNEURAL Plannings/OSs.

About

WebsiteOS: reusable TypeScript operating layer for Websites, pages, forms, publishing, SEO, analytics, and web operations.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors