Entries by admin

3 Ways to Back Up and Restore Databases in WordPress

Original Source: https://www.sitepoint.com/back-up-restore-wordpress-databases/

WordPress is still relevant today, even fifteen years after its first release. It’s often the first choice that comes to one’s mind when starting a new blog.

Although intended to be a content management system, WordPress has been used in a variety of domains in addition to blogging — such as music and ecommerce. As of 2018, WordPress websites account for 14.7% of the top 100 websites.

If you manage a WordPress site, WP Admin should mostly be sufficient. However, to protect yourself against situations like corrupted databases or hacks, you should keep backups. As a standard guide, you could go through the advice in the Backing Up Your Database page in the WordPress Codex, which will help you in creating backups of your database.

WordPress supports only MySQL and MariaDB as databases, although it’s not impossible to sync other databases like PostgreSQL. This post will assume that you use the default WordPress database option — MySQL — although the steps for MariaDB are very similar. We’ll first cover the basics of the WordPress database, and then move on to backup and restore operations.

WordPress Database Basics

The WordPress database is provided to you when you’re installing WordPress for the first time. Most webmasters never encounter the database again — as every admin-related action on WordPress is performed through a GUI.

WordPress database defined during installationWordPress database defined during installation

If you notice closely, you’re providing WordPress the host of the MySQL server, its username and password to create the required tables. Notice that a prefix is also supplied, which means that all WordPress-related tables would start with the prefix (in case you want to create backups).

WordPress uses the database to broadly store the following data:

the settings of your website
the details of users registered on your website
the details of published posts and drafts
tag information related to your posts
comments on your posts (assuming you use the comment system of WordPress and not a third-party comment manager like Disqus).

Note: If you’re interested in knowing about details of various tables in the WordPress database and their function, you can refer to this guide on SitePoint.

Needless to say, keeping a backup of your WordPress directory isn’t sufficient for security purposes. The database needs to be backed up at regular intervals too.

#1 WordPress Plugin: Udraft Plus

Udraft Plus is a plugin that enables you to back up and restore your entire site, including your database. After installing and activating the plugin, you’re asked to create a backup. Once a backup has been created, you can restore from any backup points in the past.

Udraft Plus creating a backupUdraft Plus creating a backup

In the free tier, you can create backups to a remote location (Dropbox, Drive or Amazon S3), as backing up within the server makes it vulnerable to server failure and attacks. The premium version comes with advanced options like cloning and migration of sites, scheduling backups and reporting.

The post 3 Ways to Back Up and Restore Databases in WordPress appeared first on SitePoint.

Photoshop CC is coming to the iPad

Original Source: http://feedproxy.google.com/~r/CreativeBloq/~3/6K2rf61I5Ts/project-rocket-photoshop-cc-is-coming-to-the-ipad

If you've ever felt there was something missing from your Photoshop workflow, and that something was the ability to use the full software on the go, without switching between different apps, you're in luck. 

At its annual conference, Adobe MAX 2018, Adobe has announced it's expanding Photoshop CC, across all devices, starting with the iPad. This will enable users to open and edit PSD files on an iPad, using the same tools they are used to on desktop.

Sign up to Adobe Creative Cloud
Will it be the 'real Photoshop'?

Photoshop for iPad screenshot

You’ll be able to work with Layers, just like you can on the desktop version

Photoshop for iPad came about when two Photoshop engineers decided to try to run Photoshop on iPad using Photoshop code. That got the design team thinking about how this product might look, and a few months later, they were ready for launch.

Because Photoshop for iPad uses the same code as the desktop version, there won't be any compromises in terms of performance or results. The core tools will all be there, and you'll be able to add filters, work with layers and make selections and adjustments, and much more. This will be a marked improvement in the current offering for iPad users, as they will no longer have to switch between different apps such as Photoshop Mix and Photoshop Fix to perform different functions.

This new Photoshop won't be exactly the same as the desktop version, however, as it will have a "reimagined user experience" that is optimised for touch devices, making the most of the iPad's Pencil, touch gestures and mobility.

A seamless experience

Photoshop for iPad screenshot

Photoshop for iPad will see the user interface redesigned for the device

Not only will you be able to work on PSD files on the iPad, but your files will also sync across devices, via the new Cloud documents. This will mean you can begin working on your desktop, make some changes on your iPad, and then go back to desktop, without having to faff around with importing or exporting files.

Photoshop for iPad will be available on its own, or as a partner to Photoshop on the desktop. 

Initially, a smaller set of features will be released in version 1.0, with more added over time. At the moment, we don't know when Photoshop for iPad will be shipping, or how much it will cost, but keep checking back here for more news.

Read more:

How to manage colours in Photoshop60 top-class Photoshop tutorials to tryThe 38 best Photoshop plugins

Adobe launches exciting new Creative Cloud tools at MAX

Original Source: http://feedproxy.google.com/~r/CreativeBloq/~3/3mhxrK7ZGD0/adobe-launches-exciting-new-creative-cloud-tools-at-max

Today marks the start of Adobe Max 2018 – and it's already going off with a bang. As you'd expect, part of the company's annual creative conference includes details of updates it's made to its Creative Cloud service. And, we have to say, Adobe has pulled some seriously exciting – not to mention, impressive – new tools and apps out of the bag. 

The best laptop for graphic design in 2018

Adobe favourites Photoshop, Illustrator, XD and Lightroom have all had 'under the hood' work, with new features to help streamline creative workflows. But the big news has to be three new apps Adobe will soon be welcoming to the Creative Cloud family; Project Rush, an all-new video editing app, Project Rocket, aka Photoshop on iPad, and Project Gemini, a powerful new digital art app. 

“Today, we unveiled a portfolio of next-generation creative apps that deliver meaningful value to our community by transforming creative workflows across devices and platforms,” said Scott Belsky, chief product officer and executive vice president, Creative Cloud at Adobe. “By continuing to innovate in our flagship apps, extending into exploding segments like experience design and social video content creation, and pioneering in emerging mediums like touch, voice, 3D and augmented reality, Adobe Creative Cloud has truly become the creativity platform for all.”

Excited? So are we. Let's take a closer look at exactly what Adobe has been up to…

Project Rush

Project Rush on different screens

Project Rush was no real secret, as Adobe’s all-new video editing app has been in the pipeline for a while. But now it's well and truly ready to roll. From the demos we've seen so far, this app is highly intuitive, by which we mean you don't need to be a video, colour or audio expert to create a really professional-looking video with it. 

Rush harnesses the power of its older siblings, Premiere Pro and After Effects, and gives users access to professionally designed motion graphics templates in Adobe Stock to get started quickly. Powered by Sensei, Adobe's new AI technology, Rush has a one-click auto-duck feature to adjust music and normalise sound. It also allows access anywhere, enabling users to create compelling video projects – optimised for social distribution – on one device and publish from another, with a consistent user experience across desktop and mobile.

