The Beginner’s Guide to Business Names

A business name doesn’t just differentiate you from the competition.

It also sets the tone for your business and is central to creating a successful brand.  

So, what do you do if you can’t come with a good business name? What if it’s already taken? How do you know it’s a good name for your business?

This post covers everything you need to know when choosing a business name.

What Is a Business Name?

As the phrase implies, a business name is a title or name that a person or entity uses to conduct business. Essentially, this is your businesses’ legal name.  In the case of a sole proprietorship, your business name will be your full legal name.

It is possible to include additional words when naming a sole proprietorship. But, you will still need to use your legal name. For example, if you run a small software consultancy business, you may simply name it Jane Doe or Jane Doe Software. You’ll likely have to register a Doing Business As (DBA) if you’d prefer to operate your sole proprietorship under a different name. 

General partnerships follow the same course. Typically, the business name will be a combination of all the partners’ last names. For example, your partnership may be named Doe, Smith & Brown. Again, the business may have to file a DBA  to use a different name. 

Finally, limited liability companies (LLC) and corporations do not need to include the owner’s legal name. You are free to choose the name you want, provided it is not already registered or trademarked. However, some jurisdictions mandate that you must use LLC or Corporation in the business name. For example, your business name may be Insignia Digital LLC or Insignia Digital Corporation.

It is also worth noting the difference between a business name and a company name. These words are often used interchangeably, but there is a difference. Business name is an umbrella term referring to any type of business structure. This includes sole proprietorships, partnerships, limited liability companies, and corporations. A company name, on the other hand, describes businesses that have been incorporated. The latter includes LLCs, non-profit corporations, C corps, and S corps.

The Basics of Choosing a Good Business Name

There are virtually endless possibilities for choosing a business name, and picking a good business name is hardly a science. However, there are a few common elements that go into choosing a great business name. A business name should be:

Short

Most experts agree that a business name should be short. Ideally, it should be one or two words. However, you can go for three words as long as one of the words is a transition word. A perfect example is Toys R Us.

There are also good reasons for choosing a short business name. The name will be easy to understand, easy to remember, and easy to pronounce. The perfect business name should also be two to four syllables. This strategy also makes the name easy to pronounce.

Finally, limit the number of characters in the name. More characters make it harder for your audience to remember your business name.

Memorable

There are several practical reasons to choose a memorable business name. First, most new businesses rely on word-of-mouth. You might miss out on great opportunities if your clients can’t remember your business name. Additionally, you’ll want to use a memorable business name in your marketing materials. This will help reap maximum benefits from your advertising campaigns.

You may want to stick with existing words. However, this route will be challenging since most names are already likely taken by your competitors. Still, existing names have established meanings, making them easier to remember.

Made-up names are great for distinguishing your business from the competition. Exxon is a great example. But made-up words take a lot of time and marketing effort to stick with your audience.

Descriptive and Brandable

Business names fall into two distinct categories. These are descriptive and brandable business names.

A descriptive business name gives your audience a good idea of what your business does. Examples of descriptive names include Toys R Us and Baby Shop. Descriptive names paint a clear picture of your products or services, making it easier for potential customers to choose your business.

But descriptive names have their limitations. They can make it more difficult for you to venture into other products or services. These names are also highly competitive, especially when attempting to register a domain.

Brandable names tend to be more obscure. Some may offer a hint of what you do, but it is not always entirely clear. Examples of brandable names include Amazon, Starbucks, Apple, and Google. Without proper context, it can be difficult for customers to know what you have to offer. On the plus side, brandable names offer flexibility in terms of your products or service offerings. 

A hybrid approach combines both ideas and offers the best of both worlds. A business name like Tesla Motors is an example of a hybrid. The first name, Tesla, is synonymous with electricity and is highly brandable. The second name, Motor, is self-explanatory.

Easy to Spell

Potential clients will search your business name in directories or search engines. This can be difficult if your business name is difficult to spell. For this reason, you may want to avoid complex names, abbreviations, alternate spellings, and numbers in your business name.

3 Tools to Improve Your Business Name Selection

There are a few valuable tools that you can use to help you choose a great business name.

1. Thesaurus

Coming up with a unique business name can be daunting. Your ideal names are probably already taken. So, start with a word dump. This means writing a list of all the words that describe your business. Take 20 minutes to an hour to create your list. It doesn’t matter if the name is already taken. 

Next, use a thesaurus to find synonyms for each word on your list. This exercise will give you tons of options to choose from and inspiration. You may even discover some gems that you otherwise wouldn’t have thought up.

2. Business Name Generator

Business name generators are a dime a dozen, and most of them are free. Business name generators are also very easy to use. You only need to type in one or more keywords relating to your business. Then the generator gives you a list of potential business names for your consideration.

Business name generators vary in features and complexity. But I highly recommend Shopify’s business name generator. You’ll get 120+ potential business names less than 10 seconds after typing your keyword. The best part is that Shopify’s generator shows if the domain for your desired business name is available.

This tool is completely free to use, and you don’t need to sign up for a Shopify account unless you’d like to create your online store with Shopify.

3. Trademark Database

Finally, you’ll need to check if the name is already trademarked before committing to the business name. It will save you a lot of time and trouble when it’s time to register your business name.

The United States Patent and Trademark Office (USPTO) has a public database of registered trademarks. You can search this database for free to make sure that your business name isn’t trademarked.

5 Tricks for Choosing the Perfect Business Name

A lot more goes into choosing a business name than merely picking one that you like. Below are five tricks to help you choose the perfect business name.

1. Refer to Your State’s Naming Guidelines

For the most part, you won’t be able to choose a name that another business in your state is already using. Additionally, you’ll be restricted from choosing a business name that’s deceptively similar to your competitor. Other common restrictions include not using a business name that may mislead the public about your company’s entity type or purpose. Finally, some states mandate that your business name must indicate what type of entity it is, such as an LLC or corporation.

These common restrictions can vary from state to state. For example, what is considered a deceptively similar business name in New York is very different from North Carolina. Business names such as Capital Productions and Capital Production aren’t considered similar in North Carolina because of the pluralization. In New York, however, you’d need to choose a different business name.

Things can get even more confusing if you’ll be doing business in multiple states. Delaware, for example, doesn’t have fully restricted words. California is far stricter and limits the use of words like Incorporated, Bank, Insurer, or Corporation. It’s worth referring to your state’s Secretary of State website to get the complete picture of business naming guidelines. The same applies if you’ll be doing business in multiple states.

2. Choose a Web-Friendly Business Name

Having a web presence is all but mandatory in the information age. So, you’ll need to make sure that your business name is web-friendly. That’s why a business name generator like the one offered by Shopify is so useful. You’ll immediately discover if the domain name associated with your business is available.

The ideal domain name should be short, memorable, and easy to spell. Most experts agree that the ideal domain name length should be 15 characters or shorter. A longer domain name is harder to remember and prone to errors when typing.

A .com extension tends to work best for your online presence. Again, this is because it’s a credible extension. Furthermore, most people assume that the .com extension will follow your business name. 

It is tempting to include a hyphen in your domain name. This idea is incredibly alluring when your ideal domain name is already taken. But most spam domains tend to include a hyphen. Besides, potential customers who forget to include the hyphen may be directed to a competitor’s website or an error page.

Take some time to choose the perfect domain name. Then, you should find the right domain with a bit of creativity and a solid business name generator like Shopify.

3. Think of the Future

Many small business owners make the mistake of limiting their potential by choosing a restrictive business name. Of course, it’s natural to want to name a company after yourself. But it’s hard to brand your name. Additionally, a name doesn’t tell a story, such as your business’ history or what it’s about.

Using your name can also give the impression that you are a solopreneur. This impression can limit your target market, especially as you expand and grow your capacity. Lastly, using your name can make it challenging to sell your business in the future.

Similarly, choosing a business name relating to a product or service can be limiting. You may want to venture into new product lines, which can be challenging if you’re already locked into a particular product’s name.

For example, you may be selling leather shoes. But say you want to expand into other leather products such as couches and belts. This transition can be difficult if your business name is very descriptive or literal.  

4. Test Your Business Name

Where possible, it pays to test your business name. This is especially true if you are having a hard time deciding between a few prospective names. You can conduct surveys with your target audience to see which one they prefer.

Consumer research platforms like PickFu can help you source opinions about your business name. The platform allows you to crowdsource opinions from the people who matter most for your business.

Some of the questions to consider asking your audience include:

  • Is the name easy to spell?
  • Does it read clearly and quickly?
  • Is it easy to pronounce?
  • Does it spark interest?
  • Does it imply a desirable message?
  • What do you think this business sells?

A focus group can also be a great source of feedback for your business name where time and resources allow.

5. Choose a Name You Can Trademark

Trademarking a business name can be a lengthy and complicated process. But, some names are easier to trademark than others. Nevertheless, there are general guidelines that can help to guide you in the right direction.

Made-up names are straightforward to trademark. These names do not have prior meaning before acquiring a trademark. The USPTO particularly likes these kinds of words. These names refer to your business as the source of goods and services. Some examples of made-up business names include Xerox, Exxon, and Kodak.

Arbitrary names are also fairly easy to trademark. These names include common English words whose meanings don’t directly refer to the goods and services you sell. Think of Apple Inc., the multinational technology company. The company had an easy time trademarking this name since it doesn’t sell fruit or related products. 

Finally, suggestive names also have good trademark potential. Such names indirectly refer to your business’s goods and services and require some imagination from your customers. Greyhound is an excellent example of a suggestive name. The name doesn’t necessarily imply a bus company, but it does imply speed and travel.

Next Steps

The next step after choosing your business name will be to make sure it’s available. First, you’ll need to do a business entity name search. You can typically do this on your state’s Secretary of State website. This is important since your registration will be denied if it’s already taken. You’ll also need to do a domain name search and federal trademark search before you can register your business name.

The next step will be to reserve your business name. Although not necessary, it is a precautionary step. It will ensure that your business name will still be available when it’s time to register your business.

Then, you’ll need to create your business. The business may be an LLC or corporation. The process for forming an LLC is straightforward. It includes naming your LLC, choosing a registered agent, filing the Articles of Organization, and getting an Employer Identification Number (EIN).

Be sure to refer to the Secretary of State website for complete details on how to go about this. You will register your business name during the filing process.

Finally, consider registering a trademark. A trademark will give you exclusive rights to ownership for the business name. Trademarks are invaluable for marketing and creating a brand identity. We have a great post on how to trademark a business name for you to use as the next step in your brand’s journey.

How to Start an LLC

If you’ve thought about starting an LLC, you’re at the right place.

