Implementing A Reset Password Feature With Next.js Dynamic Routes

Original Source: https://smashingmagazine.com/2022/08/implementing-reset-password-feature-nextjs-dynamic-routes/

In a general sense, authentication poses itself as a roadblock to many people when they are trying to get started with a particular framework, and Next.js isn’t left behind.

Although, there are lots of resources around building authenticated applications with Next.js. Well, there’s even an open-source project that literally handles authentication from the ground up.

But, the scope of this article doesn’t revolve around the whole concept of authentication. We’re only picking a specific pattern of the authentication process: the “reset password” flow and how it can be implemented on the client-side — frontend — of a web application.

In this article, you’re going to see how this feature can be implemented by using the common data-fetching tool, Axios — the built-in dynamic routes feature of Next.js and the useRouter hook.

An Overview Of The Reset-Password Flow

Since the advent of the web, Engineers have always strived to provide solutions to the problems that arose during the early days of the web — and the security of software on the web is no exception.

There’s this popular saying that goes thus: “Users will always forget their passwords,” and that is the absolute truth. A lot of people even dread the “reset-password” page because, come to think of it, after spending a lot of time trying to guess their passwords — all to no avail — they’re either frustrated or angry as they land on this particular page.

As we create user interfaces, we should also try as much as possible to make the experience enjoyable for the users. As much as we’d love to just get over the flow of the reset password process, the UX of that flow should be prioritized too.

The common flow of the password reset process can be seen below.

The user is frustrated after trying to sign without success. They click on the “password-reset” link, and they’re redirected to the corresponding page. The user interface that they see is the typical web form that’ll take in either their email address or username.
When they type their email address or username into the input field, they click on the button which has the common “email me a recovery link” text.
They get a confirmation that a secure link has been sent to their email. Sometimes, this confirmation text can be displayed in a card-like component or a modal that fades out over time.

Note: For security purposes and good UX, it is good to use a text that is quite similar to this: “An email has been sent to your inbox. Please click the link when you get it.” You can construct this sentence anyhow you deem fit, as long as it does not reveal that the email or username they entered exists in the database. This approach prevents attackers from knowing if that email exists at all, thus sabotaging any phishing attempt they may want to try with the said email address. As for the UX, the text doesn’t assure the user that the credentials they’ve entered are the correct ones. This, in turn, allows them to double-check whatever credentials they’re submitting.

The link that is sent to their email address contains a JWT and their user_id, or in this case, their email address.
Upon clicking on that link, they’re redirected to the route/page where they can input their new password. The route that the user will be on may be of the form below

https://localhost:3000/reset-password/user-email/JWToken

The last part of the flow is to verify if the JWT that is generated is associated with the user’s account. If not, we throw an error by rendering the error message that is obtained from the backend.

Now that you’ve seen how the “reset password” flow is structured, let’s see how it can be implemented with Next.js.

Understanding Dynamic Routes

In this section, we’ll go over the concept of dynamic routes by illustrating it with the folder structure of a Next.js project and see how we’ll integrate it into the “reset password” feature. But first, let’s set up a Next.js app.

npx create-next-app app-name

The command above does that for us. The Next.js team has already shipped a new update to the framework, and they’ve also introduced a couple of new folders and features in the default project structure. However, we won’t be covering much on that aspect, as it is out of the scope of this article. You can read more about the updates here if you want to.

In the snippet below, you’ll see the basic structure of the files we’ll be interacting with in this article.

└── pages /
├── forgot-password/
│ └── [token]/
│ └── [email].js
├── _app.js
└── index.js

Above, you’ll see that the files in the folder structure are quite small. That’s because I want to be concise as much as possible in this article.

And since the implementation of the “password reset” flow is our utmost concern, I think it’ll be best if we have less clutter. Now, let’s get a bit of an understanding of this structure.

You’ll notice that we have the forgot-password folder in the pages directory, which contains some files. But the naming convention of these files is quite different from the way other files are named. The name of the files — token and email.js — are wrapped with a pair of square brackets.

Folders and files that are named like this are referred to as dynamic routes, and since they’re in the pages directory, they automatically become routes that can be accessed by the browser. They are dynamic because the values that these routes take are not static, which means that they change over time.

This pattern of naming files is commonly seen in action when you decide to build a blog or when you’re interacting with data that changes based on the type of user that is logged into an application. You can take a look at how I utilized this feature of Next.js when I was building my blog. You can also learn more about it in the Next.js docs.

In the forgot-password folder, the path to where the UI containing the forgot password form can be accessed here. Take a look at it below.

http://localhost:3000/forgot-password/token/email

Since it is a dynamic route, the token and email URL parameters will always change based on the user that is trying to reset their password. The token and email for user A will be different from that of user B.

Reading Url Parameters With The Userouter Hook

The useRouter hook in Next.js can be used to achieve a lot of practical frontend UI implementations — from the common idea of implementing an active navbar item with the .pathname key, to more complex features.

Let’s see how we can read the URL parameters from dynamic routes with the useRouter hook now, shall we? To do that, you’ll have to import the module into your page/component first.

import { useRouter } from ‘next/router’
export default function PageComponent({ children }) {
const router = useRouter()
return (
<React.Fragment>
{/ page content falls below /}
<div>{children}</div>
</React.Fragment>
)
}

The snippet above shows the basic usage of the hook. Since we’re interested in the query parameters of the URL, it’ll be best if we destructure the query method of the hook instead of doing something like this: router.query. We’ll just do something similar below.

import { useRouter } from ‘next/router’
const { query } = useRouter()

We can now go ahead to create variables that’ll store the URL parameters that we want. The snippet below shows how you can do that.

const token = query.token
const email = query.email

Note that the query.token and query.email values are a result of the name of the files. Recall from the folder structure in the forgot-password folder where we have the [email].js and [token] files. If you rename those files to [userEmail].js and [userToken] respectively, the pattern of assigning these variables will become something like the one below.

const token = query.userToken
const email = query.userEmail

You can always log these variables to the console to see the result.

Now that you’ve gotten an understanding of how these parameters are obtained from the URL, let’s get started by building the structure of the forms.

