BeaconCMS / beacon

Open-source content management system (CMS) built with Phoenix LiveView. Faster render times to boost SEO performance, even for the most content-heavy pages.
https://beaconcms.org
MIT License
1.04k stars 101 forks source link
cms elixir elixir-lang phoenix phoenix-framework phoenix-liveview

Beacon

Beacon logo

Beacon is a content management system (CMS) built with Phoenix LiveView. It brings the rendering speed benefits of Phoenix to even the most content-heavy pages with faster render times to boost SEO performance.

Getting Started

Install both Phoenix and Igniter installers:

mix archive.install hex phx_new && mix archive.install hex igniter_new

Now you can either create a new Phoenix project with Beacon or add Beacon to an existing Phoenix project:

Create a new project - Using latest published [beacon](https://hex.pm/packages/beacon) and [beacon_live_admin](https://hex.pm/packages/beacon_live_admin) packages: ```sh mix igniter.new my_app --install beacon,beacon_live_admin --with phx.new --beacon.site my_site ``` - Or using the unreleased projects from GitHub from the main branch: ```sh mix igniter.new my_app \ --install beacon@github:BeaconCMS/beacon,beacon_live_admin@github:BeaconCMS/beacon_live_admin \ --with phx.new \ --beacon.site my_site ``` Replace `my_app` and `my_site` with the names you want to generate and follow the prompts.
Add to existing project If you already have a Phoenix project with Phoenix LiveView then you can just add Beacon into that project. First add the [Igniter](https://hex.pm/packages/igniter) dependency into your project: ```elixir defp deps do [ {:igniter, "~> 0.4"} ] end ``` Run `mix deps.get` and now you'll be able to execute either one of the installers below: - Using latest published [beacon](https://hex.pm/packages/beacon) and [beacon_live_admin](https://hex.pm/packages/beacon_live_admin) packages: ```sh mix igniter.install beacon,beacon_live_admin --beacon.site my_site ``` - Or using the unreleased projects from GitHub from the main branch: ```sh mix igniter.install \ beacon@github:BeaconCMS/beacon,beacon_live_admin@github:BeaconCMS/beacon_live_admin \ --beacon.site my_site ``` Replace `my_app` and `my_site` with the names you want to generate and follow the prompts.

To finish, install dependencies, run the server, and open http://localhost:4000 to see the default home page or http://localhost:4000/admin to manage your new site.

mix setup
mix phx.server

For more info, check out the guides and recipes. If you're new to Beacon you can start with Your First Site guide.

Demo

A sample application running latest Beacon is available at https://github.com/BeaconCMS/beacon_demo

Status

You can expect incomplete features and breaking changes before a stable v1.0 is released.

Main components:

Contributing

Check out the CONTRIBUTING.md doc for overall guidelines to contribute to this project, then follow the Local Development steps to run a local project or watch the video below to understand more about Beacon internals:

YouTube card - ElixirConf 2023 - Leandro Pereira - Beacon: The next generation of CMS in Phoenix LiveView

Local Development

The file dev.exs is a self-contained Phoenix application running Beacon with sample data and code reloading enabled. Follow these steps to get a site up and running:

  1. Install dependencies, build assets, and run database setup:
mix setup
  1. Execute the dev script:
iex --sname core@localhost -S mix dev

Note that running a named node isn't required unless you're running Beacon LiveAdmin for local development as well.

Finally, visit any of the routes defined in dev.exs, eg: http://localhost:4001/dev or http://localhost:4001/dev/sample

Looking for help with your Elixir project?

DockYard logo

At DockYard we are ready to help you build your next Elixir project. We have a unique expertise in Elixir and Phoenix development that is unmatched and we love to write about Elixir.

Have a project in mind? Get in touch!