Selecting an LLC entity structure is a wise choice. Not only are you protected from business-related lawsuits, but they are also easier to set up and more flexible than corporations.

Let’s not forget the multiple tax operations, ease of administration, and fewer ongoing reporting requirements.

Although every state has its own rules and procedures, you can follow a few basic steps to get your LLC up and running, no matter where you live.

The Easy Part of Starting an LLC

LLCs are often the go-to business structure for business owners and entrepreneurs, and it’s easy to see why.

The business formation process is very straightforward and easy. While you can take matters into your own hands, you can also sign up with excellent LLC services like IncFile and ZenBusiness.

These services take care of everything, from company formation to document filing to handling other legalities. Like I said, everything! What’s more, some of them also offer post-incorporation support and lifetime customer care, so you’ll always have expert advice available at your beck and call as long as you remain a part of their clientele.

To see all of our top picks for the best LLC services on the market today, check out our buying guide.

While paperwork is expected considering we’re talking about forming a legal business entity, establishing and maintaining an LLC is simple and requires less paperwork than other corporate entities. And hiring a service will rid you of this obligation, too.

The Difficult Parts of Starting an LLC

Like two sides of a coin, there’s good and bad to everything.

You’ll definitely face some key challenges when creating an LLC, which you have to prepare for. Firstly, you have to be very careful when picking the state in which you want to create your LLC.

LLCs are formed according to state-wise rules and regulations, and hence, the formation and administrative fees depend on the state you choose. Making the wrong choice can cost you in terms of time, money, and effort.

Naming your LLC is another challenge.

Your company name can be anything you like—provided it isn’t already registered by other LLCs or organizations. Considering the number of businesses and LLCs already operating, not every name you want will be up for grabs. Also, every state has specific guidelines concerning LLC names, so that’s another factor to keep in mind.

Don’t panic, though. You can handle everything as long as you’re informed and know how to proceed. Keep reading as I detail the steps involved in forming an LLC.

Step 1: Choose Your Governing State

Every state has its own set of rules and regulations concerning LLC formation. Precisely why selecting a state is the first step to start an LLC.

Know Your State-Specific Laws

Your best bet is to start an LLC in a state where you live and plan to do business.

If your company exists physically abroad or has a physical presence (offices, sales reps, storefronts, etc.) in different states, you’ll have to register as a foreign LLC in those states (it is still considered a foreign LLC in other states within the US).

It’s also important to note that sometimes forming a new company in a state with business-friendly lawyers does have its benefits. However, be sure to check the extra paperwork and related fees before you take the plunge.

Once you choose a state, educate yourself in the state-specific rules to start an LLC there.

Step 2: Pick Your Company Name

While it may look simple, naming your business can be surprisingly challenging.

You have to come up with a unique company name for your new startup—something that cannot be confused with other registered LLCs and businesses. At the same time, it should represent your brand and meet the rules related to names allowed for an LLC for your state.

Yes, you read that right: every state has specific rules when it comes to LLC names.

Consider State Guidelines

Although the rules vary state by state, there are a few general guidelines you’ll need to follow when choosing your LLC name:

  1. Your company name must include the phrase “limited liability company“ or any of its abbreviations (LLC or L.L.C.).
  2. Your company name must not include words that could cause your customers to confuse your company with a government entity, such as Treasury, State Department, FBI, and so on.
  3. You’ll have to file additional paperwork to register a name that uses restricted words like University, Bank, Attorney, and so on. You may also need a licensed person, such as a doctor or a lawyer, to be a part of your LLC, depending on the name you choose.

Understand Legal Name vs. Brand Name Nuances

You can have the same legal business name and brand name, but it can also be separate.

You see, your legal name is the name of your business that’s listed on all your legal documents whereas, your brand name is the name of your company you plan to use for marketing purposes and one your customers will see and recognize.

For instance, Hewlett-Packard is the legal business name of a company. But they have chosen the abbreviation HP as their brand name.

If you want to use a different brand name, you’ll have to file a Doing Business As (DBA) form, depending on your state.

Check Name Availability

You should now have a list of potential names. But before you shortlist one, you’ll have to run a state- and federal-level search to check its availability.

Go through your state’s business name database, followed by checking the domain name/social media channel availability.

Even if you don’t want to create a website or a social presence right away, you should still do this. You really don’t want to use an irrelevant domain name simply because your business name domain was already registered.

Lastly, carry out a federal trademark search using the U.S. Trademark Electronic Search System to ascertain if someone else has already trademarked your business name.

Reserve Your Company Name

Though optional, I highly recommend reserving your chosen company name if it’s available and you don’t plan on filing your LLC documents right away.

Nearly every state lets owners reserve a name by filing the necessary forms and paying a fee. The reservation period length, renewal policies, and filing fees differ based on your state.

Step 3: Sort Out Your Paperwork

Naturally, incorporating a limited liability corporation will involve paperwork—lots of it. From Articles of Organization to an LLC operating agreement, you must be meticulous with every document and ensure they’re filed properly.

Enlist a Registered Agent

A registered agent is a third party—an individual or a business—whose job is to send and receive official correspondence, lawsuits, subpoenas, and other legal document filings on your behalf.

Most states have made it compulsory for owners to name a registered agent who is a resident of their current country of operation. New York is the exception.

You can hire a person who’s a state resident and over the age of 18 to serve as a registered agent or sign up with companies that provide registered agent services for a fee.

File Your LLC Documents

You have to file the Articles of Organization, also known as Certificate of Organization, to establish your company as an LLC and reserve your company name. Think of it as making your limited liability company official.

You can either file your forms directly with the Secretary of State or consider using an LLC filing service. Remember, LLC formation documents are state-dependent; therefore, some states require more forms and additional documents than others.

You can always hire an attorney to help you navigate the process if you face any difficulty.

Create an LLC Operating Agreement

An operating agreement is a legal document outlining the member roles and ownership structure of your LLC. It also specifies the financial and working relationships among company members.

You can consider the agreement as a roadmap that describes how your LLC will be run. Not every state law requires an operating agreement, but it’s still a vital document to help to clarify your company’s overall management structure.

Here’s a list of the main components of an operating agreement:

  • Organization. This component deals with the company formation project and includes details, such as when the LLC was created, its members and board of directors, its ownership structure, etc.
  • Management and Voting. This component explains the LLC’s management, the kind of authority every member has, how they’ll vote, and how votes will be allocated.
  • Distributions. This component includes which LLC owners have given money to the company, how much, and how the company will raise additional cash. It can also specify ownership units in exchange for money.
  • Capital Contributions. This component describes how the company will split the profits and business debts among members. It may also include physical property, cash, business assets, among others.
  • Membership Changes. This component details the process for adding and removing members from the LLC. This situation can arise when you plan on expanding your business, and a member decides to leave. Bankruptcy or death can be other causes.
  • Dissolution. This component specifies circumstances when the company will be dissolved. It also covers what happens to the business assets and more in the event of dissolution.

Step 4: Kickstart Your LLC Business

This is where the action begins!

At this point, you only have a few things left, after which you can officially start making money from your business.

Get an EIN From the IRS

An EIN, or Employer Identification Number, is a nine-digit Social Security number for your LLC required for tax purposes. It’s also known as a Federal Employer Identification Number (FEIN) or Federal Tax Identification Number (FTIN).

You need an EIN to open a business bank account and hire employees. Once you obtain one, you can begin full-fledged operations. You have three options to get an EIN: through the IRS website, by email, or through fax. Doing it online will get you the EIN immediately.

Open Company Bank Accounts

You should separate your personal and business expenses from the very beginning. Otherwise, you may risk losing your LLC’s limited liability protection.

Moreover, opening a business bank account will help you manage and organize your business income and expenses better. Writing checks, building business credit, and making reports are other benefits that are all important for running a successful business.

Remember, every bank will have different requirements. While some will require an EIN, some may not. A business bank account is compulsory for multi-member LLCs, but even otherwise, it’s better to set up your company’s bank account just in case.

Start Your Business

You’re now finally ready to start doing business. Congratulations!

You’ve named and formed your LLC, and you have your EIN and bank account number. I recommend checking whether you need specific permits and licenses before conducting business.

Be sure to keep all your crucial company records up to date, including meeting minutes, financial records and contracts, income tax returns, and employment taxes. Trust me, this will keep you—and the tax authorities—very happy in the long run.

SmashingConf Fully Online For 2020

SmashingConf Fully Online For 2020

SmashingConf Fully Online For 2020

Rachel Andrew

2020 has been quite the year, and it’s only July. None of us can be certain what the rest of the year looks like, in particular for travel and events where lots of folks gather together. Given the uncertainty and the success of our online workshop series and Meets events, we’re taking all of our 2020 conferences online. How will that work? Read on to find out!

All of our online conference events will take place on the Hopin platform. We roadtested this platform for our Smashing Meets, and we love the way it allows for social chat and side events alongside the main conference. It’s as close as we can get to an in-person experience.

First Up: The Rescheduled SmashingConf Live!

We will be presenting SmashingConf Live on August 20th-21st. Two half-days, with four talks each day on UX, data visualization, CSS, and JavaScript.

Meet other people in our chat or network on our event platform. Join in on our Design and Coding Tournament, or enjoy watching folks taking part.

Join one of the many sessions! Listen to one of the fireside chats on privacy, web performance, and Machine Learning (ML). Get your website reviewed by one of our speakers.

Take a look at the full schedule. If you have bought a ticket to the postponed SmashingConf Live, your ticket will still be valid. We still have tickets available: register here and we will see you at the event.

We are still scheduling new workshops and repeats of our most popular workshops. Purchase a workshop with your conference ticket and save 100USD.

Then, we have moved our in-person events online. These will be as close as possible to the in-person experience, with side-events, a mystery speaker, and all the fun you expect from a SmashingConf.

September 7th–8th: SmashingConf Freiburg Online

SmashingConf Freiburg Online 2020The Freiburg conference is moving online on the original dates: September 7th–8th. One track, two days and 13 speakers, with all of the actionable insights you expect from SmashingConf. We’ll be running the event tied to the timezone in Germany — making this a great event for Europeans. Check out the schedule, and buy tickets here.

October 13th–14th: SmashingConf Austin (and New York) Online

SmashingConf Austin Online 2020We have combined the programming for New York and Austin as these two events were so close together and similar to each other. We’ll be running this event in Central time, just as if we were all in Austin. Check out the schedule, and buy tickets here. We’d love to see you in October!

November 10th–11th: SmashingConf San Francisco Online

SmashingConf San Francisco Online 2020In PST join us for a virtual San Francisco event on November 10th–11th. The schedule and tickets are online for you to take a look. We’ll be sure to have a great celebration for our final event of 2020!

