Whether you’re part of a startup or a large-scale enterprise development team, you need to save time, money, and resources. Elixir and LiveView Native do that for you. Learn all the ways Elixir can help you launch a better digital product faster and more efficiently by reading our free Ebook, “The Business Value of Elixir”.
In 2021 Brian pitched the idea of building a Phoenix LiveView-based content management system (CMS), now 3 years later, Beacon v0.1 becomes a reality.
Beacon is composed of two main projects. Beacon is the engine to store and load resources at runtime as layouts, pages, and components. Beacon LiveAdmin is a Phoenix LiveView web interface to manage all your sites running in a cluster.
What Makes Beacon Different
The short answer is Phoenix LiveView, a server-side web framework with a unique architecture that can deliver search engine optimized (SEO) content and superior experience to your site’s visitors. When you visit a site powered by Beacon, the server generates and sends a regular HTML page over the wire (we innocently call those dead renders). Then, a live connection is established between your browser and the server to exchange only the minimum data necessary to navigate between pages. The time to render this first iteration of the page is super efficient and rendering new pages in the live connection only requires patching the difference between pages, it doesn’t waste time and bandwidth fetching pieces of the page that were already rendered in the previous page. That means your pages are optimized for search engines while your users will navigate your site as if they were static, even though the page, in fact, has dynamic content.
Phoenix, the foundation framework that LiveView is built on, has been battle-tested to support millions of connections efficiently and the Erlang VM where all that technology is running has been around for decades supporting many critical systems. You get all of that for free.
Performance and content are essential for SEO, and the superior technology employed by Beacon enables us to deliver a modern CMS that helps you build and maintain sites that perform well compared to existing and traditional products that are limited to some technical constraints where Beacon excels.
The Road to v0.1
In December of 2021, Mike Binns pushed the initial implementation to prove the idea of reloading resources at runtime was viable. The first step was complete.
The project got the interest of a few DockYarders who voluntarily contributed to the project through 2022, expanding the initial implementation and adding new features. That initial traction was an important second step.
In December of 2022, the development accelerated with more investment and eventually in March of 2023, the new DockYard website was released running entirely in Beacon. Currently, at the time I’m writing this blog post, it’s serving around 900 pages, including this very blog post you’re reading now, in a modest shared CPU instance consuming roughly 500 MB of memory.
That was an important third step to validate the project and enabled us to organize the project, work on public APIs, documentation, and all sorts of challenges to release v0.1 in October of 2024.
The Future
Now our focus is to bring Beacon into existing projects in the wild.
We’ve been listening to our community and gathering feedback on how we can better support existing codebases and workflows, and we invite you to review our roadmap and propose changes or chat with us to let us learn and improve the project.
We’ll be sharing the development at @BeaconCMS and #beacon-cms, but let me leave here a short sneak peek of what’s coming. We’re working to further optimize the compiler and loader processes to make sites more stable and started working on the idea of a CLI and local environment to build sites and resources and eventually pack them as plugins and themes. Exciting features are coming!
Thank You
Beacon would not be possible without the passion and curiosity of many of you who helped us ship new features, fix bugs, write documentation, and spread the word.
On behalf of the core team, we want to thank all of the contributors for every single contribution and all former and current DockYarders who helped shape and impact Beacon in any way.
Last but not least, we’re proud to make Beacon available to our community as an Open-Source project, and if you have an interest in participating, feel free to join us.
Happy coding.