Building The Forms

In this section, we’ll walk through the process of building the form and how you can use Axios to perform data fetching via the arbitrary API endpoint. We won’t be focusing on the styling of these forms and the explanation of the structure. I’m assuming you already know how to structure and style a basic React form. So let’s get started with the form layout on the forget-password route.

import React from ‘react’
import axios from ‘axios’
import { ErrModal, SuccessModal } from ‘../components/Modals’

export const DefaultResetPassword = () => {
const [email, setEmail] = React.useState(”)
const [loading, setLoading] = React.useState(false)

const handleForgot = () => { } // we’ll see this later

return (
<div>
<form onSubmit={handleForgot} className=”reset-password”>
<h1>Forgot Password</h1>
<p>You are not alone. We’ve all been here at some point.</p>
<div>
<label htmlFor=”email”>Email address</label>
<input
type=”email”
name=”email”
id=”email”
placeholder= “your email address”
value={email}
onChange={(e) => setEmail(e.target.value)}
required
/>
</div>
<button name=”reset-pwd-button” className=”reset-pwd”>
{!loading ? ‘Get secure link’: ‘Sending…’}
</button>
</form>
</div>
)
}

The snippet above shows the basic structure of the UI that you’ll see when you get to the forgot-password route. You’ll notice the text in the paragraph tag below the bold “Forgot password” text.

<p>You are not alone. We’ve all been here at some point</p>

With a type of text like the one above, you are improving the user experience of people who get to the forgot password page of your app. You are assuring them that it is not a big deal that they forgot their password(s), so there’s no need to feel bad about it.

You don’t necessarily need to use the exact text above. You can just make sure that whatever text you are using has a tone of empathy.

Now, let’s move on to the important part of this form, which is where we need to declare a function that’ll send the email that the user enters in the input field to the backend.

import { authEndpoints } from ‘../endpoints’

export const DefaultResetPassword = () => {
const handleForgot = async (e) => {
e.preventDefault()
try {
setLoading(true)
const response = await axios({
method: ‘POST’,
url: authEndpoints.recover,
data: {
email,
},
headers: {
‘Content-Type’: ‘application/json’,
},
})
setResestSuccess(response.data.msg)
setLoading(false)
setResetError(”)
} catch (error) {
setLoading(false)
const { data } = error.response
setResetError(data.msg)
setResestSuccess(null)
}
}
return <div>{/* …previous form component */}</div>
}

From the snippet above, you’ll notice that we’re importing the API endpoint that we’ll be sending a POST request to — and that’s why we’re passing it as a variable to the url key in the Axios method.

The POST request receives the user’s email address as payload, which in turn will be validated at the backend, and a JWT will be generated for that email address which will be used to authorize the password reset process of the user.

setResestSuccess(response.data.msg)
setLoading(false)
setResetError(”)
catch (error) {
setLoading(false)
const { data } = error.response
setResetError(data.msg)
setResestSuccess(null)
}

When you take a look at the snippet above, you’ll notice that we’re using some already-declared state callback functions of the state variables.

An example is the setLoading function which has its value set to true in the try block. Then, its value is set to false when the data has been successfully sent. And if it doesn’t, we have a catch block that will “catch” the error and displays the error message that we’ve destructured from the endpoint.

You’ll also notice that there are a couple of state callback functions in the snippet above, like setResestSuccess and setResetError.

The setters are obtained from the declaration of the state variables. See them below.

import React from ‘react’
import { ErrModal, SuccessModal } from ‘../components/Modals’

export const DefaultResetPassword = () => {
const [resetSuccess, setResestSuccess] = React.useState()
const [resetError, setResetError] = React.useState()
return (
<div>
{resetError ? <ErrModal message={resetError} /> : null}
{resetSuccess ? <SuccessModal message={resetSuccess} /> : null}
<form onSubmit={handleForgot} className=”reset-password”>
{/* form content */}
</form>
</div>
)
}

The error or success messages gotten from the backend can be rendered in the UI to let the user know the status of their action(s).

You’ll notice that we’re using custom modal components to render the message. These components receive the message as props, and they can be reused across the codebase. Take a look at the structure of the components below.

export const SuccessModal = ({ message }) => {
return (
<div className=”auth-success-msg”>
<p>{message}</p>
</div>
)
}
export const ErrModal = ({ message }) => {
return (
<div className=”auth-err-msg”>
<p>{message}</p>
</div>
)
}

You can style these components uniquely so that you can be able to distinguish the “error” modal from the “success” modal. The common convention is to use red color for error messages and green color for success messages. How you choose to style these components is completely up to you.

In addition to all that has been said, we need a way to verify that the correct data type is being passed as a prop to the modal component. This can be achieved with the “prop-type” module in react.

propTypes.ErrModal = {
message: propTypes.string.isRequired,
}
propTypes.SuccessModal = {
message: propTypes.string.isRequired,
}

The type-checking process in the snippet above ensures that the data the component receives must be a string, and it is required. If the component does not receive a prop with a string value, React will throw an error.

Now that we’ve covered the important aspect of the first form and the building blocks of what we’ll be replicating in the reset-password route. Let’s get started by taking a look at the layout of the form below.

import axios from “axios”;
import React from “react”;
import Head from “next/head”;
import { useRouter } from “next/router”;
import { SuccessModal, ErrModal } from “../components/Modals”;

const ResetPassword = () => {
const [newPassword, setNewPassword] = React.useState(“”);
const [loading, setLoading] = React.useState(false);
const [resetPasswordSuccess, setResetPasswordSuccess] = React.useState();
const [resetPasswordError, setResetPasswordError] = React.useState();

const { query } = useRouter();
const token = query.token;
const email = query.email;

const resetPassword = () => { } // coming in later…

return (
<React.Fragment>
<Head>
<title>Reset your password</title>
</Head>
<div>
{email && token ? (
<div className=”auth-wrapper”>
{resetPasswordSuccess ? (
<SuccessModal message={resetPasswordSuccess} />
) : (
null
)}
{resetPasswordError ? (
<ErrModal message={resetPasswordError} />
) : (
null
)}
<form onSubmit={resetPassword} className=”reset-password”>
<h1>Reset Password</h1>
<p>Please enter your new password</p>
<div>
<label htmlFor=”password”>Password*</label>
<input
name=”password”
type=”password”
id=”password”
placeholder=”enter new pasword”
value={newPassword}
onChange={(e) => setNewPassword(e.target.value)}
/>
</input>
<button
name=”reset-pwd-button”
className=”reset-pwd”
>
{!loading ? “Reset” : “Processing…”}
</button>
</form>
</div>
) : (
<p>The page you’re trying to get to isn’t available</p>
)}
</div>
</React.Fragment>
);
};