Existing Ticketholders

We have moved your in-person ticket to the 2021 edition of your chosen conference and in order that you don’t miss out this year, you are invited to the online version of the event you registered for. Two for the price of one as our thanks for your support. If that doesn’t work out for you, we do have options as explained in the email. Didn’t get the email? Drop the team a line at hello@smashingconf.com and we will get back to you.

Join Us!

There are tickets now on sale for all of the above events — we are really looking forward to all of them! One thing we have learned with our online workshops is that taking events online means that lots of people can attend who can’t travel to conferences even in more usual times. That’s really exciting, and we look forward to sharing some days of learning and fun with you all!

Smashing Editorial (cr, aa, il)

Responding (Rather Than Reacting) to Crisis

Week by week, day by day, then hour by hour. On the week of the 9th of March everything changed. And it changed fast. That week I was in New York for the Business Agility Conference and I watched COVID-19 spread quickly through the state, but fear spread faster.

I want to share our experiences as a community organisation and our response - specifically in the context of running a major conference at the exact moment everything changed.

Consistent Backends and UX: How Do New Algorithms Help?

In previous articles, we explained what consistency is, the difference between "strong" and "eventual" consistency, and why this distinction is more important than ever to modern application developers. We also introduced the notion of ‘consistency tax’: the extra time and effort that a development team needs to invest if they choose a system with only eventual consistency or limited consistency guarantees. 

Several modern databases use state-of-the-art algorithms to eliminate the tradeoff between consistency and performance. Of course, we would not want you to take our word for it without a proper explanation. Therefore, in this final article, we dive into the technical details behind some of these databases. Typically, the only source of information for these technical details are research papers, so the point of this article is to explain these systems in simpler terms.  Because these systems are far more complex in reality, we’ll provide the links in the text in case you want to know more and love to read research papers.

Introduction

In parts 1 and 2 of this article series, we explained how distributed databases use different replicas to spread the load and/or serve users in different regions. To summarize here, for new readers, a replica is just a duplication of your data. And this duplication can live either in the same location for redundancy, or in another location to offer lower latencies to users in those locations. Having multiple replicas that can handle both reads and writes has a strong advantage, because the database becomes scalable and can offer lower latency to all your users, no matter where they are. However, you do not want each of the replicas to have their own interpretation of the data. Instead of small data differences between each replica, you want one unique interpretation of the data, which is often referred to as a single source of truth. In order to achieve that, you need to have some sort of agreement on data changes. We need a consensus. 

Waiting for consensus

Every distributed database that aims to be consistent has multiple replicas that have to agree on the outcome of transactions. If conflicting data updates happen these replicas have to agree which update goes through and which doesn’t. This is called “consensus.”

Let’s go back to our game to exemplify why we need consensus. Imagine that the player of our game only has 3 gold pieces left, but tries to simultaneously buy two different items from two different shops for a total budget larger than the remaining 3 gold pieces. This involves two transactions, one for each item/shop, which we denote as t1 and t2. And let's pretend that the owners of the shops are across the globe from each other, so the transactions take place on two different replicas. If both of the transactions are accepted the user would be able to buy more than he can afford. How do we prevent the user from overspending?

 An example of two replicas that each receive a transaction (t1) and (t2). If we let both go through it would violate our business rule that users can’t spend more than they own. Clearly these replicas need decide which transaction is allowed and which should be blocked.

We know that these replicas need to communicate in order to agree on the final outcome of the two transactions. What we don’t know is how much communication they need. How many messages have to go back and forth between replica 1 and replica 2 in order to agree which transaction gets priority and which one gets cancelled?

As replicas in a distributed database are meant to serve users from different regions in the world with low latency, they are far apart by nature. By placing duplicates of the data closer to the end users, these users can read with lower latencies. However, when writes happen, the replicas need to send messages to each other to update all duplicated data uniformly--and these messages can take several 10s of milliseconds because they're bridled by the speed of light as they travel across the globe. It’s clear that we need to keep the number of cross-data center messages as small as possible so that the end user isn't left waiting around for these replicas across the globe to come to consensus. 

For a long time, it had been thought to be impossible or impractical to do this. But today, several technologies exist to keep the number of round-trips low and bring latency within normal bounds.

The distance between New York and Paris is 5,839 km. For light to travel from New York to Paris and then back again would take 40 milliseconds.

Theoretical vs real-world speed

If it takes a minimum of 40 milliseconds to travel between New York and Paris, a round-trip would take at least 80ms. The most important question that remains is: “How many round-trips do we need to execute transactions?” The answer to this question depends largely on the algorithms that are used.

How to reach agreement? 

It appears that in order to achieve consensus about something, you need at least four hops (or two rounds of communication): one round to let each replica know that you are about to do something, then a second round to actually execute the action once everyone agrees that this action can be executed. This is something called distributed two-phase commit which is used by almost any distributed database. Let’s look at an analogy. Imagine you have to agree with a group of people on a good date for a party. It might go like this:

First, Polly asks everyone if they can make it to a party on Monday; she now knows that everyone can actually come to the party. Next, she needs to let everyone know that the party will indeed be on Monday, and people acknowledge that they will be there.

These are very similar to the two phases in two-phase commit. Of course, databases don’t party so the phases have different functions. In the case of a distributed system, the phases are called: 

  • Prepare or request to commit: make sure that everyone knows about the transaction. In this phase, replicas in a distributed database store the query in some kind of todo list (a transaction log) on the disk to make sure they still know what to do if the server goes down. 
  • Commit: actually calculate the results and store them 

Of course, as always, it’s never that simple. There are many flavors of such algorithms. For example, there are improvements of two-phase commits called Paxos and Raft and even many variants of these (multi paxos/fast paxos/...). These alternatives aim to improve issues of availability or performance. To understand the availability issues, simply imagine that Polly falls sick or Amber’s phone dies. In the former case, she would be unable to continue her work as party coordinator and in the latter case, it would temporarily be impossible for Polly to know whether Amber agrees on the party date. Raft and Paxos improve on this by only requiring the majority to answer and/or selecting a new coordinator automatically when the leader or coordinator goes down. A good animation that shows how Raft works can be found here

Agree about what? 

Can we conclude that each distributed database then requires 2 round trips to write/read data? No, the reality is more complex than that. On one side, there are many possible optimizations and on the other side, there might be multiple things we need to agree on. 

  • Agree on the time of a transaction
  • Agree whether reads can be executed

The simplest example that has multiple two-phase commit rounds is probably Cassandra’s light-weight transactions. They first require consensus agreements on reads and then consensus on writes. If each message takes 40ms to travel, this means the entire transaction requires 320ms or longer--depending on the required "locks" as we’ll explain later.

This is fairly easy to understand, but there are some issues with the implementation since Cassandra was never designed to be strongly consistent. Does that mean that strongly consistent databases are even slower? Not at all! Modern distributed databases use a mix of interesting features to achieve better performance.

Waiting for locks

Not only do we need to wait for messages to come to an agreement, but almost every distributed database will also use "locks". Locks guarantee that the data about to be altered by a transaction is not being simultaneously altered by another transaction. When data is locked, it can’t be altered by other transactions, which means that these transactions have to wait. The duration of such a lock, therefore, has a big impact on performance. Again, this performance impact depends on the algorithm and optimizations that were implemented by the database. Some databases hold locks longer than others and some databases do not use locks at all. 

Now that we know enough basics, let's dive into the algorithms. 

Modern Algorithms for Consensus

We now know that consensus and locks are the main bottlenecks that we need to optimize. So let’s go back to the main question of this article: “How does new technology lower these latencies within acceptable bounds?” Let’s start off with the first of these modern algorithms, which sparked interesting ideas for the rest of the database world.  

2010 - Percolator

Percolator is an internal system built upon BigTable (one of the early NoSQL databases built by Google) that Google used to make incremental updates to their search index's page crawling speed.  The first paper on Percolator was released in 2010, inspiring the first distributed database inspired by it: FoundationDB in 2013. FoundationDB then got acquired by Apple to finally release a stable version in 2019, together with the release of a FoundationDB paper.

Although Percolator allowed Google to speed up page crawling significantly, it  was not originally built as a general-purpose database. It was rather intended to be a fast and scalable incremental processing engine to support Google's search index. Since the search index had to be scalable, many calculations had to happen on many machines concurrently, which required a distributed database. As we learned in the previous articles, programming against distributed systems that store data can be very complex, and traditionally required that developers pay a 'consistency tax' to program around unpredictable database behavior. To avoid paying so high a consistency tax, Google  adopted a strong consistency model when they built Percolator. 

The consistency model of Percolator could not exist without two key ingredients: versioning, and the Timestamp Oracle

Ingredient 1: Versioning

As we mentioned in previous articles, strong consistency requires us to agree on a global order for our transactions. Versioning is one of the elements that will be crucial to many of these algorithms since it can be used for failure recovery, to help replicate data, and to support a consistency model called ‘snapshot isolation’.

Versioning helps in failure recovery when a node fails or gets disconnected. When the node comes back online, thanks to the versions, it can easily restore its state by starting at the last snapshot that it was able to save, and then replaying the transactions based on the versions in another node. All it has to do is ask another node: “Hey, what has changed since I was gone?” Without versioning, it would have to copy over all the data, which would have put a huge strain on the system.

Failure recovery is great, but the strongest advantage lies in the fact that such a versioning system can be used to implement a strong consistency model. If the versioning system keeps versions for each data change, we can actually go back in time and do queries against an earlier version of our data.

Some bright minds found out that this historical querying capability could be used to provide a consistency model called ‘snapshot consistency’. The idea of snapshot consistency is to pick a version of the data at the beginning of the query, work with that version of the data during the rest of the query, then write a new version at the end of the query.

There is one possible pitfall here: during the execution of such a query, another query could be writing data that conflicts with the first query. For example, if two write queries start with the same snapshot of a bank account with $1000 on it, they could both spend the money since they do not see the writes of the other query. To prevent that, an additional transaction will take place to see if the snapshot's values changed before either query writes a result. If something conflicting did happen to change the snapshot's value, the transaction is rolled back and has to be restarted.

However, there is still one problem Percolator needs to solve. Clocks on different machines can easily drift apart a few 100s of milliseconds. If data for a query is split over multiple machines such as in our initial example, you can’t simply ask both machines to give you data at a certain timestamp since they have a slightly different idea of what the current time is. It’s a matter of milliseconds, but when many transactions have to be processed, a few milliseconds are all it takes to go from correct data to faulty data.

Time synchronization brings us to the second Percolator ingredient.

Ingredient 2: The Timestamp Oracle