The downside to Rush is that you're out of luck if you're an Android user, with the all-new Premiere Rush CC only available on Windows, macOS and iOS. Adobe states Google Play store availability is coming in 2019, but when exactly that might be is anyone's guess. 

Photoshop for iPad

Project Rocket

Is this the one we've all been waiting for? Adobe MAX 2018 sees the unveiling of Project Rocket, also known as Photoshop CC on the iPad. We've yet to see it fully in action, but Adobe claims the tablet version delivers all the power and precision of its desktop counterpart. Photoshop CC on iPad will let users open and edit native PSD files using Photoshop’s industry-standard image-editing tools and will feature the familiar Photoshop layers panel.

Exciting stuff, which we can't wait to see. Although, we'll all have to wait a while, with Adobe so far saying nothing more than it will be available in 2019. 

Project Gemini

project gemini

A new app designed to accelerate drawing and painting workflows across devices, Project Gemini is coming first to iPad in 2019, and combines raster, vector and new dynamic brushes into a single app experience built for drawing. Project Gemini enables artists to use and sync their favourite Photoshop brushes and works seamlessly with Photoshop CC.

Adobe Sensei

Adobe Sensei is the company's new AI technology built into the Adobe Cloud platform, and it aims to dramatically improve the design and delivery of digital experiences. The 2019 release of Creative Cloud delivers over a dozen new Adobe Sensei-powered features and productivity enhancements – building on the many existing Sensei-powered features already available to Adobe Creative Cloud, Document Cloud and Experience Cloud customers. Sensei-powered features in the 2019 release include:

An expanded Content-Aware Fill workspace in Photoshop CC that offers greater precision and control to save editors valuable time when working with their images.A new Content-Aware Fit feature in InDesign CC that intelligently detects an image and crops or fits it to an image frame automatically.New Freeform Gradients in Illustrator CC that enable the creation of natural gradients.A new tool in Character Animator CC, Characterizer, which transforms any style of portrait into a vivid, animated character.
Project Aero

project aero

Adobe also previewed Project Aero, a new cross-device AR authoring tool that enables creators to design augmented reality experiences. Project Aero is the first AR app built for designers and artists and was first sneaked on-stage at Apple’s Worldwide Developer Conference earlier this year. Project Aero enables optimal delivery of AR experiences, empowering creatives to place digital content in the real world. At Adobe MAX, Adobe showcased an AR-powered retail store of the future revealing the exciting possibilities of immersive design experiences.

Adobe XD

The all-in-one UX/UI solution for designing websites and mobile apps, Adobe XD, now features new capabilities leveraging recently acquired Sayspring technology to empower designers to prototype experiences and apps for voice-powered devices like Amazon Echo. 

New voice capabilities, including voice triggers and speech playback, enable designers to create powerful experience with screen and voice prototyping now in one application. In addition, developers can now leverage Adobe XD APIs to build plugins and app integrations that add new features, automate workflows and connect XD to the tools and services designers use every day.

Adobe favourites

Alongside these new additions, Adobe also introduced major updates to its desktop applications, including:

a new Content-Aware Fill workspace in Photoshop CC.performance and workflow improvements across Lightroom CC and Lightroon Classic. the ability to design with photorealistic, freeform gradients in Illustrator.a powerful Content-Aware Fit in InDesign CC.the power to instantly create and animate unique stylised puppets using a webcam and reference artwork with Character Animator's new Characterizer. a new rendering engine for improved render preview in performance in Dimension CC.a new Sensei-powered search features and exclusive content in Adobe Stock, including a new library from GoPro.In addition, Adobe announced it is addressing the needs of the video animation industry with new workflows and integrations across its apps.
Pricing and availability

Updates to Creative Cloud desktop software are now available to all Creative Cloud subscribers, including membership plans for individuals, students, teams, educational institutions, government agencies and enterprises. Adobe’s mobile apps are available for download from the iOS App Store and Google Play.

Photoshop CC on iPad, Project Aero and Project Gemini on iPad will be available in 2019. Spark Post on Android, previously available as a public beta, is now available as a 1.0 app in the Google Play store.

The all-new Premiere Rush CC, available now on Windows and macOS and via the iOS App Store (Google Play store availability coming in 2019), is offered across a series of plans tailored for customers’ unique needs.


You’re going to fall in love with these portfolio builders! Pick your favorite from these 5 examples

Original Source: https://www.hongkiat.com/blog/you-are-going-to-fall-in-love-with-these-portfolio-builders/

Creating a portfolio website is easier today than it was not too long ago. Once upon a time, you had to learn HTML and CSS to build an online portfolio that was more than above average. You had to…

Visit hongkiat.com for full content.

Smart Bundling: How To Serve Legacy Code To Legacy Browsers

Original Source: https://www.smashingmagazine.com/2018/10/smart-bundling-legacy-code-browsers/

Smart Bundling: How To Serve Legacy Code To Legacy Browsers

Smart Bundling: How To Serve Legacy Code To Legacy Browsers

Shubham Kanodia

2018-10-15T14:30:13+02:00
2018-10-15T12:50:48+00:00

A website today receives a large chunk of its traffic from evergreen browsers — most of which have good support for ES6+, new JavaScript standards, new web platform APIs and CSS attributes. However, legacy browsers still need to be supported for the near future — their usage share is large enough not to be ignored, depending on your user base.

A quick look at caniuse.com’s usage table reveals that evergreen browsers occupy a lion’s share of the browser market — more than 75%. In spite of this, the norm is to prefix CSS, transpile all of our JavaScript to ES5, and include polyfills to support every user we care about.

While this is understandable from a historical context — the web has always been about progressive enhancement — the question remains: Are we slowing down the web for the majority of our users in order to support a diminishing set of legacy browsers?

Transpilation to ES5, web platform polyfills, ES6+ polyfills, CSS prefixing

The different compatibility layers of a web app. (View large version)

The Cost Of Supporting Legacy Browsers

Let’s try to understand how different steps in a typical build pipeline can add weight to our front-end resources:

Transpiling To ES5

To estimate how much weight transpiling can add to a JavaScript bundle, I took a few popular JavaScript libraries originally written in ES6+ and compared their bundle sizes before and after transpilation:

Library
Size
(minified ES6)
Size
(minified ES5)
Difference

TodoMVC
8.4 KB
11 KB
24.5%

Draggable
77.9 KB
11.5 KB
31.3%

Luxon
75.4 KB
100.3 KB
24.8%

Video.js
237.2 KB
335.8 KB
29.4%

PixiJS
370.8 KB
452 KB
18%

