# STRVCT > A naked objects framework for JavaScript with automatic UI generation, persistence, and cloud sync. ## Documentation - [Documentation](/docs/): Guides, architecture, and API reference. - [Accessibility](/docs/Accessibility/): Automatic, framework-level ARIA support derived from the naked objects pattern. - [Comparing to React](/docs/Comparing%20to%20React/): A guide for React developers exploring Strvct — what's different, what's similar, and when each approach makes more sense. - [Events and Gestures](/docs/Events%20and%20Gestures/): Event flow, listeners, gesture recognizers, timers, keyboard handling, and drag-and-drop. - [Drag and Drop](/docs/Events%20and%20Gestures/Drag%20and%20Drop/): Browser drag-and-drop support for views and nodes, covering both drop targets and drag sources. - [Event Flow](/docs/Events%20and%20Gestures/Event%20Flow/): The end-to-end path from a browser event to an application handler. - [Event Listeners](/docs/Events%20and%20Gestures/Event%20Listeners/): Thin wrappers around native DOM events that forward to handler methods on views. - [Gesture Recognizers](/docs/Events%20and%20Gestures/Gesture%20Recognizers/): Higher-level state machines that interpret sequences of events as meaningful gestures. - [Keyboard and Focus](/docs/Events%20and%20Gestures/Keyboard%20and%20Focus/): Keyboard state tracking, modifier-aware key dispatch, and the responder chain for focus management. - [Timers](/docs/Events%20and%20Gestures/Timers/): Managed timeout system for scheduling deferred work, with support for weak references to avoid preventing garbage collection. - [Future Work](/docs/Future%20Work/): Design ideas, architectural discussions, and potential future improvements. - [Accessibility Testing & Tuning](/docs/Future%20Work/Accessibility%20Testing%20%26%20Tuning/): Validating and refining the framework's ARIA implementation across screen readers, devices, and applications. - [Async Final Initialization](/docs/Future%20Work/Async%20Final%20Initialization/): Adding an async phase to the object initialization lifecycle. - [Async Navigation](/docs/Future%20Work/Async%20Navigation/): Rearchitecting the navigation stack to support asynchronous loading at every level. - [Complete Protocols](/docs/Future%20Work/Complete%20Protocols/): Formalizing the many undeclared interface contracts throughout the codebase. - [Emergent Capabilities](/docs/Future%20Work/Emergent%20Capabilities/): Capabilities that the naked objects architecture makes possible at the framework level. - [Graph Database](/docs/Future%20Work/Graph%20Database/): Long-term direction: replacing the current cloud storage backend with a native graph database. - [JSON Schema](/docs/Future%20Work/JSON%20Schema/): Expanding auto-generated JSON Schema coverage across slots, classes, and the domain model. - [Lazy Slots](/docs/Future%20Work/Lazy%20Slots/): Deferring object loading until first access, so large object graphs don't pay for what they don't touch. - [Promise-Wrapped Slots](/docs/Future%20Work/Promise-Wrapped%20Slots/): Automatic async getter generation with promise caching and dependency-driven invalidation. - [Tile Container Views](/docs/Future%20Work/Tile%20Container%20Views/): Layout strategies for presenting a node's subnodes. - [Tile Views](/docs/Future%20Work/Tile%20Views/): Tile subclasses for presenting individual subnodes in specialized ways. - [Getting Started](/docs/Getting%20Started/): Setup, integration, and first steps with the Strvct framework. - [Implementation Overview](/docs/Implementation%20Overview/): Implementation details for classes, slots, views, and persistence. - [Inspirations](/docs/Inspirations/): Frameworks and ideas that shaped STRVCT's design. - [Internationalization](/docs/Internationalization/): AI-powered translation of UI text with persistent caching, batched requests, and smart content filtering. - [Lifecycle](/docs/Lifecycle/): Boot sequence, node initialization, view synchronization, and persistence cycles. - [App Lifecycle](/docs/Lifecycle/App%20Lifecycle/): SvApp initialization, extension points, and readiness signaling. - [Boot Sequence](/docs/Lifecycle/Boot%20Sequence/): How the application loads from first script tag to a running app. - [Headless Execution](/docs/Lifecycle/Headless%20Execution/): Running STRVCT applications in Node.js without a browser. - [Node Lifecycle](/docs/Lifecycle/Node%20Lifecycle/): Creation, three-phase initialization, parent-child relationships, and update notifications. - [Persistence Lifecycle](/docs/Lifecycle/Persistence%20Lifecycle/): How objects are stored, loaded, and kept in sync with IndexedDB. - [View Synchronization](/docs/Lifecycle/View%20Synchronization/): How views discover nodes, synchronize state, and batch updates efficiently. - [Naked Objects](/docs/Naked%20Objects/): Closing the Usability Gap in Naked Objects - [Notifications](/docs/Notifications/): Event-driven communication between framework layers using observations, scheduling, and weak references. - [Broadcaster](/docs/Notifications/Broadcaster/): Lightweight synchronous dispatch for high-frequency internal events. - [Notification Center](/docs/Notifications/Notification%20Center/): Deferred, deduplicated event dispatch with weak-reference cleanup. - [Slot Change Hooks](/docs/Notifications/Slot%20Change%20Hooks/): Automatic per-slot callbacks that connect property changes to notifications and persistence. - [Sync Scheduler](/docs/Notifications/Sync%20Scheduler/): Deferred, deduplicated method calls with priority ordering and loop detection. - [Persistence](/docs/Persistence/): Local storage, cloud sync, and blob management for object graphs. - [Cloud Object Pools](/docs/Persistence/Cloud%20Object%20Pools/): Cloud sync for object pools and collections using Firebase Storage. - [Local and Cloud Blob Storage](/docs/Persistence/Local%20and%20Cloud%20Blob%20Storage/): Content-addressable storage for binary data like images, audio, and video. - [Local Object Pools](/docs/Persistence/Local%20Object%20Pools/): IndexedDB-backed persistence for object graphs using dirty tracking and automatic serialization. - [Programming Idioms](/docs/Programming%20Idioms/): Recurring patterns and conventions for writing STRVCT code. - [Async Patterns](/docs/Programming%20Idioms/Async%20Patterns/): Extended promises, serial and parallel iteration, and concurrency control. - [Categories](/docs/Programming%20Idioms/Categories/): Extending existing classes by adding methods from separate files. - [Protocols](/docs/Programming%20Idioms/Protocols/): Declaring interfaces and verifying conformance at runtime. - [Style Guide](/docs/Programming%20Idioms/Style%20Guide/): Naming conventions, formatting rules, and code structure patterns. - [Reference](/docs/Reference/): Class hierarchy, module hierarchy, and protocol definitions. - [Classes](/docs/Reference/Classes/) - [Modules](/docs/Reference/Modules/) - [Protocols](/docs/Reference/Protocols/) - [Services](/docs/Services/): AI, cloud, media, and IoT service integrations. - [AI Services](/docs/Services/AI%20Services/): Base classes, requests, conversations, tool calling, response parsing, and prompt composition. - [Cloud Storage](/docs/Services/Cloud%20Storage/): Firebase integration for cloud persistence and file storage. - [Home Assistant](/docs/Services/Home%20Assistant/): IoT device control via Home Assistant's WebSocket API. - [Media](/docs/Services/Media/): YouTube audio playback and browser speech recognition. - [Proxies](/docs/Services/Proxies/): Client-side proxy configuration for routing API calls through intermediary servers. - [Slots](/docs/Slots/): The property system: declaration, annotations, and the most common slot settings. - [Technical Overview](/docs/Technical%20Overview/): High-level architecture and key concepts of the Strvct framework. - [Views](/docs/Views/): The view layer: auto-generated UI, custom views, and programmatic styling. - [Auto-Generated Views](/docs/Views/Auto-Generated%20Views/): How the view layer connects to model nodes, synchronizes state, and provides navigation — without writing any view code. - [Custom Views](/docs/Views/Custom%20Views/): How to create custom view classes when the auto-generated UI doesn't fit. - [Programmatic Styling](/docs/Views/Programmatic%20Styling/): Named CSS methods, the chainable API, and why STRVCT avoids CSS files. - [Themes and Style States](/docs/Views/Themes%20and%20Style%20States/): How views resolve their appearance from theme classes, style states, and node configuration. ## Example App - [Example App](/Example%20App/): A complete contacts application in four classes, with zero view code. ## FAQ - [FAQ](/FAQ/): Frequently asked questions about STRVCT. ## Project Timeline - [Project Timeline](/Timeline/): Key milestones from the first commit through present day Framework architecture, UI system, persistence, and developer tooling.