Percolator’s solution to the time synchronization problem is something called the Timestamp Oracle. Instead of letting each node dictate its own time (which was not accurate enough), Percolator uses a central system that exposes an API providing you with a timestamp. The node on which this system lives is the Timestamp Oracle. When we keep multiple versions of our data, we need at least two timestamps for each query. First, we need a timestamp to query a snapshot, which we will use to read data. Then, at the end of the transaction when we are ready to write, we need a second timestamp to tag the new data version. As a result, Percolator has the disadvantage that it needs at least two calls to the Timestamp Oracle, which introduces even more latency if the Oracle is in another region from the nodes where the calls originated. When Google came up with their Distributed Database Spanner, they solved this problem.  

2012 - Spanner

Spanner was the first globally distributed database to offer strong consistency, which essentially means that you get low latency reads without having to worry about potential database errors anymore. Developers no longer need to invest extra work to circumvent potential bugs caused by eventual consistency. The paper was released in 2012 and it was released to the general public in 2017 as Spanner Cloud.

Ingredient 1: Versioning

Google built Spanner after their experience with Percolator. Since Percolator's versioning system proved to work, they kept this in Spanner's design.  This versioning system provided the ability to do very fast reads (snapshot reads) if you were willing to give up consistency. In that case, you could run queries and give Spanner a maximum age of the results. For example: “Please return my current inventory as fast as possible, but the data can only be 15 seconds old”. Basically, instead of abandoning consistency, you could now choose for each query which consistency level suited your use-case. 

Ingredient 2: TrueTime

To eliminate the extra overhead to synchronize time between machines, Spanner abandoned the Timestamp Oracle in favor of a new concept called TrueTime. Instead of having one central system that provides a unified view of time, TrueTime tries to reduce the clock drift between the machines themselves. Engineers at Google managed to limit local clock drift by implementing a time synchronization protocol based on GPS and atomic clocks. This synchronization algorithm allowed them to limit clock drift within a boundary of 7ms, but required specific hardware that consisted of a combination of GPS and Atomic clock technology. 

Of course, there is still a potential clock drift of 7ms, which means that two servers could still interpret a timestamp to be two different snapshots. This is solved by the third ingredient for Spanner: commit-wait. 

Ingredient 3: Commit-wait 

In fact, the TrueTime API does not return one timestamp but returns and interval n which it is sure that the current timestamp should lie. Once it is ready to commit, it will just wait a few milliseconds to cope with the potential drift which is called ‘Commit-wait’. This makes sure that the timestamp that will be assigned to the write is a timestamp that has passed on all nodes. It’s also the reason that running Spanner on commodity hardware can not deliver the same guarantee since the wait period would need to be a few 100s of milliseconds.

2012 - Calvin

The first paper on the Calvin algorithm was released in 2012, from research at Yale. Just like the previous approaches, Calvin consists of several ingredients. Although versioning is also part of it, the rest of the approach is radically different which requires a few extra ingredients to work: deterministic calculations, and the separation of ordering from locking. These are ingredients that are typically not found in databases with traditional architecture. By changing the architecture and accepting that queries have to be deterministic, Calvin can reduce the worst-case number of cross- datacenter messages to two. This pushes down the worst-case latency of global transactions significantly and brings it below 200ms or theoretically even below 100ms. Of course, in order to believe that this is possible, you might want to know how it works first, so let’s take a look at the algorithm.  

Ingredient 1: Versioning

Similar to Percolator and Spanner, Calvin relies on versioned data. These snapshots in Calvin are mainly used to ensure fault-tolerance. Each node stores different snapshots which can be considered as checkpoints. A disconnected node that comes back online only needs to grab the timestamp of the last checkpoint it has witnessed, and then ask another node to inform him of all the transactions that came after that checkpoint. 

Ingredient 2: Deterministic calculations

Many front-end developers will have heard of the Elm frontend framework which implements a React Redux-like workflow. Elm has a steeper learning curve than similar JavaScript-based frameworks because it requires you to learn a new language. However, because the language is functional (no side-effects), Elm allows some impressive optimizations. The key is that functions in Elm give up destructive manipulations to be deterministic. You can run the same function with the same input twice and it will always yield the same result. Because they are deterministic, Elm queries can now more efficiently decide how to update views. 

Similar to Elm, Calvin has given up something to speed up the calculations. In the case of Calvin, we can basically say that the result of a transaction will be the same, whether it’s executed on machine A or Machine B. This might seem evident, but typically databases do not guarantee this. Remember that SQL allows you to use the current time or allows something called interactive transactions where user input can be inserted in the middle of a transaction, both of which could violate the guarantees provided by Calvin. 

To achieve deterministic calculations, Calvin (1) needs to take out calculations such as current time and pre-calculate them, and (2) does not allow interactive transactions. Interactive transactions are transactions where a user starts a transaction, reads some data, provides some additional user input in the middle, and then finally does some extra calculations and possibly some writes. Since the user is not predictable, such a transaction is not deterministic. In essence, Calvin trades in a minor convenience (interactive transactions) for great performance.

Ingredient 3: Separate the problem of ordering.

Databases spend a lot of time negotiating locks in order to make it look like the system is executing in a specific order”. If an order is all you need, maybe we can separate the problem of locking from the problem of ordering. This means though that your transactions have to be pure.

— Kyle Kingsbury

Separating the concern of ordering transactions from the actual execution has been considered many times in the database world but without much success. However, when your transactions are deterministic, separating the ordering from the calculations actually becomes feasible. In fact, the combination of deterministic calculations and the separation of ordering from the rest of the algorithm is extremely powerful since it helps to reduce lock duration and greatly diminishes the slower communication between distant nodes (cross-datacenter communication). 

Shorter lock duration

Whenever locks are held on a piece of data, it means that other queries that use that data have to wait. Therefore, shorter locking results in better performance. Below is an image that shows an overview of the locking procedure in Calvin compared to how a traditional distributed database might do it. Most databases would keep a lock on data until there is at least a consensus on what to write while Calvin would only keep the lock until all nodes agree on the order. Because the calculations are deterministic and they all agreed on the order, each node will calculate separately and come to the same end result.

Less communication between distant nodes

Besides the advantages in lock duration, separating ordering from the rest of the algorithm also requires less communication. As explained before with the Cassandra example, a distributed database typically requires cross-datacenter communication in many phases of their algorithm. In the case of Calvin, the only moment we need to agree on something is at the moment we determine the order. With the Raft protocol, this could be done in two hops which makes it possible to achieve sub 100ms latencies for read-write queries. 

Together with the reduced lock time, this also brings superb throughput. The original Calvin paper has also done experiments that show that this approach significantly outperforms traditional distributed database designs under high contention workloads. Their results of half a million transactions per second on a cluster of commodity machines are competitive with the current world record results obtained on much higher-end hardware.

Run on any hardware

Besides that, Calvin has another advantage: it no longer requires specific hardware in order to obtain such results. Since Calvin can run on commodity machines, it can run on any cloud provider.

2014 - The FaunaDB flavor of Consensus

Ingredient 1: Versioning

FaunaDB has its own distributed transaction protocol with some similarities to Calvin. Just like the former approaches, FaunaDB’s data is also versioned. Since versioning is not only useful for the consistency model but can also have business value, FaunaDB has upgraded this mechanism to a first-class citizen that can be used by end-users. This feature essentially allows time-traveling queries. End-users can execute a query on historic data to answer questions such as: “What would the result of this query have been 20 days ago?”. This is useful to recover data that was accidentally overwritten, audit data changes, or simply incorporate time-travel in your application’s features. 

Ingredient 2 and 3: Deterministic calculations and Separation

Like Calvin, FaunaDB also has deterministic calculations and separates the problem of ordering from the rest of the algorithm. Although there are similarities, calculating transactions in FaunaDB happens in a different phase than Calvin. Where Calvin takes advantage of the deterministic nature to execute the same transaction multiple times once the order is set, FaunaDB will calculate only once prior to consensus on the order of the transactions. Which brings us to the fourth ingredient.

Ingredient 4: Optimistic calculation

FaunaDB adds a fourth ingredient which we have seen already when we talked about Snapshot Isolation: Optimistic calculations instead of locking. 

FaunaDB will not lock, but will instead optimistically calculate the result of the transaction once in the node where the transaction was received, and then add the result and the original input values to the log. Where Calvin would have saved the query that needs to be executed in the transaction log, FaunaDB will save both the result of the calculation and the original input values in the log. Once there is consensus on the order in which the results have to be applied, FaunaDB will verify whether the input data for that calculation has changed or not (thanks to versioning). If the input values have changed, the transaction is aborted and restarted, if they have remained the same, the results are applied on all nodes without any extra calculation.

FaunaDB’s algorithm has similar advantages as Calvin, but reduces the amount of required calculations in the cluster. 

Conclusion

In this series, we have explained how strong consistency can help you build error-free applications more efficiently. In this last article, we have further explained how revolutionary ideas can power a new generation of distributed databases that are both consistent and performant. The takeaway in the previous articles was: “Consistency matters”. In this final article, the takeaway is encompassed in the following:

In the near future, if you read a phrase such as: 

“Many NoSQL databases do not offer atomic writes for multiple documents, and in return give better performance. And while consistency is another great feature of SQL databases, it impedes the ability to scale out a database across multiple nodes, so many NoSQL databases give up consistency.” - the biggest challenges of moving to NoSQL

Realize that modern algorithms enable databases to deliver consistency without centralization. In this article, we have seen a few examples of algorithms and databases that do this. Databases that build upon these algorithms are a next generation of databases that no longer can be described by simple categories such as NoSQL, SQL, or even NewSQL.

With distributed cloud databases based on Percolator, Spanner, Calvin, and FaunaDB’s transaction protocol, you can have highly performant distributed databases that offer stronger consistency models. This means that you can build data-intensive applications that offer low-latency without having to worry about data errors, performance, or service provisioning. In such systems, consistency is transparent, and you do not have to think about it as a developer. The next time you choose a database, pick one that is consistent by default.

The post Consistent Backends and UX: How Do New Algorithms Help? appeared first on CSS-Tricks.

SmashingConf New York 2019: Videos And Photos

SmashingConf New York 2019: Videos And Photos

SmashingConf New York 2019: Videos And Photos

