Experimental and in progress Elixir web app framework
Find a file
2023-02-28 22:45:11 +00:00
.devcontainer improvement: component events/scripts. 2023-02-18 04:31:55 +00:00
.vscode docs: Add explanation to readme. 2023-03-01 10:21:07 +13:00
assets improvement: component events/scripts. 2023-02-18 04:31:55 +00:00
config feat: Component support. 2023-02-15 06:59:36 +00:00
lib improvement: Make the cookie_signing_salt a secret. 2023-03-01 11:41:25 +13:00
priv improvement: component events/scripts. 2023-02-18 04:31:55 +00:00
src feat: Component support. 2023-02-15 06:59:36 +00:00
test improvement: Enable components to add extra properties to their root elements. 2023-02-19 23:35:32 +00:00
.check.exs chore: add extra CI checks. 2023-02-15 20:24:03 +13:00
.dialyzer_ignore.exs feat(websocket): more robust websocket and transition handling. 2022-12-24 13:36:16 +13:00
.doctor.exs feat: route templates. 2022-12-22 07:29:14 +00:00
.formatter.exs improvement: component events/scripts. 2023-02-18 04:31:55 +00:00
.gitignore feat(assets): Use esbuild to build assets. 2022-12-23 05:12:18 +00:00
.gitlab-ci.yml chore: add CI check for conventional commit messages. 2023-02-20 12:51:26 +13:00
.tool-versions chore(deps): update dependency erlang to v25.2.3 2023-02-17 23:47:49 +13:00
CHANGELOG.md chore: release version v0.8.3 2023-02-28 22:45:11 +00:00
LICENSE.md chore: Fix copyright notice. 2023-01-17 10:46:50 +13:00
mix.exs chore: release version v0.8.3 2023-02-28 22:45:11 +00:00
mix.lock chore(deps): update to Spark 0.4.5. 2023-02-20 13:09:43 +13:00
package.json feat(websocket): more robust websocket and transition handling. 2022-12-24 13:36:16 +13:00
README.md docs: Add explanation to readme. 2023-03-01 10:21:07 +13:00
renovate.json chore(deps): add renovate.json 2022-12-08 19:47:18 +13:00

Cinder

pipeline status Hippocratic License HL3-FULL

Cinder is a framework for building real-time web applications in Elixir with a focus on isomorphism and developer experience.

Status

Cinder is still very much in the experimental phase and should not be used by anyone who wants to keep their job - except if their job is experimenting with new and interesting ways to build apps.

At the moment documentation is severely lacking. You are welcome to contribute some.

Goals

Cinder has some lofty goals:

  • Enable developers to build concurrent, real-time web applications without having to reason about traditional backend/frontend concerns or the request/response cycle.
  • Provide a rich domain-specific language which allows the developer to express common domain concerns quickly and from which much of the application framework to be derived at compile time and introspected at runtime.

But probably more important are the non-goals:

  • Cinder is not a replacement for Phoenix. Cinder does not provide many of the features of Phoenix and intentionally so. It does not care about building APIs, controllers or live-views. You can run Cinder inside a Phoenix application if you need these features.
  • Cinder is built using tools from the Ash ecosystem, however Cinder is not designed to be used solely with Ash. Cinder's golden path may evolve towards recommending Ash to model your application layer, but it will always work without it.
  • Avoid code-generation wherever possible. Just trust me on this.

Installation

Cinder is not yet ready to be published to Hex, so in the mean time if you want to try it you should install it directly from the repository:

def deps do
  [
    {:cinder, git: "https://gitlab.com/jimsy/cinder", tag: "v0.8"}
  ]
end

Documentation is not yet published to Hexdocs, so you can access the latest version on Gitlab pages.

License

This software is licensed under the terms of the HL3-FULL, see the LICENSE.md file included with this package for the terms.

This license actively proscribes this software being used by and for some industries, countries and activities. If your usage of this software doesn't comply with the terms of this license, then contact me with the details of your use-case to organise the purchase of a license - the cost of which may include a donation to a suitable charity or NGO.