Experimental and in progress Elixir web app framework
Go to file
Renovate Bot 8f5431eb25
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
chore(deps): update dependency erlang to v26.2.2
2024-02-09 10:35:42 +13:00
.devcontainer improvement: component events/scripts. 2023-02-18 04:31:55 +00:00
.vscode chore: don't install the `jupyter` VS code extension. That's just weird. 2023-10-02 16:54:44 +13:00
assets chore(deps-dev): update dependency morphdom to v2.7.2 2024-01-18 10:09:45 +13:00
config chore: Update forgejo hostname. 2024-02-05 16:11:44 +13:00
documentation/dsls improvement: Add ability to specify http bind address in the DSL. 2023-10-04 10:41:54 +13:00
lib improvement: Add ability to specify http bind address in the DSL. 2023-10-04 10:41:54 +13:00
priv feat: TypeScript client-side components. 2023-03-09 04:25:52 +00:00
src fix: bugs in route helpers. 2023-10-02 18:02:56 +13:00
test improvement: Add ability to specify http bind address in the DSL. 2023-10-04 10:41:54 +13:00
.check.exs docs: Enable Spark DSL cheatsheets. 2023-09-30 19:56:52 +13:00
.dialyzer_ignore.exs feat: TypeScript client-side components. 2023-03-09 04:25:52 +00:00
.doctor.exs feat: route templates. 2022-12-22 07:29:14 +00:00
.drone.yml chore: Update forgejo hostname. 2024-02-05 16:11:44 +13:00
.formatter.exs improvement: Add ability to specify http bind address in the DSL. 2023-10-04 10:41:54 +13:00
.gitignore feat: TypeScript client-side components. 2023-03-09 04:25:52 +00:00
.sobelow-conf chore: change links to code.harton.nz. 2023-06-30 21:12:40 +12:00
.tool-versions chore(deps): update dependency erlang to v26.2.2 2024-02-09 10:35:42 +13:00
CHANGELOG.md chore: Update forgejo hostname. 2024-02-05 16:11:44 +13:00
LICENSE.md chore: Fix copyright notice. 2023-01-17 10:46:50 +13:00
README.md chore: Update forgejo hostname. 2024-02-05 16:11:44 +13:00
mix.exs chore: Update forgejo hostname. 2024-02-05 16:11:44 +13:00
mix.lock chore: Update forgejo hostname. 2024-02-05 16:11:44 +13:00
package-lock.json chore(deps): lock file maintenance 2023-06-30 19:38:07 +12:00
package.json feat: TypeScript client-side components. 2023-03-09 04:25:52 +00:00
renovate.json chore: Configure Renovate (#3) 2023-07-21 13:25:46 +12:00

README.md

Cinder

Build 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://harton.dev/cinder/cinder", tag: "v0.9"}
  ]
end

Documentation is not yet published to Hexdocs, so you can access the latest version on my docs site.

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.