Rachel Andrew
<p>We love running our event in New York, and given that it sold out a long way in advance we think that you do too. If you didn&rsquo;t manage to get a ticket, this post should give you a feel for what happened. We also have the video of the presentations to share with you.</p> <p>Enjoy this roundup, and if you want to be there in person for one of our events next year, tickets are on sale right now!</p> <figure class=" break-out article__image "> <a href="https://www.flickr.com/photos/drewm/albums/72157711342495838/"> <img srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/183cd430-f62c-4d9a-88f5-0a448c08b882/ny-posters.jpg 400w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_800/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/183cd430-f62c-4d9a-88f5-0a448c08b882/ny-posters.jpg 800w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1200/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/183cd430-f62c-4d9a-88f5-0a448c08b882/ny-posters.jpg 1200w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1600/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/183cd430-f62c-4d9a-88f5-0a448c08b882/ny-posters.jpg 1600w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_2000/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/183cd430-f62c-4d9a-88f5-0a448c08b882/ny-posters.jpg 2000w" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/183cd430-f62c-4d9a-88f5-0a448c08b882/ny-posters.jpg" sizes="100vw" alt="A set of mock show posters feature the Smashing cat" /> </a> <figcaption class="op-vertical-bottom"> Topple the Cat greeted attendees by way of our Broadway posters (Photo credit: <a href='http://drewm.photo'>Drew McLellan</a>) </figcaption> </figure> <ul> <li><a href="#the-presentations">The Presentations</a></li> <ul> <li><a href="#day-1">Day 1</a></li> <li><a href="#day-2">Day 2</a></li> </ul> <li><a href="#workshops">Workshops</a></li> <li><a href="#side-activities">Side Activities</a></li> <ul> <li><a href="#morning-run">Morning Run</a></li> <li><a href="#evening-events">Evening Events</a></li> </ul> </ul> <h3 id="the-presentations">The Presentations</h3> <p>The main focus of the conference is the speakers and the presentations they bring. As with all of our 2019 events, some speakers opted to present without slides.</p> <figure class=" break-out article__image "> <a href="https://www.flickr.com/photos/drewm/albums/72157711342495838/"> <img srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/734455b5-4fce-4a36-ab4e-b53c5d457e66/ny-brad.jpg 400w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_800/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/734455b5-4fce-4a36-ab4e-b53c5d457e66/ny-brad.jpg 800w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1200/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/734455b5-4fce-4a36-ab4e-b53c5d457e66/ny-brad.jpg 1200w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1600/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/734455b5-4fce-4a36-ab4e-b53c5d457e66/ny-brad.jpg 1600w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_2000/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/734455b5-4fce-4a36-ab4e-b53c5d457e66/ny-brad.jpg 2000w" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/734455b5-4fce-4a36-ab4e-b53c5d457e66/ny-brad.jpg" sizes="100vw" alt="One person in the middle of the stage, two behind a desk" /> </a> <figcaption class="op-vertical-bottom"> Brad Frost, Dan Mall, and Ian Frost co-presenting (Photo credit: <a href='http://drewm.photo'>Drew McLellan</a>) </figcaption> </figure> <p>In the tables below, I’ve linked to slides for those talks which had them, plus the video of each presentation. Enjoy two days worth of learning from the comfort of your own couch!</p> <h4 id="day-1">Day One</h4> <p>The <a href="http://smashed.by/midtown">Day One Collaborative Doc</a> created by attendees is full of takeaways from the first day of the conference.</p> <table class="tablesaw break-out" data-tablesaw-mode="stack" data-tablesaw-minimap> <thead> <tr> <th data-tablesaw-priority="persist">Speaker Name</th> <th>Talk Title</th> <th>Video &amp; Slides</th> </tr> </thead> <tbody> <tr> <td>Dan Mall and Brad Frost</td> <td>Designer vs. Developer</td> <td><a href="https://vimeo.com/367846576">Video</a>, <a href="https://smashingconf.com/pdf/smashingConfNYC2019-designerVsDeveloper.pdf">Slides</a></td> </tr> <tr> <td>Marcy Sutton</td> <td>Garbage Pail Components</td> <td><a href="https://vimeo.com/367853694">Video</a>, <a href="https://marcysutton.github.io/garbage-pail-components/">Slides</a> </td> </tr> <tr> <td>Trine Falbe</td> <td>Designing For Kids Is Not A Game</td> <td><a href="https://vimeo.com/367858039">Video</a>, <a href="https://smashingconf.com/pdf/2019-smashing-design-for-kids.pdf">Slides</a></td> </tr> <tr> <td>Denys Mishunov</td> <td>I Built A Frankenstein Monster: 3 Stories Of Migration</td> <td><a href="https://vimeo.com/367865086">Video</a>, <a href="https://noti.st/mishunov/SfkHLg/i-built-frankenstein-monster-3-stories-of-migration">Slides</a></td> </tr> <tr> <td>Maggie Wachs</td> <td>Lessons Learned From A Decade Of Building Pattern Libraries</td> <td><a href="https://vimeo.com/367869445">Video</a>, <a href="https://github.com/maggiewachs/SmashingConf2019NYC">Slides</a></td> </tr> <tr> <td>Wes Bos</td> <td>Slam Dunk Your JavaScript Fundamentals</td> <td><a href="https://vimeo.com/367872808">Video</a>, <a href="https://wesbos.github.io/Slam-Dunk-JavaScript/#1">Slides</a></td> </tr> </tbody> </table> <h4 id="day-2">Day Two</h4> <p>Check out the <a href="http://smashed.by/broadway">Day Two Collaborative Doc</a> for more resources and thoughts from our attendees and speakers.</p> <p>Our mystery speaker was dina Amin. The Smashing Team love her <a href="https://www.instagram.com/dina.a.amin/">Instagram</a>!</p> <blockquote class="twitter-tweet"><p lang="en" dir="ltr">Mystery speaker was soooo good! Dina’s talk about the stop motion animation and her videos blew the minds away of the audience! Enjoyed every bit of it <a href="https://twitter.com/hashtag/smashingconf?src=hash&amp;ref_src=twsrc%5Etfw">#smashingconf</a> 🗽<a href="https://twitter.com/hashtag/animation?src=hash&amp;ref_src=twsrc%5Etfw">#animation</a> <a href="https://twitter.com/hashtag/productdesign?src=hash&amp;ref_src=twsrc%5Etfw">#productdesign</a> <a href="https://t.co/YRS41ou9LZ">pic.twitter.com/YRS41ou9LZ</a></p>&mdash; Naresh Baleswaran (@nareshbabub) <a href="https://twitter.com/nareshbabub/status/1184478978440126466?ref_src=twsrc%5Etfw">October 16, 2019</a></blockquote> <p>We then enjoyed talks covering a wide range of topics from our day two speakers.</p> <figure class=" break-out article__image "> <a href="https://www.flickr.com/photos/drewm/albums/72157711342495838/"> <img srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/49cca749-d654-4f33-b719-379e1a981eb9/ny-dina.jpg 400w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_800/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/49cca749-d654-4f33-b719-379e1a981eb9/ny-dina.jpg 800w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1200/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/49cca749-d654-4f33-b719-379e1a981eb9/ny-dina.jpg 1200w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1600/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/49cca749-d654-4f33-b719-379e1a981eb9/ny-dina.jpg 1600w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_2000/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/49cca749-d654-4f33-b719-379e1a981eb9/ny-dina.jpg 2000w" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/49cca749-d654-4f33-b719-379e1a981eb9/ny-dina.jpg" sizes="100vw" alt="A woman presenting on stage" /> </a> <figcaption class="op-vertical-bottom"> dina Amin (Photo credit: <a href='http://drewm.photo'>Drew McLellan</a>) </figcaption> </figure> <table class="tablesaw break-out" data-tablesaw-mode="stack" data-tablesaw-minimap> <thead> <tr> <th data-tablesaw-priority="persist">Speaker Name</th> <th>Talk Title</th> <th>Video &amp; Slides</th> </tr> </thead> <tbody> <tr> <td>dina Amin</td> <td>Mystery Speaker</td> <td><a href="https://vimeo.com/367875942">Video</a></td> </tr> <tr> <td>Harry Roberts</td> <td>Demystifying Vim, Live!</td> <td><a href="https://vimeo.com/367879587">Video</a></td> </tr> <tr> <td>Sara Soueidan</td> <td>Applied Accessibility: Practical Tips For Building More Accessible Front-Ends</td> <td><a href="https://vimeo.com/367882926">Video</a>, <a href="https://www.dropbox.com/s/g344gdjlijyuqj1/applied-accessibility-talk.pdf?dl=0">Slides</a></td> </tr> <tr> <td>Remy Sharp</td> <td>Using A Modern Web To Create 1980s Horrible Slow and Loud Loading Screens</td> <td><a href="https://vimeo.com/367885607">Video</a></td> </tr> <tr> <td>Scott Jehl</td> <td>Move Fast And Don't Break Things</td> <td><a href="https://vimeo.com/367887672">Video</a></td> </tr> <tr> <td>Miriam Suzanne</td> <td>CSS is Rad</td> <td><a href="https://vimeo.com/367890815">Video</a>, <a href="https://sliiides.netlify.com/css-is-rad/">Slides</a></td> </tr> </tbody> </table> <h3 id="workshops">Workshops</h3> <figure class=" break-out article__image "> <a href="https://www.flickr.com/photos/drewm/albums/72157711342495838/"> <img srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3a2f5db7-48a5-4ca9-8f62-abc6d0320b56/ny-workshop.jpg 400w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_800/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3a2f5db7-48a5-4ca9-8f62-abc6d0320b56/ny-workshop.jpg 800w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1200/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3a2f5db7-48a5-4ca9-8f62-abc6d0320b56/ny-workshop.jpg 1200w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1600/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3a2f5db7-48a5-4ca9-8f62-abc6d0320b56/ny-workshop.jpg 1600w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_2000/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3a2f5db7-48a5-4ca9-8f62-abc6d0320b56/ny-workshop.jpg 2000w" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3a2f5db7-48a5-4ca9-8f62-abc6d0320b56/ny-workshop.jpg" sizes="100vw" alt="People behind desks working with stickers and paper" /> </a> <figcaption class="op-vertical-bottom"> Workshop attendees working together (Photo credit: <a href='http://drewm.photo'>Drew McLellan</a>) </figcaption> </figure> <p>Our workshops are a big part of each of our Smashing conferences. We held busy workshops the day before and day after SmashingConf New York, at the Microsoft Technology Center. Here is what attendees could choose from.</p> <table class="tablesaw break-out" data-tablesaw-mode="stack" data-tablesaw-minimap> <thead> <tr> <th data-tablesaw-priority="persist">Name</th> <th>Workshop Title</th> </tr> </thead> <tbody> <tr> <td>Dan Mall and Brad Frost</td> <td><a href="https://smashingconf.com/ny-2019/workshops/dan-mall-brad-frost/">Designer / Developer Collaborative Workflow</a></td> </tr> <tr> <td>Scott Jehl</td> <td><a href="https://smashingconf.com/ny-2019/workshops/scott-jehl/">Lightning Fast Web Performance</a></td> </tr> <tr> <td>Marcy Sutton</td> <td><a href="https://smashingconf.com/ny-2019/workshops/marcy-sutton/">Building Accessible Sites With Gatsby</a></td> </tr> <tr> <td>Vitaly Friedman</td> <td><a href="https://smashingconf.com/ny-2019/workshops/vitaly-friedman-ux/">Smart Responsive UX Design Patterns</a></td> </tr> <tr> <td>The Deque Team</td> <td><a href="https://smashingconf.com/ny-2019/workshops/deque/">How To Translate Wireframes Into Accessible HTML/CSS</a></td> </tr> <tr> <td>Rachel Andrew</td> <td><a href="https://smashingconf.com/ny-2019/workshops/rachel-andrew/">Next Steps With CSS Layout</a></td> </tr> <tr> <td>Remy Sharp</td> <td><a href="https://smashingconf.com/ny-2019/workshops/remy-sharp/">Modern Universal React Dev With Next.js</a></td> </tr> <tr> <td>Harry Roberts</td> <td><a href="https://smashingconf.com/ny-2019/workshops/harry-roberts/">Front-End Performance: Building Faster Websites</a></td> </tr> <tr> <td>Vitaly Friedman</td> <td><a href="https://smashingconf.com/ny-2019/workshops/vitaly-friedman/">New Front-End Adventures</a></td> </tr> </tbody> </table> <blockquote class="twitter-tweet"><p lang="en" dir="ltr">Spending the next few days disgesting all of the front-end nuggets from today&#39;s workshop. Thanks <a href="https://twitter.com/hashtag/smashingconf?src=hash&amp;ref_src=twsrc%5Etfw">#smashingconf</a>! <a href="https://t.co/c8oBcWa0Fw">pic.twitter.com/c8oBcWa0Fw</a></p>&mdash; Misha Trombley (@mishhmich) <a href="https://twitter.com/mishhmich/status/1184951201332375552?ref_src=twsrc%5Etfw">October 17, 2019</a></blockquote> <h3 id="side-activities">Side Activities</h3> <p>A conference isn’t just about the talks and speakers. We want to make spaces where attendees and speakers can learn from each other and share experiences in a more informal setting. We want to offer something for everyone &mdash; from the party-goers to the fitness enthusiasts, and everyone in-between! So at lunchtime, we had lunch sessions: On Day 1, we saw the &ldquo;Web We Want&rdquo; panel discussion from Microsoft, and on Day 2, Deque ran a session for those who wanted to learn more about accessibility over a plate of lunch.</p> <p>We also invited people who organize community meetups in the local area onstage to tell the audience about their group.</p> <figure class=" break-out article__image "> <a href="https://www.flickr.com/photos/drewm/albums/72157711342495838/"> <img srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/dc3c7484-90a1-4490-b619-dc5e67303a6b/ny-community.jpg 400w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_800/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/dc3c7484-90a1-4490-b619-dc5e67303a6b/ny-community.jpg 800w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1200/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/dc3c7484-90a1-4490-b619-dc5e67303a6b/ny-community.jpg 1200w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1600/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/dc3c7484-90a1-4490-b619-dc5e67303a6b/ny-community.jpg 1600w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_2000/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/dc3c7484-90a1-4490-b619-dc5e67303a6b/ny-community.jpg 2000w" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/dc3c7484-90a1-4490-b619-dc5e67303a6b/ny-community.jpg" sizes="100vw" alt="A woman onstage under a slide saying Local Community" /> </a> <figcaption class="op-vertical-bottom"> Community Groups talk to the Smashing audience (Photo credit: <a href='http://drewm.photo'>Drew McLellan</a>) </figcaption> </figure> <h4 id="morning-run">Morning Run</h4> <blockquote class="twitter-tweet"><p lang="en" dir="ltr">What a smashing way to start a day of <a href="https://twitter.com/smashingconf?ref_src=twsrc%5Etfw">@smashingconf</a> 🏃‍♂️☀️ <a href="https://twitter.com/hashtag/grouprun?src=hash&amp;ref_src=twsrc%5Etfw">#grouprun</a> <a href="https://twitter.com/hashtag/morningrun?src=hash&amp;ref_src=twsrc%5Etfw">#morningrun</a> <a href="https://twitter.com/hashtag/5k?src=hash&amp;ref_src=twsrc%5Etfw">#5k</a> <a href="https://twitter.com/hashtag/centralpark?src=hash&amp;ref_src=twsrc%5Etfw">#centralpark</a> <a href="https://twitter.com/KajBergkvist?ref_src=twsrc%5Etfw">@kajbergkvist</a> <a href="https://t.co/1lo19y12Ed">https://t.co/1lo19y12Ed</a> <a href="https://t.co/elCmYwAePo">pic.twitter.com/elCmYwAePo</a></p>&mdash; Tobias Löfstrand (@tobeleaf) <a href="https://twitter.com/tobeleaf/status/1184081029595832321?ref_src=twsrc%5Etfw">October 15, 2019</a></blockquote> <p>The SmashingConf run is becoming a fixture, and in New York we had Central Park to run around. We started just as it was getting light and joined the runners of New York for a lap of the park.</p> <h4 id="evening-events">Evening Events</h4> <p>The <a href="https://smashingconf.com/ny-2019/jam-session">Jam Session</a> this time round was hosted by Shopify. Attendees spent time socializing and hearing some lightning talks from <a href="https://twitter.com/tiffany_tse">Tiffany Tse</a>, <a href="https://www.twitter.com/partytimeHXLNT">Rachel Weil</a>, <a href="https://www.linkedin.com/in/aprilellsey/">April Ellsey</a>, <a href="https://twitter.com/TimirahJ">Timirah James</a>, <a href="https://twitter.com/jtjpatterson">Jordan Patterson</a>, and <a href="https://twp.io/">Taylor Poulos</a>.</p> <figure class=" break-out article__image "> <a href="https://www.flickr.com/photos/drewm/albums/72157711342495838/"> <img srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0ca713fb-4955-4d82-8758-57397fc1f07e/ny-jam.jpg 400w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_800/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0ca713fb-4955-4d82-8758-57397fc1f07e/ny-jam.jpg 800w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1200/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0ca713fb-4955-4d82-8758-57397fc1f07e/ny-jam.jpg 1200w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1600/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0ca713fb-4955-4d82-8758-57397fc1f07e/ny-jam.jpg 1600w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_2000/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0ca713fb-4955-4d82-8758-57397fc1f07e/ny-jam.jpg 2000w" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0ca713fb-4955-4d82-8758-57397fc1f07e/ny-jam.jpg" sizes="100vw" alt="People watching a talk and raising their hands" /> </a> <figcaption class="op-vertical-bottom"> The Jam Session (Photo credit: <a href='http://drewm.photo'>Drew McLellan</a>) </figcaption> </figure> <p>We also had a party after day one which was held at The Waylon, where there were some nice craft beers and a lovely outdoor space to enjoy. Luckily the torrential rain didn&rsquo;t arrive until day 2!</p> <figure class=" break-out article__image "> <a href="https://www.flickr.com/photos/drewm/albums/72157711342495838/"> <img srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e340d8ff-31d4-4e31-b401-6fb70d8588f3/ny-waylon.jpg 400w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_800/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e340d8ff-31d4-4e31-b401-6fb70d8588f3/ny-waylon.jpg 800w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1200/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e340d8ff-31d4-4e31-b401-6fb70d8588f3/ny-waylon.jpg 1200w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1600/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e340d8ff-31d4-4e31-b401-6fb70d8588f3/ny-waylon.jpg 1600w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_2000/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e340d8ff-31d4-4e31-b401-6fb70d8588f3/ny-waylon.jpg 2000w" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e340d8ff-31d4-4e31-b401-6fb70d8588f3/ny-waylon.jpg" sizes="100vw" alt="People in an outdoor space at a pub" /> </a> <figcaption class="op-vertical-bottom"> Enjoyng good conversations with new friends (Photo credit: <a href='http://drewm.photo'>Drew McLellan</a>) </figcaption> </figure> <h3 id="want-to-join-us-in-2020">Want To Join Us in 2020?</h3> <p>We packed a lot into those few days! If you were there, we hope that you enjoyed it as much as we did. It was great to meet so many of you.</p> <figure class=" break-out article__image "> <a href="https://www.flickr.com/photos/drewm/albums/72157711342495838/"> <img srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9b34022b-e45d-4f7e-893a-e77111235f2d/ny-balloons.jpg 400w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_800/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9b34022b-e45d-4f7e-893a-e77111235f2d/ny-balloons.jpg 800w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1200/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9b34022b-e45d-4f7e-893a-e77111235f2d/ny-balloons.jpg 1200w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1600/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9b34022b-e45d-4f7e-893a-e77111235f2d/ny-balloons.jpg 1600w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_2000/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9b34022b-e45d-4f7e-893a-e77111235f2d/ny-balloons.jpg 2000w" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9b34022b-e45d-4f7e-893a-e77111235f2d/ny-balloons.jpg" sizes="100vw" alt="An audience throwing colored balloons into the air, taken from the stage" /> </a> <figcaption class="op-vertical-bottom"> Balloons! (Photo credit: <a href='http://drewm.photo'>Drew McLellan</a>) </figcaption> </figure> <p>In 2020 we&rsquo;re back with many more cats, mysteries and 4 friendly and inclusive conferences. Join us in:</p> <ul> <li><a href="https://smashingconf.com/sf-2020/">San Francisco</a> — April 21–22, 2020.</li> <li><a href="https://smashingconf.com/austin-2020/">Austin</a> — June 9–10, 2020.</li> <li><a href="https://smashingconf.com/freiburg-2020/">Freiburg</a> — September 7–8, 2020.</li> <li><a href="https://smashingconf.com/ny-2020/">New York</a> — October 20–21, 2020.</li> </ul> <p>The team are already hard at work making these events as amazing as those we have enjoyed running for you this year. Grab an Early Bird ticket and we&rsquo;ll see you there!</p> <figure class=" break-out article__image "> <a href="https://www.flickr.com/photos/drewm/albums/72157711342495838/"> <img srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4966a5cf-2d13-4fe1-80ae-ccc7431f0ea6/ny-thankyou.jpg 400w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_800/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4966a5cf-2d13-4fe1-80ae-ccc7431f0ea6/ny-thankyou.jpg 800w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1200/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4966a5cf-2d13-4fe1-80ae-ccc7431f0ea6/ny-thankyou.jpg 1200w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1600/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4966a5cf-2d13-4fe1-80ae-ccc7431f0ea6/ny-thankyou.jpg 1600w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_2000/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4966a5cf-2d13-4fe1-80ae-ccc7431f0ea6/ny-thankyou.jpg 2000w" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4966a5cf-2d13-4fe1-80ae-ccc7431f0ea6/ny-thankyou.jpg" sizes="100vw" alt="A large group of people on stage under a slide that says Thank You." /> </a> <figcaption class="op-vertical-bottom"> The Smashing Team on stage at the end of the conference (Photo credit: <a href='http://drewm.photo'>Drew McLellan</a>) </figcaption> </figure> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> <div class="signature"> <img src="https://www.smashingmagazine.com/images/logo/logo--red.png" alt="Smashing Editorial"> <span>(il)</span> </div>

