Uploading files using AJAX directly to S3

Chris White, Laravel Developer: For most situations using S3 is a no brainer, but the majority of developers transfer their user’s uploads to S3 after they have received them on the server side. This doesn’t have to be the case, your user’s web browser can send the file directly to an S3 bucket. You don’t …

Modern Layouts: Getting Out Of Our Ruts

Video (filmed at An Event Apart) and slides from “Modern Layouts: Getting Out of Our Ruts” by Jen Simmons: In the early years of the web, there was a lot of variation and experimentation with where to put content on a web page. Then, it seems we all settled into a handful of patterns and …

Draft.js – Rich Text Editor Framework for React

Draft.js is a framework for building rich text editors in React, powered by an immutable model and abstracting over cross-browser differences. Draft.js makes it easy to build any type of rich text input, whether you’re just looking to support a few inline text styles or building a complex text editor for composing long-form articles. The …

Deeplinking in Ionic Apps

Enter the Ionic Deeplinks Plugin: Deeplinking as a concept has evolved heavily over the last few years, with mobile devices going from supporting custom URL schemes (like instagram://) to now opening native apps in response to navigation to URLs (like amazon.com). To help Ionic developers deeplink more easily, we are excited to announce a new, …

Ionic Native

The successor to the aforementioned ngCordova: Ionic Native is a curated set of ES6/TypeScript wrappers for Cordova/PhoneGap plugins that make adding any native functionality you need to your Ionic, Cordova, or Web View mobile app easy. import {Geolocation} from 'ionic-native'; Geolocation.getCurrentPosition().then(pos => { console.log('lat: ' + pos.coords.latitude + ', lon: ' + pos.coords.longitude); }); let …

Enhancing Optimistically

Here’s how Filament Group enhances (or: used to) their website for browsers that “Cut the Mustard”: if( "querySelector" in window.document && "addEventListener" in window ){ // This is a capable browser, let's improve the UI further! window.document.documentElement.className += " enhanced"; // load the enhanced scripting loadJS( "/path/to/enhancements.js" ); } But what if a browser is …

lint-staged: Lint JS and CSS files staged by Git

Running a lint process on a whole project is slow and linting results can be irrelevant. Ultimately you want to lint only files that are staged/will be committed. This project contains a script that will run arbitary npm tasks against staged files, filtered by a spicified glob pattern. lint-staged introductory blogpost: Make Linting Great Again …

Blending Modes 101

Now this sounds familiar: When it comes to Blending Modes (in Sketch), my bulletproof method has always been: try one, if it didn’t work, try another one. So, I recently decided to learn more about those techniques and I’d love to share my findings with you. Multiply, Screen, Lighten, and Overlay are covered. Sketch: Blending …