On average, untranspiled bundles are about 25% smaller than those that have been transpiled down to ES5. This isn’t surprising given that ES6+ provides a more compact and expressive way to represent the equivalent logic and that transpilation of some of these features to ES5 can require a lot of code.

ES6+ Polyfills

While Babel does a good job of applying syntactical transforms to our ES6+ code, built-in features introduced in ES6+ — such as Promise, Map and Set, and new array and string methods — still need to be polyfilled. Dropping in babel-polyfill as is can add close to 90 KB to your minified bundle.

Front-end is messy and complicated these days. That’s why we publish articles, printed books and webinars with useful techniques to improve your work. Even better: Smashing Membership with a growing selection of front-end & UX goodies. So you get your work done, better and faster.

Explore Smashing Membership ↬

Smashing Cat, just preparing to do some magic stuff.

Web Platform Polyfills

Modern web application development has been simplified due to the availability of a plethora of new browser APIs. Commonly used ones are fetch, for requesting for resources, IntersectionObserver, for efficiently observing the visibility of elements, and the URL specification, which makes reading and manipulation of URLs on the web easier.

Adding a spec-compliant polyfill for each of these features can have a noticeable impact on bundle size.

CSS Prefixing

Lastly, let’s look at the impact of CSS prefixing. While prefixes aren’t going to add as much dead weight to bundles as other build transforms do — especially because they compress well when Gzip’d — there are still some savings to be achieved here.

Library
Size
(minified, prefixed for last 5 browser versions)
Size
(minified, prefixed for last browser version)
Difference

Bootstrap
159 KB
132 KB
17%

Bulma
184 KB
164 KB
10.9%

Foundation
139 KB
118 KB
15.1%

Semantic UI
622 KB
569 KB
8.5%

A Practical Guide To Shipping Efficient Code

It’s probably evident where I’m going with this. If we leverage existing build pipelines to ship these compatibility layers only to browsers that require it, we can deliver a lighter experience to the rest of our users — those who form a rising majority — while maintaining compatibility for older browsers.

The modern bundle is smaller than the legacy bundle because it forgoes some compatibility layers.

Forking our bundles. (View large version)

This idea isn’t entirely new. Services such as Polyfill.io are attempts to dynamically polyfill browser environments at runtime. But approaches such as this suffer from a few shortcomings:

The selection of polyfills is limited to those listed by the service — unless you host and maintain the service yourself.
Because the polyfilling happens at runtime and is a blocking operation, page-loading time can be significantly higher for users on old browsers.
Serving a custom-made polyfill file to every user introduces entropy to the system, which makes troubleshooting harder when things go wrong.

Also, this doesn’t solve the problem of weight added by transpilation of the application code, which at times can be larger than the polyfills themselves.

Let see how we can solve for all of the sources of bloat we’ve identified till now.

Tools We’ll Need

Webpack
This will be our build tool, although the process will remain similar to that of other build tools, like Parcel and Rollup.
Browserslist
With this, we’ll manage and define the browsers we’d like to support.
And we’ll use some Browserslist support plugins.

1. Defining Modern And Legacy Browsers

First, we’ll want to make clear what we mean by “modern” and “legacy” browsers. For ease of maintenance and testing, it helps to divide browsers into two discrete groups: adding browsers that require little to no polyfilling or transpilation to our modern list, and putting the rest on our legacy list.

Firefox >= 53; Edge >= 15; Chrome >= 58; iOS >= 10.1

Browsers that support ES6+, new CSS attributes, and browser APIs like Promises and Fetch. (View large version)

A Browserslist configuration at the root of your project can store this information. “Environment” subsections can be used to document the two browser groups, like so:

[modern]
Firefox >= 53
Edge >= 15
Chrome >= 58
iOS >= 10.1

[legacy]
> 1%

The list given here is only an example and can be customized and updated based on your website’s requirements and the time available. This configuration will act as the source of truth for the two sets of front-end bundles that we will create next: one for the modern browsers and one for all other users.

2. ES6+ Transpiling And Polyfilling

To transpile our JavaScript in an environment-aware manner, we’re going to use babel-preset-env.

Let’s initialize a .babelrc file at our project’s root with this:

{
“presets”: [
[“env”, { “useBuiltIns”: “entry”}]
]
}

Enabling the useBuiltIns flag allows Babel to selectively polyfill built-in features that were introduced as part of ES6+. Because it filters polyfills to include only the ones required by the environment, we mitigate the cost of shipping with babel-polyfill in its entirety.

For this flag to work, we will also need to import babel-polyfill in our entry point.

// In
import “babel-polyfill”;

Doing so will replace the large babel-polyfill import with granular imports, filtered by the browser environment that we’re targeting.

// Transformed output
import “core-js/modules/es7.string.pad-start”;
import “core-js/modules/es7.string.pad-end”;
import “core-js/modules/web.timers”;

3. Polyfilling Web Platform Features

To ship polyfills for web platform features to our users, we will need to create two entry points for both environments:

require(‘whatwg-fetch’);
require(‘es6-promise’).polyfill();
// … other polyfills

And this:

// polyfills for modern browsers (if any)
require(‘intersection-observer’);

This is the only step in our flow that requires some degree of manual maintenance. We can make this process less error-prone by adding eslint-plugin-compat to the project. This plugin warns us when we use a browser feature that hasn’t been polyfilled yet.

4. CSS Prefixing

Finally, let’s see how we can cut down on CSS prefixes for browsers that don’t require it. Because autoprefixer was one of the first tools in the ecosystem to support reading from a browserslist configuration file, we don’t have much to do here.

Creating a simple PostCSS configuration file at the project’s root should suffice:

module.exports = {
plugins: [ require(‘autoprefixer’) ],
}

Putting It All Together

Now that we’ve defined all of the required plugin configurations, we can put together a webpack configuration that reads these and outputs two separate builds in dist/modern and dist/legacy folders.

const MiniCssExtractPlugin = require(‘mini-css-extract-plugin’)
const isModern = process.env.BROWSERSLIST_ENV === ‘modern’
const buildRoot = path.resolve(__dirname, “dist”)

module.exports = {
entry: [
isModern ? ‘./polyfills.modern.js’ : ‘./polyfills.legacy.js’,
“./main.js”
],
output: {
path: path.join(buildRoot, isModern ? ‘modern’ : ‘legacy’),
filename: ‘bundle.[hash].js’,
},
module: {
rules: [
{ test: /.jsx?$/, use: “babel-loader” },
{
test: /.css$/,
use: [MiniCssExtractPlugin.loader, ‘css-loader’, ‘postcss-loader’]
}
]},
plugins: {
new MiniCssExtractPlugin(),
new HtmlWebpackPlugin({
template: ‘index.hbs’,
filename: ‘index.html’,
}),
},
};

To finish up, we’ll create a few build commands in our package.json file:

