SkyFlare

0.01-pre-alpha

SkyFlare is currently under heavy development and should not be used in production unless you are a very experienced developer who can troubleshoot and update the framework fundamentals. SkyFlare should be considered pre-alpha

SkyFlare is a dual web development framework with a focus on code habitability, maintenance and logic encapsulation preferring convention over configuration wherever possible. SkyFlare was built with a few specific use cases in mind.

  • API-only backend applications that need JSON results for consumption by a variety of clients (browser, mobile and custom clients)
  • Simplified but secure deployment processes for small teams to reduce automation costs and complexity
  • As a modern API layer for legacy applications with minimal changes to legacy code that may not be conducive to modern web development
  • Backend and frontend components agnostic of each other but intended to work together

Sky

Sky is the API-only backend framework. Sky is intended to be easy to setup, easy to configure and easy to maintain.

Design Goals

  • Opinionated, rigidly defined architectural pattern that is expressive enough to handle most real world scenarios
  • Cheap to deploy in both time and money
  • JESTful
    • JSON Encapsulated State Transfer - returns are primarily JSON-based with the exception of templates and template fragments as well as full page rendering
    • Reject
      • HATEOAS as a key component of the design pattern (although lightly supported)
      • Verb Juggling
    • HTTP status codes for execution and pathing errors, envelope reporting for logic errors
  • Clear separation between framework, business logic, controller and model layers
  • Web-based admin dashboard for hosting platforms without direct server access
  • Seamless multi-tenancy with row level, dynamic tenant scoping - no need to configure scoping for insert or select queries
  • Provide in-built core web application functions such as
    • Pathing
    • Application Settings Management
    • User Management
      • Registration/Enrollment
      • Authentication and Authorization
      • Email Verification
      • Preferences
      • Addresses and Phones
    • Subscriber Management
      • Registration/Enrollment
      • Pricing Module Membership
      • Subdomain-based Data Scopes
    • Dynamic, Role-based Permissions including Menuing
    • Subscription Plans, Pricing and Usage Metering
    • Dynamic Workflows
    • Notifications
    • Timezone Enforcement
    • Human Language Translation
    • Form Validation
    • Follows
    • Notes
    • Monikers
    • Documents
    • Webhooks
    • Logging (using Monolog)
    • Tasks
    • Lightweight Templating

Flare

Flare is the htmx-based frontend framework for use in HTML-based API coordination applications. Flare is a set of vanilla Javascript libraries that have low interdependency but high interoperability.

Design Goals

  • The frontend application's state is already represented
  • Atomic, dynamically loadable DOM hydration
  • Memory safe and efficient
  • HTMX attributable elements
  • Promise-based, Javascript classes for default strictness, scope encapsulation, inheritance and composition
  • Automatic function declarations via utility classes, function configuration by attributes
  • Provide reusable, in-built, common core functions of frontend development
    • Remote API (including Sky APIs) standardization to include API keys in headers on each request and result reporting via Promises
    • Dynamic data loading with caching, repeatable hydration, and template interpolation
    • Authentication
    • Follows (with Sky)
    • Basic Calendaring (with Sky)
    • Document download and detail display
    • Simple DOM manipulation and selection
    • File Uploading
    • Growls/Toasts
    • Templating for DOM element hydration and display
    • Browser Data Storage
    • UI Tabs
    • Table Interactions including column hiding/showing, content filtering by column values, and more effective sorting for different data types