gabrielpoca

gabrielpoca

Still - A composable static site builder

Hello everyone!

I want to share with you something that I’m really proud of: https://stillstatic.io/

Still is a static site builder for Elixir! Do you need to build a static website? This is what you want! We wanted to take a step back from the complications of building websites nowadays and have something simple and that just works, but that you can extend and grow in complexity if you need. Here are a few highlights:

  • Throw some HTML, Slime, Markdown, CSS, JS, and images into a folder, and it will just work.
  • Out of the box, it works with Slime and Markdown, but you can use EEx almost anywhere, such as in CSS, JS, or HTML files.
  • There’s a development server that watches the file system and refreshes the browser when necessary.
  • There’s an error overlay in the browser where you can see errors, the stacktrace, and more information on the context that leads to that error.
  • There are helper functions to generate links and responsive images, to include other files, etc.
  • We just finished an integration with Snowpack GitHub - still-ex/still_snowpack: Snowpack integration for Still · GitHub, which means that you can use tools like TailwindCSS or any other NPM package.

As far as I know, there isn’t anything like it. The idea is to keep it small but add enough functionality to allow anyone to build a modern website without having to reach for something more.

There are already a few people using it, but we would welcome contributors and users to improve it further!
Also, if you check out the website, I hope you enjoy the posters :slight_smile:https://stillstatic.io/

Most Liked

gabrielpoca

gabrielpoca

I don’t know exactly what the integration with Pheonix would look like, but it’s something that’s on my mind, and I think there’s even an open issue for it. You can install Still in the app where you have Phoenix and compile the website priv/static during the build step of your deployment. Or you can compile it to anywhere in priv and use rules such as the ones we have the dev server to serve those assets. With that in place, I guess you can call anything from the templates. You could make queries to Ecto or something like that. I need to try this out.

gabrielpoca

gabrielpoca

Hello everyone!
Version 0.6.0 with all of the changes I mentioned above:

  • everything is faster.
  • templates are recompiled on refresh.
  • the elixir code is also recompiled on refresh.
  • better error handling.
  • better configs.

For the following version, we’ll be improving the docs and the examples. It would also be nice to have pre-compiled the templates as Phoenix does, but we need to check if that makes sense in Still, I feel that it doesn’t because we combine soo much stuff for a single template.

Any feedback and bug reports are much welcome!

gabrielpoca

gabrielpoca

Hello! It has been a while, so I thought I would write some updates:

  • Handling static assets is faster because we now only copy them to the build folder when they are modified. Ideally, we would serve them from the input folder and not copy them, but this is the first step!
  • There’s now support for a “data” folder. Essentially, data files in the “data” folder are easily accessible from any template. You can use this to load JSON, YAML, etc, to use on your pages.
  • There’s also support for pagination, which allows generating multiple files from a single template. This is the most powerful feature I added and allows for things like per-category pages in blogs. Any List can be used to create multiple pages.

There were a few more internal changes, but progress is slow. Still, I think this is pretty neat!

Where Next?

Popular in Announcing Top

mspanc
I am pleased to announce an initial release of the Membrane Framework - an Elixir-based framework with special focus on processing multim...
New
tfwright
After working on it for a couple of months and using it in production for most of that time, today I’ve released LiveAdmin, a LiveView ba...
New
bryanjos
Hi, I just published version 0.23.0 of Elixirscript. https://github.com/bryanjos/elixirscript/blob/master/CHANGELOG.md Most of the chan...
New
zorbash
I created Kitto a framework for dashboards inspired by Dashing. The distributed characteristics of Elixir and the low memory footprint...
New
Crowdhailer
Raxx is an alternative to Plug and is inspired by projects such as Rack(Ruby) and Ring(Clojure). 1.0-rc.1 is now available. To use it re...
New
nikokozak
Hello all, I’ve been working on Svonix - a library for quickly integrating Svelte components into Phoenix views. It’s a much-needed succ...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 36128 110
New
aditya7iyengar
Rummage.Ecto and Rummage.Phoenix provide ways to perform Searching, Sorting and Pagination over Ecto queries and Phoenix collections. Fo...
New
Flo0807
Hello everyone! I am excited to share our heart project Backpex with you. After building several Phoenix applications, we realized that...
New
josevalim
Hello everyone, We have just released NimbleCSV which is a small and fast CSV parsing library for Elixir. It allows developers to define...
New

Other popular topics Top

mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
johnnyicon
Hi all, I’ve just started learning Elixir and Phoenix Framework, so please pardon my n00bness at this stage. I’m trying to use Postgres...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 43622 214
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New
AstonJ
Seen any cool LiveView demos, sample apps or examples? Please post them here! :003:
New

We're in Beta

About us Mission Statement