“scripts”: {
“build”: “yarn build:legacy && yarn build:modern”,
“build:legacy”: “BROWSERSLIST_ENV=legacy webpack -p –config webpack.config.js”,
“build:modern”: “BROWSERSLIST_ENV=modern webpack -p –config webpack.config.js”
}

That’s it. Running yarn build should now give us two builds, which are equivalent in functionality.

Serving The Right Bundle To Users

Creating separate builds helps us achieve only the first half of our goal. We still need to identify and serve the right bundle to users.

Remember the Browserslist configuration we defined earlier? Wouldn’t it be nice if we could use the same configuration to determine which category the user falls into?

Enter browserslist-useragent. As the name suggests, browserslist-useragent can read our browserslist configuration and then match a user agent to the relevant environment. The following example demonstrates this with a Koa server:

const Koa = require(‘koa’)
const app = new Koa()
const send = require(‘koa-send’)
const { matchesUA } = require(‘browserslist-useragent’)
var router = new Router()

app.use(router.routes())

router.get(‘/’, async (ctx, next) => {
const useragent = ctx.get(‘User-Agent’)
const isModernUser = matchesUA(useragent, {
env: ‘modern’,
allowHigherVersions: true,
})
const index = isModernUser ? ‘dist/modern/index.html’, ‘dist/legacy/index.html’
await send(ctx, index);
});

Here, setting the allowHigherVersions flag ensures that if newer versions of a browser are released — ones that are not yet a part of Can I Use’s database — they will still report as truthy for modern browsers.

One of browserslist-useragent’s functions is to ensure that platform quirks are taken into account while matching user agents. For example, all browsers on iOS (including Chrome) use WebKit as the underlying engine and will be matched to the respective Safari-specific Browserslist query.

It might not be prudent to rely solely on the correctness of user-agent parsing in production. By falling back to the legacy bundle for browsers that aren’t defined in the modern list or that have unknown or unparseable user-agent strings, we ensure that our website still works.

Conclusion: Is It Worth It?

We have managed to cover an end-to-end flow for shipping bloat-free bundles to our clients. But it’s only reasonable to wonder whether the maintenance overhead this adds to a project is worth its benefits. Let’s evaluate the pros and cons of this approach:

1. Maintenance And Testing

One is required to maintain only a single Browserslist configuration that powers all of the tools in this pipeline. Updating the definitions of modern and legacy browsers can be done anytime in the future without having to refactor supporting configurations or code. I’d argue that this makes the maintenance overhead almost negligible.

There is, however, a small theoretical risk associated with relying on Babel to produce two different code bundles, each of which needs to work fine in its respective environment.

While errors due to differences in bundles might be rare, monitoring these variants for errors should help to identify and effectively mitigate any issues.

2. Build Time vs. Runtime

Unlike other techniques prevalent today, all of these optimizations occur at build time and are invisible to the client.

3. Progressively Enhanced Speed

The experience of users on modern browsers becomes significantly faster, while users on legacy browsers continue to get served the same bundle as before, without any negative consequences.

4. Using Modern Browser Features With Ease

We often avoid using new browser features due to the size of polyfills required to use them. At times, we even choose smaller non-spec-compliant polyfills to save on size. This new approach allows us to use spec-compliant polyfills without worrying much about affecting all users.

Differential Bundle Serving In Production

Given the significant advantages, we adopted this build pipeline when creating a new mobile checkout experience for customers of Urban Ladder, one of India’s largest furniture and decor retailers.

In our already optimized bundle, we were able to squeeze savings of approximately 20% on the Gzip’d CSS and JavaScript resources sent down the wire to modern mobile users. Because more than 80% of our daily visitors were on these evergreen browsers, the effort put in was well worth the impact.

Further Resources

“Loading Polyfills Only When Needed”, Philip Walton
@babel/preset-env
A smart Babel preset
Browserslist “Tools”
Ecosystem of plugins built for Browserslist
Can I Use
Current browser marketshare table

Smashing Editorial
(dm, ra, yk, il, al)

What’s New for Designers, October 2018

Original Source: https://www.webdesignerdepot.com/2018/10/whats-new-for-designers-october-2018/

 You might notice a theme this month in our collection of new tools for designers: color. There are lots of color resources sprinkled throughout this collection. But there are plenty of other goodies as well, including a beta tool from Google and some new ways to think about layouts.

If we’ve missed something that you think should have been on the list, let us know in the comments. And if you know of a new app or resource that should be featured next month, tweet it to @carriecousins to be considered!

Logo Lab

Logo Lab is a new tool that helps you figure out if a logo is sound. Simply upload a logo, and you’ll be presented with visual experiments that test key factors like scalability, silhouette and balance. The visual tool shows where a logo succeeds and where it could use some improvement. This can be a great resource for individual testing or client presentations. It includes 10 tests (including a color blindness simulator and scalability test) and all you have to do to use it is upload a PNG or SVG version of your logo.

ColorBox

ColorBox by Lyft Design can help you create cool color sets that you can use and share. With plenty of options that you can adjust and see on screen, it’s easy to create all kinds of palettes and color combinations. Use it to create a base color scheme or pick colors for a gradient pattern.

New Werner’s Nomenclature of Colours 

From modern color in the previous item to classic color here, Werner’s Nomenclature of Colours has been recreated for the digital age. The 1821 color guidebook is all new (and equally impressive) thanks to Nicholas Rougeux.

GraphQLEditor

GraphQLEditor allows you to create visual diagrams without writing any code. Just click and experiment. (The code is generated as you draw.) It works using Graphql schema and when you create and join blocks the editor transforms them into code.

Firefox Reality

Firefox Reality is a new browser just for virtual reality. Mozilla says it “was specifically designed to tackle all of the new opportunities (and challenges) that come with browsing in VR.” Get it for your preferred VR device with support for Viveport, Oculus Go or Google Daydream.

Google Dataset Search

Google Dataset Search is a beta tool that allows you to search within datasets to find information. Here’s how Google describes the new project:

Dataset Search enables users to find datasets stored across thousands of repositories on the Web, making these datasets universally accessible and useful…By providing our users with a single interface that allows them to search across multiple repositories, we hope to transform how data is being published and used. We also believe that this project will have the additional benefits of a) creating a data sharing ecosystem that will encourage data publishers to follow best practices for data storage and publication and b) giving scientists a way to show the impact of their work through citation of datasets that they have produced.

Zipsell

Zipsell is an open source, self-hosted platform for selling digital downloads. Just add products so users can browse your digital store and allow them to make purchases online and pay with Stripe. Customize it with your brand and there’s no commission fee.

GraphJS

GraphJS is an open source set of “stickers” that enables social capabilities on any webpage. Use it for authentication, forums, profiles, groups, messaging and ratings or commenting. Plus, it’s all open-source.

