Instagram has become the most popular social media platform. It is used by over a billion users, according to Statistics. This shows just how important of a platform it is for businesses.
If you want to implement a successful social media marketing strategy, you cannot afford to overlook Instagram.
Although Facebook and Twitter might be amazing platforms, you have to leverage Instagram to increase brand awareness. To make the most of the social media giant, you need to take the right steps. This post shares 5 simple ways to expand your reach on Instagram.
Take your brand awareness game to the next level by following the tips mentioned below. Each tip will help you boost engagement and brand authority.
1. Find Your Personality and Ensure Consistency
One of the best ways to increase brand awareness of Instagram is by finding your personality and sticking to it. It pays to let the brand personality shine.
When you first create an Instagram account, you might be tempted to post about anything that you find interesting. Although this helps you expand your reach, it also isolates your brand as nobody would get to know what your brand actually is.
To ensure real success online, you cannot post photos aimlessly. You have to think things through. Therefore, it is important that you first determine the brand personality. It will help you get more followers on Instagram and increase brand awareness.
Develop a personality that your target audience resonates with. It should prompt followers to share and engage with your posts. Every time you decide to post something, you should determine if it reflects the brand personality.
For instance, the images you post tell a story. The same goes for the filters, colors, and effects you use. They can help you create a distinctive atmosphere. Once you have found the brand personality, you can infuse it in all of your posts. It will allow consistency.
The fact is that your followers will associate your brand with certain characteristics when you embed those characteristics into your posts.
2. Use the Right Hashtags
Hashtags offer a great way to boost exposure online. They help generate engagement for your content. However, it does not mean that you are allowed to abuse hashtags. Too many hashtags can decrease the impact you have.
Create a hashtag for your brand and include unique hashtags for your Instagram campaigns. Digital marketing professionals will tell you just how effective the right use of hashtags can be. Increase the number of users that see your content by including hashtags.
The rules of the hashtag should always be kept in mind. You have to follow the STRICT (Specific, Targeted, Relevant, Innovative, Concise, and Thoughtful) mnemonic.
Never throw hashtags into the mix without determining their effectiveness. You can use Instagram analytics tools to monitor the effect your hashtags have and adjust accordingly.
3. Cross-Promote Posts
A common mistake that most companies make is thinking that they should restrict their activities to their own Instagram account.
To get a head start, you need to cross-promote on other social media platforms. It is especially important if you already have a strong user-base on other social media profiles.
If you have an established presence on Facebook, Twitter, or LinkedIn, you can encourage users on those platforms to check out your Instagram account. It will allow you to grab their attention.
Besides, they are already following you on other social media platforms because they value your brand.
Having a presence on other platforms provides your new profile with much-needed social proof. The truth is that people tend to follow companies on social media that already have a fan base.
When people realize that your brand appeals to other people, they will be more likely to take an interest in your brand.
Share your Instagram posts on other platforms to ensure maximum reach. It will help boost brand awareness in no time. Now, you should not do this for every post. However, it is an effective way to draw attention to your Instagram account.
Since Facebook owns Instagram, cross-promoting posts can help you boost brand awareness. You will be able to cash in on your existing online presence.
4. Work with Influencers
Instagram is a powerful platform. It is community-based. If you want more people to talk about your brand and increase awareness, you need to consider influencer marketing. It has become the hottest trend in the digital world.
More and more brands are working and collaborating with influencers than ever before. Whether you work in the fashion industry or the health industry, there is bound to an influencer that you can work with to grow your presence.
When we think about Instagram influencers, some of the biggest names like Kendall Jenner, Bella Hadid, Gigi Hadid, Lilly Singh, Pew Die Pie, and Chiara Feragni come to mind. It is important that you find influencers in your industry that you can work with.
Improve your chances of targeting the right customers by working with influencers in your industry. They can help you create the right content and engage with your target audience.
5. Be Engaging
Speaking of engagement, you need to create content that is engaging. Put in the effort to interact with your followers to get them to take an interest in your brand. Social media platforms such as Instagram require you to continuously interact with your users.
By engaging with your followers, you put a face behind your brand. It is always a good idea to show a sneak peek behind the scenes to users. It will encourage them to show their loyalty. Some great ideas for engaging with customers are mentioned below.
Ask questions.
Join in on the conversation.
Host contests.
Incentivize user engagement.
Like user posts.
Share user posts.
Increase Your Brand Awareness on Instagram
Once you have read this post, you will know the best ways to boost brand awareness on Instagram. From finding your brand personality to engaging with your followers, following the tips will help enhance your brand reach.
Everyday design fans submit incredible industry stories to our sister-site, Webdesigner News. Our colleagues sift through it, selecting the very best stories from the design, UX, tech, and development worlds and posting them live on the site.
The best way to keep up with the most important stories for web professionals is to subscribe to Webdesigner News or check out the site regularly. However, in case you missed a day this week, here’s a handy compilation of the top curated stories from the last seven days. Enjoy!
In the news this week, Firefox gets rounded outlines, SVG animations are now GPU-accelerated in Chrome, there are no physical units in CSS, The New York Times crossword is accessible, and CSS variables are resolved before the value is inherited.
Let’s jump in the news!
Rounded outlines are coming to Firefox
The idea to have the outline follow the border curve has existed ever since it became possible to create rounded borders via the border-radius property in the mid 2000s. It was suggested to Mozilla, WebKit, and Chromium over ten years ago, and it’s even been part of the CSS UI specification since 2015:
The parts of the outline are not required to be rectangular. To the extent that the outline follows the border edge, it should follow the border-radius curve.
Fast-forward to today in 2021 and outlines are still rectangles in every browser without exception:
CodePen Embed Fallback
But this is finally starting to change. In a few weeks, Firefox will become the first browser with rounded outlines that automatically follow the border shape. This will also apply to Firefox’s default focus outline on buttons.
Please star Chromium Issue #81556 (sign in required) to help prioritize this bug and bring rounded outlines to Chrome sooner rather than later.
SVG animations are now GPU-accelerated in Chrome
Until recently, animating an SVG element via CSS would trigger repaint on every frame (usually 60 times per second) in Chromium-based browsers. Such constant repainting can have a negative impact on the smoothness of the animation and the performance of the page itself.
The latest version of Chrome has eliminated this performance issue by enabling hardware acceleration for SVG animations. This means that SVG animations are offloaded to the GPU and no longer run on the main thread.
The switch to GPU acceleration automatically made SVG animations more performant in Chromium-based browsers (Firefox does this too), which is definitely good news for the web:
Hooray for more screen reader-accessible, progressively enhanced SVG animations and less Canvas.
There cannot be real physical units in CSS
CSS defines six physical units, including in (inches) and cm (centimeters). Every physical unit is in a fixed ratio with the pixel unit, which is the canonical unit. For example, 1in is always exactly 96px. On most modern screens, this length does not correspond to 1 real-world inch.
The FAQ page of the CSS Working Group now answers the question why there can’t be real physical units in CSS. In short, the browser cannot always determine the exact size and resolution of the display (think projectors). For websites that need accurate real-world units, the Working Group recommends per-device calibration:
Have a calibration page, where you ask the user to measure the distance between two lines that are some CSS distance apart (say, 10cm), and input the value they get. Use this to find the scaling factor necessary for that screen (CSS length divided by user-provided length).
This scaling factor can then be set to a custom property and used to compute accurate lengths in CSS:
The Times crossword is accessible to screen reader users
The NYT Open team wrote about some of the improvements to the New York Times website that have made it more accessible in recent years. The website uses semantic HTML (
, , etc.), increased contrast on important components (e.g., login and registration), and skip-to-content links that adapt to the site’s paywall.
Furthermore, the Games team made the daily crossword puzzle accessible to keyboard and screen reader users. The crossword is implemented as a grid of SVG elements. As the user navigates through the puzzle, the current square’s aria-label attribute (accessible name) is dynamically updated to provide additional context.
You can play the mini crossword without an account. Try solving the puzzle with the keyboard.
CSS variables are resolved before the value is inherited
Yuan Chuan recently shared a little CSS quiz that I didn’t answer correctly because I wasn’t sure if a CSS variable (the var() function) is resolved before or after the value is inherited. I’ll try to explain how this works on the following example:
html {
--text-color: var(--main-color, black);
}
footer {
--main-color: brown;
}
p {
color: var(--text-color);
}
The question: Is the color of the paragraph in the footer black or brown? There are two possibilities. Either (A) the declared values of both custom properties are inherited to the paragraph, and then the color property resolves to brown, or (B) the --text-color property resolves to black directly on the element, and then this value is inherited to the paragraph and assigned to the color property.
The correct answer is option B (the color is black). CSS variables are resolved before the value is inherited. In this case, --text-color falls back to black because --main-color does not exist on the element. This rule is specified in the CSS Variables module:
It is important to note that custom properties resolve any var() functions in their values at computed-value time, which occurs before the value is inherited.
I did this thing for Honeypots YouTube Channel. I had heard of Honeypot through these mini documentaries they have done, like about Vue.js, GraphQL, and Ember.js. They do a great job, so I was happy to shoot them over some answers to questions for this series.
Here’s a TLDR-ish transcript:
What’s the best way to stay up to date with new technologies?
Don’t worry about it much. If you’re actively building websites and solving problems that come up day to day, you’re doing the job and that’s what’s important. If you’re really worried you’re only ever using outdated tech, go to a conference once a year and see what people are talking about.
What are your top tips for career advancement?
Writing! You don’t have to blog, even though I like that idea. You can write to your co-workers, or even keep a private log. Writing really opens doors and makes you a better thinker.
What strengths are most important for a developer?
Communication trumps raw technical skill. One developer alone can never do as much as a high functioning team, and communication is what makes a team high functioning.
What what the proudest moment of your career?
I tend to look back at things that took a long time and didn’t involve just me. CodePen will be 10 years old next year. That’s something to be proud of.
When did you realize you wanted to be a developer?
I had a good teacher in high school. I’m sure they don’t even remember me, but I was highly into the computer programming class they taught. I’d come to school early to use the computer lab. I’d stay after school. I’d take my study halls there. Working on a program, with the guidance of that teacher, was deeply fun. While I ended up abandoning computer science in college for art, my career now I find was a way to marry my love of computer nerdery and art.
I’m sure a lot of you are paying attention to Deno anyway, the next-gen JavaScript-on-the-sever project from Node creator Ryan Dahl, especially after dropping all these candid regrets about what happened in Node. But perhaps your paying more attention now that Deno has taken some seed investment and will be turning itself into a company, while staying open-source:
For Deno to grow and be maximally useful, it must remain permissively free. We don’t believe the “open core” business model is right for a programming platform like Deno. We do not want to find ourselves in the unfortunate position where we have to decide if certain features are for paid customers only. If you watch our conference talks, you will find we’ve been hinting at commercial applications of this infrastructure for years. We are bullish about the technology stack we’ve built and intend to pursue those commercial applications ourselves. Our business will build on the open source project, not attempt to monetize it directly.
I’m excited about this because other people are, to some degree. I know the “secure by default” nature of it is exciting to my extremely security-conscious co-founder, Alex.
I find features like “TypeScript out of the box” interesting. While I don’t really use TypeScript myself, I find it striking just what a big deal it is. Talking to Laurie Voss a few years back, I learned that nearly two-thirds of developers were using it, and it doesn’t seem like it has lost any steam. And you’ve got Scott Tolinski over here waxing poetic about how GraphQL is all typed and you get this dreamy fully-typed stack when TypeScript is part of the mix.
There is already a bundler (literally, Bundler) for Deno that supports TypeScript out of the box, along with JSX. Guess what else does? The big next-gen build tools, Snowpack, Vite, and wmr.
Deno is also written in Rust, which is an interesting angle to all this, partially because of the speed (it’s fast). Snowpack and Vite both use esbuild under the hood, which is written in Go (also fast). I don’t have a great sense of whether Go or Rust is faster for this type of work, but they are both a big leap forward from most of the bundlers and task runners we use today. You can even use esbuild directly, or with light abstractions over it, like Estrella. Again, TypeScript supported.
It makes me wonder about Babel. If you don’t run TypeScript through it, and don’t need it for JSX, and don’t need to compile away basic ES6/7 stuff now that support is so wide, how long does it stick around? A long time, is the answer, of course. A project as big as Babel doesn’t just disappear. I suppose all it takes is one exotic and desirable new JavaScript feature that is compilable to an existing syntax, and everybody will be putting it back into their pipelines.
It’s a reasonable UX thing that you can click-to-open something, and then not only be able to click that same thing to close it, but click outside the thing that it opened to close it. Kitty Giraudel just blogged about that. The trick is that once the thing is opened, you attach an event handler to the window with that watches for events (like another click). If that subsequent click did not happen within the newly-opened area, close it. Like, literally thing.contains(event.target). It’s a nice trick, I think.
There are lots of little things to think about though. For example:
we have to stop the propagationg of the click event on the toggle itself. Otherwise, it goes up to the window click listener, and since the toggle is not contained within the menu, it would close the latter as soon as we try to open it.
Right right. Can’t have that or it breaks the whole thing.
We have this same pattern in a lot of places on CodePen. Like Kitty, we have it implemented in React. In taking a peak at our implementation, it’s got a number of bells-and-whistles I figured were worth mentioning. For example, ours isn’t a function or hook, but a component wrapper we use like:
<ClickOutsideDetector
listen
onClickOutside={() => { closeTheThing(); }}
>
A Menu or Modal or something.
</ClickOutsideDetector>
That way it is a generic wrapper that we can use for anything on a “click outside”. The bells-and-whistles being:
You can pass in component prop so that it doesn’t have to manifest as a
but whatever you want it to be semantically.
The listen prop allows you to toggle if it is currently actively listening to events. Like a quick way to short-circuit it.
An ESC keypress is the functional equivalent to clicking outside.
Handles touch events as well as clicks
Handles a case where the click outside happens into an in which case the window has a blur event rather than a click.
Allows you to pass in elements to ignore, so rather than the stopPropagation trick that Kitty documented, we can be specific about elements that don’t trigger a click outside.
So many little things! To me this is the kinda perfect little example of real-world development. You just want one little behavior and ultimately there are a ton of considerations and edge cases you have to deal with and it’s never really done. I just touched our component in the last few months because of a third-party tool we used changed how they did something which affected iframes in use on the page. Ultimately I had to watch for a blur event that then check the classList of document.activeElement to see if that was the thing eating the click outside!
Whether you’re using blogging for business growth or affiliate marketing, you need to have the right tools at your disposal.
Using the right blogging tool can make writing, editing, and outreach faster and more efficient. Online tools and platforms can also speed up your blog post creation process, giving you more time for research, analysis, outreach, ideation, and even taking on more work.
While manually checking every spelling, implementing on-page SEO, or handling outreach can take hours, the correct tools can help you complete tasks in minutes.
The 7 Top Blogging Tools of 2021
1. Ahrefs: Best for SEO
SEO and blogging go hand-in-hand. There’s no point in spending hours writing an excellent blog post if no one reads it.
If you want your blog to get a good ranking on Search Engine Result Pages (SERPs), you need to target the right keywords.
Ahrefs, a leading provider of SEO tools, is well-known for its keyword research feature. Keyword research and optimization help with SERP rankings, but it’s also a great source for blog ideas.
To understand how Ahrefs works, let’s take this blog from Earlybird as an example.
The keyword is “UGMA.” Typing that in Ahrefs will give you the following results:
Ahrefs shows you the metrics for your keyword and also indicates related keywords that you can use. With these results, the content team at Earlybird can structure their article to have the maximum impact and improve their chances of reaching the target audience.
Users can also sort keywords by specific metrics, such as volume, traffic, and position, using this SEO tool.
Ahrefs’ other features include an SEO audit of your website, competitor analysis, and a rank tracker. It’s a dynamic tool that is perfect for content marketing and digital marketing.
2. Grammarly: Best for Error Checking
English language skills have become essential for businesses, with one study stating that mastering the language can increase your annual income by 30%.
When it comes to blogging, it’s worth noting that poor English — be it incorrect word usage, poor spelling, or improper punctuation — can turn readers away.
Poor English can also hinder your chances of being considered an industry expert.
Grammarly is an essential writing tool that solves the most common spelling and grammatical issues.
It’s available as a browser extension and highlights grammatical errors in any text, be it a Google Doc, an email, or a social media post. You can correct spellings and punctuations with a click and replace misused or overused words just as quickly.
The app’s functionality across different social media channels and web platforms make it a must-have for bloggers.
3. YoastSEO: Best for WordPress SEO
WordPress powers 40.5% of all websites. If you’re among the millions that use this content management system for your blog, then you’ve probably heard of Yoast SEO.
Yoast SEO is a leading WordPress plugin that offers keyword optimization, checks your blog’s readability, and identifies duplicate content.
The plugin’s premium version can help you elevate your WordPress blog by finding and adding high-performing keywords, indexing optimization, internal linking suggestions, and integration with other tools such as Zapier and Elementor.
These features aim to help bloggers, be they experts or rookies, get better SERP rankings and reach a bigger audience.
4. Google Analytics: Best for Analytics
One of the easiest ways for a blogger to check how their site is performing is using Google Analytics.
This free tool can help site owners and web workers track Key Performance Indicators (KPIs) on a blog page or overall website.
It provides real-time data on your website traffic, custom reporting options, advanced segmentation, conversion reporting, and more.
Understanding how visitors move through your site can help you tweak your website and increase blog traffic.
For example, you can identify your most popular blog post and promote it extensively, while simultaneously creating similar content.
5. Drift: Best for Live Chat
A successful blog provides readers with valuable information that keeps them coming back for more.
When your customers are already engaged in content and have questions, you don’t want them to leave your site to get answers.
You also don’t want readers interested in your brand or products to have to look around for contact information.
A live chat on your blog can help readers get quick replies to their queries and build a connection with your brand.
Drift, a self-proclaimed revenue acceleration platform, helps you connect with customers by creating custom live chat sequences.
For example, Track-POD features an automated Drift chat on their blog. The chat pops up and prompts users to ask any questions about route optimization software or other topics on the site.
Drift allows users to set up custom automated options. So, if a reader wants to book a meeting, you can set up a sequence of automatic responses that ask for their basic details. It’s then a simple matter to show available times and dates.
In simple terms, you can set up a live chat sequence to automatically handle the most common customer queries and give your audience the chance to talk to a real customer support executive, if needed.
6. Voila Norbert: Best for Outreach
Outreach is essential for blog growth. Building connections with peers, guest posting, and cross-promoting can help bloggers build credibility, get more readers, and establish themselves as industry experts.
Voila Norbert can help you find anyone’s email address with a simple search. You just need to know their name and website.
The software is useful for more than finding emails. You can add emails to a list and then send a message to everyone on it. You can keep team members informed of progress with a particular lead by starting discussions.
Voila Norbert beats out its competitors because of the number of integrations it offers. Some tools it can integrate with include Gmail, Drip, ReplyApp, Hubspot, Close.com, and other CRM platforms.
7. Buffer: Best for Social Media
Social media has become an integral part of every blogger’s life. Social sharing is the best way to get your content out there, interact with readers, and collaborate with others in your industry.
Buffer is a social media management platform that helps you plan, publish, and analyze your posts and engagement across Instagram, Twitter, Facebook, and LinkedIn.
This great tool helps you share your blog content via customized posts for each social media platform. Posts can be planned months or weeks in advance. You can also get reminders for when it’s time to publish.
Once you’ve started sharing your blog posts on social media, you can get in-depth analytics for how they’re performing on Twitter, Facebook, LinkedIn, and Instagram.
You can also see and instantly reply to comments across platforms on your dashboard to build engagement with your audience.
Buffer is a market leader when it comes to social media management, and it’s easy to see why.
Conclusion
The tools listed in this article are just 7 of the hundreds available on the market today. You don’t need to break your bank and get the most expensive tools to make the most impact. Apart from the tools listed above, bloggers can use tons of inexpensive Add-Ons for Google Docs to gain a ton of additional functionality and make blog post creation effortless. Graphic design tools like Adobe Photoshop can also help you create visually appealing blog banners and other creatives for your blogs.
Your main goal should be to pick the right tools for you and your team and use them together to build an engaged reader base.
Whether you’re using blogging for business growth or affiliate marketing, you need to have the right tools at your disposal.
Using the right blogging tool can make writing, editing, and outreach faster and more efficient. Online tools and platforms can also speed up your blog post creation process, giving you more time for research, analysis, outreach, ideation, and even taking on more work.
While manually checking every spelling, implementing on-page SEO, or handling outreach can take hours, the correct tools can help you complete tasks in minutes.
The 7 Top Blogging Tools of 2021
1. Ahrefs: Best for SEO
SEO and blogging go hand-in-hand. There’s no point in spending hours writing an excellent blog post if no one reads it.
If you want your blog to get a good ranking on Search Engine Result Pages (SERPs), you need to target the right keywords.
Ahrefs, a leading provider of SEO tools, is well-known for its keyword research feature. Keyword research and optimization help with SERP rankings, but it’s also a great source for blog ideas.
To understand how Ahrefs works, let’s take this blog from Earlybird as an example.
The keyword is “UGMA.” Typing that in Ahrefs will give you the following results:
Ahrefs shows you the metrics for your keyword and also indicates related keywords that you can use. With these results, the content team at Earlybird can structure their article to have the maximum impact and improve their chances of reaching the target audience.
Users can also sort keywords by specific metrics, such as volume, traffic, and position, using this SEO tool.
Ahrefs’ other features include an SEO audit of your website, competitor analysis, and a rank tracker. It’s a dynamic tool that is perfect for content marketing and digital marketing.
2. Grammarly: Best for Error Checking
English language skills have become essential for businesses, with one study stating that mastering the language can increase your annual income by 30%.
When it comes to blogging, it’s worth noting that poor English — be it incorrect word usage, poor spelling, or improper punctuation — can turn readers away.
Poor English can also hinder your chances of being considered an industry expert.
Grammarly is an essential writing tool that solves the most common spelling and grammatical issues.
It’s available as a browser extension and highlights grammatical errors in any text, be it a Google Doc, an email, or a social media post. You can correct spellings and punctuations with a click and replace misused or overused words just as quickly.
The app’s functionality across different social media channels and web platforms make it a must-have for bloggers.
3. YoastSEO: Best for WordPress SEO
WordPress powers 40.5% of all websites. If you’re among the millions that use this content management system for your blog, then you’ve probably heard of Yoast SEO.
Yoast SEO is a leading WordPress plugin that offers keyword optimization, checks your blog’s readability, and identifies duplicate content.
The plugin’s premium version can help you elevate your WordPress blog by finding and adding high-performing keywords, indexing optimization, internal linking suggestions, and integration with other tools such as Zapier and Elementor.
These features aim to help bloggers, be they experts or rookies, get better SERP rankings and reach a bigger audience.
4. Google Analytics: Best for Analytics
One of the easiest ways for a blogger to check how their site is performing is using Google Analytics.
This free tool can help site owners and web workers track Key Performance Indicators (KPIs) on a blog page or overall website.
It provides real-time data on your website traffic, custom reporting options, advanced segmentation, conversion reporting, and more.
Understanding how visitors move through your site can help you tweak your website and increase blog traffic.
For example, you can identify your most popular blog post and promote it extensively, while simultaneously creating similar content.
5. Drift: Best for Live Chat
A successful blog provides readers with valuable information that keeps them coming back for more.
When your customers are already engaged in content and have questions, you don’t want them to leave your site to get answers.
You also don’t want readers interested in your brand or products to have to look around for contact information.
A live chat on your blog can help readers get quick replies to their queries and build a connection with your brand.
Drift, a self-proclaimed revenue acceleration platform, helps you connect with customers by creating custom live chat sequences.
For example, Track-POD features an automated Drift chat on their blog. The chat pops up and prompts users to ask any questions about route optimization software or other topics on the site.
Drift allows users to set up custom automated options. So, if a reader wants to book a meeting, you can set up a sequence of automatic responses that ask for their basic details. It’s then a simple matter to show available times and dates.
In simple terms, you can set up a live chat sequence to automatically handle the most common customer queries and give your audience the chance to talk to a real customer support executive, if needed.
6. Voila Norbert: Best for Outreach
Outreach is essential for blog growth. Building connections with peers, guest posting, and cross-promoting can help bloggers build credibility, get more readers, and establish themselves as industry experts.
Voila Norbert can help you find anyone’s email address with a simple search. You just need to know their name and website.
The software is useful for more than finding emails. You can add emails to a list and then send a message to everyone on it. You can keep team members informed of progress with a particular lead by starting discussions.
Voila Norbert beats out its competitors because of the number of integrations it offers. Some tools it can integrate with include Gmail, Drip, ReplyApp, Hubspot, Close.com, and other CRM platforms.
7. Buffer: Best for Social Media
Social media has become an integral part of every blogger’s life. Social sharing is the best way to get your content out there, interact with readers, and collaborate with others in your industry.
Buffer is a social media management platform that helps you plan, publish, and analyze your posts and engagement across Instagram, Twitter, Facebook, and LinkedIn.
This great tool helps you share your blog content via customized posts for each social media platform. Posts can be planned months or weeks in advance. You can also get reminders for when it’s time to publish.
Once you’ve started sharing your blog posts on social media, you can get in-depth analytics for how they’re performing on Twitter, Facebook, LinkedIn, and Instagram.
You can also see and instantly reply to comments across platforms on your dashboard to build engagement with your audience.
Buffer is a market leader when it comes to social media management, and it’s easy to see why.
Conclusion
The tools listed in this article are just 7 of the hundreds available on the market today. You don’t need to break your bank and get the most expensive tools to make the most impact. Apart from the tools listed above, bloggers can use tons of inexpensive Add-Ons for Google Docs to gain a ton of additional functionality and make blog post creation effortless. Graphic design tools like Adobe Photoshop can also help you create visually appealing blog banners and other creatives for your blogs.
Your main goal should be to pick the right tools for you and your team and use them together to build an engaged reader base.
Here’s Ashley Rich at Delicious Brains writing about all the layers of caching that are relevant to a WordPress site. I think we all know that caching is complicated, but jeez, it’s a journey to understand all the caches at work here. The point of cache being speed and reducing burden on the worst bottlenecks and slowest/busiest parts of a web stack.
Here’s my own understanding:
Files can be cached by the browser. This is the fastest possible cache as no network request happens at all. Assets like images, CSS, and JavaScript are often cached this way because they don’t change terribly frequently, but you have to make sure you’re telling browsers that it’s OK to do this and have a mechanism in place to break that cache if you need to (e.g. by changing file names). You very rarely cache the HTML this way, as it changes the most and file-name-cache-busting of HTML seems more tricky than it’s worth.
Files can be cached at the CDN level. This is great because even though network traffic is happening, CDN servers are very fast and likely geographically closer to users than your origin server. If users get files from here, they never even trouble your origin server. You’ll need a way to break this cache as well, which again is probably through changing file names. You might cache HTML at this level even without changing file names if you have a mechanism to clear that cache globally when content changes.
The origin server might cache built HTML pages. On a WordPress site, the pages are built with PHP which probably triggers MySQL queries. If the server can save the result of the things that have already executed, that means it can serve a “static” file as a response, which it can do much faster than having to run the PHP and MySQL. That’ll work for logged out users, who all get the same response, but not for logged in users who have dynamic content on the page (like the WordPress admin bar).
The database has its own special caching. After a MySQL query is executed, the results can be saved in an Object Cache, meaning the same request can come from that cache instead of having to run the query again. You get that automatically to some degree, but ideally it gets wired up to a more persistent store, which you do not get automatically
Phew. It gets a little easier with Jamstack since your pages are prebuilt and CDN-hosted already, and in the case of Netlify, you don’t even have to worry about cache busting.
But even as complex as this is, I don’t worry about it all that much. This WordPress site uses Flywheel for hosting which deals with the database and server-level caching, I have Cloudflare in front of it with special WordPress optimization for the CDN caching, and roll-my-own file-name cache busting (I wish this part was easier). I’d certainly trust SpinupWP to get it right too, given Ashley’s great writeup I’m linking to here.
Authentication and access control are required for most applications, but they often distract us from building core features. In this article, I’ll cover a straightforward way to add auth and access control in React.
Instead of adding a static library that you have to keep up to date or re-research each time you build a project, we’ll use a service that stays up to date automatically and is a much simpler alternative to Auth0, Okta, and others.
React authentication
There are two main things your React application needs to do to sign on a user:
Get an access token from an authentication server
Send the access token to your backend server with each subsequent request
These steps are the same for pretty much all authentication, whether that’s standard email and password, magic links, or single sign on (SSO) providers like Google, Azure, or Facebook.
Ultimately, we want our React app to send an initial request to an authentication server and have that server generate an access token we can use.
JWT access tokens
There are different choices for what type of access token to use, and JSON Web Tokens (JWTs) are a great option. JWTs are compact, URL-safe tokens that your React application can use for authentication and access control.
Each JWT has a JSON object as its “payload” and is signed such that your backend server can verify that the payload is authentic. An example JWT looks like:
It’s important to note that this payload is readable by anyone with the JWT, including your React application or a third party. Anyone that has the JWT can read its contents.
However, only the authentication server can generate valid JWTs. Your React application, your backend server, or a malicious third party cannot generate valid JWTs, only read and verify them.
When your backend server receives a request with a JWT, it should verify the JWT as authentic by checking it against the public key for that JWT. This allows your application server to verify incoming JWTs and reject any tokens that were not created by the authentication server (or that have expired).
The flow for using a JWT in your React application looks like this:
Your React app requests a JWT from the authentication server whenever the user wants to sign on.
The authentication server generates a JWT using a private key and then sends the JWT back to your React app.
Your React app stores this JWT and sends it to your backend server whenever your user needs to make a request.
Your backend server verifies the JWT using a public key and then reads the payload to determine which user is making the request.
Each of these steps is simple to write down, but each step has its own pitfalls when you actually want to implement it and keep it secure. Especially over time, as new threat vectors emerge and new platforms need to be patched or supported, the security overhead can add up quickly.
Userfront removes auth complexity in React apps
Userfront is a framework that abstracts away auth complexity. This makes it much easier for you to work with authentication in a React application and, perhaps most importantly, it keeps all the auth protocols updated for you automatically over time.
The underlying philosophy with Userfront is that world-class auth should not take effort – it should be easy to set up, and security updates should happen for you automatically. Userfront has all the bells and whistles of authentication, Single Sign On (SSO), access control, and multi-tenancy, with a production-ready free tier up to 10,000 monthly active users.
For most modern React applications, it’s a great solution.
Setting up authentication in React
Now we’ll go through building all the main aspects of authentication in a React application. The final code for this example is available here.
Set up your React application and get your build pipeline in order however you prefer. In this tutorial, we’ll use Create React App, which does a lot of the setup work for us, and we’ll also add React Router for client-side routing. Start by installing Create React App and React Router:
Now the home page has your signup form. Try signing up a user:
Your signup form is in “Test mode” by default, which will create user records in a test environment you can view separately in your Userfront dashboard:
Continue by adding your login and password reset forms in the same way that you added your signup form:
At this point, your signup, login, and password reset should all be functional.
Your users can sign up, log in, and reset their password.
Access control in React
Usually, we don’t want users to be able to view the dashboard unless they are logged in. This is known as a protected route.
Whenever a user is not logged in but tries to visit /dashboard, we can redirect them to the login screen.
We can accomplish this by updating the Dashboard component in src/App.js to handle the conditional logic.
When a user is logged in with Userfront, they will have an access token available as Userfront.accessToken(). We can check for this token to determine if the user is logged in. If the user is logged in, we can show the dashboard page, and if the user is not logged in, we can redirect to the login page.
Add the Redirect component to the import statement for React Router, and then update the Dashboard component to redirect if no access token is present.
// src/App.js
import React from "react";
import {
BrowserRouter as Router,
Switch,
Route,
Link,
Redirect, // Be sure to add this import
} from "react-router-dom";
// ...
function Dashboard() {
function renderFn({ location }) {
// If the user is not logged in, redirect to login
if (!Userfront.accessToken()) {
return (
<Redirect
to={{
pathname: "/login",
state: { from: location },
}}
/>
);
}
// If the user is logged in, show the dashboard
const userData = JSON.stringify(Userfront.user, null, 2);
return (
<div>
<h2>Dashboard</h2>
<pre>{userData}</pre>
<button onClick={Userfront.logout}>Logout</button>
</div>
);
}
return <Route render={renderFn} />;
}
Notice also that we’ve added a logout button by calling Userfront.logout() directly:
Now, when a user is logged in, they can view the dashboard. If the user is not logged in, they will be redirected to the login page.
React authentication with an API
You’ll probably want to retrieve user-specific information from your backend. In order to protect your API endpoints, your backend server should check that incoming JWTs are valid.
There are many libraries available to read and verify JWTs across various languages; here are a few popular libraries for handling JWTs:
While the user is logged in, their access token is available in your React application as Userfront.accessToken().
Your React application can send this as a Bearer token inside the Authorization header to your backend server. For example:
// Example of calling an endpoint with a JWT
import Userfront from "@userfront/react";
Userfront.init("demo1234");
async function getInfo() {
const res = await window.fetch("/your-endpoint", {
method: "GET",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${Userfront.accessToken()}`,
},
});
console.log(res);
}
getInfo();
To handle a request like this, your backend should read the JWT from the Authorization header and verify that it is valid using the public key found in your Userfront dashboard.
Here is an example of Node.js middleware to read and verify the JWT access token:
// Node.js example (Express.js)
const jwt = require("jsonwebtoken");
function authenticateToken(req, res, next) {
// Read the JWT access token from the request header
const authHeader = req.headers["authorization"];
const token = authHeader && authHeader.split(" ")[1];
if (token == null) return res.sendStatus(401); // Return 401 if no token
// Verify the token using the Userfront public key
jwt.verify(token, process.env.USERFRONT_PUBLIC_KEY, (err, auth) => {
if (err) return res.sendStatus(403); // Return 403 if there is an error verifying
req.auth = auth;
next();
});
}
Using this approach, any invalid or missing tokens would be rejected by your server. You can also reference the contents of the token later in the route handlers using the req.auth object:
With this information, you can perform further checks as desired, or use the userId or userUuid to look up user information to return.
For example, if you wanted to limit a route to admin users only, you could check against the authorization object from the verified access token, and reject any tokens that don’t have an admin role:
With your Toolkit forms in place, you can add social identity providers like Google, Facebook, and LinkedIn to your React application, or business identity providers like Azure AD, Office365, and more.
You do this by creating an application with the identity provider (e.g. Google), and then adding that application’s credentials to the Userfront dashboard. The result is a modified sign on experience:
No additional code is needed to implement Single Sign On using this approach: you can add and remove providers without updating your forms or the way you handle JWTs.
Final notes
React authentication and access control can be complex to do yourself, or it can be simple when using a service.
Both the setup step and, more importantly, the maintenance over time, are handled with modern platforms like Userfront.
JSON Web Tokens allow you to cleanly separate your auth token generation layer from the rest of your application, making it easier to reason about and more modular for future needs. This architecture also allows you to focus your efforts on your core application, where you are likely to create much more value for yourself or your clients.
For more details on adding auth to your React application, visit the Userfront guide, which covers everything from setting up your auth forms to API documentation, example repositories, working with different languages and frameworks, and more.