Nefcairon

Nefcairon

Hello,

TL;TR: I look for a lightweight compagnon (HTML/CSS & minimal JS) to milligram to build a PWA with phoenix.

Long version:
I want to improve in Phoenix (means: stop learning and do something productive) and implement my first “real”, but small project. Development will take time and I am in no hurry, so I will start with phoenix 1.4 in its current state, wait until it’s released and later integrate Phoenix.LiveView.

As you know Phoenix 1.4 comes with Milligram CSS and it seems to fit my “mobile first” approach: At least a “blank” phoenix 1.4 app looks much better an Android then phoenix 1.3. My future app should be as a progressive web application (PWA), and so “work” on Android and IOS as well as in the desktop world.

But as Milligram lacks on navigation elements I need something additionally. Currently I think I will need a mobile bottom navigation, cards and maybe a navbar “hamburger style” (though it seems that later is already “depricated”).

Are there any good lightweight components/frameworks? In my current situation I don’t want to learn any new “language” (as SASS), I want to stay within HTML/CSS/JS and Elixir - and use as little JS as possible. I don’t want to create a API with Phoenix/use a pure JS framework on the frontend, I want to create HTML with Phoenix that just “looks fine on smartphones and on desktop browsers”. I further value “lightweight” because of speed and second it’s easier to understand what enables me to learn from it.

I googled, looked at dozens of CSS frameworks (e.g. materializecss, which seems to be rather dead) and read the forum. Still I am unsure… So is there something you could recommend me? Do I have to use something big as bootstrap?

Thanks in advance.

First 10 of 19 Posts Switch mode

peerreynders

peerreynders

To me Progressive Web Application (PWA) implies a refinement of the Single Page Application concept which means it’s JS heavy and tends to use some sort of JS framework. For the time being “lightweight PWA” seems to be an oxymoron.

The implementation style you seek seems to be exemplified by the sidecar site (Github, article) which should be quite easy to emulate with Phoenix/EEx - it doesn’t even use a CSS framework but you have to know your CSS.

OvermindDL1

OvermindDL1

Yeah, PWA’s can be run entirely locally once downloaded, so they require javascript for any functionality. vue.js is really easy to get started with and going for PWA’s for one example.

Nefcairon

Nefcairon OP

Ok, thank you. I learned something…

So i want to create something like WPA-light :wink: I don’t need the offline functionality for my application as most people are almost always online.

What I really don’t like are pages that have almost no html when looked into their source code. It doesn’t feel right to me. For me there has to be HTML in the browser.

So I can go the JS route and my app will feel almost native on mobile devices or I can stay in my HTML/minimal-JS world and live with its downsides. So far I’m still undecided.

bryanjos

bryanjos

I don’t know if this helps or not, but I successfully created a non-spa PWA using Phoenix. Progressive Web Apps have a scale of functionality they can do. For me, I just wanted something that would make an icon on mobile devices and show a message about being offline when there was no connectivity. You can do a lot without having to build a full-fledged SPA.

Some helpful tools/readings for me were:

OvermindDL1

OvermindDL1

So you don’t need a PWA. :slight_smile:

Nefcairon

Nefcairon OP

I need ‘add to homescreen’ and look&feel of a native app, to be honest.

OvermindDL1

OvermindDL1

Anything but using native API’s always look horrible though…

Every react-native app or some embedded webview drives me nuts on my phone because they always just feel ‘wrong’, the inputs are handled wrong, the interactions are wrong, the activities are wrong… >.<

If you want a native look&feel app, you really should go native. I’m a huge proponent of that.

Nefcairon

Nefcairon OP

Ever tried Elixir Forum on Android from a home screen icon? Feels absolutely as a native app for me.

James-Byrne

James-Byrne

Hey @Nefcairon,

You’ll probably find Breethe by Simplabs interesting. They created a PWA with Glimmer as the frontend and Phoenix as the backend but included SSR content rather than just using a client/api combo.

As for your use case SSR content and a service worker should be enough to run the site as a PWA. And when it comes to css something lightweight would be best but not crucial. It should only effect the initial load. After that everything will be cached.

Breethe.app Repos:

OvermindDL1

OvermindDL1

Routinely! And it absolutely does not feel native. ^.^

The menu is in the wrong location, the menu accessor brings up the browser menu (not the page, even though it is a full screen page), can’t slide in the menu, doesn’t support activities, much slower than native, the buttons don’t look like buttons (they look like unthemed rectangles), etc… etc…

Now there are some fantastic apps that combine native and web use, like Sync for Reddit as one, they are fully native with all the features there-of but do a lot of web processing (mostly in the background to prepare for your use), that’s generally the way to go.

Where Next? Top

Trending in Questions Top

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
jonnycharles
I’m in search of an Elixir library that offers PDF generation capabilities similar to Ruby’s Prawn. While there have been discussions abo...
New
spammy
I’m looking to build a personal workflow to quickly deploy web applications written in elixir/phoenix, for local consumption (ie not on t...
New
dli
Before I dive in myself, did anyone successfully sprinkle Hologram into their existing LiveView app? Looking for hints regarding: Addi...
New
roeland
Kia ora, We have been using elixir-google-api to connect to Google Drive. However, with the updates to Tesla due to CVEs this is now bro...
New
bottlenecked
Hi all, I wanted to ask how the community is dealing with post-release steps. Today we have Ecto migrations, which make sure that the db...
New
rahultumpala
Hello, I have an Elixir backend that implements a custom protocol over TCP. I want to load test the backend and assess the performance o...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge &amp; Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New

We're in Beta

About us Mission Statement