kip

kip

ex_cldr Core Team

StaticBlog - yet another static site generator with R2 publishing and MarsEdit integration

For Localize I wanted a site where I can publish longer form content on localisation, library usage, industry best practise. I had a few criteria which have resulted in the creation of the boringly-named static_blog library.

Its running live now at https://elixir-localize.com (more content during launch week starting tomorrow).

Features

  • Static site generator underpinned by nimble_publisher
  • Integrates with MarsEdit so you have a simple CMS to work with as writer/publisher (on Mac only)
  • Publishes to Cloudflare r2. Chosen for the CDN capabilities, no fees on egress. The free tier works fine for many use cases, including mine.
  • Delivers 97-100% scores out-of-the-box on Lighthouse metrics
  • Automatically builds in good SEO, accessibility, RSS feed and open-graph tagging.
  • Use it as a dependency then add some configuration and you are up and running. It has guides for the setup requirements of R2 and MarsEdit, all of which is quite straight forward.
  • Build your own theme. Comes with a default Daring Fireball inspired theme - because I like the simplicity and clarity. You can use configuration to change the side bar links. Or build your own template (it’s just heex after all).
  • Run mix blog.server and you have two endpoints: one is a preview server so you can see what your site looks like before publishing and one that is the api server for MarsEdit. When you’re ready, just mix blog.publish and you’re done.

It’s a library that has a lot of opinions and I’m quite sure they are not to most peoples taste. But if you think it fits what you’re after, give it a try and let me know how it goes. It’s live and in production for me so it will get love and attention as I write more content.

https://github.com/kipcole9/static_blog

Where Next?

Popular in Announcing Top

sasajuric
I’d like to announce a small library called boundaries. This is an experimental project which explores the idea of enforcing boundaries ...
New
mischov
import Meeseeks.CSS html = HTTPoison.get!("https://news.ycombinator.com/").body for story <- Meeseeks.all(html, css("tr.athing")) do...
New
josevalim
Hi everyone, We would like to announce that Plataformatec is working on a new MySQL driver called MyXQL. Our goal is to eventually integ...
New
Crowdhailer
The latest release of Ace (0.10.0) includes serving content over HTTP/2. I have started writing a webserver to teach my self more about...
New
bluzky
You may know https://ui.shadcn.com/, a UI component library for React. I really love it’s design style and components. I’ve built some co...
384 14136 119
New
Crowdhailer
Experimenting with this code. OK.try do user <- fetch_user(1) cart <- fetch_cart(1) order = checkout(cart, user) save_orde...
New
RobertDober
Earmark is a pure-Elixir Markdown converter. It is intended to be used as a library (just call Earmark.as_html), but can also be used as...
239 12645 134
New
ahamez
Hi everyone, I’ve been working on this protobuf library for 3 years. We use it in the company I work for, EasyMile, to communicate with ...
New
mindok
What is ContEx? A pure Elixir server-side data plotting/charting library outputting SVG. It has nice barcharts in particular and works g...
New
michalmuskala
Hello everybody. I have just released Jason - a new JSON library. You might be wondering, why do we need a new library? The primary foc...
New

Other popular topics Top

hariharasudhan94
lets say i have a sample like a = 20; b = 10; if (a > b) do {:ok, "a"} end if (a < b) do {:ok, b} end if (a == b) do {:ok, "equa...
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 43487 311
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 41989 114
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 39467 209
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
komlanvi
Hi everyone, I was playing with phoenix liveView but I run into an issue. I have a form and want to validate each input text when the te...
New
jaysoifer
Is there a way to rollback a specific migration and only that one (“skipping” all the other ones)? Would mix ecto.rollback -v 200809061...
New
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement