Publications

O'Reilly Media

Static Site Generators - Modern Tools for Static Website Development

Working with Static Sites (co-author with Raymond Camden)

CSS Tricks

5 Myths About Jamstack

JAMstack CMSs Have Finally Grown Up!

What Really Makes a Static Site Generator?

Developer Tech

Opinion: Five developer trends to watch in 2019

Computerworld AU

Why tomorrow is the best time to be a developer

Snipcart Blog

Using Next.js with FaunaDB: How to Query the Database from Your App

Choosing the Best Static Site Generator for 2021

StepZen Blog

Building Your First GraphQL API Using StepZen

Consuming GraphQL in Plain JavaScript

How to Write GraphQL Queries

Stackbit Blog

A Complete Guide to Netlify Forms

Adding a Mailing List to Your Gatsby Site

Adding Search to Your Gatsby Site

Getting Started with Next.js for Jamstack Development

4 Tips to Improve Your Stackbit Gatsby Site

4 New Tools to Watch in the Jamstack Ecosystem

What is Markdown and Why Does it Matter to the Jamstack?

Understanding Content Modeling in a Headless World

What the Heck are Content Slugs and How Do I Use Them?

Advanced Hugo Template Tips and Tricks

Managing Content Relationships in Git-based Headless CMS

Building Documentation Sites with the JAMstack

How to Choose Your Static Site Generator

Best Practices for Working with the JAMstack and an API-based CMS

Build Your First Sourcebit Plugin

Getting Started with Ecommerce and the JAMstack

Data-driven JAMstack with Sourcebit

3 Strategies for Migrating from Wordpress to JAMstack

Build Your Own JAMstack API with Netlify Functions and Zapier Webhooks, Part 2

Build Your Own JAMstack API with Netlify Functions and Zapier Webhooks, Part 1

Creating a JAMstack Site with Open Authoring Using Netlify CMS

15 JAMstack Resources You Need as a Web Developer

Gating Content in JAMstack Sites

The Practical Developer

4 Things Developers Take for Granted That Used to Be Really Hard

Stackbit Blog

Own Your Content, Broaden Your Audience

Telerik Developer Network

Building a Conversational Bot with JavaScript and Node.js

Can Google’s Guetzli JPEG Encoder Help Solve Web Page Bloat?

A Guide to Browser Scroll Animations

Alexa, Can I Use?

Your Open Source Project is Considered Harmful

Is left-pad Indicative of a Fragile JavaScript Ecosystem? (with TJ VanToll & Cody Lindley)

What I Learned from Working in Failed Platforms

Creating Node.js Command Line Utilities to Improve Your Workflow

Spying on James Bond with Node.js

Defining a New Breed of Cross-Platform Mobile Apps (with TJ VanToll)

Lazy Loading Images on the Web

Static Site or CMS?

Battle of the Free Code Editors

What's Wrong with the Web?

Practical Web Audio

Getting Started with Jekyll

Adding Audio to Web Apps

3 Useful Tools for Local Web Development & Testing

Can AngularJS Maintain Its Dominance?

Static Site Engine Battle Royale

Progress Blog

4 Ways to Serverless with Kinvey

Top 4 Developer Features in Kinvey

Getting Started with Kinvey FlexServices

Fast Start to Serverless Enterprise Apps on Kinvey

Kinvey Blog

Developing and Testing of Kinvey Flex Services the Easier Way

Enterprise Authentication with Kinvey

Using Kinvey's RapidData Connectors

Understanding Users in Kinvey

Angular Attack

How to Get Set Up with Kinvey for Your Hackathon App

Get the Things Every Hackathon App Needs with Kinvey

Key Kinvey Resources for Your App Development

Mobile Business Insights (IBM)

Making sense of the mobile development ecosystem – Part 1: The mobile web

Making sense of the mobile development ecosystem – Part 2: Hybrid apps and hybrid/native apps

Making sense of the mobile development ecosystem — Part 3: JavaScript native, cross-compiled and native apps

Making sense of the mobile development ecosystem — Part 4: Which mobile option should you choose?

SD Times

Guest View: With Minecraft, Microsoft gains young developer mindshare

Developer.com

The Role of JavaScript in Cognitive Application Development

Business Solutions

What I Learned From Working In Failed Platforms

Sitepoint

Creating Posts, Custom Metadata, and Data in Wintersmith

Getting Started with Wintersmith: A Node.js-based Static Site Generator

ColdFusion 8 - Believe the Hype

O'Reilly Radar

Add depth to your project with practical web audio

