Repository files navigation

Gingee

Gingee - Application Server

A Gen AI Project

See AI Disclaimer

The objective of the project is to validate the feasibility of GenAI in platform/framework level programming as opposed to generating simplistic applications and in the process be the world's first AI authored and human co-authored production ready application server.

What is Gingee?

Gingee is a secure, batteries-included Node.js application server designed to dramatically accelerate web app development. Co-authored by a human architect and a GenAI partner, it provides a full featured platform that allows developers to focus on business logic instead of boilerplate. It achieves this through a secure sandbox, a powerful module ecosystem, and a comprehensive application lifecycle management system.

🚀 Quick Start

Requires Node.js ≥ 20.18.1 (Node 20 LTS or newer).

Get a new, fully configured Gingee server running in under a minute. See video

# 1. Install the Gingee CLI (may take a few moments to complete)
npm install -g gingee-cli
# 2. Create a new Gingee project
gingee-cli init my-gingee-project
# 3. Navigate into your new projectcd my-gingee-project
# 4. Start the server!
npm start
# 5. Browse to http://localhost:7070

That's it! You should now see Glade - the Gingee admin panel in your web browser. You can install applications for the Gingee platform from the Gingee App Store.

Key Features

Gingee is a comprehensive platform designed to provide a secure, efficient, and enjoyable development experience.

  • Secure by Default

    • Whitelist Permissions System: Applications have no access to the filesystem, database, network, email, generative AI, or CRON scheduler by default. Administrators grant explicit permissions for a "secure by default" posture. See the Threat Model (cooperative multi-app vs hostile multi-tenant).
    • Sandboxed Execution: Server scripts run in a gboxvm context: custom require, path jails, no host process (cooperative multi-app isolation—not a multi-tenant VM). UMD libs that need Function work by default; set box.allow_dynamic_code: false for stricter lockdown. With cache.server.enabled, sandboxed module instances are reused across requests (handler still runs every time); use no_cache_regex or reloadApp for live edits.
  • Instant Time to Joy

    • All-in-One CLI: A single command (gingee-cli init) scaffolds a complete, runnable project with a built-in admin panel.
    • Simplified API: All request/response logic goes through $g from gingee(). Entry scripts keep await gingee(async ($g) => …); required box modules can use bare request-local $g without threading it through every require.
    • Flexible Routing: Use zero-configuration file-based routing for rapid development, or create a routes.json for powerful, dynamic RESTful APIs.
    • Modern JavaScript: Use modern ESM syntax (import/from) directly in your server scripts with zero build steps or configuration.
  • Batteries-Included Backend

    • Multi App Hosting: Deploy and run multiple apps with clear isolation, individual app lifecycles and hot app reloads.
    • Multi-Database Support: Write your code once and deploy against PostgreSQL, SQLite, MySQL, MSSQL, and Oracle, with a consistent API. SQLite is always installed; other drivers are optional dependencies (install fails soft if a native build fails).
    • Rich Standard Library: A comprehensive suite of sandboxed modules for common tasks, including crypto, image processing, pdf generation, db access, fs (including list/stat/walk), httpclient (get/post/put/patch/delete), transactional email (SendGrid / console), and generative ai (Gemini / mock, streaming chat, multimodal, document parse, moderation). Optional project box.local_modules for shared host libraries.
    • Streamed Responses: Progressive output (e.g. SSE for AI tokens) via $g.response.startStream / writeSSE / endStream.
    • WebSockets (opt-in): Master-owned realtime on the public HTTP(S) port (app.jsonwebsockets + permission); rooms/broadcast via require('websockets'). Multi-node: websockets.fanout.driver: "redis" + sibling websockets.redis. Sample: ginchat.
    • Background queue:require('queue').add with memory or Redis drivers, retries, DLQ, and box job handlers. Glade Queue / DLQ: live jobs (running/waiting/pending/delayed) + DLQ retry/discard. CRON can target type: "queue".
    • CRON Scheduler: App-declared schedules in app.json (script, URL, or queue job); scheduler.enabled (default off); optional Redis coordination; Glade Schedules with Run now.
    • Request & Outbound Limits: Concurrency caps, request/stream timeouts, and default httpclient timeouts via gingee.jsonlimits.
    • Egress / SSRF policy: Default-protected outbound URL checks on httpclient and scheduler URL jobs (gingee.jsonegress).
    • Config secrets:env:VAR / file:… references in JSON config, resolved by the engine (apps still cannot read host process.env).
    • Prometheus Metrics: Engine-scoped /metrics scrape endpoint (default localhost-only; optional bearer token) for HTTP scripts, limits, egress, scheduler, WebSocket (incl. fan-out), and queue/DLQ series.
    • Audit Trail: Append-only JSONL log of permission changes and app lifecycle events (gingee.jsonaudit, default logs/audit.jsonl).
    • Process isolation (opt-in): Selected apps can run server scripts in a child process (isolation.mode: "process"); public ports stay on the master. Privileged apps stay in-process; buffered + SSE over IPC; groups and auto-restart supported.
    • Application Startup Hooks: Define startup_scripts to automatically run database migrations or seed data when your app is installed or upgraded.
    • Application Middleware: Define default_include to automatically inject scripts in front of all API end points of the app. Enabling easy authentication, policies, role management etc.
  • Full Lifecycle & Automation

    • Glade Admin UI: Built-in web panel for app lifecycle (install, upgrade, rollback, delete, permissions), Schedules / Run now, and Queue / DLQ (live jobs + dead letter).
    • Interactive Installers: Both the CLI and the Glade UI feature intelligent installers that read an app's requirements, prompt the admin for permission consent, and guide them through database configuration.
    • Automated Deployments: All lifecycle commands in the CLI can be run non-interactively using a preset file, making it perfect for CI/CD pipelines.
    • Automatic Maintenance Mode: The server automatically puts an application into a 503 Service Unavailable state during critical lifecycle events to ensure data integrity.
    • Built for Scale: With a pluggable distributed caching system (Redis), native service installation, and PM2 compatibility.
  • Decentralized App Store

    • Discover and install applications from any gstore.json manifest on the web using the gingee-cli. Anyone can host their own public or private app store.
  • GenAI-Native Workflow

    • Co-authored by a human architect and a Generative AI partner, Gingee is a testament to a new, highly efficient "Dialog-Driven Development" workflow. The project includes a pre-built knowledge bundle (ai-context.md) to empower you to build your own apps with an AI partner.

Documentation

Dive deeper into the architecture and learn how to build powerful applications with Gingee.

Concepts

DocumentDescription
Core ConceptsA high-level overview of the Gingee philosophy, project structure, the sandbox, and the module ecosystem.
FeaturesThe list of features supported by Gingee
RoadmapThe roadmap of core and app features in the pipeline for the Gingee app platform

Configuration & Setup

DocumentDescription
Gingee CLIThe all-in-one command-line interface for the Gingee platform
Server Configuration (gingee.json)A full reference guide for the server-wide gingee.json file, controlling settings like ports, caching, and security.
Glade Admin PanelGlade is the official, web-based administration panel for Gingee

Developer Docs

DocumentDescription
App Structure & app.jsonA detailed breakdown of the app folder structure and a comprehensive reference for all app.json configuration options.
Server Script GuideLearn the anatomy of a server script and get a full API reference for the powerful $g global object.
App Developer GuideA guide to creating your apps on the Gingee platform
App Packaging GuideGingee platform's standardized application packaging process
App Permissions GuideGingee platform's app permissions ecosystem.
SPA App Dev GuideA guide to creating modern SPA with frameworks on the Gingee platform
GStore Hosting GuideGingee platform's decentralized app store hosting guide

Refrence

DocumentDescription
Full API ReferenceThe complete JSDoc-generated API documentation for every function in every Gingee app module.
API ExamplesExamples of using Gingee modules, It can also be installed in a Gingee server using the .gin package in the dist folder.
Gingee App StoreThe official Gingee app store

Project Details

Project PhaseStatusCurrent Token Count
Phase 1Completed1,038,862 / 1,048,576 (1M tokens used out of a 1M token context window)
Phase 2Completed702,180 / 1,048,576 (700K tokens used out of a 1M token context window)

Tooling

Google AI Studio, VS Code, NodeJS, NPM, JSDoc

Contributing

Please see our CONTRIBUTING guide for more details on how to contribute.

License

Gingee is licensed under the MIT License. See the LICENSE file for details.

Sponsors

Gingee

Credits

RoleContributor
IdeationVignesh Swaminathan
AuthorAI Provider
Co-AuthorVignesh Swaminathan
TesterVignesh Swaminathan
Tech WriterAI Provider
ReviewerVignesh Swaminathan
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Gingee

