Welcome to the new Space-Rocket website!
Hi and welcome to the newly rebranded Space-Rocket |> software design and development website. My partner and I founded Space-Rocket in 2012 to build websites using the WordPress content management system (CMS). As technology has evolved, so have our offerings. We are transitioning from being a WordPress web design & development shop to being a full-fledged San Francisco software design and development boutique agency.
No more WordPress
Our new website is a custom CMS built on top of the Elixir programming language and the Phoenix framework. José Valim, a long-time Ruby contributor, invented Elixir to solve concurrency problems faced with Ruby and other programming languages. The Phoenix framework is built on top of the Elixir programming language and was developed by Chris McCord, who was trying to solve similar problems with Ruby on Rails. They brought with them the excellent tooling, supportiveness, and developer happiness from the Ruby and Rails communities. Building a CMS for the Space-Rocket site has been a breeze using Elixir and Phoenix.
Choosing Elixir and Phoenix
So, what is Elixir?
Elixir is a functional programming language built on top of the Erlang VM “BEAM.” Erlang was first released in 1986 by Ericsson to run telecommunication applications. At the heart of Erlang and Elixir is that everything is a process. If an error happens to one process and it crashes, the other processes stay alive, giving you fault tolerance out of the box.
Other great features of Elixir (and Phoenix)
- Functional programming is easy to understand and learn
- Elixir has a great package manager in Hex
- Mix, Elixir’s build tool is top-notch
- Erlang, Elixir, and Phoenix are all open-source with supportive, welcoming communities
- Is loved by developers who have found their way to it
- Easy maintainability and Stability
- Low server cost and easy scalability out of the box
- Future proof
- Concurrency out of the box through Phoenix Channels
The architecture of Space-Rocket CMS
The Space-Rocket CMS is designed around the WordPress schema using the idea of “Post Types” and applying them to Phoenix contexts. There is a base context of “Post Types” and a base “Post” schema. A blog post, for instance, uses the most generic post type, “posts,” pages and media attachments also use that same base “post” schema. “Post type” is specified with the post_type attribute in the base post schema. The post and post type is then queried, just like in WordPress using Ecto, Phoenix’s database helper.
Dogfooding our work
The Space-Rocket website demonstrates a custom content management system built with Elixir and Phoenix. As always, it’s best to dog food your work, meaning we use our product. New projects bring new features to the toolbox. We already have a headstart with the Space-Rocket CMS. The underlying structure is a boilerplate for projects, with an end goal of becoming a product based on market demands. Concepts such as user authentication system, multitenancy, and UI/UX components are reusable across multiple clients software project’s needs.
As a final thought, I would like to give a heartfelt thank you to everyone we’ve worked with over the past decade and to the entire WordPress community. WordPress was my gateway to programming and has given me an outlet for my creative passion.
Do you have a project that you think would be a good fit for Elixir and Phoenix? Contact us.
Thanks for reading!