#the-web

Building on the web isn't building for the web

Today I read “Web Apps Are Not A Thing, Please Stop” by Robin Rendle, who says we should stop treating websites different from web apps.

I agree that web apps need to play by the same rules as website. However, I draw a different line: between building for the web and building on the web.

Read more


#spatie #laravel #php #javascript

The revamped Spatie guidelines

I created the original Spatie guidelines site three years ago. Last month, we consolidated a few of our subsites to our main spatie.be site, including the guidelines.

Read more


#laravel #typescript #inertia

Laravel Typescript Transformer

My colleague Ruben released a new Spatie package to generate type declarations in TypeScript from a Laravel application.

Read more


#cms #strategy #the-web

A rare look into the decision making process of a large project

Last week, the W3C decided they were not going to use WordPress for their next website.

The decision making process behind this is happening in the open, on w3c.studio24.net. Accessibility was the driving force for the final choice between three contending CMS’s (WordPress, Craft, and Statamic), but they did a lot of research before.

Read more


#ux #design

Why Do We Interface

“Why Do We Interface?” is a micro-book about interfaces over the ages: from cave paintings to Google Glass to your latest note-taking app. It’s important to understand why we build interfaces in order to get better at building them.

The purpose of any interface, regardless of the technology, is to retrieve, decode, modify, and/or distribute information. […]

The core purpose of graphics in a GUI is not to be pretty The purpose is to be informative.

Some questions to ask yourself when you’re designing an interface:

  1. How does the interface help us retrieve information?
  2. Is it easy to decode the information that was retrieved?
  3. Does the interface allow for easy and clear modification of information?
  4. Does the interface assist in, and clearly declare when it is going to distribute information?
  5. How will this interface redefine what it means to be human?

Number five is a bit too bold for my taste, but the first four are valuable guidelines.

Read the book on whydoweinterface.com.


#career #productivity

Dont Get Stuck

My colleague Brent tells the story of how he got “stuck” at his old job.

I decided to leave because I got stuck, there wasn’t any room to grow anymore. The perspective of being a developer who’s 5 years behind of modern day practices made me miserable.

Even though I’d been advocating within the company to make significant changes, both on a technical and management level; it didn’t seem achievable. We were still struggling to deliver the quality we promised our clients, we were using out of date technologies, I went home almost every day feeling down and depressed.

I believe “we were still struggling to deliver the quality we promised our clients” is what really wears you down. Using out of date technologies might have held the team back in this situation, but isn’t necessarily the root cause.

I don’t regret having worked for that company: I did learn valuable lessons there. It’s ok to be at a place where there’s little or no room for growth, as long as it’s not too long. Watch out, and critically assess your situation from time to time; you might get stuck without even knowing it.

It’s important to evaluate from time to time. Not just your job, but all of your work. Ask yourself how the project you’re working on is going every now and then. What went wrong in the last few months? What are you happy with? Keeping this in check will keep you from getting stuck.

Read the full post on stitcher.io.


#javascript #performance

A Tale of Client Side Framework Performance

Jeremy Wagner measured some performance differences between React and vanilla JavaScript. While I’m not surprised that running your code on bare metal code is faster than a framework, it’s interesting to see some exact numbers.

React and ReactDOM total about 120 KiB of minified JavaScript, which definitely contributes to slow startup time. When client-side rendering in React is relied upon entirely, it churns. Even if you render components on the server and hydrate them on the client, it still churns because component hydration is computationally expensive.

If it sounds like I have a grudge against React, then I must confess that I really like its componentization model. It makes organizing code easier. I think JSX is great. Server rendering is also cool—even if that’s just how we say “send HTML over the network” these days.

Even with server-side rendering, React and other virtual DOM frameworks add loading time because they need to load more code and hydrate the page before it’s interactive.

A vanilla addEventListener callback performs about 40 times faster (!) than an event handled in a React component. React’s overhead worth when you have a lot of complex state, not “simple state” like menu toggles.

Read the full article on CSS-Tricks.


#javascript #oss

Moment.js, thank you for your service

If you’ve dealt with dates in the browser, chances are you’ve used Moment.js. Moment has been the date library for JavaScript in the past years. In a humble prelude of the documentation, the Moment maintainers talk about the (near) deprecated status of the project.

Read more


#git #github

Things you didn't know you could diff in GitHub

If GitHub is your daily driver or you’ve contributed to open source at some point, you’ve probably seen the comparison screen before.

Screenshot of GitHub’s compare screen

“Compare and review just about anything”

They’re not lying. You can compare a lot in there, but most of it isn’t available in the UI. Here are a few tricks you probably didn’t know about.

Read more


#cli

Rsync

Rsync is a command line tool to copy files between different hosts.

Read more