Gingee - Application Server

A Gen AI Project

See AI Disclaimer

The objective of the project is to validate the feasibility of GenAI in platform/framework level programming as opposed to generating simplistic applications and in the process be the world's first AI authored and human co-authored production ready application server.

What is Gingee?

Gingee is a secure, batteries-included Node.js application server designed to dramatically accelerate web app development. Co-authored by a human architect and a GenAI partner, it provides a full featured platform that allows developers to focus on business logic instead of boilerplate. It achieves this through a secure sandbox, a powerful module ecosystem, and a comprehensive application lifecycle management system.

🚀 Quick Start

Requires Node.js ≥ 20.18.1 (Node 20 LTS or newer).

Get a new, fully configured Gingee server running in under a minute. See video

# 1. Install the Gingee CLI (may take a few moments to complete)
npm install -g gingee-cli
# 2. Create a new Gingee project
gingee-cli init my-gingee-project
# 3. Navigate into your new projectcd my-gingee-project
# 4. Start the server!
npm start
# 5. Browse to http://localhost:7070

That's it! You should now see Glade - the Gingee admin panel in your web browser. You can install applications for the Gingee platform from the Gingee App Store.

Key Features

Gingee is a comprehensive platform designed to provide a secure, efficient, and enjoyable development experience.

  • Secure by Default

    • Whitelist Permissions System: Applications have no access to the filesystem, database, network, email, generative AI, or CRON scheduler by default. Administrators grant explicit permissions for a "secure by default" posture. See the Threat Model (cooperative multi-app vs hostile multi-tenant).
    • Sandboxed Execution: Server scripts run in a gboxvm context: custom require, path jails, no host process (cooperative multi-app isolation—not a multi-tenant VM). UMD libs that need Function work by default; set box.allow_dynamic_code: false for stricter lockdown. With cache.server.enabled, sandboxed module instances are reused across requests (handler still runs every time); use no_cache_regex or reloadApp for live edits.
  • Instant Time to Joy

    • All-in-One CLI: A single command (gingee-cli init) scaffolds a complete, runnable project with a built-in admin panel.
    • Simplified API: All request/response logic goes through $g from gingee(). Entry scripts keep await gingee(async ($g) => …); required box modules can use bare request-local $g without threading it through every require.
    • Flexible Routing: Use zero-configuration file-based routing for rapid development, or create a routes.json for powerful, dynamic RESTful APIs.
    • Modern JavaScript: Use modern ESM syntax (import/from) directly in your server scripts with zero build steps or configuration.
  • Batteries-Included Backend

    • Multi App Hosting: Deploy and run multiple apps with clear isolation, individual app lifecycles and hot app reloads.
    • Multi-Database Support: Write your code once and deploy against PostgreSQL, SQLite, MySQL, MSSQL, and Oracle, with a consistent API. SQLite is always installed; other drivers are optional dependencies (install fails soft if a native build fails).
    • Rich Standard Library: A comprehensive suite of sandboxed modules for common tasks, including crypto, image processing, pdf generation, db access, fs (including list/stat/walk), httpclient (get/post/put/patch/delete), transactional email (SendGrid / console), and generative ai (Gemini / mock, streaming chat, multimodal, document parse, moderation). Optional project box.local_modules for shared host libraries.
    • Streamed Responses: Progressive output (e.g. SSE for AI tokens) via $g.response.startStream / writeSSE / endStream.
    • WebSockets (opt-in): Master-owned realtime on the public HTTP(S) port (app.jsonwebsockets + permission); rooms/broadcast via require('websockets'). Multi-node: websockets.fanout.driver: "redis" + sibling websockets.redis. Sample: ginchat.
    • Background queue:require('queue').add with memory or Redis drivers, retries, DLQ, and box job handlers. Glade Queue / DLQ: live jobs (running/waiting/pending/delayed) + DLQ retry/discard. CRON can target type: "queue".
    • CRON Scheduler: App-declared schedules in app.json (script, URL, or queue job); scheduler.enabled (default off); optional Redis coordination; Glade Schedules with Run now.
    • Request & Outbound Limits: Concurrency caps, request/stream timeouts, and default httpclient timeouts via gingee.jsonlimits.
    • Egress / SSRF policy: Default-protected outbound URL checks on httpclient and scheduler URL jobs (gingee.jsonegress).
    • Config secrets:env:VAR / file:… references in JSON config, resolved by the engine (apps still cannot read host process.env).
    • Prometheus Metrics: Engine-scoped /metrics scrape endpoint (default localhost-only; optional bearer token) for HTTP scripts, limits, egress, scheduler, WebSocket (incl. fan-out), and queue/DLQ series.
    • Audit Trail: Append-only JSONL log of permission changes and app lifecycle events (gingee.jsonaudit, default logs/audit.jsonl).
    • Process isolation (opt-in): Selected apps can run server scripts in a child process (isolation.mode: "process"); public ports stay on the master. Privileged apps stay in-process; buffered + SSE over IPC; groups and auto-restart supported.
    • Application Startup Hooks: Define startup_scripts to automatically run database migrations or seed data when your app is installed or upgraded.
    • Application Middleware: Define default_include to automatically inject scripts in front of all API end points of the app. Enabling easy authentication, policies, role management etc.
  • Full Lifecycle & Automation

    • Glade Admin UI: Built-in web panel for app lifecycle (install, upgrade, rollback, delete, permissions), Schedules / Run now, and Queue / DLQ (live jobs + dead letter).
    • Interactive Installers: Both the CLI and the Glade UI feature intelligent installers that read an app's requirements, prompt the admin for permission consent, and guide them through database configuration.
    • Automated Deployments: All lifecycle commands in the CLI can be run non-interactively using a preset file, making it perfect for CI/CD pipelines.
    • Automatic Maintenance Mode: The server automatically puts an application into a 503 Service Unavailable state during critical lifecycle events to ensure data integrity.
    • Built for Scale: With a pluggable distributed caching system (Redis), native service installation, and PM2 compatibility.
  • Decentralized App Store

    • Discover and install applications from any gstore.json manifest on the web using the gingee-cli. Anyone can host their own public or private app store.
  • GenAI-Native Workflow

    • Co-authored by a human architect and a Generative AI partner, Gingee is a testament to a new, highly efficient "Dialog-Driven Development" workflow. The project includes a pre-built knowledge bundle (ai-context.md) to empower you to build your own apps with an AI partner.

Documentation

Dive deeper into the architecture and learn how to build powerful applications with Gingee.

Concepts

DocumentDescription
Core ConceptsA high-level overview of the Gingee philosophy, project structure, the sandbox, and the module ecosystem.
FeaturesThe list of features supported by Gingee
RoadmapThe roadmap of core and app features in the pipeline for the Gingee app platform

Configuration & Setup

DocumentDescription
Gingee CLIThe all-in-one command-line interface for the Gingee platform
Server Configuration (gingee.json)A full reference guide for the server-wide gingee.json file, controlling settings like ports, caching, and security.
Glade Admin PanelGlade is the official, web-based administration panel for Gingee

Developer Docs

DocumentDescription
App Structure & app.jsonA detailed breakdown of the app folder structure and a comprehensive reference for all app.json configuration options.
Server Script GuideLearn the anatomy of a server script and get a full API reference for the powerful $g global object.
App Developer GuideA guide to creating your apps on the Gingee platform
App Packaging GuideGingee platform's standardized application packaging process
App Permissions GuideGingee platform's app permissions ecosystem.
SPA App Dev GuideA guide to creating modern SPA with frameworks on the Gingee platform
GStore Hosting GuideGingee platform's decentralized app store hosting guide

Refrence

DocumentDescription
Full API ReferenceThe complete JSDoc-generated API documentation for every function in every Gingee app module.
API ExamplesExamples of using Gingee modules, It can also be installed in a Gingee server using the .gin package in the dist folder.
Gingee App StoreThe official Gingee app store

Project Details

Project PhaseStatusCurrent Token Count
Phase 1Completed1,038,862 / 1,048,576 (1M tokens used out of a 1M token context window)
Phase 2Completed702,180 / 1,048,576 (700K tokens used out of a 1M token context window)

Tooling

Google AI Studio, VS Code, NodeJS, NPM, JSDoc

Contributing

Please see our CONTRIBUTING guide for more details on how to contribute.

License

Gingee is licensed under the MIT License. See the LICENSE file for details.

Sponsors

Gingee

Credits

RoleContributor
IdeationVignesh Swaminathan
AuthorAI Provider
Co-AuthorVignesh Swaminathan
TesterVignesh Swaminathan
Tech WriterAI Provider
ReviewerVignesh Swaminathan
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Gingee