Since we’ve gone through the rudiments of the first form in the previous section, the snippet above contains almost the same thing in the previous form.

You can see how we’re reading the parameters from the URL and the declarations of the password reset error and success variables too.

const [resetPasswordSuccess, setResetPasswordSuccess] = React.useState()
const [resetPasswordError, setResetPasswordError] = React.useState()
const { query } = useRouter()
const token = query.token
const email = query.email

You’ll also notice the way we’re conditionally rendering the reset password form by checking if the email and token variables are present in the URL; if these variables are false (i.e., they are not in the URL), we render a text that says that the page they’re looking for isn’t available.

{
email && token ? (
<div className=”auth-wrapper”>
<FormComponentt />
</div>
) : (
<p>The page you’re trying to get to isn’t available</p>
)
}

Now, let’s take a look at the handler function that we’d use in sending the new password of the user — coupled with the token and the email for the purpose of verification — to the backend through the API endpoint.

import { authEndpoints } from ‘../endpoints’
const resetPassword = async (e) => {
e.preventDefault()
try {
setLoading(true)
const response = await axios({
method: ‘POST’,
url: authEndpoints.resetPassword,
data: {
token,
email,
password: newPassword,
},
headers: {
‘Content-Type’: ‘application/json’,
},
})
setResetPasswordSuccess(response.data.msg)
setLoading(false)
setTimeout(() => {
router.push(‘/’)
}, 4000)
setResetPasswordError(”)
} catch (error) {
setLoading(false)
setResetPasswordError(error.response.data.msg)
setResetPasswordSuccess(null)
}
}

The snippet above is an asynchronous handler function. We’re using it to send a POST request with the user’s new password, the access token, and the email address — which we grabbed from the query parameters at the URL segment.

setTimeout(() => {
router.push(‘/’)
}, 4000)

When you take a look at the snippet above, you’ll see how we’re using the setTimeout method in JavaScript and Next.js’ useRouter hook to redirect the user to the home page — which is the login page in this case — after four seconds (you can reduce this time frame if you want to), so they can log in again.

Doing this also adds to the good user experience metric, as it prevents the user from looking for a link or a button that takes them back to the login page.

Final Thoughts

There is a lot of information about the best practices and awesome password-reset design patterns out there. This article is just a frontend implementation of a password-reset flow which also factors in the issue of user experience. It is not enough to just create a password reset feature without considering the UX of the people who would use this feature.

Thank you for reading. I hope this article has been helpful!

Further Reading On Smashing Magazine

“How To Implement Authentication In Next.js With Auth0,” Facundo Giuliani
“Dynamic Data-Fetching In An Authenticated Next.js App,” Caleb Olojo
“Localizing Your Next.js App,” Átila Fassina
“The Current State Of Authentication: We Have A Password Problem,” Drew Thomas

The best photos shot on iPhone for World Photography Day

Original Source: https://www.creativebloq.com/news/iphone-world-photography-day

Why don’t ours look like this?

Make It Big 2022: Everything You Need to Know About the Virtual BigCommerce Conference

Original Source: https://ecommerce-platforms.com/articles/make-it-big

Save the date for the “Make it Big” Conference, to connect with thought leaders, ecommerce industry experts, and other merchants interested in growing their online businesses. 

Hosted by the BigCommerce ecommerce platform, the Make it Big Conference is one of the must-attend events for entrepreneurs and ecommerce professionals from all backgrounds and experience levels. 

Read below for all the Make it Big Conference details for 2022, including:

What is Make it Big? Where is it? When is it? How much does it cost?Information about the host: BigCommerceWho’s invited to the Make it Big Conference?What can conference participants expect to learn this year? Workshops to expectThe lineup of guest speakersKeynote speakersHow to register for the 2022 Make it Big Conference

Check out each section below so that you don’t miss out on one of the most informative ecommerce conferences of the year. 

What is “Make it Big 2022”?

“Make it Big” is a yearly ecommerce conference hosted by BigCommerce, one of the most popular ecommerce platforms on the market. 

It’s a two-day virtual event where participants can network, learn about retail trends, and experience unique interactions with industry experts through things like live podcasts, fireside chats, and Q&A sessions. Past Make it Big conferences have seen keynote speakers like Mark Cuban, Mary Ellen Cole, and Bill Ready. 

The 2022 conference is packed even more with notable guests and keynote speakers, making it the ideal time to either learn about launching an ecommerce store or taking your current business to the next level. 

The conference, as mentioned, is hosted by BigCommerce, but there are plenty of other sponsors such as: 

TikTokBitpayKlaviyoCodalJamersan Ecommerce DevelopmentOmnisendStripeMetaAmazon PayContentstackTavanoteamPayPalAmazon Supply Chain

When is Make it Big 2022?

The 2-day conference runs from Tuesday, September 13 to Wednesday, September 14, 2022. 

The Tuesday session starts at 9 AM (CDT) and goes until 4:45 PM (CDT). 

On Wednesday, presentations begin at 8:55 AM (CDT) and end at 5:30 PM (CDT). 

There are several speakers, workshops, and Q&A sessions throughout each day; most segments range from 30 minutes to 1 hour. And, of course, there’s a midday lunch break on each day. 

Where is Make it Big 2022? 

The Make it Big Conference is a virtual event, meaning there’s no set locations. Speakers will videoconference in from their own computers and potentially be scattered all over the globe. 

