Skip to content
/ dev Public

A composable monorepo web-service/front-end toolkit

License

Notifications You must be signed in to change notification settings

ctx-core/dev

Repository files navigation

ctx-core

A composable monorepo web-service/front-end toolkit that emphasizes:

  • starter apps & quick prototyping with a scalable architecture
  • {up,down}-scalable complexity
  • functional-dominant hybrid style of programming
  • data flow
  • simple & composable interfaces
  • reuse across projects
  • anti-fragile development

Install

NPM packages

The simplest way to use @ctx-core packages is to simply use npm to install them.

Forking ctx-core with Lerna & git submodule

If you want to fork ctx-core for your own usage you can:

  • fork this repository
  • install lerna to manage multiple repositories
  • git submodule add <ctx-core-fork-url> lib/ctx-core
  • If you use a read-only git url for deployment & want to edit your ctx-core fork, you can edit the git config
    • vim .git/modules/lib/ctx-core/config
    • edit url = git@github.com:your-fork-account/ctx-core.git

Usage

  1. Fork ctx-core & add your ctx-core fork as a git submodule.
  2. Create a .gitignore file in your project with
/.env
  1. Create a .env file (see the .env.sample.* files in the ctx-core directory)

Please send pull requests.

Technologies

Techniques

Explicit Domain Driven Design

"The Map is not the territory"

—Alfred Korzybski

"All non-trivial abstractions, to some degree, are leaky"

—Joel Spolsky

I view software as a creative model of Existence. Software, in emulating other entities in Existence, also exists as entities.

Language, using a schema, provides a system of abstraction enabling one to model something. Language is context sensitive & composable. With the Language tool, we craft systems of illusion, intelligence, & life.

Naming Conventions

Source Code is a UX to interface with the raw machine.

The affordances provided by programming languages allows one to:

  • name abstractions
  • create patterns & metaphor
  • express one's model of Existence
  • create a tool to perform work

Optionality — Degrees of Freedom over Forecasting

I prefer to have optionality over compound planing (assumptions, based on assumptions, …). We live in a complex & interconnected existence; with the potential for a diverse set of outcomes. Complexity, interconnectivity, novelty, & creation is beyond any single entity's ability to effectively forecast.

Language evolves as our conscious understanding evolves…& vice versa. Ambiguity is a tool of consciousness to compel us to explore the dissonance in our current model of Existence. Follow the rabbit hole…and a richer Existence awaits.

Monorepo

I chose to use a monorepo:

  • to reduce development friction in managing my various projects
  • to utilize patterns across my projects

Monorepos are, once again, gaining favor as a way to efficiently manage disparate projects. I choose to use monorepos across my projects to create value & optionality for my clients and to model abstract patterns to continuously improve the products.

Demos

I work for clients that often utilize proprietary data sources. Currently, ctx-core has a starter app that is a quovo portfolio viewer. I am working on creating more starter apps & getting a demo account with quovo.

In the mean time, I can do private demos (with additional examples that I can't show in public) on Google Hangout. Please contact me at: brian.takita@gmail.com

Acknowledgements & Gratitude

Thank you to all of you adventurous spirits who push the edge, cross boundaries, & create convergence to enrich our collective Existence.

Thank you to those who have failed many times, yet never gave up in following your bliss.

Thank you to everybody whom I have had a pleasure to work with & who has graced my life. I have learned much from your perspectives & hope to continue to be blessed by your physical presence & your presence in my heart.

Thank you to all beautiful souls who grace us with this immersive & thoroughly interesting world.

The Censible Team

Thank you to the Censible team for the inspiration, willingness, & for being the initial sponsor for ctx-root.

A special thank to to: @pmart123, @snuggs, @cristhiandick, @albertopontonio, @strictlymomo, @mrbernnz, @katezaps, @tmornini, @ebransom for your collaboration, brilliance, attitude, & friendship.