Gingee - Application Server

A Gen AI Project

See AI Disclaimer

The objective of the project is to validate the feasibility of GenAI in platform/framework level programming as opposed to generating simplistic applications and in the process be the world's first AI authored and human co-authored production ready application server.

What is Gingee?

Gingee is a secure, batteries-included Node.js application server designed to dramatically accelerate web app development. Co-authored by a human architect and a GenAI partner, it provides a full featured platform that allows developers to focus on business logic instead of boilerplate. It achieves this through a secure sandbox, a powerful module ecosystem, and a comprehensive application lifecycle management system.

🚀 Quick Start

Requires Node.js ≥ 20.18.1 (Node 20 LTS or newer).

Get a new, fully configured Gingee server running in under a minute. See video

# 1. Install the Gingee CLI (may take a few moments to complete)
npm install -g gingee-cli
# 2. Create a new Gingee project
gingee-cli init my-gingee-project
# 3. Navigate into your new projectcd my-gingee-project
# 4. Start the server!
npm start
# 5. Browse to http://localhost:7070

That's it! You should now see Glade - the Gingee admin panel in your web browser. You can install applications for the Gingee platform from the Gingee App Store.

Key Features

Gingee is a comprehensive platform designed to provide a secure, efficient, and enjoyable development experience.

  • Secure by Default

    • Whitelist Permissions System: Applications have no access to the filesystem, database, network, email, generative AI, or CRON scheduler by default. Administrators grant explicit permissions for a "secure by default" posture. See the Threat Model (cooperative multi-app vs hostile multi-tenant).
    • Sandboxed Execution: Server scripts run in a gboxvm context: custom require, path jails, no host process (cooperative multi-app isolation—not a multi-tenant VM). UMD libs that need Function work by default; set box.allow_dynamic_code: false for stricter lockdown. With cache.server.enabled, sandboxed module instances are reused across requests (handler still runs every time); use no_cache_regex or reloadApp for live edits.
  • Instant Time to Joy

    • All-in-One CLI: A single command (gingee-cli init) scaffolds a complete, runnable project with a built-in admin panel.
    • Simplified API: All request/response logic goes through $g from gingee(). Entry scripts keep await gingee(async ($g) => …); required box modules can use bare request-local $g without threading it through every require.
    • Flexible Routing: Use zero-configuration file-based routing for rapid development, or create a routes.json for powerful, dynamic RESTful APIs.
    • Modern JavaScript: Use modern ESM syntax (import/from) directly in your server scripts with zero build steps or configuration.
  • Batteries-Included Backend

    • Multi App Hosting: Deploy and run multiple apps with clear isolation, individual app lifecycles and hot app reloads.
    • Multi-Database Support: Write your code once and deploy against PostgreSQL, SQLite, MySQL, MSSQL, and Oracle, with a consistent API. SQLite is always installed; other drivers are optional dependencies (install fails soft if a native build fails).
    • Rich Standard Library: A comprehensive suite of sandboxed modules for common tasks, including crypto, image processing, pdf generation, db access, fs (including list/stat/walk), httpclient (get/post/put/patch/delete), transactional email (SendGrid / console), and generative ai (Gemini / mock, streaming chat, multimodal, document parse, moderation). Optional project box.local_modules for shared host libraries.
    • Streamed Responses: Progressive output (e.g. SSE for AI tokens) via $g.response.startStream / writeSSE / endStream.
    • WebSockets (opt-in): Master-owned realtime on the public HTTP(S) port (app.jsonwebsockets + permission); rooms/broadcast via require('websockets'). Multi-node: websockets.fanout.driver: "redis" + sibling websockets.redis. Sample: ginchat.
    • Background queue:require('queue').add with memory or Redis drivers, retries, DLQ, and box job handlers. Glade Queue / DLQ: live jobs (running/waiting/pending/delayed) + DLQ retry/discard. CRON can target type: "queue".
    • CRON Scheduler: App-declared schedules in app.json (script, URL, or queue job); scheduler.enabled (default off); optional Redis coordination; Glade Schedules with Run now.
    • Request & Outbound Limits: Concurrency caps, request/stream timeouts, and default httpclient timeouts via gingee.jsonlimits.
    • Egress / SSRF policy: Default-protected outbound URL checks on httpclient and scheduler URL jobs (gingee.jsonegress).
    • Config secrets:env:VAR / file:… references in JSON config, resolved by the engine (apps still cannot read host process.env).
    • Prometheus Metrics: Engine-scoped /metrics scrape endpoint (default localhost-only; optional bearer token) for HTTP scripts, limits, egress, scheduler, WebSocket (incl. fan-out), and queue/DLQ series.
    • Audit Trail: Append-only JSONL log of permission changes and app lifecycle events (gingee.jsonaudit, default logs/audit.jsonl).
    • Process isolation (opt-in): Selected apps can run server scripts in a child process (isolation.mode: "process"); public ports stay on the master. Privileged apps stay in-process; buffered + SSE over IPC; groups and auto-restart supported.
    • Application Startup Hooks: Define startup_scripts to automatically run database migrations or seed data when your app is installed or upgraded.
    • Application Middleware: Define default_include to automatically inject scripts in front of all API end points of the app. Enabling easy authentication, policies, role management etc.
  • Full Lifecycle & Automation

    • Glade Admin UI: Built-in web panel for app lifecycle (install, upgrade, rollback, delete, permissions), Schedules / Run now, and Queue / DLQ (live jobs + dead letter).
    • Interactive Installers: Both the CLI and the Glade UI feature intelligent installers that read an app's requirements, prompt the admin for permission consent, and guide them through database configuration.
    • Automated Deployments: All lifecycle commands in the CLI can be run non-interactively using a preset file, making it perfect for CI/CD pipelines.
    • Automatic Maintenance Mode: The server automatically puts an application into a 503 Service Unavailable state during critical lifecycle events to ensure data integrity.
    • Built for Scale: With a pluggable distributed caching system (Redis), native service installation, and PM2 compatibility.
  • Decentralized App Store

    • Discover and install applications from any gstore.json manifest on the web using the gingee-cli. Anyone can host their own public or private app store.
  • GenAI-Native Workflow

    • Co-authored by a human architect and a Generative AI partner, Gingee is a testament to a new, highly efficient "Dialog-Driven Development" workflow. The project includes a pre-built knowledge bundle (ai-context.md) to empower you to build your own apps with an AI partner.

Documentation

Dive deeper into the architecture and learn how to build powerful applications with Gingee.

Concepts

DocumentDescription
Core ConceptsA high-level overview of the Gingee philosophy, project structure, the sandbox, and the module ecosystem.
FeaturesThe list of features supported by Gingee
RoadmapThe roadmap of core and app features in the pipeline for the Gingee app platform

Configuration & Setup

DocumentDescription
Gingee CLIThe all-in-one command-line interface for the Gingee platform
Server Configuration (gingee.json)A full reference guide for the server-wide gingee.json file, controlling settings like ports, caching, and security.
Glade Admin PanelGlade is the official, web-based administration panel for Gingee

Developer Docs

DocumentDescription
App Structure & app.jsonA detailed breakdown of the app folder structure and a comprehensive reference for all app.json configuration options.
Server Script GuideLearn the anatomy of a server script and get a full API reference for the powerful $g global object.
App Developer GuideA guide to creating your apps on the Gingee platform
App Packaging GuideGingee platform's standardized application packaging process
App Permissions GuideGingee platform's app permissions ecosystem.
SPA App Dev GuideA guide to creating modern SPA with frameworks on the Gingee platform
GStore Hosting GuideGingee platform's decentralized app store hosting guide

Refrence

DocumentDescription
Full API ReferenceThe complete JSDoc-generated API documentation for every function in every Gingee app module.
API ExamplesExamples of using Gingee modules, It can also be installed in a Gingee server using the .gin package in the dist folder.
Gingee App StoreThe official Gingee app store

Project Details

Project PhaseStatusCurrent Token Count
Phase 1Completed1,038,862 / 1,048,576 (1M tokens used out of a 1M token context window)
Phase 2Completed702,180 / 1,048,576 (700K tokens used out of a 1M token context window)

Tooling

Google AI Studio, VS Code, NodeJS, NPM, JSDoc

Contributing

Please see our CONTRIBUTING guide for more details on how to contribute.

License

Gingee is licensed under the MIT License. See the LICENSE file for details.

Sponsors

Gingee

Credits

RoleContributor
IdeationVignesh Swaminathan
AuthorAI Provider
Co-AuthorVignesh Swaminathan
TesterVignesh Swaminathan
Tech WriterAI Provider
ReviewerVignesh Swaminathan
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Gingee