Digital Thirst

Is the Future of the Web Spoken?

The Modern Web (formerly Flippin' Awesome)

Original Founder, Publisher, Weekly Roundup Contributor

Rethinking DOM Traversal

Paralyzed by Choice in Front-end Development

Creating Sound with the Web Audio API and Oscillators

Building a Successful Content Site

CSS for Beginners with Dreamweaver

Topic Undefined – Episode 7 (podcast)

Using CSS Regions in Responsive Designs

2014 – What Web Developers Will Need to Know

2013 – The Year in Web Development

Topic Undefined – Episode 6 (podcast)

Topic Undefined – Episode 5 (podcast)

Stop Focusing on Tools

Retro Game Music using Web Audio and Band.js

Topic Undefined – Episode 3 (podcast)

DOM Traversal and Manipulation with Voyeur

Topic Undefined – Episode 2 (podcast)

Topic Undefined – Episode 1 (podcast)

Drawing and Animating with Two.js and Illustrator

Quick and Easy Local and Device Web App Testing

Create Your First Mobile App with PhoneGap Build – Using the Notification API

Create Your First Mobile App with PhoneGap Build – Using the Storage API

Create Your First Mobile App with PhoneGap Build – Adding Pages with jQuery Mobile

Create Your First Mobile App with PhoneGap Build – Adding jQuery Mobile

Create Your First Mobile App with PhoneGap Build – Connecting to an API

Create Your First Mobile App with PhoneGap Build – Using PhoneGap Build

Create Your First Mobile App with PhoneGap Build – Setup

Adobe Inspire

Web designers become app developers with PhoneGap

Building responsive web designs with Adobe Edge Reflow

Getting started with responsive web design

Four cool features you can use with HTML5 today

Primer: How to take advantage of web standards

What are web standards and why should I care?

InfoQ

Axel Rauschmayer on ECMAScript 6 and the Future of JavaScript

A Change in Leadership for Node.js

Neal Ford on Giving Technical Presentations

Andrew Betts on Developing for Mobile with HTML5

Tom Dale on Ember and JavaScript Frameworks

Google Announces Chrome Apps Improved Offline Capabilities & Mac Support

Current Trends in NoSQL - Q&A with Peter Bell

CodeCube Offers Shareable, Runnable Code Samples

Backbone 1.1.0 Released, Includes Potential Incompatibility with 1.0

Adobe Edge

Advanced Android development with Flex "Hero" and Flash Builder "Burrito"

Create Android apps with Flex "Hero" and Flash Builder "Burrito"

Getting Started with Adobe AIR for Android

Object relational mapping in ColdFusion 9 and ColdFusion Builder

Tutorial: Build an Adobe AIR application using JavaScript

A guide to Adobe developer groups and resources online

A beginner's guide to the Mate framework for Adobe Flex

Build a personal productivity application with Adobe AIR

Comparing Adobe Flex and Ajax Development Models

Add dynamic content to your site with RSS and ColdFusion

Adobe Developer Connection

Node.js command-line tools for front-end development

HTML, CSS and JavaScript code editing with Edge Code

Browser testing across devices with Adobe Edge Inspect

Pseudo-classical object-oriented programming in JavaScript with Minion

Metablog Monthly throughout 2011 (example November '11)

Creating Self-updating ColdFusion Builder Beta Extensions

Onward Search Blog

Breaking into a Front-end Development Career

Kendo UI Blog

Using Adobe Edge Tools and Services with Kendo UI

Flex Authority

UHello Mate! A Beginner's Guide to the Mate Flex Framework (Vol. 1 Issue 1)

Fusion Authority Quarterly Update

Getting to Know Mr. Wizard (Vol. 2, Issue 4)

What's Hot? What's Not? - What new ColdFusion 8 tags or features do you find indispensable, and why? (Vol. 2, Issue 3)

Cairngorm Crystallized: Examining the Cairngorm Microarchitecture from a Workflow Perspective (Vol. 2, Issue 2)

DevShed

Adobe ColdFusion Just Got More RAD

Fusion Authority Online

Elad Elrom Talks Flash...and the City

An Interview with John Wilker of 360Conferences

cf.Objective() 2008 Wrap-Up

cf.Objective() - Day One

cf.Objective() Day Two: May 5, 2007

cf.Objective() Day Three: May 6, 2007

Build a Code Generator in Five Easy Steps

ColdFusion Developer's Journal

Stopping Spam in Its Tracks...using CAPTCHA

Implementing a Nested Set Model in ColdFusion