Landing Pages

Davide Pacilio has created four different landing page templates for startups that are available as free downloads. Each template design features a fairly flexible layout in a different style. This can be a great resource to get a nice website up fast.

Gitbird

Turn shots into tweets automatically with this fun little tool. It’s a nice resource to help promote your projects without a lot of extra work. The micro plan (5 commits per month) is free.

Accurately Measuring Layout on the Web

Want to understand more about the browser rendering pipeline and how to make websites faster? (Everyone does, right?) This article by developer Nolan Lawson explains it in one of the least complex ways possible so you can more accurately measure what’s happening when things are rendered on the web.

The Font Loading Checklist

The Font Loading Checklist is a four-step guide from Zach Leatherman where he details everything he’s learned about maximizing the potential of font loading. He provides a checklist with implementation strategies that are easy to understand.

Slang

Slang is an audio programming language made in JavaScript that’s all in-browser. Here’s how it works: “Parsing is handled by Ohm.js using a custom grammar, the editor uses CodeMirror with a simple syntax definition, and the runtime itself is written in JS using the Web Audio API.”

Design+Code 3

Design+Code 3 includes more than 60 hours of video training and downloads to help you learn to code React and Swift apps. The paid plan also includes access to design/developer tool discounts.

Scriptgun

Scriptgun is a tool that writes code to save you time. Using common code, you can jumpstart a design. It’s a fully-integrated Angular project that includes 100 percent database configuration.

DBDiagram

DBDiagram is a quick and simple tool to help draw database relationship diagrams and flow using simple DSL language.

Realtime Board Mind Map

Realtime Board Mind Map is a tool for teams that can help you structure ideas and brainstorming sessions. Map tasks and ideas such as building user story maps, roadmaps, or journey maps.

500 Error

500 Error is a crazy animation for unfortunate page landing events. It’s cool, but can be a bit dizzying.

Trendy Palettes

Trendy Palettes is a curated collection of hand-made color palettes that you can use for projects. Pick a swatch, copy the color values and go! (Or download a PNG.)

Baseline Icons

Baseline Icons is a set of 75 free icons with a consistent look. The simple line and filled icons includes clean elements and is free for personal and commercial projects. It includes plenty of common digital icon elements.

Autumn Kawaii Icon Set

Autumn Kawaii Icon Set is a seasonal pack of free icons for fall projects. Every icon is editable and scalable so you can make the selection of flat, line and colored icons your own. (Plus, the design is whimsical and fun.)

Color Leap

Color Leap is a new kind of color palette generator. Move through different points of history to see colors that were popular in that time to help jumpstart your inspiration.

Azonix

Azonix is a modern sans serif featuring a capital character set. The design says it was inspired by “sci-fi and futuristic films such as Exmachina.” The font also includes numerals and punctuation.

Rolleston

Rolleston is an expansive font family with amazing character and serifs. The most spectacular part of this premium font might be the ligature set. It includes 42 styles and a complete character set.

Sometype Mono

Sometype Mono is a font family for coding and tabular layout. The set includes six styles and could be expanded. The open source font is more flowy and visually interesting than some traditional monospaced options.

Add Realistic Chalk and Sketch Lettering Effects with Sketch’it – only $5!

Source

p img {display:inline-block; margin-right:10px;}
.alignleft {float:left;}
p.showcase {clear:both;}
body#browserfriendly p, body#podcast p, div#emailbody p{margin:0;}

Do You Need to Know React as a WordPress Developer?

Original Source: https://www.sitepoint.com/do-you-need-to-know-react-as-a-wordpress-developer/

This article on whether you need to know React as a WordPress developer was originally published by Torque Magazine, and is reproduced here with permission.

The new WordPress content editing system Gutenberg will be powering the WordPress post editor in WordPress 5.0. Gutenberg is a “block-based” editor. When creating content, everything is a block. If you have a post that is one paragraph, one header, and then two paragraphs, that’s four blocks.

Gutenberg comes with a set of default “core” blocks — paragraph, header, recent posts, image, blockquote, etc. If you’re using Gutenberg to create content, you use those blocks or custom blocks that are provided by WordPress plugins you install on your site.

Gutenberg is a JavaScript-driven interface. Specifically, it is built using Facebook’s open-source user interface library “React”. This post explains a little bit about creating your own custom blocks for use in the Gutenberg editor using JavaScript. You do not have to use JavaScript to create blocks. Advanced Custom Fields (ACF) recently announced a neat looking system for creating custom blocks with PHP.

What Is React?

In front-end development, the least performant things you do are reading and writing from the DOM. A very hard thing to do, consistently across browsers, is referencing and updating the DOM. React provides a better system for this, by implementing a reactive programming model and a virtual DOM abstraction.

Instead of interacting with the DOM directly, for example using jQuery.html() or jQuery.val(), React creates a virtual representation of the DOM. We call this a virtual DOM or VDOM. The VDOM is a JavaScript object that represents the structure of the DOM. Whenever your React code communicates to React a change in any of the data, the VDOM is recalculated. After that React calculates the difference between the DOM as it existed before the change and after the change. Then React (really ReactDOM or React Native) updates just the parts of the DOM that needs changed. How it does this doesn’t matter really.

How Is React Being Used in Gutenberg?

React is a library for creating reusable components. Because they are reusable, we can compose interfaces out of components. It is an open-source project created at Facebook.

Everything is a block. Text, images, galleries, widgets, shortcodes, and even chunks of custom HTML, no matter if it’s added by plugins or otherwise. You should only have to learn to master a single interface: the block interface, and then you know how to do everything. – Gutenberg Handbook

Blocks are the basic unit of Gutenberg. We compose content out of one or more blocks.

Components are the atomic unit of React, we compose React apps out of components. Gutenberg is created with React, so each block is composed of one or more components.

It’s important to note, and I’ll cover this more in this series of posts, but Gutenberg adds a thin abstraction layer over React. In our Gutenberg code, we’ll use wp.createElement instead of React.createElement. It works the same, but when React’s API changes, WordPress can decide when to support those changes and provide a backward-compatibility wrapper or decided not to.

This is good planning for the future, but for now, it’s just React.

The post Do You Need to Know React as a WordPress Developer? appeared first on SitePoint.

Designing Experiences To Improve Mental Health

Original Source: https://www.smashingmagazine.com/2018/10/designing-experiences-improving-mental-health/

Designing Experiences To Improve Mental Health

Designing Experiences To Improve Mental Health

Marli Mesibov

2018-10-12T14:00:30+02:00
2018-10-12T13:29:39+00:00