Gingee - Application Server

A Gen AI Project

See AI Disclaimer

The objective of the project is to validate the feasibility of GenAI in platform/framework level programming as opposed to generating simplistic applications and in the process be the world's first AI authored and human co-authored production ready application server.

What is Gingee?

Gingee is a secure, batteries-included Node.js application server designed to dramatically accelerate web app development. Co-authored by a human architect and a GenAI partner, it provides a full featured platform that allows developers to focus on business logic instead of boilerplate. It achieves this through a secure sandbox, a powerful module ecosystem, and a comprehensive application lifecycle management system.

🚀 Quick Start

Requires Node.js ≥ 20.18.1 (Node 20 LTS or newer).

Get a new, fully configured Gingee server running in under a minute. See video

# 1. Install the Gingee CLI (may take a few moments to complete)
npm install -g gingee-cli
# 2. Create a new Gingee project
gingee-cli init my-gingee-project
# 3. Navigate into your new projectcd my-gingee-project
# 4. Start the server!
npm start
# 5. Browse to http://localhost:7070

That's it! You should now see Glade - the Gingee admin panel in your web browser. You can install applications for the Gingee platform from the Gingee App Store.

Key Features

Gingee is a comprehensive platform designed to provide a secure, efficient, and enjoyable development experience.

  • Secure by Default

    • Whitelist Permissions System: Applications have no access to the filesystem, database, network, email, generative AI, or CRON scheduler by default. Administrators grant explicit permissions for a "secure by default" posture. See the Threat Model (cooperative multi-app vs hostile multi-tenant).
    • Sandboxed Execution: Server scripts run in a gboxvm context: custom require, path jails, no host process (cooperative multi-app isolation—not a multi-tenant VM). UMD libs that need Function work by default; set box.allow_dynamic_code: false for stricter lockdown. With cache.server.enabled, sandboxed module instances are reused across requests (handler still runs every time); use no_cache_regex or reloadApp for live edits.
  • Instant Time to Joy

    • All-in-One CLI: A single command (gingee-cli init) scaffolds a complete, runnable project with a built-in admin panel.
    • Simplified API: All request/response logic goes through $g from gingee(). Entry scripts keep await gingee(async ($g) => …); required box modules can use bare request-local $g without threading it through every require.
    • Flexible Routing: Use zero-configuration file-based routing for rapid development, or create a routes.json for powerful, dynamic RESTful APIs.
    • Modern JavaScript: Use modern ESM syntax (import/from) directly in your server scripts with zero build steps or configuration.
  • Batteries-Included Backend

    • Multi App Hosting: Deploy and run multiple apps with clear isolation, individual app lifecycles and hot app reloads.
    • Multi-Database Support: Write your code once and deploy against PostgreSQL, SQLite, MySQL, MSSQL, and Oracle, with a consistent API. SQLite is always installed; other drivers are optional dependencies (install fails soft if a native build fails).
    • Rich Standard Library: A comprehensive suite of sandboxed modules for common tasks, including crypto, image processing, pdf generation, db access, fs (including list/stat/walk), httpclient (get/post/put/patch/delete), transactional email (SendGrid / console), and generative ai (Gemini / mock, streaming chat, multimodal, document parse, moderation). Optional project box.local_modules for shared host libraries.
    • Streamed Responses: Progressive output (e.g. SSE for AI tokens) via $g.response.startStream / writeSSE / endStream.
    • WebSockets (opt-in): Master-owned realtime on the public HTTP(S) port (app.jsonwebsockets + permission); rooms/broadcast via require('websockets'). Multi-node: websockets.fanout.driver: "redis" + sibling websockets.redis. Sample: ginchat.
    • Background queue:require('queue').add with memory or Redis drivers, retries, DLQ, and box job handlers. Glade Queue / DLQ: live jobs (running/waiting/pending/delayed) + DLQ retry/discard. CRON can target type: "queue".
    • CRON Scheduler: App-declared schedules in app.json (script, URL, or queue job); scheduler.enabled (default off); optional Redis coordination; Glade Schedules with Run now.
    • Request & Outbound Limits: Concurrency caps, request/stream timeouts, and default httpclient timeouts via gingee.jsonlimits.
    • Egress / SSRF policy: Default-protected outbound URL checks on httpclient and scheduler URL jobs (gingee.jsonegress).
    • Config secrets:env:VAR / file:… references in JSON config, resolved by the engine (apps still cannot read host process.env).
    • Prometheus Metrics: Engine-scoped /metrics scrape endpoint (default localhost-only; optional bearer token) for HTTP scripts, limits, egress, scheduler, WebSocket (incl. fan-out), and queue/DLQ series.
    • Audit Trail: Append-only JSONL log of permission changes and app lifecycle events (gingee.jsonaudit, default logs/audit.jsonl).
    • Process isolation (opt-in): Selected apps can run server scripts in a child process (isolation.mode: "process"); public ports stay on the master. Privileged apps stay in-process; buffered + SSE over IPC; groups and auto-restart supported.
    • Application Startup Hooks: Define startup_scripts to automatically run database migrations or seed data when your app is installed or upgraded.
    • Application Middleware: Define default_include to automatically inject scripts in front of all API end points of the app. Enabling easy authentication, policies, role management etc.
  • Full Lifecycle & Automation

    • Glade Admin UI: Built-in web panel for app lifecycle (install, upgrade, rollback, delete, permissions), Schedules / Run now, and Queue / DLQ (live jobs + dead letter).
    • Interactive Installers: Both the CLI and the Glade UI feature intelligent installers that read an app's requirements, prompt the admin for permission consent, and guide them through database configuration.
    • Automated Deployments: All lifecycle commands in the CLI can be run non-interactively using a preset file, making it perfect for CI/CD pipelines.
    • Automatic Maintenance Mode: The server automatically puts an application into a 503 Service Unavailable state during critical lifecycle events to ensure data integrity.
    • Built for Scale: With a pluggable distributed caching system (Redis), native service installation, and PM2 compatibility.
  • Decentralized App Store

    • Discover and install applications from any gstore.json manifest on the web using the gingee-cli. Anyone can host their own public or private app store.
  • GenAI-Native Workflow

    • Co-authored by a human architect and a Generative AI partner, Gingee is a testament to a new, highly efficient "Dialog-Driven Development" workflow. The project includes a pre-built knowledge bundle (ai-context.md) to empower you to build your own apps with an AI partner.

Documentation

Dive deeper into the architecture and learn how to build powerful applications with Gingee.

Concepts

DocumentDescription
Core ConceptsA high-level overview of the Gingee philosophy, project structure, the sandbox, and the module ecosystem.
FeaturesThe list of features supported by Gingee
RoadmapThe roadmap of core and app features in the pipeline for the Gingee app platform

Configuration & Setup

DocumentDescription
Gingee CLIThe all-in-one command-line interface for the Gingee platform
Server Configuration (gingee.json)A full reference guide for the server-wide gingee.json file, controlling settings like ports, caching, and security.
Glade Admin PanelGlade is the official, web-based administration panel for Gingee

Developer Docs

DocumentDescription
App Structure & app.jsonA detailed breakdown of the app folder structure and a comprehensive reference for all app.json configuration options.
Server Script GuideLearn the anatomy of a server script and get a full API reference for the powerful $g global object.
App Developer GuideA guide to creating your apps on the Gingee platform
App Packaging GuideGingee platform's standardized application packaging process
App Permissions GuideGingee platform's app permissions ecosystem.
SPA App Dev GuideA guide to creating modern SPA with frameworks on the Gingee platform
GStore Hosting GuideGingee platform's decentralized app store hosting guide

Refrence

DocumentDescription
Full API ReferenceThe complete JSDoc-generated API documentation for every function in every Gingee app module.
API ExamplesExamples of using Gingee modules, It can also be installed in a Gingee server using the .gin package in the dist folder.
Gingee App StoreThe official Gingee app store

Project Details

Project PhaseStatusCurrent Token Count
Phase 1Completed1,038,862 / 1,048,576 (1M tokens used out of a 1M token context window)
Phase 2Completed702,180 / 1,048,576 (700K tokens used out of a 1M token context window)

Tooling

Google AI Studio, VS Code, NodeJS, NPM, JSDoc

Contributing

Please see our CONTRIBUTING guide for more details on how to contribute.

License

Gingee is licensed under the MIT License. See the LICENSE file for details.

Sponsors

Gingee

Credits

RoleContributor
IdeationVignesh Swaminathan
AuthorAI Provider
Co-AuthorVignesh Swaminathan
TesterVignesh Swaminathan
Tech WriterAI Provider
ReviewerVignesh Swaminathan
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Gingee

