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
heexafter all). - Run
mix blog.serverand 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, justmix blog.publishand 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.
Popular in Announcing
I’d like to announce a small library called boundaries.
This is an experimental project which explores the idea of enforcing boundaries ...
New
import Meeseeks.CSS
html = HTTPoison.get!("https://news.ycombinator.com/").body
for story <- Meeseeks.all(html, css("tr.athing")) do...
New
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
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
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...
New
Experimenting with this code.
OK.try do
user <- fetch_user(1)
cart <- fetch_cart(1)
order = checkout(cart, user)
save_orde...
New
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...
New
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
What is ContEx?
A pure Elixir server-side data plotting/charting library outputting SVG.
It has nice barcharts in particular and works g...
New
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
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
Hello!
tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability.
After spen...
New
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
New
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
Hello everybody,
usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
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...
New
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
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
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
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
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