Did you know that a simple search for “depression” on the iPhone App Store brings up 198 results? In the Android Play Store, it brings up 239. The categories range from “Medical” to “Health & Fitness” to “Lifestyle.” The apps themselves offer everything from “depressing wallpaper” to “mood tracker” to “life coach.” We are approaching a golden age of digital therapeutics and design for mental health — if we as UX practitioners do our jobs well.

Given the plethora of apps available, you might assume that there are already dozens of wonderful digital therapies available for people struggling with mental health disorders. But — according to initial studies by clinical psychologists — you would be wrong. Most apps are useless at best, and harmful at worst, due primarily to a disconnect between the designers building the apps and the patients and providers in the field of mental health.

As of July 2017, 28% of digital health apps on the App Store were focused on mental health and behavioral disorders.

As of July 2017, 28% of digital health apps on the App Store were focused on mental health and behavioral disorders. (Large preview)

Some apps (mostly within the Lifestyle category) are harmless but useless. Emo Wallpaper, for example, is appropriately named and makes no claims to treat mental illness. It is intended as entertainment for people who are having a tough day. But there are more dangerous examples. One of the worst (since removed from the App Store) was iBipolar, which recommended that people in the middle of a manic episode drink hard liquor to help them sleep. Not only is this bad advice — alcohol does not lead to healthy sleep — but alcoholism is a problem for many people with bipolar disorder. The app was actively harmful.

Prescription drugs are regulated by the FDA, while mobile apps are not. How can we as UX designers create better apps to improve mental health treatment?

Are Apps The Answer?

Approximately one in five American adults experience mental illness each year. For some people, this can refer to a temporary depressive episode brought on by grief, such as the death of a loved one, or severe anxiety caused by external factors like a stressful job. For nearly 1 in 25 Americans (about 10 million people) it’s a chronic condition, such as bipolar disorder, chronic depression, or schizophrenia. Yet only about 40% of people experiencing mental illness are receiving treatment.

Recommended reading: Mental Health: Let’s Talk About It

Meet SmashingConf New York 2018 (Oct 23–24), focused on real challenges and real front-end solutions in the real world. From progressive web apps, Webpack and HTTP/2 to serverless, Vue.js and Nuxt — all the way to inclusive design, branding and machine learning. With Sarah Drasner, Sara Soueidan and many other speakers.

Check all topics and speakers ↬

Smashing TV, with live sessions for professional designers and developers.

The reasons vary. For some, they are undiagnosed or may refuse treatment. They may struggle with the stigma attached to mental illness. But for many, there is a lack of access. The association Mental Health America has studied and reported on what “limited access” means, and identified four systemic barriers:

Lack of insurance or inadequate insurance;
Lack of available treatment providers:
Lack of available treatment types (inpatient treatment, individual therapy, intensive community services);
Insufficient finances to cover costs — including, copays, uncovered treatment types, or when providers do not take insurance.

Access to Care Map, from Mental Health America

Access to Care Map, from Mental Health America (Large preview)

With that in mind, it would appear that a mobile-based solution is the obvious answer. And yet there are plenty of inherent challenges. Key among them is the gap between the clinicians treating patients and the UX practitioners working on mental health design.

Bridge The Gap Between Clinicians And Designers

About two years ago, I began research in the mental health design space. As a UX practitioner who focuses in health care, I wanted to learn how people struggling with mental health issues differed from people struggling with other chronic illnesses. I thought the work would entail an audit of the App Store and Play Store, a few weeks of interviewing clinicians to learn about the space, and then perhaps building an app with my team.

Instead, the work has continued ever since. At the time I interviewed ten clinicians, four behavior change designers, and five UX designers who had designed apps in the mental health space. But from these interviews I learned that there are two reasons why the design for mental health is lagging behind design for other healthcare needs. Those two reasons have changed my entire perspective on what we need to do to improve design in the space. It resulted in the creation of a few guidelines which I now hope to popularize.

Here is an overview of the research I conducted, and the two themes that emerged.

The Research

I initially assumed there were no apps available. And yet my audit of the App Store and Play Store uncovered hundreds of existing apps. Obviously, building an app was not the problem. But I began to wonder: why aren’t these apps used? (Few were downloaded, and I had never heard of any of them — for all that I work in the healthcare space!) And why are those that are used unsuccessful? To find that out, I needed more research.

Over the course of a few months, I interviewed therapists, psychiatrists, psychologists, and social workers. On the design side, I interviewed behavior change analysts, UX designers, and anyone I could find who had been involved in designing an app to improve mental health.

Some questions I asked the designers included:

What do you feel is missing from the field of mental health, if anything?
What are some of the top challenges you face when designing for people with mental health challenges?
What examples exist of poorly designed interventions for mental health? What examples exist of well-designed interventions?
If they had designed an app: What was the goal of the intervention you designed?

How did you test it?
Who did you test it with?
Was it successful? Why/why not?

Meanwhile, some of the questions I asked clinicians were:

How do you diagnose a patient’s mental health?
What barriers exist to patients’ improving their mental health?
What technology currently helps patients improve or deal with their mental health/illness?
How can technology benefit your patients?
What are one or two important pieces of advice you wish more people knew when creating applications/tools to help improve mental health from afar?

After the interviews, I came away with two new understandings:

Problem #1: Designers Don’t Know What Clinicians Know

Many designers told me they were starting from scratch. They did research with patients and learned what patients thought they needed from an app. But very few spoke with healthcare providers. As a result, the designers were missing the clinical expertise.

For example, a clinician shared with me that:

“What people say they want is not often what they want.”

Broadly, patients want to feel better. In a user interview, they might say they want to take their medication, or follow a meal plan, or meet some other goal. So the designer builds an app that allows them to set goals and deadlines. But as the clinician explained it:

“Change is scary, so when [patients] find out that feeling better requires change, that is a barrier.”

The app was designed to meet what patients said they needed, not what clinical expertise shows they will respond to.

When I asked one psychiatrist what apps she might recommend to her patients, she said:

“I wish I knew what I could recommend. Nothing is clearly safe, evidence-based, and tested.”

She explained to me that she once recommended a suicide hotline, but that it made people wait on hold for 20 minutes. After that experience, she said, “never again.”

When it comes to mobile apps, the risk is even greater — she worries that an app may have good intentions, but it might not be right for a particular patient. Or it may have the right elements, but the language could be inadvertently guilt-inducing or triggering.

In short, the mental health world does not need more apps, or more technology. As psychiatrist and Digital Psychiatry Director John Torous said in a recent article:

“Digital tools like fitness trackers present great opportunity to improve care […but…] they need to be utilized in the right way.”

In other words, patients need apps their providers have helped to build, and validate as useful.

Recommended reading: Dealing With Loud And Silent Burnout

Problem #2: Design Moves Fast