Gingee - Application Server

A Gen AI Project

See AI Disclaimer

The objective of the project is to validate the feasibility of GenAI in platform/framework level programming as opposed to generating simplistic applications and in the process be the world's first AI authored and human co-authored production ready application server.

What is Gingee?

Gingee is a secure, batteries-included Node.js application server designed to dramatically accelerate web app development. Co-authored by a human architect and a GenAI partner, it provides a full featured platform that allows developers to focus on business logic instead of boilerplate. It achieves this through a secure sandbox, a powerful module ecosystem, and a comprehensive application lifecycle management system.

🚀 Quick Start

Requires Node.js ≥ 20.18.1 (Node 20 LTS or newer).

Get a new, fully configured Gingee server running in under a minute. See video

# 1. Install the Gingee CLI (may take a few moments to complete)
npm install -g gingee-cli
# 2. Create a new Gingee project
gingee-cli init my-gingee-project
# 3. Navigate into your new projectcd my-gingee-project
# 4. Start the server!
npm start
# 5. Browse to http://localhost:7070

That's it! You should now see Glade - the Gingee admin panel in your web browser. You can install applications for the Gingee platform from the Gingee App Store.

Key Features

Gingee is a comprehensive platform designed to provide a secure, efficient, and enjoyable development experience.

  • Secure by Default

    • Whitelist Permissions System: Applications have no access to the filesystem, database, network, email, generative AI, or CRON scheduler by default. Administrators grant explicit permissions for a "secure by default" posture. See the Threat Model (cooperative multi-app vs hostile multi-tenant).
    • Sandboxed Execution: Server scripts run in a gboxvm context: custom require, path jails, no host process (cooperative multi-app isolation—not a multi-tenant VM). UMD libs that need Function work by default; set box.allow_dynamic_code: false for stricter lockdown. With cache.server.enabled, sandboxed module instances are reused across requests (handler still runs every time); use no_cache_regex or reloadApp for live edits.
  • Instant Time to Joy

    • All-in-One CLI: A single command (gingee-cli init) scaffolds a complete, runnable project with a built-in admin panel.
    • Simplified API: All request/response logic goes through $g from gingee(). Entry scripts keep await gingee(async ($g) => …); required box modules can use bare request-local $g without threading it through every require.
    • Flexible Routing: Use zero-configuration file-based routing for rapid development, or create a routes.json for powerful, dynamic RESTful APIs.
    • Modern JavaScript: Use modern ESM syntax (import/from) directly in your server scripts with zero build steps or configuration.
  • Batteries-Included Backend

    • Multi App Hosting: Deploy and run multiple apps with clear isolation, individual app lifecycles and hot app reloads.
    • Multi-Database Support: Write your code once and deploy against PostgreSQL, SQLite, MySQL, MSSQL, and Oracle, with a consistent API. SQLite is always installed; other drivers are optional dependencies (install fails soft if a native build fails).
    • Rich Standard Library: A comprehensive suite of sandboxed modules for common tasks, including crypto, image processing, pdf generation, db access, fs (including list/stat/walk), httpclient (get/post/put/patch/delete), transactional email (SendGrid / console), and generative ai (Gemini / mock, streaming chat, multimodal, document parse, moderation). Optional project box.local_modules for shared host libraries.
    • Streamed Responses: Progressive output (e.g. SSE for AI tokens) via $g.response.startStream / writeSSE / endStream.
    • WebSockets (opt-in): Master-owned realtime on the public HTTP(S) port (app.jsonwebsockets + permission); rooms/broadcast via require('websockets'). Multi-node: websockets.fanout.driver: "redis" + sibling websockets.redis. Sample: ginchat.
    • Background queue:require('queue').add with memory or Redis drivers, retries, DLQ, and box job handlers. Glade Queue / DLQ: live jobs (running/waiting/pending/delayed) + DLQ retry/discard. CRON can target type: "queue".
    • CRON Scheduler: App-declared schedules in app.json (script, URL, or queue job); scheduler.enabled (default off); optional Redis coordination; Glade Schedules with Run now.
    • Request & Outbound Limits: Concurrency caps, request/stream timeouts, and default httpclient timeouts via gingee.jsonlimits.
    • Egress / SSRF policy: Default-protected outbound URL checks on httpclient and scheduler URL jobs (gingee.jsonegress).
    • Config secrets:env:VAR / file:… references in JSON config, resolved by the engine (apps still cannot read host process.env).
    • Prometheus Metrics: Engine-scoped /metrics scrape endpoint (default localhost-only; optional bearer token) for HTTP scripts, limits, egress, scheduler, WebSocket (incl. fan-out), and queue/DLQ series.
    • Audit Trail: Append-only JSONL log of permission changes and app lifecycle events (gingee.jsonaudit, default logs/audit.jsonl).
    • Process isolation (opt-in): Selected apps can run server scripts in a child process (isolation.mode: "process"); public ports stay on the master. Privileged apps stay in-process; buffered + SSE over IPC; groups and auto-restart supported.
    • Application Startup Hooks: Define startup_scripts to automatically run database migrations or seed data when your app is installed or upgraded.
    • Application Middleware: Define default_include to automatically inject scripts in front of all API end points of the app. Enabling easy authentication, policies, role management etc.
  • Full Lifecycle & Automation

    • Glade Admin UI: Built-in web panel for app lifecycle (install, upgrade, rollback, delete, permissions), Schedules / Run now, and Queue / DLQ (live jobs + dead letter).
    • Interactive Installers: Both the CLI and the Glade UI feature intelligent installers that read an app's requirements, prompt the admin for permission consent, and guide them through database configuration.
    • Automated Deployments: All lifecycle commands in the CLI can be run non-interactively using a preset file, making it perfect for CI/CD pipelines.
    • Automatic Maintenance Mode: The server automatically puts an application into a 503 Service Unavailable state during critical lifecycle events to ensure data integrity.
    • Built for Scale: With a pluggable distributed caching system (Redis), native service installation, and PM2 compatibility.
  • Decentralized App Store

    • Discover and install applications from any gstore.json manifest on the web using the gingee-cli. Anyone can host their own public or private app store.
  • GenAI-Native Workflow

    • Co-authored by a human architect and a Generative AI partner, Gingee is a testament to a new, highly efficient "Dialog-Driven Development" workflow. The project includes a pre-built knowledge bundle (ai-context.md) to empower you to build your own apps with an AI partner.

Documentation

Dive deeper into the architecture and learn how to build powerful applications with Gingee.

Concepts

DocumentDescription
Core ConceptsA high-level overview of the Gingee philosophy, project structure, the sandbox, and the module ecosystem.
FeaturesThe list of features supported by Gingee
RoadmapThe roadmap of core and app features in the pipeline for the Gingee app platform

Configuration & Setup

DocumentDescription
Gingee CLIThe all-in-one command-line interface for the Gingee platform
Server Configuration (gingee.json)A full reference guide for the server-wide gingee.json file, controlling settings like ports, caching, and security.
Glade Admin PanelGlade is the official, web-based administration panel for Gingee

Developer Docs

DocumentDescription
App Structure & app.jsonA detailed breakdown of the app folder structure and a comprehensive reference for all app.json configuration options.
Server Script GuideLearn the anatomy of a server script and get a full API reference for the powerful $g global object.
App Developer GuideA guide to creating your apps on the Gingee platform
App Packaging GuideGingee platform's standardized application packaging process
App Permissions GuideGingee platform's app permissions ecosystem.
SPA App Dev GuideA guide to creating modern SPA with frameworks on the Gingee platform
GStore Hosting GuideGingee platform's decentralized app store hosting guide

Refrence

DocumentDescription
Full API ReferenceThe complete JSDoc-generated API documentation for every function in every Gingee app module.
API ExamplesExamples of using Gingee modules, It can also be installed in a Gingee server using the .gin package in the dist folder.
Gingee App StoreThe official Gingee app store

Project Details

Project PhaseStatusCurrent Token Count
Phase 1Completed1,038,862 / 1,048,576 (1M tokens used out of a 1M token context window)
Phase 2Completed702,180 / 1,048,576 (700K tokens used out of a 1M token context window)

Tooling

Google AI Studio, VS Code, NodeJS, NPM, JSDoc

Contributing

Please see our CONTRIBUTING guide for more details on how to contribute.

License

Gingee is licensed under the MIT License. See the LICENSE file for details.

Sponsors

Gingee

Credits

RoleContributor
IdeationVignesh Swaminathan
AuthorAI Provider
Co-AuthorVignesh Swaminathan
TesterVignesh Swaminathan
Tech WriterAI Provider
ReviewerVignesh Swaminathan
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Gingee

