beacon
beacon copied to clipboard
Open-source content management system (CMS) built with Phoenix LiveView. Faster render times to boost SEO performance, even for the most content-heavy pages.
VERSION 0.1.0 Beacon - [ ] Components and Pages: User-defined function components BeaconCMS/beacon/issues/84 - [ ] Route and Resource Loading: Add function components to blueprint components BeaconCMS/beacon/issues/341 - [ ]...
We do [validate templates](https://github.com/BeaconCMS/beacon/issues/74) and resources as much as possible but that's not enough since we expose a [callback to customize template loading](https://github.com/BeaconCMS/beacon/blob/cbe3bf7445cc559c96310593105e710366ed2cea/lib/beacon/config.ex#L90) that may fail due to user errors,...
Crashes in user-provided code in LiveData will raise as: ```elixir Elixir.BeaconWeb.LiveRenderer.82CBFE60DC5B9C46C4C0BC8ADDAB657ADataSource in anonymous fn/4 in :"Elixir.BeaconWeb.LiveRenderer.82CBFE60DC5B9C46C4C0BC8ADDAB657ADataSource".live_data/2 ``` We could reraise providing more info to help debugging.
We want to allow users to define their own [function components](https://hexdocs.pm/phoenix_live_view/Phoenix.Component.html). That will ~_deprecate_~ remove the existing `my_component` feature, see https://github.com/BeaconCMS/beacon/issues/84#issuecomment-1363221968 The first step is to define such function components:...
Depends on https://github.com/BeaconCMS/beacon_live_admin/pull/80 and https://github.com/BeaconCMS/beacon_live_admin/pull/84
TODO https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html#module-async-operations Related to https://github.com/BeaconCMS/beacon/issues/359#issuecomment-1790979525
TODO https://nextjs.org/docs/app/building-your-application/caching#data-cache Related to https://github.com/BeaconCMS/beacon/issues/359#issuecomment-1790979525
Generate robots.txt for sites. Each site will have its own robots.txt which must be resolved dynamically by adding a route `/robots.txt` to https://github.com/BeaconCMS/beacon/blob/7790eb72769a026c0bdfc3167aab394a9b73ce91/lib/beacon/router.ex#L79 A request to that route should call...
Generating a site map should come from Beacon. See https://github.com/BeaconCMS/beacon/issues/169#issuecomment-1535134825 for technical details.
Add the ability of stop serving a page publicly. In order to do so, it's necessary to: - [Remove the page](https://github.com/BeaconCMS/beacon/blob/cbe3bf7445cc559c96310593105e710366ed2cea/lib/beacon/router.ex#L204) entry from the ETS table - [Unload](https://github.com/BeaconCMS/beacon/blob/cbe3bf7445cc559c96310593105e710366ed2cea/lib/beacon/loader.ex#L166) the page...