I already knew that designers move fast. It’s part of the tech world’s MO — just think of Facebook’s motto, “move fast and break things.” The catch is that second part: when we move fast, we break things. This is great when we’re breaking through assumptions, or breaking features that would otherwise cause issues post-launch. But it’s very bad when the things we might break are people.

To quote Sara Holoubek, founder and CEO of Luminary Labs:

“[I]t’s one thing to move fast and break things with a consumer internet app. It’s another thing when tech is used to improve human life.”

Designers are often up against deadlines. Some work for large healthcare companies that want to launch in time for a specific trade show, or before a competitor gets to market. This is very different from the world of health care, which tends to move very slowly, waiting for compliance or FDA approval, clinical trials, and multiple rounds of validation.

The challenge is adding the clinical expertise and knowledge to the design process, without hampering designers’ ability to move quickly.

Mental Health Design Guidelines

To that end, my team determined that we did not need to build a new app. After all, the mental health field is broad, and there is no one app that will reach everyone. What we need is to popularize the guidelines and communication methodologies that health providers know and use. We need to share that knowledge with designers.

During our clinical interviews, I noticed patterns. For example, though not every therapist said it the same way, they all mentioned how important friends, family, or community are for someone struggling with mental health issues. From this, we created a guideline called “Human.”

Thus, we created a set of six guidelines. Clinicians, researchers, behavior change analysts, and health writers have weighed in on the guidelines, and continue to refine them. They draw attention to six steps that any designer needs to follow in order to create an app that will live up to any provider’s standards.

HEALTH

Are you building a mental health app? Focus on HEALTH. (Large preview)

1. Human

As I noted above, there are systemic barriers to mental health care. For the many people who can’t afford or can’t find a therapist, mobile apps seem like a magical solution. 95% of Americans now own a cell phone! That means mobile apps could ostensibly make mental health care accessible to 95% of the population.

But technology is not the same as a human therapist, family member, or friend. As one behavior change specialist I interviewed shared, “The human-to-human connection is very important. In mental health, it is important to have a person who you can talk to and understand the other person is there for you.” Social support increases motivation, and people are vital for crises — although algorithms are working to identify a risk of suicide, the device alone is not enough to overcome the urge.

With that in mind, our first guideline is to be human. Encourage connection to external supports in addition to providing value in the app. And provide the ability to connect to a therapist or 9-1-1, as MY3 does.

The MY3 app encourages human connections. Having a therapist, friend, family member, or other human support correlates to lower rates of suicide and depression.

The MY3 app encourages human connections. Having a therapist, friend, family member, or other human support correlates to lower rates of suicide and depression. (Large preview)

2. Evidence-Based

Mental health professionals spend years training to treat mental health illnesses. Many professionals specialize in one or two specific types of treatment, such as talk therapy, Cognitive Behavioral Therapy (CBT), Dialectical Behavioral Therapy (DBT), or other treatment frameworks.

These therapies have specific activities associated with them; they encourage patients to develop certain skills, and they even make specific language choices. Any designer building a mental health app needs to begin by choosing one of these evidence-based therapy styles to follow. What’s more, other designers and users can help evaluate UI and short-term efficacy, but make sure to also bring in clinicians to ensure the app is properly representing the therapy.

Our second guideline is: to be evidence-based. Keep problem #1 in mind: the clinicians know how to treat their patients. We as designers can’t simply replace clinical knowledge with effective UI. The two need to work hand in hand, as Pear Therapeutics THRIVETM app does.

Pear Therapeutics app is undergoing extensive research, including clinical trials with mental health professionals, and applying for FDA clearance.

Pear Therapeutics app is undergoing extensive research, including clinical trials with mental health professionals, and applying for FDA clearance. (Large preview)

3. Accepting

I frequently hear people talk about a favorite coach or friend who gave them “tough love.” Many people seem to see tough love as a way of accusing someone of failure, and thus prompting them to do better. (Perhaps our fictional film coaches are to blame.)

In reality, fear of failure is exactly what stops many people from trying something new. This includes seeking mental health treatment. To make matters worse, low motivation is a core symptom of many mental health illnesses. Thus, angry or accusatory language can truly harm people. Instead, our third guideline is to be accepting. Reinforce how capable a person is, and show empathy in how you communicate.

Sanofi’s RA Digital Companion is designed for people with Rheumatoid Arthritis (RA). The app understands that many people with RA suffer from depression, and focuses on acceptance.

Sanofi’s RA Digital Companion app focuses on helpful resources and uses encouraging language.

Sanofi’s RA Digital Companion app focuses on helpful resources and uses encouraging language. (Large preview)

4. Lasting

When Pokémon Go launched, it became a nationwide craze just seven days later with an estimate of more than 65 million users. Yet the craze passed in only two months. The problem? Pokémon Go focused on short-term motivators, such as badges and gamification (as many apps do). To create a successful app that people use consistently, the motivation needs to become internal.

What does that mean? External motivators come from outside sources. Internal motivators connect to core values, such as “I want to succeed in my career” or “I care about my children.” These motivators can’t be taken away by another person, but they are not always clear. Our fourth guideline is to be lasting. This means that you should connect to an individual’s internal motivations, and help them feel responsible and in control, as Truth Initiative’s BecomeAnEX program does.

The BecomeAnEX app helps people quitting smoking to focus on their goals and internal motivators. It looks at the lasting benefits as well as how someone is feeling today, so that quitting becomes more than an impulse.

The BecomeAnEX app helps people quitting smoking to focus on their goals and internal motivators. It looks at the lasting benefits as well as how someone is feeling today, so that quitting becomes more than an impulse. (Large preview)

5. Tested

This should come as no surprise to any UX practitioner: testing is key! Clinicians and patients can and should be a part of the design process. Usability testing will help identify things you may not have considered, for example, someone having an anxiety attack may have trouble pressing small buttons. Or someone with schizophrenia having an auditory hallucination may struggle to focus on a busy page of text.

Obviously, our fifth guideline is: Be Tested. Ideally, clinical testing can become a part of more mental health apps, but even if it’s not an option usability testing should be. As noted above, design moves fast. Don’t let design move so fast that you make poor assumptions.

Recommended reading: How To Deliver A Successful UX Project In The Healthcare Sector

6. Holistic

Lastly, we found that many apps are isolated to accomplishing a single task. And that’s fine for something like Instagram — you post photos, or you look at photos. But mental health is intrinsically linked to how people see themselves. With that in mind, a successful intervention has to fit into a person’s daily life.

This is our sixth and final guideline: be holistic. One example of this is the app Happify. While it’s far from perfect, it does an excellent job of offering options. A gratitude journal may help for one time, and the community is helpful at other times.

For any designer working on an app, it’s important to note how an app becomes holistic: the key is to learn about the target audience. Be specific: gender, age, culture, and diagnoses all impact the way a person deals with a mental illness. That’s why researchers like Dr. Michael Addis focus on specific segments of the population, as he does in his book Invisible Men: Men’s Inner Lives and Consequences of Silence.