Gingee - Application Server

A Gen AI Project

See AI Disclaimer

The objective of the project is to validate the feasibility of GenAI in platform/framework level programming as opposed to generating simplistic applications and in the process be the world's first AI authored and human co-authored production ready application server.

What is Gingee?

Gingee is a secure, batteries-included Node.js application server designed to dramatically accelerate web app development. Co-authored by a human architect and a GenAI partner, it provides a full featured platform that allows developers to focus on business logic instead of boilerplate. It achieves this through a secure sandbox, a powerful module ecosystem, and a comprehensive application lifecycle management system.

🚀 Quick Start

Requires Node.js ≥ 20.18.1 (Node 20 LTS or newer).

Get a new, fully configured Gingee server running in under a minute. See video

# 1. Install the Gingee CLI (may take a few moments to complete)
npm install -g gingee-cli
# 2. Create a new Gingee project
gingee-cli init my-gingee-project
# 3. Navigate into your new projectcd my-gingee-project
# 4. Start the server!
npm start
# 5. Browse to http://localhost:7070

That's it! You should now see Glade - the Gingee admin panel in your web browser. You can install applications for the Gingee platform from the Gingee App Store.

Key Features

Gingee is a comprehensive platform designed to provide a secure, efficient, and enjoyable development experience.

  • Secure by Default

    • Whitelist Permissions System: Applications have no access to the filesystem, database, network, email, generative AI, or CRON scheduler by default. Administrators grant explicit permissions for a "secure by default" posture. See the Threat Model (cooperative multi-app vs hostile multi-tenant).
    • Sandboxed Execution: Server scripts run in a gboxvm context: custom require, path jails, no host process (cooperative multi-app isolation—not a multi-tenant VM). UMD libs that need Function work by default; set box.allow_dynamic_code: false for stricter lockdown. With cache.server.enabled, sandboxed module instances are reused across requests (handler still runs every time); use no_cache_regex or reloadApp for live edits.
  • Instant Time to Joy

    • All-in-One CLI: A single command (gingee-cli init) scaffolds a complete, runnable project with a built-in admin panel.
    • Simplified API: All request/response logic goes through $g from gingee(). Entry scripts keep await gingee(async ($g) => …); required box modules can use bare request-local $g without threading it through every require.
    • Flexible Routing: Use zero-configuration file-based routing for rapid development, or create a routes.json for powerful, dynamic RESTful APIs.
    • Modern JavaScript: Use modern ESM syntax (import/from) directly in your server scripts with zero build steps or configuration.
  • Batteries-Included Backend

    • Multi App Hosting: Deploy and run multiple apps with clear isolation, individual app lifecycles and hot app reloads.
    • Multi-Database Support: Write your code once and deploy against PostgreSQL, SQLite, MySQL, MSSQL, and Oracle, with a consistent API. SQLite is always installed; other drivers are optional dependencies (install fails soft if a native build fails).
    • Rich Standard Library: A comprehensive suite of sandboxed modules for common tasks, including crypto, image processing, pdf generation, db access, fs (including list/stat/walk), httpclient (get/post/put/patch/delete), transactional email (SendGrid / console), and generative ai (Gemini / mock, streaming chat, multimodal, document parse, moderation). Optional project box.local_modules for shared host libraries.
    • Streamed Responses: Progressive output (e.g. SSE for AI tokens) via $g.response.startStream / writeSSE / endStream.
    • WebSockets (opt-in): Master-owned realtime on the public HTTP(S) port (app.jsonwebsockets + permission); rooms/broadcast via require('websockets'). Multi-node: websockets.fanout.driver: "redis" + sibling websockets.redis. Sample: ginchat.
    • Background queue:require('queue').add with memory or Redis drivers, retries, DLQ, and box job handlers. Glade Queue / DLQ: live jobs (running/waiting/pending/delayed) + DLQ retry/discard. CRON can target type: "queue".
    • CRON Scheduler: App-declared schedules in app.json (script, URL, or queue job); scheduler.enabled (default off); optional Redis coordination; Glade Schedules with Run now.
    • Request & Outbound Limits: Concurrency caps, request/stream timeouts, and default httpclient timeouts via gingee.jsonlimits.
    • Egress / SSRF policy: Default-protected outbound URL checks on httpclient and scheduler URL jobs (gingee.jsonegress).
    • Config secrets:env:VAR / file:… references in JSON config, resolved by the engine (apps still cannot read host process.env).
    • Prometheus Metrics: Engine-scoped /metrics scrape endpoint (default localhost-only; optional bearer token) for HTTP scripts, limits, egress, scheduler, WebSocket (incl. fan-out), and queue/DLQ series.
    • Audit Trail: Append-only JSONL log of permission changes and app lifecycle events (gingee.jsonaudit, default logs/audit.jsonl).
    • Process isolation (opt-in): Selected apps can run server scripts in a child process (isolation.mode: "process"); public ports stay on the master. Privileged apps stay in-process; buffered + SSE over IPC; groups and auto-restart supported.
    • Application Startup Hooks: Define startup_scripts to automatically run database migrations or seed data when your app is installed or upgraded.
    • Application Middleware: Define default_include to automatically inject scripts in front of all API end points of the app. Enabling easy authentication, policies, role management etc.
  • Full Lifecycle & Automation

    • Glade Admin UI: Built-in web panel for app lifecycle (install, upgrade, rollback, delete, permissions), Schedules / Run now, and Queue / DLQ (live jobs + dead letter).
    • Interactive Installers: Both the CLI and the Glade UI feature intelligent installers that read an app's requirements, prompt the admin for permission consent, and guide them through database configuration.
    • Automated Deployments: All lifecycle commands in the CLI can be run non-interactively using a preset file, making it perfect for CI/CD pipelines.
    • Automatic Maintenance Mode: The server automatically puts an application into a 503 Service Unavailable state during critical lifecycle events to ensure data integrity.
    • Built for Scale: With a pluggable distributed caching system (Redis), native service installation, and PM2 compatibility.
  • Decentralized App Store

    • Discover and install applications from any gstore.json manifest on the web using the gingee-cli. Anyone can host their own public or private app store.
  • GenAI-Native Workflow

    • Co-authored by a human architect and a Generative AI partner, Gingee is a testament to a new, highly efficient "Dialog-Driven Development" workflow. The project includes a pre-built knowledge bundle (ai-context.md) to empower you to build your own apps with an AI partner.

Documentation

Dive deeper into the architecture and learn how to build powerful applications with Gingee.

Concepts

DocumentDescription
Core ConceptsA high-level overview of the Gingee philosophy, project structure, the sandbox, and the module ecosystem.
FeaturesThe list of features supported by Gingee
RoadmapThe roadmap of core and app features in the pipeline for the Gingee app platform

Configuration & Setup

DocumentDescription
Gingee CLIThe all-in-one command-line interface for the Gingee platform
Server Configuration (gingee.json)A full reference guide for the server-wide gingee.json file, controlling settings like ports, caching, and security.
Glade Admin PanelGlade is the official, web-based administration panel for Gingee

Developer Docs

DocumentDescription
App Structure & app.jsonA detailed breakdown of the app folder structure and a comprehensive reference for all app.json configuration options.
Server Script GuideLearn the anatomy of a server script and get a full API reference for the powerful $g global object.
App Developer GuideA guide to creating your apps on the Gingee platform
App Packaging GuideGingee platform's standardized application packaging process
App Permissions GuideGingee platform's app permissions ecosystem.
SPA App Dev GuideA guide to creating modern SPA with frameworks on the Gingee platform
GStore Hosting GuideGingee platform's decentralized app store hosting guide

Refrence

DocumentDescription
Full API ReferenceThe complete JSDoc-generated API documentation for every function in every Gingee app module.
API ExamplesExamples of using Gingee modules, It can also be installed in a Gingee server using the .gin package in the dist folder.
Gingee App StoreThe official Gingee app store

Project Details

Project PhaseStatusCurrent Token Count
Phase 1Completed1,038,862 / 1,048,576 (1M tokens used out of a 1M token context window)
Phase 2Completed702,180 / 1,048,576 (700K tokens used out of a 1M token context window)

Tooling

Google AI Studio, VS Code, NodeJS, NPM, JSDoc

Contributing

Please see our CONTRIBUTING guide for more details on how to contribute.

License

Gingee is licensed under the MIT License. See the LICENSE file for details.

Sponsors

Gingee

Credits

RoleContributor
IdeationVignesh Swaminathan
AuthorAI Provider
Co-AuthorVignesh Swaminathan
TesterVignesh Swaminathan
Tech WriterAI Provider
ReviewerVignesh Swaminathan
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Gingee

