Skip to content

Opinionated framework for modern Web applications: CoffeeScript, Socket.IO, LevelDB…

Notifications You must be signed in to change notification settings

Modified/Constitution

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

Constitution: Make the Web Great Again

Constitution is web applications development done right. It encompasses ideology, methodology, and technology choices.

It's an opinionated, uncompromizing, platform (or stack) and methodology (curated best practices) built upon radical technologies: Progressive Web App features, CoffeeScript, LevelDB, WebSocket, Double Macchiato, Stylus…

Constitution aims to… offer a technological solution to a key challenge startups face, namely, lack of software engineering insight… and technophobia?

(This is still a draft, work-in-progress…)

Web Technologies: Bleeding Edge / State of The Art

Features and business impact.

  1. The WWW is the platform

    1. Progressive Web Apps (PWA): progressive networking (ServiceWorker), "offline first", localStorage…

    2. Single Page Application; cf Reactive Manifesto, Static Apps manifesto

    3. WebSocket (or HTTP/2?): bidirectional, realtime; WebRTC for P2P

    4. (Web components is failed tech; "DHTML" still works; HTTP & HTML are obsolete — replace with WebSocket and DOM)

    5. WYSIWYG (contenteditable)

    6. Web trumps "native" in every way

      1. Progressive Web Apps: announced to become "native" in Android…
      2. Hybrid — WebView, RWD, CSS3 (SVG, WebGL…): far richer/versatile than GUI libraries
      3. Closed proprietary platforms suck!
        1. Rollouts: excruciating/impractical on "native" — re-publish, re-install… whereas web — just cache invalidation.
        2. Marketing: discoverability/SEO poorer than web; no mashups
        3. Risky vendor dependence
      4. (If you're still missing anything, hold your breath: standardized APIs for device features adopted at fast pace.)
  2. Architecture: NoSQL and 12 Factor App Manifesto

    1. ACID vs BASE, CAP theorem, normalization and sharding
    2. Schemaless: no migrations, data modeling for dynamic languages; eg Metrics 2.0
    3. Async (non-blocking concurrency model): promises, streams
    4. localStorage, Appcache, CDN, remoteStorage (noBackend manifesto), mashups…
    5. REST, at scale (GraphQL seems interesting?)
  3. Continuous Deployment (CD, DevOps insights)

    1. Asset pipeline: pre/post-processing, minification, selective combining, responsive images, content negotiation…
    2. SDLC, Gitflow
    3. Environments (continuous deployment), feature toggling (A/B testing)
    4. Quality assurance, continuous integration
  4. Domain specific languages and software engineering (goals, processes, principles)

    1. DSLs: CoffeeScript, Double Macchiato (was Teacup), Stylus… (DSL for Continuous?)
    2. Dreamcode; opinionated; good magic vs bad magic
    3. Scaffolding (skeletons)?
    4. Middleware?
  5. Ecosystem

    1. NPM

Evangelism / Politics

  1. Constitution is a defense system against the MVC/OOP idiocracy (aka zombie apocalypse, post-truth age…) plaguing the web technologies ecosystem as of late. It joins a growing (counter-)movement — a resistance, avantgarde, awakening — documenting the horrors of this disaster and advocating solutions.

Roadmap

  1. Skeleton(s)
  2. Demo apps
  3. (Express.IO, Zappa…?)

Dependencies

  • Node & NPM
  • CoffeeScript
  • LevelDB (LevelUP ecosystem)
  • Socket.IO (no, replace with other WebSocket lib)
  • Double Macchiato (DOM templating (SS); was Teacup)
  • Filldom (DOM interpolation (CS); forthcoming)
  • Stylus
  • Gitflow
  • Cake, or Bash (towards DSL for Continuous)
  • Express, etc

Helpers are Constitution oriented extensions — bundles of DOM (DM) helper functions, and/or Stylus includes, and/or jQuery plugins, for example.

About

Opinionated framework for modern Web applications: CoffeeScript, Socket.IO, LevelDB…

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published