Happify learns a lot about you as an individual before recommending anything. They ask about things that may not seem important, because they understand the holistic nature of mental health.

Happify learns a lot about you as an individual before recommending anything. They ask about things that may not seem important, because they understand the holistic nature of mental health. (Large preview)

Moving Forward

There is an overarching theme to these guidelines: what works for you as a designer may not work for your end-user. Of course, that’s the tenant of UX! Yet somehow, when it comes to health care, we as UX professionals tend to forget this. We are not healthcare providers. And even those of us who have experience as patients have only our own experiences to draw on.

These guidelines are not perfect, but they are a start. Over time I hope to finesse them with additional insight from providers, as well as from the designers beginning to use them. We are on the cusp of a new world of digital health care, where designers and providers and patients must work hand-in-hand to create seamless experiences to promote health and well being.

For anyone interested in getting involved, I am continuing to work on new initiatives to continually improve design for mental health. Feel free to share your experiences in the comments, or learn more at Mad*Pow.

Smashing Editorial
(cc, ra, il)

Writing Perfect Web Design Proposals

Original Source: http://feedproxy.google.com/~r/1stwebdesigner/~3/52P5Uz2bfvQ/

If you’re a freelancer, then you’ve probably experienced the anxiety of staring at the blank white space where your cover letter or proposal needs to go. Not only do you have to sell yourself, but you have to show that you can do the work, that you understand the client’s needs, that you can fill them in a specific timeframe, and that you’ve specifically tailored your proposal to them.

Before I started being successful at getting freelancing gigs, I made the big mistake of having a generic pitch that I would copy and paste into each cover letter section of Upwork while applying to a bunch of jobs all at once.

The Freelance Designer Toolbox
Unlimited Downloads: 500,000+ Web Templates, Icon Sets, Themes & Design Assets


DOWNLOAD NOW

I hardly got any work because the clients could not only tell that I was just recycling something I’ve used before, but also could tell that I had not fully read their proposal. If you want them to take the time to hire and work with you, then you need to take the time upfront to invest in writing a solid proposal.

Maybe you’ve seen that 20 other people have already applied for the project you’re absolutely sure that you could easily and successfully accomplish.

Proposal Template by Darian Rosebrook

The competition for freelancing gigs is fierce, but at least half of those proposals were generic copy/paste applications, and the others were a sentence or two about how they’re qualified without much more detail.

We’ve compiled a set of tips to help you take the time to craft the perfect proposal that will get you your next freelancing gig. Remember: presentation is everything.

1. Read Through the Proposal and Take Notes

You’ll need to do your research before writing your proposal. Read through the entirety of their posting to determine several things:

What their timeline is
What their budget is (and if it’s even worth your time!)
What product their ultimately asking for
Who their target audience is
What skills they’re requiring or seeking
What previous projects they might want to see

Once you’ve done your due diligence in parsing apart their request, then you can set out to writing a proper proposal. Though we urge you not to use a generic, copy/pasted proposal, it is always a good idea to have a set outline for how to structure your proposals to make writing them faster while simultaneously demonstrating that you understand the needs of the client.

Once you get the job, it might be a good idea to have a standard form like this one you can send the client to show you’re professional and that you care about their input.

2. Create a Standard Form for Applying (But Only a Wireframe)

We recommend something like the following:

I am a(n) [specific word for what they’re looking for, like designer, writer, or developer] with [skills] and with experience in [jobs or projects specifically related to the kind of project they’ve established] which you can view here [provide links to your project]. I also have experience working with/for [their target audience, and what experience you have writing for them, etc.]. I can complete your project in [insert timeframe] for [your price point].

It does not need to look like this, but having a standard form is different from recycling the same proposal insofar as this way you have a quick and handy guide to turn to so you’re not working on a proposal for hours, while also being able to be original and specific in your proposal.

Don’t forget to be specific about your skill-set. Do you have 5 years of experience in graphic design, or did you get your B.A. in Professional Writing? Don’t make them sift through 300 pages of your skills – make it simple, easy to read, yet expansive enough that they see you can handle every component of their job.

Remember that the client has work to do, too. Communicate this to them and make sure you get what you need from them.

Soulmates Proposal by Charlie Isslander

3. Be Original and Specific

You don’t have to spend 40 hours a week writing one proposal, but you do need to spend more than a few seconds crafting something up if you really want the job.

Think about how much time the client spent in crafting their proposal and posting it to find people to help them – you should ideally be spending however much time you imagine they spent on their job posting as you do on your proposal.

Let us first reiterate: do not copy and paste. Yes, it’s an easy way to quickly get your name out there, but clients can see right through that. The worst offense is when you don’t even mention their project or what specifically about their project you could provide value for.

Your client will be able to see through your vague, generic proposal in a few seconds. Sometimes, this is such a problem that clients will request in their proposal for a freelancer to put words like “pineapple” or “unicorn” at the beginning of their proposal before submission to make sure they’ve read and understand everything about the job posting.

Showcase your work! If you don’t have many samples to send in, especially if you’re just getting started, then it would be a good investment of time and energy in developing some mock-ups to provide to a client when they ask. Better yet, don’t wait for them to ask – show them upfront! Get a website to direct your clients to in your proposal.

Redesign a few of your favorite websites, draw up a few logos for fake companies, write a few blog posts about anything – this will largely depend on what you do and what you’re applying for, but make sure you have something to prove you can do the job.

4. Present a Timeline

This is crucial, and is more than just saying that you could finish the job in two weeks. Be as specific as possible by parsing apart their project into smaller tasks and provide a timeline for each. For instance, you could say that research and brainstorming will take three days, with a little time for communication with the client on your ideas and working their feedback into it, and wireframing will take two days, and so on.

The client will appreciate not only that you’ve taken the time to adequately think about your commitments and their needs, but also will appreciate that you understand the complexities and nuances of what they’re asking. It will demonstrate your seriousness about the job, and will help the client better understand what working with you will be like, and what the greater process of the project will look like.

Last Thing

Remember that as a freelancer you’re selling yourself and your services, and you have to see yourself, your work, and what you provide as a business.

Don’t make your proposal five pages long. Keep it short, sweet, succinct, and economic. You want to be as specific and narrow as possible, as well as descriptive as possible when explaining your process and their project, while also being as succinct as possible so that they know quickly and immediately that you’re the right freelancer for the job.

Think about it this way: pick 3 skills, pick 3 recent projects, and break the timeline into at least 3 tasks for your client. Now go forth, and get working!

The biggest takeaway? A little extra time spent on a proposal can bring you much better contracts, meaning fewer jobs with higher payout. You can work less by working better.