Gingee - Application Server

A Gen AI Project

See AI Disclaimer

The objective of the project is to validate the feasibility of GenAI in platform/framework level programming as opposed to generating simplistic applications and in the process be the world's first AI authored and human co-authored production ready application server.

What is Gingee?

Gingee is a secure, batteries-included Node.js application server designed to dramatically accelerate web app development. Co-authored by a human architect and a GenAI partner, it provides a full featured platform that allows developers to focus on business logic instead of boilerplate. It achieves this through a secure sandbox, a powerful module ecosystem, and a comprehensive application lifecycle management system.

🚀 Quick Start

Requires Node.js ≥ 20.18.1 (Node 20 LTS or newer).

Get a new, fully configured Gingee server running in under a minute. See video

# 1. Install the Gingee CLI (may take a few moments to complete)
npm install -g gingee-cli
# 2. Create a new Gingee project
gingee-cli init my-gingee-project
# 3. Navigate into your new projectcd my-gingee-project
# 4. Start the server!
npm start
# 5. Browse to http://localhost:7070

That's it! You should now see Glade - the Gingee admin panel in your web browser. You can install applications for the Gingee platform from the Gingee App Store.

Key Features

Gingee is a comprehensive platform designed to provide a secure, efficient, and enjoyable development experience.

  • Secure by Default

    • Whitelist Permissions System: Applications have no access to the filesystem, database, network, email, generative AI, or CRON scheduler by default. Administrators grant explicit permissions for a "secure by default" posture. See the Threat Model (cooperative multi-app vs hostile multi-tenant).
    • Sandboxed Execution: Server scripts run in a gboxvm context: custom require, path jails, no host process (cooperative multi-app isolation—not a multi-tenant VM). UMD libs that need Function work by default; set box.allow_dynamic_code: false for stricter lockdown. With cache.server.enabled, sandboxed module instances are reused across requests (handler still runs every time); use no_cache_regex or reloadApp for live edits.
  • Instant Time to Joy

    • All-in-One CLI: A single command (gingee-cli init) scaffolds a complete, runnable project with a built-in admin panel.
    • Simplified API: All request/response logic goes through $g from gingee(). Entry scripts keep await gingee(async ($g) => …); required box modules can use bare request-local $g without threading it through every require.
    • Flexible Routing: Use zero-configuration file-based routing for rapid development, or create a routes.json for powerful, dynamic RESTful APIs.
    • Modern JavaScript: Use modern ESM syntax (import/from) directly in your server scripts with zero build steps or configuration.
  • Batteries-Included Backend

    • Multi App Hosting: Deploy and run multiple apps with clear isolation, individual app lifecycles and hot app reloads.
    • Multi-Database Support: Write your code once and deploy against PostgreSQL, SQLite, MySQL, MSSQL, and Oracle, with a consistent API. SQLite is always installed; other drivers are optional dependencies (install fails soft if a native build fails).
    • Rich Standard Library: A comprehensive suite of sandboxed modules for common tasks, including crypto, image processing, pdf generation, db access, fs (including list/stat/walk), httpclient (get/post/put/patch/delete), transactional email (SendGrid / console), and generative ai (Gemini / mock, streaming chat, multimodal, document parse, moderation). Optional project box.local_modules for shared host libraries.
    • Streamed Responses: Progressive output (e.g. SSE for AI tokens) via $g.response.startStream / writeSSE / endStream.
    • WebSockets (opt-in): Master-owned realtime on the public HTTP(S) port (app.jsonwebsockets + permission); rooms/broadcast via require('websockets'). Multi-node: websockets.fanout.driver: "redis" + sibling websockets.redis. Sample: ginchat.
    • Background queue:require('queue').add with memory or Redis drivers, retries, DLQ, and box job handlers. Glade Queue / DLQ: live jobs (running/waiting/pending/delayed) + DLQ retry/discard. CRON can target type: "queue".
    • CRON Scheduler: App-declared schedules in app.json (script, URL, or queue job); scheduler.enabled (default off); optional Redis coordination; Glade Schedules with Run now.
    • Request & Outbound Limits: Concurrency caps, request/stream timeouts, and default httpclient timeouts via gingee.jsonlimits.
    • Egress / SSRF policy: Default-protected outbound URL checks on httpclient and scheduler URL jobs (gingee.jsonegress).
    • Config secrets:env:VAR / file:… references in JSON config, resolved by the engine (apps still cannot read host process.env).
    • Prometheus Metrics: Engine-scoped /metrics scrape endpoint (default localhost-only; optional bearer token) for HTTP scripts, limits, egress, scheduler, WebSocket (incl. fan-out), and queue/DLQ series.
    • Audit Trail: Append-only JSONL log of permission changes and app lifecycle events (gingee.jsonaudit, default logs/audit.jsonl).
    • Process isolation (opt-in): Selected apps can run server scripts in a child process (isolation.mode: "process"); public ports stay on the master. Privileged apps stay in-process; buffered + SSE over IPC; groups and auto-restart supported.
    • Application Startup Hooks: Define startup_scripts to automatically run database migrations or seed data when your app is installed or upgraded.
    • Application Middleware: Define default_include to automatically inject scripts in front of all API end points of the app. Enabling easy authentication, policies, role management etc.
  • Full Lifecycle & Automation

    • Glade Admin UI: Built-in web panel for app lifecycle (install, upgrade, rollback, delete, permissions), Schedules / Run now, and Queue / DLQ (live jobs + dead letter).
    • Interactive Installers: Both the CLI and the Glade UI feature intelligent installers that read an app's requirements, prompt the admin for permission consent, and guide them through database configuration.
    • Automated Deployments: All lifecycle commands in the CLI can be run non-interactively using a preset file, making it perfect for CI/CD pipelines.
    • Automatic Maintenance Mode: The server automatically puts an application into a 503 Service Unavailable state during critical lifecycle events to ensure data integrity.
    • Built for Scale: With a pluggable distributed caching system (Redis), native service installation, and PM2 compatibility.
  • Decentralized App Store

    • Discover and install applications from any gstore.json manifest on the web using the gingee-cli. Anyone can host their own public or private app store.
  • GenAI-Native Workflow

    • Co-authored by a human architect and a Generative AI partner, Gingee is a testament to a new, highly efficient "Dialog-Driven Development" workflow. The project includes a pre-built knowledge bundle (ai-context.md) to empower you to build your own apps with an AI partner.

Documentation

Dive deeper into the architecture and learn how to build powerful applications with Gingee.

Concepts

DocumentDescription
Core ConceptsA high-level overview of the Gingee philosophy, project structure, the sandbox, and the module ecosystem.
FeaturesThe list of features supported by Gingee
RoadmapThe roadmap of core and app features in the pipeline for the Gingee app platform

Configuration & Setup

DocumentDescription
Gingee CLIThe all-in-one command-line interface for the Gingee platform
Server Configuration (gingee.json)A full reference guide for the server-wide gingee.json file, controlling settings like ports, caching, and security.
Glade Admin PanelGlade is the official, web-based administration panel for Gingee

Developer Docs

DocumentDescription
App Structure & app.jsonA detailed breakdown of the app folder structure and a comprehensive reference for all app.json configuration options.
Server Script GuideLearn the anatomy of a server script and get a full API reference for the powerful $g global object.
App Developer GuideA guide to creating your apps on the Gingee platform
App Packaging GuideGingee platform's standardized application packaging process
App Permissions GuideGingee platform's app permissions ecosystem.
SPA App Dev GuideA guide to creating modern SPA with frameworks on the Gingee platform
GStore Hosting GuideGingee platform's decentralized app store hosting guide

Refrence

DocumentDescription
Full API ReferenceThe complete JSDoc-generated API documentation for every function in every Gingee app module.
API ExamplesExamples of using Gingee modules, It can also be installed in a Gingee server using the .gin package in the dist folder.
Gingee App StoreThe official Gingee app store

Project Details

Project PhaseStatusCurrent Token Count
Phase 1Completed1,038,862 / 1,048,576 (1M tokens used out of a 1M token context window)
Phase 2Completed702,180 / 1,048,576 (700K tokens used out of a 1M token context window)

Tooling

Google AI Studio, VS Code, NodeJS, NPM, JSDoc

Contributing

Please see our CONTRIBUTING guide for more details on how to contribute.

License

Gingee is licensed under the MIT License. See the LICENSE file for details.

Sponsors

Gingee

Credits

RoleContributor
IdeationVignesh Swaminathan
AuthorAI Provider
Co-AuthorVignesh Swaminathan
TesterVignesh Swaminathan
Tech WriterAI Provider
ReviewerVignesh Swaminathan
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Gingee