The same goes for event participants. You can sign up for the event and sit at your computer to listen and participate. There’s no requirement for any travel, or to show up at a particular location!

How Much Does it Cost to Attend Make it Big 2022?

The Make it Big Conference is completely free, as it has always been. 

About the Make it Big Host: BigCommerce

BigCommerce is the host of Make it Big. This is their 5th consecutive year of hosting the conference. 

BigCommerce is a company that builds and sells what’s called an ecommerce platform, an online software for constructing an ecommerce website and selling product online. As one of the top ecommerce platforms on the market, it makes sense that BigCommerce hosts such a prominent event, where notable figures chime in and speak to all merchants. 

What’s great is that you don’t have to be a BigCommerce user to attend. BigCommerce offers the event for free to everyone who wants to learn more about ecommerce. So, it serves as somewhat of a user’s conference for them, but also a means of marketing, to get the word out to new users about their ecommerce platform. 

As for the ecommerce platform itself, here are some notes to give you an idea of what BigCommerce offers: 

BigCommerce offers an online control panel and app for designing an online store, managing orders, marketing, and finding products to sell. Its pricing plans start at $29.95 per month and go up to $299.95 per month for the advanced Pro version. There’s also an Enterprise plan for rapidly scaling businesses. 

Who’s Invited to Make it Big 2022?

Anyone!

You don’t have to be a BigCommerce user to attend the 2022 Make it Big Conference. In fact, they encourage all experience levels of ecommerce professionals, along with users from other ecommerce platforms to come mingle with experts and learn about what’s new in the ecommerce world. 

In general, the BigCommerce Make it Big Conference is most suitable for: 

Online retailersEntrepreneursEcommerce professionalsDevelopers and content creators who work in ecommerceBrick and mortar retailers interested in exploring the online retail worldSocial media experts with an ecommerce focusCryptocurrency professionalsAspiring ecommerce business founders

What Can Participants Expect to Learn at Make it Big 2022?

The Make big schedule in 2022 is jam-packed with workshops, Q&A sessions, and even fireside chats, all of which have their own topics. Besides the general ecommerce discussions, Make it Big speakers tend to dive deeper into niche topics, ranging from social media interactions to omnichannel transactions. 

Take a look at the section below for the entire schedule of Make it Big for this year. 

Workshops and Topics at Make it Big 2022

BigCommerce has stated that Make it Big participants can expect two full days of interviews, panels, and workshops about: 

Web3CryptocurrencyOmnichannel sellingB2B sellingReaching Gen Z with your online storeNFTsThe Metaverse

As for the specific topics, here’s what you can look forward to:

Day 1 

Welcome to the Future of EcommerceCultivating a Lasting, Mission, Driven BusinessIs Your Business Future Ready?Tapping Into Gen Z and the Next Generation of ConsumersThe Secret to Scaling an Enterprise BrandThe Future of Retail in the MetaverseWorkshop: Overcoming B2B Challenges in the Digital AgeThe Omnichannel Imperative: Meeting Shoppers Where They AreA First-class Customer Experience: Why Ecommerce is Going Headless

Day 2

Customer Awards Winners CelebrationModern Marketing: Engaging Your Audience with IntentionDemystifying Crypto, Web3 and NFTsWorkshop: How to Sell More on TikTokSmall Business, Big Gains: The Online OpportunityInvite-Only Roundtable: From Monolith to MACH: Composing a Modern Commerce Tech StackLeading the Change: Women Empowering the Next Era of Entrepreneurs and LeadersLive Podcast: Crafting Unforgettable Content ExperiencesWorkshop: Unlocking a Growth-Driven MindsetRetail Trends and Predictions for 2022 and Beyond

The Lineup of Guest Speakers (and their topics) at Make it Big 2022 

Known for its high-profile speakers, industry experts, and thought leaders, the Make it Big Conference in 2022 does not disappoint with its lineup of guest speakers. Every hour, you have a chance to hear from someone who’s either built a successful ecommerce business of their own or guided people in the industry. 

Here’s the entire lineup of speakers and the topics in which they’ll explore:

Brent Bellm (CEO of BigCommerce)—Topic: Welcome to the Future of EcommerceJohn Mackey (Co-Founder of Whole Foods Market)—Topic: Keynote: Cultivating a Lasting, Mission-Driven BusinessMartha Welsh (Director, Strategy, Operations and GTM at Google Commerce)—Topic: Is Your Business Future Ready?Hana Ben-Shabat (Founder of Gen Z Planet) and Melissa Yang (Global Head of Ecosystem Partnerships at TikTok)—Topic: Tapping Into Gen Z and the Next Generation of ConsumersJohn Merris (CEO of Solo Stove)—Topic: The Secret to Scaling an Enterprise BrandKate Ancketill (Founder and CEO of GDR Creative Intelligence)—Topic: Keynote: The Future of Retail in the MetaverseTJ Gamble (CEO and Founder of Jamerson) and Diego Praderi (Growth and Innovation Partner at Tavano Team)—Workshop: Overcoming B2B Challenges in the Digital AgeGopal Pillai ( Vice President of Amazon Distribution and Fulfillment Solutions) and Omar Soudodi (Director of Amazon Pay in the Americas)—Topic: The Omnichannel Imperative: Meeting Shoppers Where They AreNeha Sampat (CEO and Founder of Contentstack)—Topic: A First-class Customer Experience: Why Ecommerce is Going HeadlessCetiera Carmona (Manager of Customer Growth at BigCommerce)—Topic: Customer Awards Winners CelebrationSeth Godin (Best-selling Author)—Keynote: Modern Marketing: Engaging Your Audience with IntentionTy Haney (Cofounder and CEO of Try Your Best) and Merrick Theobald (Vice President of Marketing at BitPay)—Topic: Demystifying Crypto, Web 3, and NFTsGabriel Nicolau (Global Head of Product Strategy and Operations for Commerce and Gaming Ads at TikTok)—Workshop: How to Sell More on TikTokMelinda Emerson (@SmallBizLady)—Topic: Small Business, Big Gains: The Online OpportunityKeval Baxi (CEO of Codal) and Ryan Bloms (Associate Director of Partnerships at Codal)—Invite-Only Roundtable: From Monolith to MACH: Composing a Modern Commerce Tech StackSevetri Wilson (Founder and CEO of Resilia) and Tara Syed (Director of Commerce Ecosystems at Meta)—Leading the Change: Women Empowering the Next Era of Entrepreneurs and LeadersMichael Mitchell (Senior Director of Brand and Studios at Mailchimp)—Live Podcast: Crafting Unforgettable Content ExperiencesAndrew Bialecki (CEO of Klaviyo) and Ethan Giffin (CEO and Founder of Groove Commerce)—Workshop: Unlocking a Growth-driven MindsetJenny Fleiss (Cofounder of Rent the Runway and Venture Partner at Volition Capital)—Keynote: Retail Trends and Predictions for 2022 and Beyond

