This repository is a demonstration of the Rubyblok gem, which provides integration between your Rails app and a Content Management System.
Rubyblok is an easy way to integrate a visual CMS (Storyblok) into your Rails app, providing you with a proven integration path and quality of life features. With Rubyblok, you can edit your content online, preview it in real-time, and publish it with just the click of a button.
Rubyblok provides an abstraction layer and stores all your content locally, reducing data usage and enhancing performance. This enables new functionalities that leverage the local data, such as global content search, sitemaps, and listings. Ultimately, this setup increases resilience by eliminating dependency on external data sources.
This project requires the following setup:
- ruby 3.2.2
- nodejs 16.15.0
- postgresql 14
Use the version managers of your preference to install.
Here is a simple way using asdf-vm to set them automatically:
brew install asdf
asdf plugin add ruby
asdf plugin add nodejs
asdf install
asdf currentInstall the database:
brew install postgresql@14
brew services start postgresqlAdd a .tool-versions file:
ruby 3.2.2
nodejs 16.15.0
Install the app dependencies:
bundle installCreate the database:
bundle exec rails db:setupClick here to create a free acount at Storyblok, the platform where you will have access to the visual and real-time content editing.
Create the .env.local file and add your STORYBLOK_API_TOKEN:
mv .env .env.localGet your Storyblok API token in your account, at Storyblok Space > Settings > Access token page.
Build tailwind:
bundle exec rails tailwindcss:buildTo continuously build the tailwind styles:
bundle exec rails tailwindcss:watchThis will watch for changes in your Tailwind CSS files and automatically recompile them as needed.
Run the Rails server:
bundle exec rails sOpen it at http://localhost:3000.
To connect with the Storyblok space we have to create a local proxy. For that, first create a PEM certificate for your localhost:
brew install mkcert
mkcert -install
mkcert localhostThis will create the localhost-key.pem and localhost.pem files.
To run the proxy, use the local-ssl-proxy tool:
npm install local-ssl-proxy -g
local-ssl-proxy --source 3333 --target 3000 --cert localhost.pem --key localhost-key.pemThis will start a proxy server.
-
Add your OAUTH token to the .env file storyblok.com > My account > Account Settings > Personal access token > Generate new token
-
Create a new space for the template by running:
bundle exec rake storyblok:create_template_space
After the space is created (might need to refresh the page) select a plan according to your needs The region is set to EU by default which needs to ben changed based on your preference
- Login to the Storyblok CLI:
storyblok login
NOTE: The storyblok CLI tool is added via npm ( npm i storyblok -g ) and it needs nodejs 18 or above installed In some cases chmod -R 0600 /Users/{username}/.netrc is needed to be ran due to a known issue
- Add the template stories by running:
bundle exec rake storyblok:add_template_stories
Follow the rest of the readme to run and vie the project locally (proxy has to be setup and preview URL changed on Storyblok to your local one)
Now, just go to the Storyblok Space and it will be working! 🎉