npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

appxigon

v0.1.11

Published

Appxigon 0.1.x. Implemented in livescript

Downloads

12

Readme

Appxigon - A schema-based SPA runtime (Work in progress)

Update

  • A show case: a slide presentation app made with Appxigon 0.1.x

    With live demo: https://appxigon-101.firebaseapp.com

    & source code: https://github.com/rlhk/appxigon-101

Project Goal

  • Define a Domain Specific Language (DSL) schema YAML/JSON/EDN compatible format
  • The DSL describes most common high level SPA use cases that we keep reinventing all the time
  • The runtime is able to render a fully functional client-side application basing on the DSL

What is Appxigon ?

  • An application framework instead of a technical framework (such as ReactJS, VueJS, AngularJS)
  • It enables application developers to focus on the application rather than technical details
  • A mini-framework in the form of a front-end application runtime by interpreting a JSON compatible schema. The schema itself is also dynamic at runtime
  • The front-end application is completely de-coupled with backend. Appxigon app communicates with server only via RESTful APIs (GraphQL and Websockets are great-to-have developments)
  • Apart from composing your SPA from Appxigon built-in components, writing custom Appxigon components and functions is the preferred way to complete your app
  • After all, Appxigon is just a React component accepting schema as it's prop. It doesn't prevent you from mixing the 'usual-way' of building a React App.

What is NOT Appxigon ?

  • Server-side rendering (SSR)

Audience

  • SPA developers with reasonable React + Redux knowledge for setting up the main application entry Javascript source code. (Hopefully a generator could be provided in future)

Incidental simplification on React + Redux implementation

  • No more messing with nested container/presentation components
  • Appxigon is the only container for all leaf components (built-in or custom)
  • All built-in and custom components should be presentational (dumb)
  • Appxigon Item provides common props such as: value, data, errors, progress
  • Redux state management is not necessary (most of the time)
  • Reactivity is free by dynamic props binding from Redux (libs like Webx is unnecessary)
  • Orchestration of async API/function calls comes free

How and where to start

  • Firstly, take a look at /playground/schemas/kitchen-sink.yml, read through all comments to understand the syntax
    • TODO: conceptual diagram of Appxigon App
  • Secondly, read /playground/app.js to see how to initialize the application entry JS

The Schema

  • Internally, the schema is a JSON data object. As long as the schema conforms to what the demo kitchen-sink.yml format, the Appxigon app is renderable once the JSON is loaded into the global App state store: axgSchema. The YAML deom schema is converted and consumed by the app setup as JSON. YAML format is recommended for it's readable and comment-friend syntax

  • Naming: entities in Appxigon schema should be named by their semantic function instead of presentation. Specific presentation concerns are addressed by subtypes

    • e.g. ItemType 'select' is an UI item which provides predefined values for user selection. In that sense, single select, multiple select, checkboxes, navigation bar are all 'select'. Some example subtypes are:
      • 'select' (same as 'select/select')
      • 'select/list'
      • 'select/checklist' ('option: multiple' indicates the multiple selectable attribute)
    • e.g. ItemType 'input' is an UI item which allows a user to input arbitrary value. Some subtypes examples are:
      • 'input/input' (default single line input box)
      • 'input/textarea'

NOTE

  • Route handling for web SPA implementation stays with pre-v4 react-router
    • v4 introduces breaking changes from v3

TODO:

Internal

  • cleaner app-level layout handling
  • dynamic schema manipulation
    • cloning: group, item
  • value validation (appxigon/input, submission action)
    • generic solution: middleware-like pluggable function (fully customizable)
  • modal
    • real (traditional)
    • pseudo (full screen)
  • import db schema for form generation

Nice-to-haves

Great-to-haves

  • JS bin like playground with live schema editing and loading for developers
  • GraphQL support
  • WebSocket support
  • Native implementation such as React Native

Greatest-to-haves

  • Close the loop to server side flow ...

Contributing

Required background knowledge

  • General understanding of Appxigon structure
  • Basic React and Redux knowledge
  • Livescript (The FP style replacement of CoffeeScript)