The Keynote Speakers

The keynote, or featured, speakers, are the ones that headline the entire Make it Big event. They’re there to speak about the big picture topics and deliver actionable, hard-hitting advice for ecommerce merchants to improve their brands. 

They’re also some of the more famous people that BigCommerce landed, so you may recognize some of the names. 

Here’s a look at the keynote speakers from the Make it Big 2022 Conference:

John Mackey 

John Mackey is mainly known as the Cofounder of Whole Foods, where he grew the one-location organic grocer into a Fortune 500 company. Eventually, he sold the company to Amazon. Mackey’s accolades include Esquire’s “Most Inspiring CEO,” Fortune’s “World’s 50 Greatest Leaders,” and MarketWatch’s “CEO of the Year.” 

He’ll be speaking about cultivating a lasting, mission-driven business, since much of his experience comes from cofounding the Conscious Capitalism Movement, and writing books about having a mission when you build a business, as opposed to only seeking monetary gains. 

Kate Ancketill

Kate Ancketill, the Founder and CEO of CDR Creative Intelligence, comes to the Make it Big Conference as a keynote speaker to discuss the Metaverse and how retail fits into that future. She’ll discuss how it could become a third channel for modern retail, and that some retailers are already exploring the potential for virtual worlds. 

Seth Godin

Known for business bestsellers like Purple Cow, The Dip, and Linchpin, Seth Godin boasts a resume of 20 books that have helped business owners improve their marketing, leadership skills, and ideas. 

He’s the founder of other companies as well, including Squidoo and Yoyodyne, and he’ll be speaking about modern marketing and engaging your ecommerce audiences with intention. 

Jenny Fleiss

The Cofounder of Rent the Runway comes to Make it Big this year to discuss retail trends and predictions for 2022 and beyond. She’s a notable ecommerce success story with Rent the Runway, and a Venture Partner at Volition Capital. 

Jenny is also known for starting the company Jetblack, a brand that disrupted the ecommerce world with personal shopping services over voice and text message. Her accolades include Fortune Magazine’s “40 Under 40” and Fast Company’s “Most Influential Women in Technology.”

How to Register for Make it Big Conference 2022

You can register on the BigCommerce website for the 2022 Make it Big Conference. 

As discussed, registration is free, and it’s open to all ecommerce professionals and people interested in learning about the industry. 

While registering, keep in mind that you don’t actually have to make it to the live events. If you’re unable to attend, we encourage you to still register, seeing as how you receive access to on-demand recordings of the Make it Big Conference. 

The registration page is powered by Bizzabo, so there’s no need to leave the BigCommerce website. You’re given about 15 minutes to sign up for the event; if it times out, simply refresh your window to start over. 

To register, BigCommerce asks for the following information: 

First nameLast nameJob titleCompany nameBusiness emailProjected annual revenueCountryState

You can then sign up for marketing and partners communications, but you can leave those unchecked if you’d like. It’s also okay to fill in blank information if you haven’t yet started a business, or don’t have any revenue. There’s even a quick LinkedIn button to import all of your login information from there, instead of filling in the form. 

With that said, we hope to see you at the virtual Make it Big Conference this year. It appears to be one of the best schedules yet!

The post Make It Big 2022: Everything You Need to Know About the Virtual BigCommerce Conference appeared first on Ecommerce Platforms.

Understanding Python Decorators, with Examples

Original Source: https://www.sitepoint.com/understanding-python-decorators/?utm_source=rss

Understanding Python Decorators, with Examples

Learn what Python decorators are, what their syntax looks like, how to identify them in a script or framework, and how to apply them.

Continue reading
Understanding Python Decorators, with Examples
on SitePoint.

A Guide to Python Multiprocessing and Parallel Programming

Original Source: https://www.sitepoint.com/python-multiprocessing-parallel-programming/?utm_source=rss

A Guide to Python Multiprocessing and Parallel Programming

Learn what Python multiprocessing is, its advantages, and how to improve the running time of Python programs by using parallel programming.

Continue reading
A Guide to Python Multiprocessing and Parallel Programming
on SitePoint.

Checkerboard Transition for Text in Three.js

Original Source: https://tympanus.net/codrops/2022/08/15/checkerboard-transition-for-text-in-three-js/

In this new ALL YOUR HTML coding session we’ll have a look at how to recreate the checkerboard transition from Gleec made by Immersive Garden with Three.js and GLSL, using MSDF text rendering.

Original website: https://gleec.com/

Developer: Immersive Garden

This coding session was streamed live on August 14, 2022.

Support: https://www.patreon.com/allyourhtml

Setup: https://gist.github.com/akella/a19954…

TypeScript vs JavaScript: Which One You Should Use, and Why

Original Source: https://www.sitepoint.com/typescript-vs-javascript/?utm_source=rss

TypeScript vs JavaScript: Which One You Should Use, and Why

In this TypeScript vs JavaScript comparison, you’ll learn about TypeScript’s advantages and disadvantages, and when and when not to use it.

Continue reading
TypeScript vs JavaScript: Which One You Should Use, and Why
on SitePoint.

Collective #724

Original Source: https://tympanus.net/codrops/collective/collective-724/

Inspirational Website of the Week: También

A beautiful design with smooth animations and lovely interactions. Our pick this week.

Get inspired