Gingee - Application Server

A Gen AI Project

See AI Disclaimer

The objective of the project is to validate the feasibility of GenAI in platform/framework level programming as opposed to generating simplistic applications and in the process be the world's first AI authored and human co-authored production ready application server.

What is Gingee?

Gingee is a secure, batteries-included Node.js application server designed to dramatically accelerate web app development. Co-authored by a human architect and a GenAI partner, it provides a full featured platform that allows developers to focus on business logic instead of boilerplate. It achieves this through a secure sandbox, a powerful module ecosystem, and a comprehensive application lifecycle management system.

🚀 Quick Start

Requires Node.js ≥ 20.18.1 (Node 20 LTS or newer).

Get a new, fully configured Gingee server running in under a minute. See video

# 1. Install the Gingee CLI (may take a few moments to complete)
npm install -g gingee-cli
# 2. Create a new Gingee project
gingee-cli init my-gingee-project
# 3. Navigate into your new projectcd my-gingee-project
# 4. Start the server!
npm start
# 5. Browse to http://localhost:7070

That's it! You should now see Glade - the Gingee admin panel in your web browser. You can install applications for the Gingee platform from the Gingee App Store.

Key Features

Gingee is a comprehensive platform designed to provide a secure, efficient, and enjoyable development experience.

  • Secure by Default

    • Whitelist Permissions System: Applications have no access to the filesystem, database, network, email, generative AI, or CRON scheduler by default. Administrators grant explicit permissions for a "secure by default" posture. See the Threat Model (cooperative multi-app vs hostile multi-tenant).
    • Sandboxed Execution: Server scripts run in a gboxvm context: custom require, path jails, no host process (cooperative multi-app isolation—not a multi-tenant VM). UMD libs that need Function work by default; set box.allow_dynamic_code: false for stricter lockdown. With cache.server.enabled, sandboxed module instances are reused across requests (handler still runs every time); use no_cache_regex or reloadApp for live edits.
  • Instant Time to Joy

    • All-in-One CLI: A single command (gingee-cli init) scaffolds a complete, runnable project with a built-in admin panel.
    • Simplified API: All request/response logic goes through $g from gingee(). Entry scripts keep await gingee(async ($g) => …); required box modules can use bare request-local $g without threading it through every require.
    • Flexible Routing: Use zero-configuration file-based routing for rapid development, or create a routes.json for powerful, dynamic RESTful APIs.
    • Modern JavaScript: Use modern ESM syntax (import/from) directly in your server scripts with zero build steps or configuration.
  • Batteries-Included Backend

    • Multi App Hosting: Deploy and run multiple apps with clear isolation, individual app lifecycles and hot app reloads.
    • Multi-Database Support: Write your code once and deploy against PostgreSQL, SQLite, MySQL, MSSQL, and Oracle, with a consistent API. SQLite is always installed; other drivers are optional dependencies (install fails soft if a native build fails).
    • Rich Standard Library: A comprehensive suite of sandboxed modules for common tasks, including crypto, image processing, pdf generation, db access, fs (including list/stat/walk), httpclient (get/post/put/patch/delete), transactional email (SendGrid / console), and generative ai (Gemini / mock, streaming chat, multimodal, document parse, moderation). Optional project box.local_modules for shared host libraries.
    • Streamed Responses: Progressive output (e.g. SSE for AI tokens) via $g.response.startStream / writeSSE / endStream.
    • WebSockets (opt-in): Master-owned realtime on the public HTTP(S) port (app.jsonwebsockets + permission); rooms/broadcast via require('websockets'). Multi-node: websockets.fanout.driver: "redis" + sibling websockets.redis. Sample: ginchat.
    • Background queue:require('queue').add with memory or Redis drivers, retries, DLQ, and box job handlers. Glade Queue / DLQ: live jobs (running/waiting/pending/delayed) + DLQ retry/discard. CRON can target type: "queue".
    • CRON Scheduler: App-declared schedules in app.json (script, URL, or queue job); scheduler.enabled (default off); optional Redis coordination; Glade Schedules with Run now.
    • Request & Outbound Limits: Concurrency caps, request/stream timeouts, and default httpclient timeouts via gingee.jsonlimits.
    • Egress / SSRF policy: Default-protected outbound URL checks on httpclient and scheduler URL jobs (gingee.jsonegress).
    • Config secrets:env:VAR / file:… references in JSON config, resolved by the engine (apps still cannot read host process.env).
    • Prometheus Metrics: Engine-scoped /metrics scrape endpoint (default localhost-only; optional bearer token) for HTTP scripts, limits, egress, scheduler, WebSocket (incl. fan-out), and queue/DLQ series.
    • Audit Trail: Append-only JSONL log of permission changes and app lifecycle events (gingee.jsonaudit, default logs/audit.jsonl).
    • Process isolation (opt-in): Selected apps can run server scripts in a child process (isolation.mode: "process"); public ports stay on the master. Privileged apps stay in-process; buffered + SSE over IPC; groups and auto-restart supported.
    • Application Startup Hooks: Define startup_scripts to automatically run database migrations or seed data when your app is installed or upgraded.
    • Application Middleware: Define default_include to automatically inject scripts in front of all API end points of the app. Enabling easy authentication, policies, role management etc.
  • Full Lifecycle & Automation

    • Glade Admin UI: Built-in web panel for app lifecycle (install, upgrade, rollback, delete, permissions), Schedules / Run now, and Queue / DLQ (live jobs + dead letter).
    • Interactive Installers: Both the CLI and the Glade UI feature intelligent installers that read an app's requirements, prompt the admin for permission consent, and guide them through database configuration.
    • Automated Deployments: All lifecycle commands in the CLI can be run non-interactively using a preset file, making it perfect for CI/CD pipelines.
    • Automatic Maintenance Mode: The server automatically puts an application into a 503 Service Unavailable state during critical lifecycle events to ensure data integrity.
    • Built for Scale: With a pluggable distributed caching system (Redis), native service installation, and PM2 compatibility.
  • Decentralized App Store

    • Discover and install applications from any gstore.json manifest on the web using the gingee-cli. Anyone can host their own public or private app store.
  • GenAI-Native Workflow

    • Co-authored by a human architect and a Generative AI partner, Gingee is a testament to a new, highly efficient "Dialog-Driven Development" workflow. The project includes a pre-built knowledge bundle (ai-context.md) to empower you to build your own apps with an AI partner.

Documentation

Dive deeper into the architecture and learn how to build powerful applications with Gingee.

Concepts

DocumentDescription
Core ConceptsA high-level overview of the Gingee philosophy, project structure, the sandbox, and the module ecosystem.
FeaturesThe list of features supported by Gingee
RoadmapThe roadmap of core and app features in the pipeline for the Gingee app platform

Configuration & Setup

DocumentDescription
Gingee CLIThe all-in-one command-line interface for the Gingee platform
Server Configuration (gingee.json)A full reference guide for the server-wide gingee.json file, controlling settings like ports, caching, and security.
Glade Admin PanelGlade is the official, web-based administration panel for Gingee

Developer Docs

DocumentDescription
App Structure & app.jsonA detailed breakdown of the app folder structure and a comprehensive reference for all app.json configuration options.
Server Script GuideLearn the anatomy of a server script and get a full API reference for the powerful $g global object.
App Developer GuideA guide to creating your apps on the Gingee platform
App Packaging GuideGingee platform's standardized application packaging process
App Permissions GuideGingee platform's app permissions ecosystem.
SPA App Dev GuideA guide to creating modern SPA with frameworks on the Gingee platform
GStore Hosting GuideGingee platform's decentralized app store hosting guide

Refrence

DocumentDescription
Full API ReferenceThe complete JSDoc-generated API documentation for every function in every Gingee app module.
API ExamplesExamples of using Gingee modules, It can also be installed in a Gingee server using the .gin package in the dist folder.
Gingee App StoreThe official Gingee app store

Project Details

Project PhaseStatusCurrent Token Count
Phase 1Completed1,038,862 / 1,048,576 (1M tokens used out of a 1M token context window)
Phase 2Completed702,180 / 1,048,576 (700K tokens used out of a 1M token context window)

Tooling

Google AI Studio, VS Code, NodeJS, NPM, JSDoc

Contributing

Please see our CONTRIBUTING guide for more details on how to contribute.

License

Gingee is licensed under the MIT License. See the LICENSE file for details.

Sponsors

Gingee

Credits

RoleContributor
IdeationVignesh Swaminathan
AuthorAI Provider
Co-AuthorVignesh Swaminathan
TesterVignesh Swaminathan
Tech WriterAI Provider
ReviewerVignesh Swaminathan