Smashing Monthly Roundup: Community Resources And Favorite Posts

Smashing Monthly Roundup: Community Resources And Favorite Posts

Smashing Monthly Roundup: Community Resources And Favorite Posts

The Smashing Editorial

This is the first monthly update that the Smashing team will be publishing, to highlight some of the things we have enjoyed reading over the past month. Many of the included posts are sourced from the most popular links from our Smashing Newsletter. If you don’t get our newsletter yet, then sign up here to receive carefully curated links from the team every two weeks.

SmashingConf News

We’ve just wrapped up our final SmashingConf of the year in New York. Videos of the event will be on their way soon, but we have already published a write-up and all of the video from our Freiburg event held in September. You can find all of those in our post “SmashingConf Freiburg 2019”.

Smashing San FranciscoAlso, we’ve announced the dates for SmashingConf 2020! Would you like to join us in San Francisco, Freiburg, New York, or our new city of Austin? If so, get your tickets now at super early-bird prices, and keep an eye out for line-up announcements very soon.

We publish a new article every day, and so if you’re not subscribed to our RSS feed or follow us on social media, you may miss out on some brilliant articles! Here are some that our readers seemed to enjoy and recommend further:

  • How To Use Breadcrumbs On A PWA” by Suzanne Scacca
    If you’re worried that your PWA is going to be difficult to navigate without some guidance, put breadcrumbs to work. In this article, Suzanne explains just how.
  • Design Systems Are About Relationships” by Ryan DeBeasi
    Design systems can improve usability, but they can also limit creativity or fall out of sync with actual products. Let’s explore how designers and developers can create more robust design systems by building a culture of collaboration.
  • A Guide To New And Experimental CSS DevTools In Firefox” by Victoria Wang
    Ever since releasing Grid Inspector, the Firefox DevTools team has been inspired to build a new suite of tools to solve the problems of the modern web. In this article, Victoria explains seven tools in detail.
  • Editorial Design Patterns With CSS Grid And Named Columns” by Rachel Andrew
    By naming lines when setting up our CSS Grid layouts, we can tap into some interesting and useful features of Grid — features that become even more powerful when we introduce subgrids.