Collective 720 item image
Our Sponsor

Fully Managed Cloud & Web Hosting

Codrops’ host of choice since 2016 is Liquid Web because they provide an unrivaled hosting experience, delivering 99.999% uptime and 24/7 heroic human support.

Check it out

Stable Fluids with three.js

Misaki Nakano writes about fluid simulation and shows how to implement Navier-Stokes equations.

Read it

FauxPilot

FauxPilot is an attempt to build a locally hosted version of GitHub Copilot.

Check it out

WebGL Glass and Refraction

Daniel Velasquez exploring how refraction techniques work in this Offsceen Canvas issue.

Read it

CSS Tip with :has()

Jhey Thompkins shows a powerful example on how to use the CSS :has() selector.

Check it out

Zazow

An algorithmic generative art maker where you can chose an algorithm and create unique digital artworks.

Check it out

Astro 1.0

Read all about the release of Astro, a web framework for building fast, content-focused websites.

Check it out

The Infinite Marquee

Ryan Mulligan shows how to code a responsive looping marquee-style animation using HTML and CSS.

Check it out

Playcode

A JavaScript playground with instant live preview and console.

Check it out

How I Used DALL·E 2 to Generate The Logo for OctoSQL

Jacob Martin shows how he used the DALL·E 2 AI system to generate a logo for his project.

Check it out

Not All Zeros are Equal

Miriam Suzanne writes about situations where removing units from any 0 value will break your code.

Read it

Sematic

Sematic is an open-source development toolkit to help Data Scientists and Machine Learning (ML) Engineers prototype and productionize ML pipelines in days not weeks.

Check it out

Botspam Apocalypse

A very interesting write up on how bots are crippling the Internet ecosystem.

Read it

Joycon.js

With this lib you can add controller functionality to your JavaScript game.

Check it out

adadot

Adadot is an analytics tool that helps techies achieve their strategic goals by analysing productivity and collaboration data.

Check it out

Use One Big Server

Nima Badizadegan argues that using one big server is comparatively cheap and keeps your overheads at a minimum.

Read it


From Our Blog (Sponsored)

How to Copy HTML and CSS Code From Websites Easily

Learn how to use CSS Scan to easily copy styles and markup of any element on a website.

Read it

Collective #723

Original Source: https://tympanus.net/codrops/collective/collective-723/

Collective 723 item image

Inspirational Website of the Week: Repeat

A really cool design with amazing typography and lots of interesting micro interactions and details.

Get inspired

Collective 723 item image
Our Sponsor

Get 33% Off On Our 10th Anniversary

Enjoy our biggest discount ever for the WordPress plugin with the most incredible collection of responsive sliders, hero, website, and special effects templates. (No coding required ever!)

Enjoy 33% Off!

Collective 723 item image

:has(): the family selector

Jhey Tompkins writes about the game changing :has() selector and shows what you can do with it.

Read it

Collective 723 item image

kmenu

An animated and accessible command menu. By Harsh Singh.

Check it out

Collective 723 item image

Quick Tip: Negative Animation Delay

Learn how you can use negative animation delay to create more natural looking animations. By Michelle Barker.

Read it

Collective 723 item image

Vertex Shader Displacement

Daniel Velasquz writes about distortion and displacement of geometries.

Read it

Collective 723 item image

WEBGi Jewelry Landing Page Demo

An amazing Three.js jewelry landing page for product visualization and configuration using WEBGi. By Anderson Mancini.

Check it out

Collective 723 item image

Terrain Warp

A wonderful demo made by Ichitaro Masuda.

Check it out

Collective 723 item image

Faux 3D content scroller

A great CSS trick by Jhey on how to use the mask property to create a faux 3D look.

Check it out

Collective 723 item image

How to choose an interpolation for your color scale

Natural, quantiles, linear or custom? Lisa Charlotte Muth shows which option ist the best for maps based on continuous (unclassed) and stepped (classed) data.

Read it

Collective 723 item image

Finer grained control over CSS transforms with individual transform properties

Learn how to use individual transform properties and several keyframes in this article by Bramus Van Damme and L. David Baron.

Read it

Collective 723 item image

Exploring CSS Grid’s Implicit Grid and Auto-Placement Powers

Temani Afif shows how to harness the power of implicit grids.

Read it

Collective 723 item image

Practical Deep Learning for Coders 2022

Read about the complete from-scratch rewrite of fast.ai’s most popular course, that’s been two years in the making.

Check it out

Collective 723 item image

CSS border animations

Bramus Van Damme looks at several ways to animate a border in CSS.

Read it

Collective 723 item image

Svelvet

Svelvet is a lightweight Svelte component library for building interactive node-based flow diagrams.

Check it out

Collective 723 item image

Flowful

Boost productivity with procedurally generated ambient music that you can listen to for free.

Check it out

Collective 723 item image

SecondFounder

SecondFounder is a marketplace where you can sell your side projects.

Check it out

Collective 723 item image

Cloudscape

Cloudscape offers user interface guidelines, front-end components, design resources, and development tools for building intuitive, engaging, and inclusive user experiences at scale.

Check it out

Collective 723 item image

OpenAI API

The OpenAI API can be applied to virtually any task that involves understanding or generating natural language or code.

Check it out

Collective 723 item image

Hyperspace Text

A super cool hyperspace text demo by Johan Karlsson.

Check it out

Collective 723 item image

Lyra

Fast, in-memory, typo-tolerant, full-text search engine written in TypeScript

Check it out

Collective 723 item image
From Our Blog

Inspirational Websites Roundup #40

A fresh set of inspirational websites that have an outstanding design.

Check it out

Collective 723 item image
From Our Blog

Large Image to Content Page Transition

A simple scroll effect and page transition inspired by Vitalii Burhonskyi’s Dribbble shot.

Check it out

Speed Up Your Design Projects with These Online Tools

Original Source: https://www.hongkiat.com/blog/designers-speed-up-online-project-with-these-tools/

When you are working on an online project, anything from collaboration to testing services and task management can add a lot to your productivity. Fortunately, there are tons of tools that can help us do online projects faster and better. However, there are so many on the market that it’s difficult to know which one will be a perfect fit for our needs.

After a good long research, I have created from scratch this showcase of tools and services for designers and developers with which they can speed up their online projects. There are WordPress themes, website builders and testing services, invoicing, and much more.

Check it below and share your opinions.

Best Project Management Software for Remote Teams

.no-js #ref-block-post-9867 .ref-block__thumbnail { background-image: url(“https://assets.hongkiat.com/uploads/thumbs/250×160/project-management-software.jpg”); }

Best Project Management Software for Remote Teams

Working with a remote team is all the rage now, not only for established companies, but also for… Read more

ClickUp
ClickUpClickUp

ClickUp is a one-stop app for all your project management needs. With an intuitive dashboard and versatile features, you can have a seamless workflow for everyday tasks. Some of its best features include:

Customise your tasks into subtasks, link tasks, automation, tags, etc. with 30+ ClickApps.
100+ third-party app integrations so you can work with all your favorite tools in one place.
Share and collaborate on your ideas with your team members with creative whiteboards.
Create an efficient Kanban board to take full control of your project management.

You can use ClickUp’s basic features for free for an unlimited time, however, for more advanced features and teams, premium packages start from $5 to $19 a month. It is available for Windows, macOS, and Linux, Chrome extension, email add-on as well as android and iOS app.

ListingPro

ListingPro-online-projects-toolListingPro-online-projects-tool

With customers in over 170 countries, ListingPro is the preferred and most popular choice among entrepreneurs, web designers, and developers. Things that people, including myself, love about this tool are:

There is no need to install additional plugins for the basic features. You are packed with everything you need.
No need for previous experience or coding skills. Anybody can have a directory website like Yelp, FourSquare, Zomato, and any other.
Express install and demo import functions that help you build a directory website in seconds.

The regular license is $69, and it includes six months of technical support, easy setup assistance, 1-Click demo import, free lifetime updates and detailed documentation that will guide you step by step.

Userfeel
Userfeel.com-online-projects-toolUserfeel.com-online-projects-tool

With Userfeel, anybody can quickly run a website usability check for an affordable cost and the process is literally outstanding. The panel consists of more than 20,000 testers speaking 40 languages. You can even have testers provide comments in your language while testing a website that is on a language you don’t understand.

Practically, you “hire” one or more testers to test your website, and you will get a video in less than 24 hours. You will see how a tester is experiencing your website. You can filter testers by various demographic criteria like age, gender, country, language, and web experience.

Userfeel helps you create highlights videos with the most critical issues in minutes and have the video downloaded locally or uploaded to your YouTube account as unlisted, ready to share. The one-off payment of $49 for desktop tests, or $99 for mobile/tablet tests with NO further monthly or annual fee!

DealJumbo
DealJumboDealJumbo

DealJumbo is a design bundles website literally packed with tons of awesome things. Some of the deals can be found only on DealJumbo as they have exclusivity with some of their partners. You will find premium fonts, graphics, mock-ups, a section with discounts, products under $10 and more.

The deals come with an exclusive extended license, meaning that you can use it for an unlimited number of commercial projects. You can also download 1580+ free fonts and graphics – all with standard commercial license.

Brizy
Brizy.io-online-projects-toolBrizy.io-online-projects-tool

Brizy is one of the best WordPress page builders in the market that can quickly help anybody build gorgeous websites in minutes. You simply arrange the 150 pre-made design blocks or just build your website from scratch – both ways are super simple and do not require any coding skills.

Brizy can be tested for free on the website (you can save the HTML of what you create for free and use it anywhere you like, for personal or commercial projects). I personally found that the results look amazing and compete with the premium WordPress theme.

Deeezy
Deeezy.com-online-projects-toolDeeezy.com-online-projects-tool

Deeezy is a design deals website where web professionals can find awesome free and premium fonts, graphics, vector and other elements for a fraction of the normal cost. The website is loaded with interesting stuff that you can use in your projects.

actiTIME

actiTIME is a popular and powerful online project time tracking software that allows users to track time, register leaves, and add comments in a weekly timesheet. In just a few clicks, you can configure the time tracker to suit your needs and hide the features you don’t want to use. Do try the demo.

actiTIME-online-projects-toolactiTIME-online-projects-tool

15 Best Time Tracking Apps

.no-js #ref-block-post-55041 .ref-block__thumbnail { background-image: url(“https://assets.hongkiat.com/uploads/thumbs/250×160/best-time-tracking-apps.jpg”); }

15 Best Time Tracking Apps

When you’re working with remote teams, one of the tools that become almost inevitable is the time tracking… Read more

Notism
Notism-online-projects-toolNotism-online-projects-tool

Notism is a great collaboration tool that offers a simple and effective way to discuss visual content and collaborate with teams and stakeholders. You can comment and sketch in real-time, create prototypes and run usability tests and manage project development by adding tasks. In almost every company, there is more than one field of work where Notism can save you tons of time.

Goodie website
GoodieWebsite-online-projects-toolGoodieWebsite-online-projects-tool

Goodie is a web development service where developers actually deliver high-end websites for a fixed cost which starts from $999. The website guarantees that you will get a code of basic, functional, responsive website for this starting price.

Cost of additional features like custom plugins, animations, or more advanced elements will be estimated. If you also need a design – they can help with that as well. Check the websites they have made on their page to get a better idea of their skills and creativity.

Codester
Codester-online-projects-toolCodester-online-projects-tool

Codester is the one-stop shop for web designers and developers where they can buy and sell PHP scripts, website themes, plugins, graphics, and much more. You should always check the Flash Sale section, where great stuff is being sold with huge discounts.

Designhooks
Designhooks-online-projects-toolDesignhooks-online-projects-tool

Desinghooks is a brilliant, very well-structured website that is loaded with free resources for web designers and developers. All the resources are handpicked from amazing designers around the world and very well categorized, so you can easily find what you are looking for.

Uncode
Uncode-online-projects-toolUncode-online-projects-tool