Best Picks From Our Newsletter

We’ll be honest: Every second week, we struggle with keeping the Smashing Newsletter issues at a moderate length — there are just so many talented folks out there working on brilliant projects! So, without wanting to make this monthly update too long either, we’re shining the spotlight on the following projects:

HTML Email

Can I Email…?

We all know and love caniuse.com. Unfortunately, if you wanted to test support for web standards in HTML Email, it wasn’t really easy. Until now. Inspired by the successful concept, Can I Email lets you check support for more than 50 HTML and CSS features in 25 email clients, and since the site only launched last month, more is already in the planning.

(Can I email...? launched by Rémi Parmentier and the team at Tilt Studio

Made for and by the email geeks community, the data that fuels the project is available on GitHub and anyone can contribute to it. A nice detail: the Email Client Support Scoreboard which is included ranks email clients based on how they support the features. A useful little helper for anyone who’s wrangling HTML email.

Email Design Inspiration

Standing out from the flood of emails that reach our inboxes every day is hard, not only for promotional campaigns but also for transactional emails and newsletters. So how about some inspiration from how others manage to spark curiosity and interest to save their emails from ending up in the junk-mail folder as a victim on the quest to inbox zero?

Email Love by Rob Hope
Email Love by Rob Hope

Curated by Rob Hope, Email Love showcases well-crafted emails that you can turn to for fresh ideas — a look inside the code of each email is included, of course. Exciting discoveries guaranteed!

Fonts

Tools To Circumvent Web Font Pitfalls

Web fonts are easy to implement, but they can have a significant impact on a site’s performance, too. To help you speed up the time to first meaningful paint, Peter Müller built Subfont. The command-line tool analyzes your page to generate the most optimal web font subsets and inject them into your page. Subfont currently supports Google fonts as well as local fonts.

Font Style Matcher by Monica Dinculescu

Speaking of web fonts: To prevent flash of unstyled text from causing layout shifts, you might want to consider choosing your fallback font in relation to your web font’s x-heights and widths. The better they match, the less likely your layout will shift once the web font is loaded.

Monica Dinculescu came up with Font Style Matcher to help find just that perfect fallback font. Before you opt for a fallback font, you might also want to check how well it is supported across different operating systems to not run into issues. Three small but mighty tools to circumvent some of the most common web font pitfalls.

A Tiny Guide To Variable Color Fonts

“The tech is new, the adventure is big!” If you look at the experiments which Arthur Reinders Folmer of Typearture did with variable color fonts, this quote truly hits the mark. Arthur uses variable color fonts to create animations that are not only awe-inspiring eye candy but also explore the full potential of the font technology.

Variable color fonts: How do they work?
Variable Color Fonts: How Do They Work?” by Arthur Reinders Folmer

They might allow little customization compared to SVGs, but variable color fonts are easier to implement and they offer a lot of room for creative adventures, too — using input from the microphone, camera, or gyroscope to adjust the variables and animate the illustrations, for example. Sounds exciting? Arthur put together a little guide in which he dives deeper into the tech behind his experiments. A fantastic overview of what’s possible with variable color fonts today.

Performance

Automating Image Compression

The transfer size of requested images has grown by 52% on desktop and 82% on mobile within the last year — with over half of the median page weight accounting for imagery. These are figures that once again make clear how crucial it is that images are optimized before they hit production. Now, wouldn’t it be handy if you could automate the compression step?

Calibre’s new GitHub Action image-actions
Calibre’s new GitHub Action image-actions

Well, the folks at Calibre asked themselves the same question and built a GitHub Action that does exactly that: it automatically optimizes the images in your pull request — without any quality loss thanks to mozjpeg and libvips, so that no image accidentally skips compression. A real timesaver.

Accessibility

Accessibility Support

There are many different ways that assistive technologies interact with browsers and code. Since it’s still not possible to fully automate screen readers and voice control softwares, we are left with having to do manual tests. And that’s where a11ysupport.io comes into play.

a11ysupport - Accessibility Support
Accessibility Support by Michael Fairchild

Originally created by Michael Fairchild, this community-driven website aims to help inform developers about what is accessibility supported. It’s a project that is active and contributions are always welcome, so start testing away!

Button Contrast Checker

Do your buttons have enough contrast? The Button Contrast Checker built by the folks at Aditus helps you find out. Enter your domain and the tool tests if the buttons on the site are compliant with WCAG 2.1.

Button Contrast Checker
Button Contrast CheckerButton Contrast Checker by Aditus

To cater for realistic results, the checker does not only test the default state of the buttons but also takes hover and focus states as well as the adjacent background into account. A nice detail: Each time you scan a page, the results are stored in a unique URL which you can share with your team. A precious little helper.

Learning To Code

Taking Your Coding Skills To The Next Level

CSS animation, Grid, Flexbox… The web is evolving at such a fast pace that there’s always something new to learn. And, well, what better occasion could there be to finally dive into the topic you’ve been wanting to tackle for so long as with a fun little game?

Flexbox Zombies
Flexbox Zombies by Dave Geddes

If you’ve always wanted to conquer deep space — and learn the basics of object animation in CSS along the way — the CSS Animation course by HTML Academy has some exciting tasks for you to solve. To help your CSS Grid skills grow and blossom, there’s Grid Garden where you use CSS to grow a carrot garden.

If zombies are more up your alley, try Flexbox Zombies. It’ll give you the expertise you need to survive the living deads — all thanks to your coding skills! Or try guiding a friendly little frog to its lily pad with Flexbox in Flexbox Froggy to finally get to grips with the Flexbox concept. Another cool Flexbox learning game that shouldn’t be left unmentioned is Flexbox Defense. Last but not least, if you’re struggling with CSS selectors, there’s CSS Diner to teach you how to select elements. Now, who said learning can’t be fun?

How To Write Better JavaScript

JavaScript is one of the most popular programming languages, and even after more than 20 years since it was born, it is constantly evolving. But how can you get better at it?

Practical Ways To Write Better JavaScript
Practical Ways To Write Better JavaScript” by Ryland Goldstein

Ryland Goldstein shares some of the top methods he uses to write better JavaScript — by using TypeScript to improve team communication and make refactoring easier or linting your code and enforcing a style, for example. As Ryland points out, it’s a continuous process, so take things one step at a time, and before you know it, you’ll be a JavaScript ace.

Learn Regex With Crosswords

If you’ve got a sweet spot for riddles and logic puzzles, then Regex Crossword is for you. Regex Crossword is a crossword puzzle game where the clues are defined using regular expressions — who said regex can’t be fun?

Hamlet puzzle
Regex Cross­word by Ole Michelsen and Maria Hagsten

There are different difficulty levels for you to start to cut your teeth on an easy set of crosswords to learn the basics or put your skills to the test as the puzzles get bigger and more complex. A puzzle generator is also included, so if you feel like making up your own puzzles for others to unravel, there’s nothing to hold you back.

And, The Rest!

Tips To Master Your Next Tech Job Interview

The job-hunting process can be intimidating, especially if you’re just about to get your career started. To help you tackle the challenge well, Yangshun Tay put together the Tech Interview Handbook.

Tech Interview Handbook
Tech Interview Handbook by Yangshun Tay

This free resource takes you through the entire process; from working on your resume to negotiating with the employer once the interview has ended, while curated practice questions get you fit for both the technical and behavioral questions that might pop up along the way. A good read, not only for prospective web professionals.

Behind The Scenes Of Design Teams

While many companies are driven by features and technology, over the last years it’s rare to find debates about the importance of design. It’s reflected in publicly announced case studies, design systems, large scale design overhauls, and most recently in dedicated pages for design teams — be it Uber, Google, Spotify, Medium, Dropbox, Slack, Amazon or AirBnB.

Behind The Scenes Of Design Teams
Image credit: Intercom

Recently, Intercom has announced Intercom.Design, a resource dedicated to its design teams, products, processes and public case studies, including internal UI recommendations and expectations from different product and content designer levels. Wonderful sources of inspiration to improve your design team and explore behind the scenes of how products are designed and built. (Thanks for the tip, Kostya Gorskiy!)

Royalty-Free AI-Generated Faces

100,000 photos of faces of different age, gender, and ethnicity. What doesn’t sound like anything groundbreaking, actually is, if the faces don’t exist but are products of artificial intelligence.

Generated Photos
Generated Photos by Generated Media, Inc.

The Generated Photos project did exactly that. With the help of AI, a team of 20 AI and photography professionals generated this impressive number of high-quality faces that you can download and use in your projects for free (for non-commercial purposes). But the plans go even further: the aim is to build an API that enables anyone to use artificial intelligence to generate interesting, diverse faces for their projects, mockups, and presentations — without bothering about copyright and distribution rights questions. Will this be the end of conventional stock photography?

Monochromatic Color Palettes Made Easy

If you’ve ever tried to generate a consistent monochromatic color palette, you know that this can be a boring task. After he once again messed around with infinite copy-paste commands to create a nice palette, Dimitris Raptis decided to change that. His solution: CopyPalette.

CopyPalette
CopyPalette by Dimitris Raptis

CopyPalette lets you create SVG palettes with ease. All you need to do is select a base color, the contrast ratio of the shades, and the number of color variations you’d like to have, and the tool generates a perfectly-balanced color palette that you can copy and paste into your favorite design tool. A true timesaver.

The Art Of Symbols

Since more than 40,000 years, humans have been using symbols to communicate complex ideas. And as designers, we still do so today.

Art of Symbols by Emotive Brand agency
Art of Symbols” by Emotive Brand agency

Art of Symbols, a 100-day project by the design team at Emotive Brand, set out to explore how ancient symbols inform contemporary brand design. After all, a lot of those symbols which are part of our vocabulary as designers today, already existed a long time ago, as early as in rock paintings and engravings even. If you’re curious to learn more about their origins and meanings and are up for some beautiful eye candy, this project will keep you busy for a while.

Smarter Patterns For Designing With AI

The power of artificial intelligence is huge, but with it also come ethical challenges and a lot of responsibility. Responsibility for the user who might be confused and scared by AI if a clear concept is lacking, who might want to choose the amount of AI they interact with, and who need to be protected against harmful practices.

Smarter Patterns by Myplanet
Smarter Patterns by Myplanet

Based on research of how AI is being used and understood today, the software studio Myplanet put together Smarter Patterns, a library to start a discussion about these topics and help designers tackle the challenges of AI in interface design. The resource currently features 28 patterns that empower designers to create meaningful AI experiences.

Instant Offline Access With Dash

If you’re one of those folks who simply cannot sleep on a plane and wished there was just a super-productive way to get some work done instead, you’re probably always on the lookout for tools that’ll get you through those flights even with spotty WiFi. Well, search no more — we’ve stumbled upon a pretty useful one!

Dash for macOS and iOS
Dash for macOS and iOS

In case you haven’t heard of it yet, Dash is a free and open-source API documentation browser that gives your iPad and iPhone instant offline access to 200+ API documentation sets and 100+ cheatsheets. Folks such as Sarah Drasner use it especially on the day before a long trip; all you need to do is download all the docs you need, and you’re all set! You can even generate your own docsets or request docsets to be included. Nifty!

A Collection Of Personal Sites

With the Internet ingrained in our day-to-day lives, what’s the best way to voice your own ideas, thoughts, and feelings? A personal site, of course! And because there are so many of them out there, Andy Bell decided to keep a collection of some so that folks can discover each other’s work and even receive updates from their RSS feeds.

Personal Sites by Andy Bell
Personal Sites by Andy Bell

If you’d like your site to join the collection, you’ll find simple instructions on GitHub that’ll appear in the list once your request has been approved. What a great way to find folks who share your interests and learn new ways of how to develop and design websites!


From Smashing With Love

A month can be a long time to stay on top of things, so please do subscribe to our bi-weekly newsletter if you still haven’t. Each and every issue is written and edited with love and care. No third-party mailings or hidden advertising — promise!

You can also follow us on Twitter, Facebook and LinkedIn — always feel free to reach out and share your projects with us! We love hearing from you!

Keep up the brilliant work, everyone! You’re smashing!

Smashing Editorial (vf, ra, cm, il)

15 Textured Grunge Fonts With a Handmade Style

Are you on the hunt for some gritty, textured experimental fonts for your website? Grunge style typography might be just what you need.

The inspiration for many art styles, grunge music and fashion is associated with harsh songs, ripped jeans, and distorted instrument sounds. It was an unorthodox genre far removed from cleaner brands of music.

Grunge typography is much the same, sharply divulging from traditional elegant serifs and clean sans-serifs to create a new unique style. These fonts tend to have a dirty, smudged, paint-brushed, or eroded look. They can be simple and legible or distorted and dramatic.

These fonts look great on rock music sites and graphics, but anyone can use them. If you want to add a little texture and variation to your project, or need to draw eyes to a part of your website, try one of these stand-out grunge fonts.

UNLIMITED DOWNLOADS: 400,000+ Fonts & Design Assets




Fierce by Itsmesimon

Example of Fierce by Itsmesimon

UnderWorld by hmeneses

Example of UnderWorld by hmeneses

Ugly Alligator by Cosmic Store

Example of Ugly Alligator by Cosmic Store

Bearpaw by Dennis Anderson

Example of Bearpaw by Dennis Anderson

Smile and Wave by Chris Vile

Example of Smile and Wave by Chris Vile

Brush Up by PintassilgoPrints

Example of Brush Up by PintassilgoPrints

Splandor Typeface by ilhamherry

Example of Splandor Typeface by ilhamherry

New York by Saji Johnny Kundukulam

Example of New York by Saji Johnny Kundukulam

Conspiracy by Nerfect Type Laboratories

Example of Conspiracy by Nerfect Type Laboratories

Grunge Tire by Just Type It

Example of Grunge Tire by Just Type It

Crayon Hand by Letters & Numbers

Example of Crayon Hand by Letters & Numbers

Beyond Wonderland by Chris Hansen

Example of Beyond Wonderland by Chris Hansen

Againts Typeface by Fortunes Co

Example of Againts Typeface by Fortunes Co

Gunshot by Gleb Guralnyk

Example of Gunshot by Gleb Guralnyk

Eveleth by Yellow Design Studio

Example of Eveleth by Yellow Design Studio

Unconventional, Interesting Fonts

If you’re tired of clean web design and want to put a spin on things, you should definitely consider grunge typography. The fonts are highly unique, and thus overuse can dull their message. But a grunge font in just the right place can attract attention and add a little interest to a bland webpage.

You don’t have to be making a rock website to use grunge fonts. You can find more subtle textured effects on all sorts of websites, especially ones that want to add a natural feel or tell the world that they’re unconventional.

Using a grunge font in just the right place can leave a big impact on visitors, so don’t be afraid to try one.

Now Live: Your SmashingConf Toronto Playlist

Now Live: Your SmashingConf Toronto Playlist

Now Live: Your SmashingConf Toronto Playlist

Rachel Andrew

We have edited and prepared the video from SmashingConf Toronto, and it is all now live for you to watch and learn from. To get a feel for the event, watch our compilation. We think that it really captures the atmosphere of a SmashingConf!

Day One

The Day One Collaborative Doc created by attendees is full of takeaways from the first day of the conference. You might find some of those notes helpful as you watch the video linked below.

Speaker Name Talk Title
Brad Frost “Let’s Build A Design System” (Video)
Sarah Drasner “Let’s Write A Vue App From Scratch” (Video)
Phil Hawksworth “JAMStack: Silly Name. Serious Stuff.” (Video)
Jenny Shen “Build Bridges, Not Walls: Design For Users Across Cultures” (Video)
Chris Gannon “Make It Move! Create A Web Animation From Scratch” (Video)
Kristina Podnar “Help! I’m Your Ailing Website. The Digital Policy & Standards Rehab Hour” (Video)
Steven Hoober “Authentic Digital Design By The Numbers” (Video)

Day Two

Check out the Day Two Collaborative Doc for more resources and thoughts shared by our attendees and speakers on the second day of the conference.

Speaker Name Talk Title
Phil Nash “Diving Into Service Workers, Live” (Video)
Dan Rose “Seeing The Pages For The Components” (Video)
Diana Mounter “The Secret Lives of Color Systems” (Video)

Some of the speakers shared additional resources, or GitHub repos to go with their talks. You can find all of the relevant links here.

You can also find all of the video in the Vimeo showcase for SmashingConf Toronto 2019, and we have a lot of videos from previous events for you to explore.

If you would like to be part of the SmashingConf fun next year, we already have tickets on sale for SmashingConf San Francisco 2020. The rest of this year’s events (New York and Freiburg) are already sold out! There are a few workshop-only tickets available for New York 2019, but be quick!

Related Resources on SmashingMag:

Smashing Editorial (il)

Social Media Convergence == Bad?

I was recently in Shanghai. Great city! Enjoyed the trip, the city, and the people. When I travel, I usually use cash, not credit. There's plenty of ATMs around, and Shanghai was no exception. One of the things that really struck me while I was there was the overwhelming presence of mobile computing. I mean, when I was on the subway in Shanghai, all I could see were the tops of people's heads. Everybody was on a cell phone.

Now I've been around. I've been on the London underground, Paris and Vienna metros, New York's subway, and Washington DC's transportation system. Sure, we all use our phones, but we usually look up every once in a while, and we don't stay on them that long. But in Shanghai, it was completely different. Mobile computing is completely integrated with modern Chinese life — in Shanghai at least. And I expect Beijing is no different.

Designing Healthcare Apps With Delight


  

Apps and devices designed to improve people’s health are becoming more pervasive. I serve as VP, Director of User Experience, in the New York office of a global agency with both healthcare and consumer clients. During my 13 years of working in the healthcare space I have never before had such a rich opportunity to directly affect health behavior.

Designing Healthcare Apps With Delight

In this article I’ll guide you through best practices when designing consumer-facing healthcare apps. (We’re not covering medical devices that need to be approved by authorities.) We’ll explore how to plan and conduct research, design moments of delight, integrate data from third-party devices and develop a messaging matrix. We’ll also look at examples of apps live in the wild that have been designed for delight at every moment of interaction.

The post Designing Healthcare Apps With Delight appeared first on Smashing Magazine.

Powered by WPeMatico