Uncode is a pixel-perfect WordPress theme that anyone can use without writing a single line of code to create stunning WordPress websites. It’s among the most flexible themes, with 50 pre-made Concepts and 200 layouts. Only imagination is the limit.

Pixpa
Pixpa-online-projects-toolPixpa-online-projects-tool

Using the powerful Pixpa drag and drop builder, you can quickly create a gorgeous portfolio website with integrated e-commerce, client proofing, and blogging tools. No need to have any prior experience or coding skills. It’s super simple to use, and it is loaded with everything you need.

You can try Pixpa for free for 15 days, no credit card is required.

Format
Format-online-projects-toolFormat-online-projects-tool

Format is a free gorgeous website template that is a perfect fit for designers, agencies, web studios and freelancers.

ContentSnare

ContentSnare will help you get content from your clients without the hassle. It is aimed at web designers, but people from other industries are also using it, including bookkeepers, digital marketers, coaches, and engineers.

ContentSnare-online-projects-toolContentSnare-online-projects-tool
uSocial
uSocial-online-projects-tooluSocial-online-projects-tool

“Like” and “Share” buttons created with uSocial have trendy designs and can be easily applied to all devices. It takes as little as a few minutes to install buttons to a website with the help of the builder.

The supported social media are Facebook, Google+, Twitter, LinkedIn, and many more. Add the buttons and track statistics and the number of shares with a counter tool.

Instant Logo Design
InstantLogoDesign-online-projects-toolInstantLogoDesign-online-projects-tool

Many times we need a beautiful logo, but our time and budget are limited. Instant Logo Design is a simple-to-use logo design software that can deliver you a great logo in less than 1 minute and for prices starting from $29.

uCalc

uCalc-online-projects-tooluCalc-online-projects-tool

uCalc.pro offers online calculator templates for any kind of website including construction and repair, car service, delivery service, cafes and restaurants, etc.

You can create a calculator with the help of a user-friendly builder that doesn’t require any coding skills. Your calculator will also be able to collect contact details, send notifications to your email, and create invoices in PayPal.

Inkydeals

Inkydeals is providing hugely discounted digital design deals for web professionals. Check the website where you will find high-quality resources at unbeatable prices for designers (beginners and veterans alike).

inkydeals-online-projects-toolinkydeals-online-projects-tool
Crello
Crello-online-projects-toolCrello-online-projects-tool

Crello is an easy-to-use design tool for creating stunning visuals including, designs for digital ads, animated posts, social media and more. It is easy to use — it doesn’t matter if you are an experienced designer or a beginner.

Crello was made for marketers, social media specialists, entrepreneurs, bloggers, and anyone who needs a simple solution for their creative projects.  There are 12,000 free templates and more than 60 million stock photos.

MailMunch
MailMunch-online-projects-toolMailMunch-online-projects-tool

With over 50,000 websites to get more leads and grow, MailMunch is a popular solution to grow your email list and convert visitors into customers and subscribers.

It lets you create multiple types of opt-in forms so you don’t have to rely on one way of collecting leads. The solution includes popups, embedded forms, top bars, slide boxes and more. There is a free option and the premium plans start from $15 per month.

Elementor
Elementor-online-projects-toolElementor-online-projects-tool

Take your design to the next level with this powerful WordPress page builder. There are over 900,000 users that enjoy creating stunning websites with Elementor.

This builder is lighting fast, everything loads in real-time and you have a strong interface with everything needed.

Controlio
Controlio.net-online-projects-toolControlio.net-online-projects-tool

From small companies to large enterprises, Controlio is the perfect solution to monitor employees’ PC activity from anywhere. You can easily check the user’s desktop, see if he is available or away, or which apps and websites he is on.

By offering to monitor the usage scenarios on the website, Controlio can be used in many ways.

UptimeRobot
UptimeRobot-online-projects-toolUptimeRobot-online-projects-tool

UpTimeRobot is a great service to know if your website is up and running. Every 5 minutes, there are 50 monitors that will check it and all of that is totally free with more than 500,000 happy users.

InvoiceBerry
InvoiceBerry-online-projects-toolInvoiceBerry-online-projects-tool

InvoiceBerry is a great invoicing platform where you can create fully customized invoices and send them in less than 60 seconds. It is loaded with functionalities like creating reports, tracking expenses and much more. The pricing starts from $15 / month.

StickerYou

StickerYou sells custom labels, decals, stickers, temporary tattoos and more. You can print any size, shape, and order quantity to make your message stick. Our vinyl logo stickers are perfect to brand your business. What are you waiting for? Make it stick!

StickerYou-online-projects-toolStickerYou-online-projects-tool
Foxy.io
Foxy.io-online-projects-toolFoxy.io-online-projects-tool

Foxy.io represents the future of custom e-commerce. Its hosted cart and payment page allows you to sell anything, using your existing website or platform. Easily integrate with WordPress, Webflow, Wix, Webflow, Squarespace, and anywhere you can add a link or embed HTML.

Take advantage of coupons, discounts, live and custom shipping rates, automatic tax calculations, and more.

Pofo
Pofo-online-projects-toolPofo-online-projects-tool

Pofo is a highly creative and modern Bootstrap responsive multipurpose corporate and portfolio WordPress theme with 25 ready homepage demos. It comes with pixel-perfect graphics and is loaded with the latest features that will make your website look stunning.

Pofo is blazing fast, search engine optimised, WooCommerce shop ready and coming with WPBakery page builder and revolution slider.

RumbleTalk
RumbleTalk-online-projects-toolRumbleTalk-online-projects-tool

RumbleTalk is the web chat that you can implement on your website in minutes. It allows you to have a direct connection with your website visitors that ensures better conversions while spending only a few bucks.

You can start with RumbleTalk’s free forever plan and upgrade it (for advanced features) when you need it.

WrapPixel
WrapPixel-online-projects-toolWrapPixel-online-projects-tool

WrapPixel offers a range of templates, like PSD templates, website templates, admin dashboard templates, free HTML templates and free admin templates etc.

WrapPixel is built with a strategy that works excellently to offer you fewer but high-quality items.

The post Speed Up Your Design Projects with These Online Tools appeared first on Hongkiat.