The End Of My Gatsby Journey
A fun fact about me is that my birthday is on Valentine’s Day. This year, I wanted to celebrate by launching a simple website that lets people receive anonymous letters through a personal link. The idea came up to me at the beginning of February, so I wanted to finish the project as soon as possible since time was of the essence.
Having that in mind, I decided not to do SSR/SSG with Gatsby for the project but rather go with a single-page application (SPA) using Vite and React — a rather hard decision considering my extensive experience with Gatsby. Years ago, when I started using React and learning more and more about today’s intricate web landscape, I picked up Gatsby.js as my render framework of choice because SSR/SSG was necessary for every website, right?
I used it for everything, from the most basic website to the most over-engineered project. I absolutely loved it and thought it was the best tool, and I was incredibly confident in my decision since I was getting perfect Lighthouse scores in the process.
The years passed, and I found myself constantly fighting with Gatsby plugins, resorting to hacky solutions for them and even spending more time waiting for the server to start. It felt like I was fixing more than making. I even started a series for this magazine all about the “Gatsby headaches” I experienced most and how to overcome them.
It was like Gatsby got tougher to use with time because of lots of unaddressed issues: outdated dependencies, cold starts, slow builds, and stale plugins, to name a few. Starting a Gatsby project became tedious for me, and perfect Lighthouse scores couldn’t make up for that.
So, I’ve decided to stop using Gatsby as my go-to framework.
To my surprise, the Vite + React combination I mentioned earlier turned out to be a lot more efficient than I expected while maintaining almost the same great performance measures as Gatsby. It’s a hard conclusion to stomach after years of Gatsby’s loyalty.
I mean, I still think Gatsby is extremely useful for plenty of projects, and I plan on talking about those in a bit. But Gatsby has undergone a series of recent unfortunate events after Netlify acquired it, the impacts of which can be seen in down-trending results from the most recent State of JavaScript survey. The likelihood of a developer picking up Gatsby again after using it for other projects plummeted from 89% to a meager 38% between 2019 and 2022 alone.
Although Gatsby was still the second most-used rendering framework as recently as 2022 — we are still expecting results from the 2023 survey — my prediction is that the decline will continue and dip well below 38%.
Seeing as this is my personal farewell to Gatsby, I wanted to write about where, in my opinion, it went wrong, where it is still useful, and how I am handling my future projects.
Gatsby: A Retrospective
Kyle Mathews started working on what would eventually become Gatsby in late 2015. Thanks to its unique data layer and SSG approach, it was hyped for success and achieved a $3.8 million funding seed round in 2018. Despite initial doubts, Gatsby remained steadfast in its commitment and became a frontrunner in the Jamstack community by consistently enhancing its open-source framework and bringing new and better changes with each version.
So… where did it all go wrong?
I’d say it was the introduction of Gatsby Cloud in 2019, as Gatsby aimed at generating continuous revenue and solidifying its business model. Many (myself included) pinpoint Gatsby’s downfall to Gatsby Cloud, as it would end up cutting resources from the main framework and even making it harder to host in other cloud providers.
The core framework had been optimized in a way that using Gatsby and Gatsby Cloud together required no additional hosting configurations, which, as a consequence, made deployments in other platforms much more difficult, both by neglecting to provide documentation for third-party deployments and by releasing exclusive features, like incremental builds, that were only available to Gatsby users who had committed to using Gatsby Cloud. In short, hosting projects on anything but Gatsby Cloud felt like a penalty.
As a framework, Gatsby lost users to Next.js, as shown in both surveys and npm trends, while Gatsby Cloud struggled to compete with the likes of Vercel and Netlify; the former acquiring Gatsby in February of 2023.
“It [was] clear after a while that [Gatsby] weren’t winning the framework battle against Vercel, as a general purpose framework […] And they were probably a bit boxed in by us in terms of building a cloud platform.”
— Matt Biilmann, Netlify CEO
The Netlify acquisition was the last straw in an already tumbling framework haystack. The migration from Gatsby Cloud to Netlify wasn’t pretty for customers either; some teams were charged 120% more — or had incurred extraneous fees — after converting from Gatsby Cloud to Netlify, even with the same Gatsby Cloud plan they had! Many key Gatsby Cloud features, specifically incremental builds that reduced build times of small changes from minutes to seconds, were simply no longer available in Netlify, despite Kyle Mathews saying they would be ported over to Netlify:
“Many performance innovations specifically for large, content-heavy websites, preview, and collaboration workflows, will be incorporated into the Netlify platform and, where relevant, made available across frameworks.”
— Kyle Mathews
However, in a Netlify forum thread dated August 2023, a mere six months after the acquisition, a Netlify support engineer contradicted Mathews’s statement, saying there were no plans to add incremental features in Netlify.
That left no significant reason to remain with Gatsby. And I think this comment on the same thread perfectly sums up the community’s collective sentiment:
“Yikes. Huge blow to Gatsby Cloud customers. The incremental build speed was exactly why we switched from Netlify to Gatsby Cloud in the first place. It’s really unfortunate to be forced to migrate while simultaneously introducing a huge regression in performance and experience.”
Netlify’s acquisition also brought about a company restructuring that substantially reduced the headcount of Gatsby’s engineering team, followed by a complete stop in commit activities. A report in an ominous tweet by Astro co-founder Fred Scott further exacerbated concerns about Gatsby’s future.
Lennart Jörgens, former full-stack developer at Gatsby and Netlify, replied, insinuating there was only one person left after the layoffs:
You can see all these factors contributing to Gatsby’s usage downfall in the 2023 Stack Overflow survey.
Biilmann addressed the community’s concerns about Gatsby’s viability in an open issue from the Gatsby repository:
“While we don’t plan for Gatsby to be where the main innovation in the framework ecosystem takes place, it will be a safe, robust and reliable choice to build production quality websites and e-commerce stores, and will gain new powers by ways of great complementary tools.”
— Matt Biilmann
He also shed light on Gatsby’s future focus:
- “First, ensure stability, predictability, and good performance.
- Second, give it new powers by strong integration with all new tooling that we add to our Composable Web Platform (for more on what’s all that, you can check out our homepage).
- Third, make Gatsby more open by decoupling some parts of it that were closely tied to proprietary cloud infrastructure. The already-released Adapters feature is part of that effort.”
— Matt Biilmann
So, Gatsby gave up competing against Next.js on innovation, and instead, it will focus on keeping the existing framework clean and steady in its current state. Frankly, this seems like the most reasonable course of action considering today’s state of affairs.
Why Did People Stop Using Gatsby?
Yes, Gatsby Cloud ended abruptly, but as a framework independent of its cloud provider, other aspects encouraged developers to look for alternatives to Gatsby.
As far as I am concerned, Gatsby’s developer experience (DX) became more of a burden than a help, and there are two main culprits where I lay the blame: dependency hell and slow bundling times.
Dependency Hell
Go ahead and start a new Gatsby project:
gatsby new
After waiting a couple of minutes you will get your brand new Gatsby site. You’d rightly expect to have a clean slate with zero vulnerabilities and outdated dependencies with this out-of-the-box setup, but here’s what you will find in the terminal once you run npm audit
:
18 vulnerabilities (11 moderate, 6 high, 1 critical)
That looks concerning — and it is — not so much from a security perspective but as an indication of decaying DX. As a static site generator (SSG), Gatsby will, unsurprisingly, deliver a static and safe site that (normally) doesn’t have access to a database or server, making it immune to most cyber attacks. Besides, lots of those vulnerabilities are in the developer tools and never reach the end user. Alas, relying on npm audit
to assess your site security is a naive choice at best.
However, those vulnerabilities reveal an underlying issue: the whopping number of dependencies Gatsby uses is 168(!) at the time I’m writing this. For the sake of comparison, Next.js uses 16 dependencies. A lot of Gatsby’s dependencies are outdated, hence the warnings, but trying to update them to their latest versions will likely unleash a dependency hell full of additional npm warnings and errors.
In a related subreddit from 2022, a user asked, “Is it possible to have a Gatsby site without vulnerabilities?”
The real answer is disappointing, but as of March 2024, it remains true.
A Gatsby site should work completely fine, even with that many dependencies, and extending your project shouldn’t be a problem, whether through its plugin ecosystem or other packages. However, when trying to upgrade any existing dependency you will find that you can’t! Or at least you can’t do it without introducing breaking changes to one of the 168 dependencies, many of which rely on outdated versions of other libraries that also cannot be updated.
It’s that inception-like roundabout of dependencies that I call dependency hell.
Slow Build And Development Times
To me, one of the most important aspects of choosing a development tool is how comfortable it feels to use it and how fast it is to get a project up and running. As I’ve said before, users don’t care or know what a “tech stack” is or what framework is in use; they want a good-looking website that helps them achieve the task they came for. Many developers don’t even question what tech stack is used on each site they visit; at least, I hope not.
With that in mind, choosing a framework boils down to how efficiently you can use it. If your development server constantly experiences cold starts and crashes and is unable to quickly reflect changes, that’s a poor DX and a signal that there may be a better option.
That’s the main reason I won’t automatically reach for Gatsby from here on out. Installation is no longer a trivial task; the dependencies are firing off warnings, and it takes the development server upwards of 30 seconds to boot. I’ve even found that the longer the server runs, the slower it gets; this happens constantly to me, though I admittedly have not heard similar gripes from other developers. Regardless, I get infuriated having to constantly restart my development server every time I make a change to gatsby-config.js
, gatsby-node.js
files, or any other data source.
This new reality is particularly painful, knowing that a Vite.js + React setup can start a server within 500ms thanks to the use of esbuild.
Running gatsby build
gets worse. Build times for larger projects normally take some number of minutes, which is understandable when we consider all of the pages, data sources, and optimizations Gatsby does behind the scenes. However, even a small content edit to a page triggers a full build and deployment process, and the endless waiting is not only exhausting but downright distracting for getting things done. That’s what incremental builds were designed to solve and the reason many people switched from Netlify to Gatsby Cloud when using Gatsby. It’s a shame we no longer have that as an available option.
The moment Gatsby Cloud was discontinued along with incremental builds, the incentives for continuing to use Gatsby became pretty much non-existent. The slow build times are simply too costly to the development workflow.
What Gatsby Did Awesomely Well
I still believe that Gatsby has awesome things that other rendering frameworks don’t, and that’s why I will keep using it, albeit for specific cases, such as my personal website. It just isn’t my go-to framework for everything, mainly because Gatsby (and the Jamstack) wasn’t meant for every project, even if Gatsby was marketed as a general-purpose framework.
Here’s where I see Gatsby still leading the competition:
-
The GraphQL data layer.
In Gatsby, all the configured data is available in the same place, a data layer that’s easy to access using GraphQL queries in any part of your project. This is by far the best Gatsby feature, and it trivializes the process of building static pages from data, e.g., a blog from a content management system API or documentation from Markdown files. -
Client performance.
While Gatsby’s developer experience is questionable, I believe it delivers one of the best user experiences for navigating a website. Static pages and assets deliver the fastest possible load times, and using React Router with pre-rendering of proximate links offers one of the smoothest experiences navigating between pages. We also have to note Gatsby’s amazing image API, which optimizes images to all extents. -
The plugin ecosystem (kinda).
There is typically a Gatsby plugin for everything. This is awesome when using a CMS as a data source since you could just install its specific plugin and have all the necessary data in your data layer. However, a lot of plugins went unmaintained and grew outdated, introducing unsolvable dependency issues that come with dependency hell.
I briefly glossed over the good parts of Gatsby in contrast to the bad parts. Does that mean that Gatsby has more bad parts? Absolutely not; you just won’t find the bad parts in any documentation. The bad parts also aren’t deal breakers in isolation, but they snowball into a tedious and lengthy developer experience that pushes away its advocates to other solutions or rendering frameworks.
Do We Need SSR/SSG For Everything?
I’ll go on record saying that I am not replacing Gatsby with another rendering framework, like Next.js or Remix, but just avoiding them altogether. I’ve found they aren’t actually needed in a lot of cases.
Think, why do we use any type of rendering framework in the first place? I’d say it’s for two main reasons: crawling bots and initial loading time.
SEO And Crawling Bots
Most React apps start with a hollow body, only having an empty
tags. The JavaScript code then runs in the browser, where React creates the Virtual DOM and injects the rendered user interface into the browser.
Over slow networks, users may notice a white screen before the page is actually rendered, which is just mildly annoying at best (but devastating at worst).
However, search engines like Google and Bing deploy bots that only see an empty page and decide not to crawl the content. Or, if you are linking up a post on social media, you may not get OpenGraph benefits like a link preview.
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
This was the case years ago, making SSR/SSG necessary for getting noticed by Google bots. Nowadays, Google can run JavaScript and render the content to crawl your website. While using SSR or SSG does make this process faster, not all bots can run JavaScript. It’s a tradeoff you can make for a lot of projects and one you can minimize on your cloud provider by pre-rendering your content.
Initial Loading Time
Pre-rendered pages load faster since they deliver static content that relieves the browser from having to run expensive JavaScript.
It’s especially useful when loading pages that are behind authentication; in a client-side rendered (CSR) page, we would need to display a loading state while we check if the user is logged in, while an SSR page can perform the check on the server and send back the correct static content. I have found, however, that this trade-off is an uncompelling argument for using a rendering framework over a CSR React app.
In any case, my SPA built on React + Vite.js gave me a perfect Lighthouse score for the landing page. Pages that fetch data behind authentication resulted in near-perfect Core Web Vitals scores.
What Projects Gatsby Is Still Good For
Gatsby and rendering frameworks are excellent for programmatically creating pages from data and, specifically, for blogs, e-commerce, and documentation.
Don’t be disappointed, though, if it isn’t the right tool for every use case, as that is akin to blaming a screwdriver for not being a good hammer. It still has good uses, though fewer than it could due to all the reasons we discussed before.
But Gatsby is still a useful tool. If you are a Gatsby developer the main reason you’d reach for it is because you know Gatsby. Not using it might be considered an opportunity cost in economic terms:
“Opportunity cost is the value of the next-best alternative when a decision is made; it’s what is given up.”
Imagine a student who spends an hour and $30 attending a yoga class the evening before a deadline. The opportunity cost encompasses the time that could have been dedicated to completing the project and the $30 that could have been used for future expenses.
As a Gatsby developer, I could start a new project using another rendering framework like Next.js. Even if Next.js has faster server starts, I would need to factor in my learning curve to use it as efficiently as I do Gatsby. That’s why, for my latest project, I decided to avoid rendering frameworks altogether and use Vite.js + React — I wanted to avoid the opportunity cost that comes with spending time learning how to use an “unfamiliar” framework.
Conclusion
So, is Gatsby dead? Not at all, or at least I don’t think Netlify will let it go away any time soon. The acquisition and subsequent changes to Gatsby Cloud may have taken a massive toll on the core framework, but Gatsby is very much still breathing, even if the current slow commits pushed to the repo look like it’s barely alive or hibernating.
I will most likely stick to Vite.js + React for my future endeavors and only use rendering frameworks when I actually need them. What are the tradeoffs? Sacrificing negligible page performance in favor of a faster and more pleasant DX that maintains my sanity? I’ll take that deal every day.
And, of course, this is my experience as a long-time Gatsby loyalist. Your experience is likely to differ, so the mileage of everything I’m saying may vary depending on your background using Gatsby on your own projects.
That’s why I’d love for you to comment below: if you see it differently, please tell me! Is your current experience using Gatsby different, better, or worse than it was a year ago? What’s different to you, if anything? It would be awesome to get other perspectives in here, perhaps from someone who has been involved in maintaining the framework.
Further Reading On SmashingMag
Revolutionize Your Strategy: Embrace the Future With AI-Powered Marketing
Artificial intelligence is no longer a buzzword. It has earned its place in the digital sales and marketing world. This is partly due to its ability to analyze, predict, and respond to large quantities of information in a matter of seconds. But also, as more companies are leaning into AI-powered marketing efforts, others are following suit.
Nearly every part of the marketing process can benefit from AI. So whether your focus is lead generation, content creation, or campaign optimization, using AI can improve your strategy. Curious to learn how? Below are three ways to use AI that will revolutionize your marketing approach.
1. Data-Driven Insights
One of the many benefits of utilizing AI technology is unlocking data-driven insights. You can tap into real data that will inform how you operate. So rather than guessing which months of the year will be busiest for you, you can know exactly when to ramp up. Or, you can forecast when demand surges will occur based on historical information and react preemptively. These examples are part of predictive analytics, the use of mathematical methods including artificial intelligence and machine learning to better predict the value of something in the future.
Hawke points out that predictive analytics can be seen as a “roadmap for future actions.” Unlike traditional analytics, which tells businesses how they performed last month, predictive analytics suggests how you’ll perform next month. By analyzing patterns and prior performance metrics, you’re able to make more data-based decisions for your business.
Moreover, predictive analytics powered by AI can reduce costs, increase margins, and even reduce your environmental impact. It can also help you see which customers you might be at risk of losing. Knowing this information, you can use specific marketing techniques to re-engage and bring them back into your sales wheel. The more you use predictive analytics, the more you’ll learn about your business. And with this, the more you’ll be able to predict — rather than react — to various circumstances.
2. Personalized Customer Experience
Personalized marketing is here to stay. Customers expect to receive offers that match their specific needs, ones that will entice them to make a purchase. They want your brand message to feel like it was tailored just for them. While personalization isn’t a new marketing strategy, AI is enhancing how companies are able to better meet their customers’ expectations.
AI is able to leverage your customer’s privacy-safe data to suggest new content and targeted offers. With so many marketing messages bombarding your target audience every day, standing out is key. More times than not, a standardized call-to-action isn’t going to cut it. Instead, customers are looking for a message that speaks directly to them. It meets them where they are in discovery or searching mode, whether that is in their email inbox or on social media.
An example of AI personalization marketing in work is a “recommended products” or “customers also purchased” section on an e-commerce site. These recommendations should be based on past purchasing habits as well as demographic and behavioral data. While this is a use-case of personalized website content, personalized email content is also a worthy tactic. AI can ensure the right email message is sent to the right customers through more advanced segmentation and granular optimization.
3. Advanced Digital Media Buying
Another beneficial way to utilize AI in marketing is through your media buying strategy. Even if you are currently optimizing campaigns based on performance, you still may not be maximizing your ROI. Again, AI technology can predict which ad placements are likely to perform the best for you. It can also forecast how to best reach your target audience for various campaigns.
Another huge benefit of AI is its ability to automate processes — something that can significantly enhance the media buying process. Typically, media buying is a manual, time-consuming process. It involves looking at different publishers and deciding which platforms are worth your investment. But with AI, the process is more streamlined as historical data is analyzed and future trends are considered. Every ad dollar spent is therefore maximized.
But the power of AI doesn’t stop once you launch a campaign. As your campaign is running, AI tools will help optimize each ad’s performance. The campaign is monitored and areas of improvement are recommended or automatically adjusted based on your parameters. Because campaigns are optimized in real-time, you aren’t losing out on a potential customer lead.
Takeaways
The capabilities of AI are vast. Marketers today are arguably just scratching the surface of leveraging this tool to its fullest potential. As of now, the tool is being used for individual tasks with a single end goal. Because of this, AI shouldn’t fully replace your marketing team or replicate their knowledge base entirely. Instead, AI should be seen as an advantageous tool in your marketing toolbox.
As you begin to implement AI, take some time to think about how the tool can best serve you. If you’re struggling in audience segmentation, use AI to better find your audience based on interest and behavior insights. If you’re looking to drive more sales from current customers, then perhaps your personalization tactics can be supplemented with the help of AI. Using AI strategically will serve you well as you make smarter decisions and improve your ROI across your marketing initiatives.
Featured Image by charlesdeluvio on Unsplash
The post Revolutionize Your Strategy: Embrace the Future With AI-Powered Marketing appeared first on noupe.
Organizing Your Day for Maximum Small-Business Productivity
Americans don’t feel optimistic about the economy in 2024, and that includes small-business owners. In fact, nearly half of small-business owners believe that 2024 will be a “make or break” year for their business.
Turning your small business into a success can seem like an overwhelming task, but it doesn’t have to be. Rome wasn’t built in a day, but it was built day by day. Your small business will be built the same way — by stacking one productive day on top of another.
Keep reading for tips on how small-business owners can organize their days for maximum productivity.
Know what needs to be done
As a small-business owner, being maximally productive each day could be the difference between building a profitable business for yourself and commuting for hours to a job you hate and working for a horrible boss.
The first step toward productivity is knowing exactly what you need to get done. Survey the tasks at hand and organize them. You can use task apps or a project management tool for this. What needs to get done in the next hour, in the next day, in the next week, or in the next month? Tackle the most urgent tasks first to ensure you address everything that needs to get done and then work your way down the list.
Set priorities and keep the big picture in mind
A lot of your workday will be spent on urgent tasks, such as paying invoices, attending meetings, and returning phone calls and emails. This day-to-day work is highly important because it keeps the gears of your business turning.
But don’t forget to take time to zoom out, too. Although work on immediate needs keeps the business running, big-picture moves are the key to large-scale success. Think of it as the difference between making a quick $500 or making a long term $5 million.
Recruiting the right employees, plotting ways to expand, and brainstorming new product or marketing initiatives have a massive impact on your future success, but those tasks never really need to be completed immediately. Set aside some time for this important work or your business could become stagnant.
Create a schedule
When you know what tasks you need to do, place them all into a simple schedule. Structure your workday with the most urgent tasks first, and stack your most cognitively demanding tasks in your most productive periods. For most people, that’s usually early in the workday or around midday. Complete your easiest, least-taxing work — such as data entry — at the end of the day.
Indecision is one of the biggest thieves of your time, so once you compose your schedule, stick to it. Be careful not to overschedule yourself. This will become easier as you get accustomed to scheduling your day and get a better feel for how much time different types of work require. Once you get good at composing your schedule, make the next day’s schedule as your last task each day so you can hit the ground running each morning.
Finally, if you discover that you simply cannot fit all your work into your day, you might have to seriously consider letting other employees handle some of your responsibilities.
Delegate and automate
As your small business picks up momentum, you’ll need to make some hard choices about what kind of work is the best use of your time.
If you’re the founder and you have to make high-stakes decisions, it doesn’t make sense for you to spend a significant percentage of your time on mundane work that others could do. Consider hiring support staff or a virtual assistant to handle simple logistical work, such as scheduling, document management, payroll, and other administrative tasks.
You can also delegate mid-level tasks once you’ve hired some trusted employees, but you must resist the urge to micromanage them. Nothing brings down workplace morale like a boss who stands behind your chair and dictates how to do everything.
When you’re streamlining and creating efficient processes, look for opportunities to incorporate automation into your business. Customer service is one field that can be handled largely by artificial intelligence, such as chatbots. Outsourcing it to AI can translate into significant savings for your business.
Remove distractions
Help yourself focus by removing distractions from your workspace. If you have trouble staying off your phone, keep it in a locked drawer or in the next room. There are also apps that will lock out any time-wasting sites for preset periods of time.
If your coworkers are a source of distraction, establish firm boundaries. Some experts suggest having open-door office hours, during which your coworkers are free to drop in. Outside of that limited time window, you’re to be left alone so you can focus on work.
Don’t multitask, monotask instead
Studies have shown that multitasking is actually an extremely inefficient way to work. Each shift in your attention requires a relatively long adjustment period to refocus, so you end up wasting more time than you’re actually working. Experts estimate that it takes around 20 minutes to fully refocus after you shift your attention from one task to the next. That means if you shuttle between three tasks, you’ll waste a full hour for each “circuit” of multitasking.
A much better way to work is monotasking. This simply means focusing intently on a single task until it’s complete and then shifting to the next task. This maximizes your attention span by forcing you to focus until you enter a “flow state” and dramatically reduces wasted time.
Take breaks
If you’re maximizing your day by working in intense bursts, you’ll need to pause and recharge periodically. Build short breaks into your schedule so you can relax a little before you tackle the next action item on your schedule. Reward yourself with social media check-ins or a walk around the block before starting your next task.
With nearly half of Americans stressed about a poor work-life balance, it’s crucial to take time for yourself. Resist the temptation to skip or work through breaks. Burnout is real and will severely reduce your productivity over the long term.
Featured Image by Brad Neathery on Unsplash
The post Organizing Your Day for Maximum Small-Business Productivity appeared first on noupe.
The Best Figma Fonts of 2024
Fonts are more than just text characters; they shape the user experience. From guiding users through your interface to conveying brand personality, fonts are vital to design. However, finding the perfect font that fits your website or app’s tone can be challenging.
But fear not, we’re here to help! Stay tuned as we explore the significance of fonts in a curated list of the best Figma fonts for 2024 and beyond.
How to Choose the Right Font?
When choosing the appropriate font for your digital content, considering these questions can aid in assessing the font’s clearness and practicality:
- Does the font include all necessary characters and font styles?
- How many variations or weights does the font offer?
- Clearness of structure, for instance, can users differentiate between I, l, or 1 easily?
- How well-designed is the shape of kernings?
- How many alphabet combinations does the chosen font cater to?
You don’t need to search in detail for the most suitable Figma font type for your digital presence anymore, because here is our selection of the best Figma fonts:
Inter
Being one of the famous web design fonts used by Mozilla and GitHub, Inter was created by Rasmus Andersson, a famous Figma designer. Rasmus and the designer team worked hard and spent 3 years creating a core set of glyphs that caters to web users’ needs.
Thanks to its versatile font collection tailored for digital display, it boasts a tall x-height, enhancing legibility for both upper and lowercase text. It offers various OpenType features such as contextual alternates, which adapt punctuation based on neighboring glyphs’ shapes, and a slashed zero option for distinguishing between “0” and “o”. It also includes tabular numbers, among other features, catering to diverse typographic needs.
It works very similarly to Figma components. The main advantages of these design tools tailored to specific fonts include features such as components and support for kerning and the results show in the numbers. According to Google Fonts, Inter is featured on more than 1,300,000 websites with a usage of 4.7 billion times. This showcases Inter will continue to protect its position amongst fonts.
Quicksand
Quicksand is a versatile and user-friendly display sans serif font, ideal for educational materials and tech products. It is also a typeface that embeds both modern and merry flows. Created by Andrew Paglinawan in 2008 with geometric shapes as its foundation, it underwent significant revisions by Thomas Jockin in 2016 to enhance its quality. Later, in 2019, Mirko Velimirovic transformed the font family into a variable font, offering even greater flexibility in design and usage.
With its rounded terminals and legibility in both large and small sizes, Quicksand is a valuable asset for SEO-friendly design in Figma. However, Quicksand has no options for Cyrillic alphabets.
Poppins
Poppins is a geometric sans serif font known for its modern twist on a classic style. It supports both Devanagari and Latin scripts. The font features diligently prepared glyphs with a rationalist design frame, also including a unique Devanagari typeface based on geometric shapes like circles. Poppins is created by Indian Type Foundry which offers multilingual fonts for digital purposes as many Indian and international alphabets are included.
Poppins’ monolinear letterforms ensure consistent typographic balance, while its diverse character set supports 244 languages, making it suitable for various global contexts. It’s often used in corporate, editorial, web, and mobile design, thanks to its modern yet friendly feel with a hint of sophistication. Described as approachable, balanced, and versatile, Poppins is an excellent choice for projects requiring a contemporary and professional look.
,
“Noupe Magazine” in Devanagari alphabet in the Poppins font.
Mulish
Formerly known as Muli, Mulish underwent a name change in 2020, marking a new chapter in its evolution, because it was initially created for display purposes. However, with collaborative efforts from other designers, Mulish has expanded its range with additional weights, making it a perfect fit for both web and mobile interfaces.
Designed by Vernon Adams in 2011 and refined over the years until 2014, Mulish exudes a modern and sophisticated vibe that’s sure to impress. Whether you’re crafting a sleek website or designing captivating mobile interfaces, Mulish has got you covered.
Originating from a design perspective created for display fonts with optimal spacing, Mulish is crafted not only in headline usage but also as body text. It offers a user-friendly font for both mobile and website applications.
Zilla Slab
Zilla Slab serves as Mozilla’s main font, prominently featured in its logo, headlines, and overall design. This contemporary slab serif font, created by Yuliya Gorlovetsky and based on Typotheque’s Tesla, boasts smooth curves and true italics, lending text an unexpectedly sleek industrial look while maintaining a friendly and approachable feel across all weights.
In addition to its use in the Mozilla Foundation’s branding, including its logo, Zilla Slab is also employed in various products and projects such as MDN Web Docs and Common Voice, alongside fonts like Inter and Metropolis. Ohio University also adopted Zilla Slab as their secondary font choice starting on February 21, 2018.
Zilla Slab is readily available on GitHub, Google Fonts, and through Mozilla’s CDN. Additionally, its variant, Zilla Slab Highlight, can be found in the same GitHub repository and is also accessible via Google Fonts.
Plus Jakarta Sans
Plus Jakarta Sans is a modern take on geometric sans serif fonts, created by Gumpita Rahayu from Tokotype and originally developed for the Jakarta Provincial Government’s and Jakarta City of Collaboration’s identity in 2020. These fonts bring a fresh perspective to the table. This typeface combines historical influences with a modern aesthetic, making it suitable for a wide range of design projects in Figma.
Inspired by classics like Neuzeit Grotesk, Futura, and 1930s grotesque sans serifs, Plus Jakarta Sans features clean-cut shapes with almost monolinear contrast and sharp curves. The x-height is slightly taller, creating distinct spacing between uppercase and lowercase letters. The font also includes open counters and balanced spaces to ensure readability across various sizes. It is available in 505 languages.
Nunito
If you’ve been using Figma for a while, you’ve encountered Nunito. While it may seem like a straightforward sans-serif font, its simplicity is one of its strengths, making it a top choice for elegant designs. Many Figma designers pair Nunito with Lora and Roboto, as these combinations have proven highly effective.
Recently, Nunito expanded to include six weights, making it versatile for both headlines and paragraphs. If you need a thin sans-serif font that’s easy to read, Nunito is a solid option.
Nunito is a comprehensive sans serif typeface family consisting of two versions. It all began with Nunito, designed by Vernon Adams to be a rounded terminal sans serif primarily for display purposes. Jacques Le Bailly expanded the project to encompass a full range of weights, as well as introduced a regular version without rounded terminals, known as Nunito Sans. It’s available in 612 different languages.
Lora
Lora is a sleek and sophisticated serif font that adds a modern touch to any text. While it’s not the best for long passages because of its fancy details, it’s perfect for attention-grabbing headlines. Newspaper headlines, logos, and menu topics could be some examples.
Like Roboto, Lora supports a whopping 311 languages, including Latin and Cyrillic scripts, and comes with all the punctuation and symbols a Figma designer needs.
Lora is a carefully balanced font with a contemporary feel, inspired by calligraphy. Its unique features like smooth curves and bold serifs make it stand out on design projects. This increases its functionality in creative fields. Whether you’re telling a story or writing an essay, Lora sets the right tone effortlessly. Plus, it’s optimized for both screens and print, making it usable for any design project.
Roboto
With its impressive presence on over 610 billion websites, Roboto is one to consider.
Roboto might not be new to the scene, but it’s still got that trendy energy. It’s a timeless classic that adds a touch of sophistication to any Figma project. Its structure with large geometric shapes and subtle quirks makes it versatile for everything from long paragraphs to catchy headlines, especially logos.
What distinguishes Roboto is its dual nature, characterized by its mechanical aspects with mostly geometric forms combined with friendly and open curves. Unlike some fonts that force a rigid rhythm by letterforms, Roboto keeps things natural, allowing letters to settle into their natural width. This creates a more fluid reading experience for humanist and serif fonts. Plus, with support for over 300 languages and a complete set of punctuation, currency symbols, and more, Roboto is one of the go-to choices for any Figma project you’ve got in mind.
Tilt
Let’s look at more energetic types. Tilt is a font family that’s all about the visuals, drawing inspiration from city landscapes, especially the bold lettering seen on shop signs. It includes three variable fonts: Tilt Neon, Tilt Prism, and Tilt Warp. These fonts are based on a simple geometric structure, but each has its unique style and purpose. Tilt Prism is particularly eye-catching and works great for attention-grabbing marketing materials and landing pages.
These fonts are based on a geometric sans serif model used by sign painters but with added details. They are designed as variable fonts, allowing users to rotate glyphs along the X and Y axes by up to ±45° while maintaining readability. This unique feature makes Tilt a versatile choice for various design projects requiring dynamic typography of storefront signage.
Montserrat
Julieta Ulanovsky was inspired by the vintage posters and signage of Buenos Aires’ Montserrat neighborhood to create this typeface, aiming to preserve the essence of urban typography from the early 20th century. As the neighborhood changes, its original charm and unique designs are lost forever. The letters that influenced this project embody hard work, dedication, and the vibrant life of the city, both day and night in Buenos Aires. The Montserrat Project was initiated to capture Montserrat’s essence and release it under a free license, named the SIL Open Font License.
The Montserrat font family includes three variations: the normal family, the Alternates, and the Subrayada sister families. The Alternates feature distinct letterforms, while the Subrayada variation incorporates a special style of underlining inspired by the Montserrat neighborhood. The creative design story of Montserrat results in its comprehensiveness and inclusivity as it offers 593 languages available all over the world.
Why is Choosing the Right Font Important?
- The right fonts make life easier
When you filter your overwhelming list of font selections and narrow it down to a few of the most commonly used and trendy ones, your job gets much easier. Selecting the right font for the appropriate design projects makes it easy to shape that visual structure when your users scroll through your website or app.
- Emotional connotations
Different fonts evoke different emotions and convey different meanings. For instance, a sleek and modern font may convey professionalism and sophistication, while a playful and whimsical font may suggest creativity and friendliness. Choosing a font that aligns with the tone and personality of your message can help reinforce your intended message and connect with your audience on a deeper level.
- Brand recognition
When it comes to providing brand value and uniqueness to things, fonts serve that purpose. Coca-Cola has a unique font customers can associate them with, whereas Amazon has a different font as their brand logo. Your font selection should reflect the brand and ensure the user can picture it in their mind.
- Communication codes
Choosing the right font is important because it directly impacts how your audience perceives your content. The font you select sets your message’s tone, style, and overall impression. It contributes to your text’s readability and visual appeal, influencing how effectively your message is communicated.
Conclusion
Selecting the right font in Figma designs is crucial for enhancing user experience and effectively communicating brand tone and message. From versatile options like Inter and Roboto to elegant choices like Poppins and Lora, there’s a font for every design project. Fonts evoke emotions, convey brand recognition, and directly impact how your audience perceives your content. By choosing fonts that align with your brand’s personality and message, you strengthen brand identity and connect with your audience on a deeper level. Ultimately, the right font enhances readability, visual appeal, and overall user engagement, contributing to successful design outcomes in Figma and beyond.
The post The Best Figma Fonts of 2024 appeared first on noupe.
How Building a Network of Founders Can Impact Your Startup’s Success
Starting a new venture can be daunting, and it’s easy to get caught up in the day-to-day tasks of building your business plan and assembling your team.
But there’s one critical element that can’t be overlooked — building a network of fellow founders.
Here are some of the most important benefits of networking with other entrepreneurs and how they can impact the success of your startup.
Shared Knowledge and Experiences
One of the most exciting things about building a network of founders is the opportunity to share knowledge and experiences. As a startup, you face a unique set of challenges, including securing funding, hiring the right talent, and developing a unique product.
When you connect with other entrepreneurs, you’ll find a wealth of valuable insights and advice that can help you overcome these common obstacles and succeed.
So, how can you make the most of these opportunities to share your expertise and learn from others? Here are some tips that can help you:
- Attend networking events: Whether it’s a local meetup or a conference, attending networking events is a great way to connect with other founders. Be sure to come prepared with questions and be willing to share your own experiences.
- Join online communities: There are plenty of online communities where founders can connect and share knowledge. From Slack channels to Facebook groups, these communities are a great way to get advice and support from other entrepreneurs.
- Offer your expertise: Don’t be afraid to share your own expertise with others. If you have experience in a particular area, such as marketing or fundraising, offer to share your knowledge with others in your network.
- Be open to feedback: When you share your own experiences, be open to feedback from others. Listening to constructive criticism can help you identify areas where you can improve and ultimately grow your business.
Access to Funding Opportunities
Networking with other founders isn’t just about swapping experiences or getting advice; it can also open up doors to funding opportunities that you might not have had access to otherwise. Investors want to see that you have a strong network of founders behind you because it demonstrates that you’re well-connected and have the potential to collaborate on future projects.
But the benefits don’t stop there. Building a network of founders can also lead to introductions to investors, accelerators, and other valuable resources that can help take your startup to the next level. You never know who you might meet at a networking event or connect with on LinkedIn.
Let’s face it, funding is often the lifeblood of a startup. It’s what allows you to bring your vision to life, hire the talent you need, and scale your business. By building a network of founders, you’re increasing your chances of finding the funding you need to make your dreams a reality.
Partnerships and Collaborations
Networking with other founders can be a game-changer for your startup’s success. Imagine the possibilities of connecting with like-minded individuals who have faced similar challenges, can offer valuable insights and advice, and even lead you to funding opportunities.
So, how do you go about building this network?
One platform that can’t be ignored is LinkedIn. However, simply creating a profile and hoping for the best won’t cut it. Properly reaching out to potential connections is essential.
One of the most important things to keep in mind is that you should always personalize your connection requests. Don’t just use the standard LinkedIn messages. Instead, craft a message that is genuine, professional, and highlights your common interests or goals.
Once you’ve connected with someone, make sure to manage your LinkedIn inbox and respond to messages promptly. You never know where a conversation may lead or what opportunities may arise. Keep in mind that networking is a two-way street. Don’t just ask for advice or favors, but offer your own expertise and support as well.
Increased Visibility and Credibility
Building relationships with other entrepreneurs not only helps you make connections but can also help you build a strong reputation within the startup community. When you’re associated with other successful startups, it can increase your startup’s credibility and make it more attractive to investors and potential customers.
However, it’s not just about attending events and collecting business cards. It’s about cultivating real relationships with people who can vouch for you and your startup. It’s about showing up and being present in the community, offering your own expertise and support, and being genuine in your interactions.
Don’t underestimate the power of networking when it comes to increasing your startup’s visibility and credibility. It could be the difference between being just another startup and being a startup that investors and customers are excited to get behind.
Emotional Support and Motivation
Starting a business can feel like a solo mission, but it doesn’t have to be. Networking with other founders can provide a much-needed dose of emotional support and motivation to keep you going.
Building a startup is hard work. It’s filled with ups and downs, and it’s not always easy to stay motivated when things get tough. That’s why having a support system for other entrepreneurs who understand the challenges can be a game-changer.
And let’s not forget the power of motivation. When you see other founders achieving their goals and overcoming their obstacles, it can give you the push you need to keep going. It can remind you that you’re not alone, and that success is possible.
Over to you
If you’re a startup founder, building a network of fellow entrepreneurs is not just a good idea — it’s crucial. From sharing valuable insights to gaining access to funding opportunities, developing partnerships, and getting the emotional support you need to stay motivated, networking can make all the difference when it comes to startup success.
Don’t be afraid to put yourself out there, attend events, and join online communities to connect with other founders. Be authentic, offer your own expertise, and remember that networking is a two-way street.
With a little bit of effort, you can build a powerful network of fellow entrepreneurs that can help take your startup to new heights.
Featured image by Shannon Rowies on Unsplash
The post How Building a Network of Founders Can Impact Your Startup’s Success appeared first on noupe.
Maximising Efficiency: Integrating Salesforce with Other Platforms
In the dynamic landscape of modern business, seamless integration of platforms is essential for maximizing efficiency and unlocking the full potential of your technology stack. Salesforce, a leading customer relationship management (CRM) platform, serves as the backbone of many organizations’ sales, marketing, and customer service operations.
However, to truly harness the power of Salesforce and enhance productivity, businesses often need to integrate it with other key platforms and tools. In this article, we’ll explore the importance of integrating Salesforce with other platforms, the benefits it brings, and some strategies for successful integration.
Why Integrate Salesforce with Other Platforms?
Streamlined Workflows: Integrating Salesforce with other platforms enables data to flow seamlessly between systems, eliminating manual data entry and streamlining workflows. For example, integrating Salesforce with an email marketing platform allows sales teams to access customer engagement data directly within Salesforce, enabling more personalized communication and informed decision-making.
360-Degree View of Customers: By integrating Salesforce with other platforms such as e-commerce platforms, customer support systems, and social media channels, businesses can gain a comprehensive view of their customers’ interactions across various touchpoints. This holistic view enables a better understanding of customer needs, preferences, and behaviors, leading to more targeted marketing campaigns, improved customer service, and increased sales.
Improved Data Accuracy and Consistency: Integrating Salesforce with other platforms helps maintain data accuracy and consistency by eliminating duplicate data entries and ensuring that information is updated in real-time across all systems. This ensures that sales and marketing teams are working with the most up-to-date information, reducing errors and improving decision-making.
Enhanced Productivity and Collaboration: Integrating Salesforce with collaboration tools such as project management software and communication platforms facilitates seamless collaboration among team members. Sales teams can easily collaborate on leads and opportunities, while marketing teams can align their efforts with sales goals more effectively.
Strategies for Successful Integration
Identify Integration Needs: Before embarking on integration projects, it’s essential to identify the specific business processes and use cases that would benefit from integration. Conduct a thorough assessment of your organization’s workflows and systems to determine which platforms should be integrated with Salesforce.
Choose the Right Integration Tools: There are various integration tools and solutions available that facilitate connecting Salesforce with other platforms. Depending on your integration needs and technical requirements, choose the tools that best fit your organization’s goals and budget. Salesforce offers a range of integration options, including pre-built connectors, APIs, and middleware solutions, making it easier to integrate with popular platforms such as ERP systems, marketing automation tools, and customer service platforms.
Ensure Data Security and Compliance: When integrating Salesforce with other platforms, data security and compliance should be top priorities. Ensure that sensitive customer data is encrypted during transmission and storage, and implement access controls and permissions to restrict access to confidential information. Additionally, ensure that your integration solutions comply with relevant data privacy regulations, such as GDPR and CCPA, to avoid potential legal issues.
Provide Training and Support: Once integration is complete, provide comprehensive training and support to end-users to ensure they understand how to effectively use the integrated systems. This may include providing training materials, conducting workshops, and offering ongoing support to address any issues or questions that arise.
Databricks and Salesforce Connector: Bridging the Gap Between Data and Insights
In today’s data-driven world, the ability to derive actionable insights from data is crucial for driving business growth and innovation. Databricks, a unified analytics platform, empowers organizations to harness the power of big data and machine learning to gain valuable insights and make informed decisions.
By integrating Databricks with Salesforce using connectors such as the Salesforce Connector for Databricks, businesses can bridge the gap between data and insights, enabling them to unlock the full potential of their data assets.
The databricks salesforce connector facilitates seamless integration between Salesforce and Databricks, allowing organizations to leverage Salesforce data for advanced analytics, machine learning, and AI-driven insights. With this connector, businesses can easily access and analyze Salesforce data within the Databricks platform, uncovering hidden patterns, trends, and correlations that can inform strategic decision-making and drive business outcomes.
In conclusion, integrating Salesforce with other platforms is essential for maximizing efficiency, enhancing productivity, and unlocking the full potential of your technology stack. By streamlining workflows, gaining a 360-degree view of customers, improving data accuracy and consistency, and fostering collaboration, businesses can drive growth and innovation while delivering exceptional customer experiences.
With tools like the Salesforce Connector for Databricks, organizations can take their data analytics capabilities to the next level, empowering them to derive actionable insights and stay ahead of the competition.
FAQs:
1. Why should I integrate Salesforce with other platforms?
Integrating Salesforce with other platforms allows you to centralize data, automate processes, and provide a seamless experience for your teams and customers. It eliminates silos and manual data entry, leading to improved efficiency and productivity.
2. Which platforms can I integrate with Salesforce?
Salesforce offers a wide range of integration options with popular platforms such as Microsoft Outlook, Google Workspace, SAP, Oracle, QuickBooks, Slack, and many more. Additionally, Salesforce provides APIs and connectors that enable custom integrations with virtually any other platform.
3. What are the benefits of integrating Salesforce with my email platform?
Integrating Salesforce with your email platform (e.g., Outlook or Gmail) enables you to sync emails, contacts, and calendar events between both systems. This integration ensures that all communication related to your sales or customer service activities is captured within Salesforce, allowing for better tracking, follow-up, and reporting.
4. How can I integrate Salesforce with my ERP system?
Integrating Salesforce with your ERP (Enterprise Resource Planning) system, such as SAP or Oracle, allows for seamless data synchronization between your CRM and back-office operations. This integration ensures that sales orders, invoices, inventory levels, and customer information are up-to-date across both systems, leading to improved decision-making and operational efficiency.
5. Can I integrate Salesforce with my accounting software?
Yes, you can integrate Salesforce with accounting software like QuickBooks or Xero. This integration enables you to synchronize customer data, invoices, payments, and sales transactions between Salesforce and your accounting system, providing a holistic view of your financials and improving billing and revenue management processes.
6. How can I integrate Salesforce with collaboration tools like Slack?
Integrating Salesforce with collaboration tools like Slack allows your teams to receive real-time notifications, updates, and alerts directly within their Slack channels. This integration facilitates better communication, collaboration, and coordination among team members, enhancing productivity and response times.
Featured image by Markus Spiske on Unsplash
The post Maximising Efficiency: Integrating Salesforce with Other Platforms appeared first on noupe.
AI in Cybersecurity: Facing the Challenges in 2024
In today’s digital age, cybersecurity has become a paramount concern for individuals and organizations alike. The evolving landscape, characterized by increasingly sophisticated cyberattacks, necessitates advanced solutions to protect sensitive data and critical systems. Artificial Intelligence (AI) has emerged as a game-changer in the realm of cybersecurity, offering powerful tools and techniques to bolster our defenses and stay one step ahead of cybercriminals. In this article, we will explore the role of AI in cybersecurity, its key applications, and its potential to reshape the future of digital protection.
The Growing Cybersecurity Challenge
Cybersecurity threats have evolved from simple viruses and malware to complex, multi-faceted attacks that exploit network, software, and human behavior vulnerabilities. Hackers are now armed with advanced tools and techniques, such as ransomware, zero-day exploits, and social engineering tactics, making it increasingly difficult to detect and stop their activities.
Traditional cybersecurity measures, while still essential, are often reactive in nature, relying on signature-based approaches and rule-based systems to identify known threats. This approach leaves organizations vulnerable to new, unknown threats and zero-day vulnerabilities. This is where AI steps in as a proactive and dynamic solution.
Talk more about popular cyber threats, and the impact they have on businesses. What is the current situation? Are there any cases we can share about big cyber-attacks, how much did they cost?
Artificial Intelligence (AI) for Cybersecurity
Cybersecurity is the practice of protecting systems, networks, and data from unauthorized access, use, disclosure, disruption, modification, or destruction. AI is a rapidly evolving technology that has the potential to revolutionize cybersecurity.
AI can be used to automate many of the tasks involved in cybersecurity, such as threat detection, vulnerability assessment, and incident response. It can also be used to develop new security solutions that are more effective than traditional methods.
Here are some of the ways that AI is being used in cybersecurity today:
- Threat detection: Analyze large amounts of data to identify potential threats. This can be done by using machine learning algorithms to learn patterns of malicious activity.
- Vulnerability assessment: Scan systems and networks for vulnerabilities which helps organizations identify and fix security weaknesses before they are exploited by attackers.
- Incident response: Automate the response to security incidents. This can help companies to quickly identify and contain threats, minimizing the damage.
- User behavior analytics: Analyze user behavior to identify potential threats. This can be achieved by looking for patterns of unusual activity, such as logins from unauthorized locations or attempts to access sensitive data.
- Risk management: Assess the risk of cyber-attacks, helping organizations to prioritize their security efforts and allocate resources more effectively.
AI is still a developing technology, but it has the potential to make a significant impact on cybersecurity. As AI continues to evolve, it is likely to play an increasingly important role in protecting our digital world.
AI-Powered Threat Detection
One of the most critical applications of AI in cybersecurity is threat detection. AI-driven systems can analyze vast amounts of data in real time, identifying anomalous patterns and potential threats that may go unnoticed by human operators. Machine learning algorithms can recognize subtle deviations from normal behavior, enabling the early detection of malicious activities.
AI can also enhance malware detection by using behavioral analysis to identify suspicious code execution and network behavior, even when dealing with previously unseen malware strains. This proactive approach to threat detection is a significant advantage in the battle against cybercriminals.
Behavioral Analysis and User Anomaly Detection
Human error remains a significant weak point in cybersecurity. Employees inadvertently clicking on phishing emails or falling victim to social engineering attacks can lead to data breaches. AI can mitigate this risk through user anomaly detection.
AI systems can establish a baseline of normal user behavior for everyone within an organization. When deviations from this baseline occur, such as unusual login times or access requests, AI algorithms can trigger alerts, potentially preventing insider threats and unauthorized access.
In my work, I’ve come across a very good case for showing how powerful such tools can be.
In a manufacturing process where rare earth materials were processed, the outputs produced were not consistent, so managers decided to apply data mining techniques to the data. Results were shocking: for specific shifts with specific people, machines were being stopped for “urgent maintenance because of malfunctions”. Further analysis showed that the output materials were consistently less than other shifts (2 grams less power material), accounting for the downtime. An internal investigation, backed by data analysis, revealed that there was an organized group of employees stopping machines and stealing from the products, with a sophisticated clandestine export process.
Automated Incident Response
The speed at which cyberattacks unfold necessitates equally rapid responses. AI can assist in automating incident response, reducing the time it takes to identify and mitigate threats. Automated responses can include isolating compromised systems, blocking malicious IP addresses, and even initiating patch management procedures.
By combining AI-driven threat detection with automated incident response, organizations can significantly reduce the impact of cyberattacks and minimize downtime.
Predictive Analysis and Threat Intelligence
AI systems excel at analyzing large datasets and identifying trends. In cybersecurity, this capability extends to predictive analysis and threat intelligence. AI can identify emerging threats by analyzing global cyberattack data, providing organizations with valuable insights into potential vulnerabilities.
Furthermore, AI can help organizations stay ahead of cybercriminals by predicting attack vectors and developing proactive defenses. This approach enables organizations to preemptively secure their systems against new and evolving threats.
The Future of AI in Cybersecurity
As cyber threats continue to evolve, the role of AI in cybersecurity will become increasingly vital. The integration of AI with other emerging technologies, such as the Internet of Things (IoT) and 5G, will pose new challenges and opportunities for safeguarding digital assets.
However, it is crucial to note that AI is not a panacea for cybersecurity. It is a tool that complements existing security measures and requires continuous monitoring and fine-tuning. Moreover, AI can be vulnerable to adversarial attacks, underscoring the need for ongoing research and development in the field.
Conclusion
AI is revolutionizing cybersecurity by providing advanced threat detection, proactive defense, and automated incident response capabilities. Its ability to analyze vast datasets and adapt to evolving threats makes it an indispensable tool in the fight against cybercriminals. As organizations increasingly embrace AI-driven cybersecurity solutions backed by custom software development partners, they will be better equipped to protect their data, systems, and reputation in our ever-connected digital world.
Featured image by Google DeepMind on Unsplash
The post AI in Cybersecurity: Facing the Challenges in 2024 appeared first on noupe.
Exciting New Tools for Designers, March 2024
The fast-paced world of design never stops turning, and staying ahead of the curve is essential for creatives. As technology advances, so do the tools available, offering new ways to bring your vision to life.
Web Tech Trends to Watch in 2024 and Beyond
It hardly seems possible given the radical transformations we’ve seen over the last few decades, but the web design landscape is evolving faster than ever.
Modern CSS Tooltips And Speech Bubbles (Part 1)
In a previous article, we explored ribbon shapes and different ways to approach them using clever combinations of CSS gradients and clip-path()
. This time, I’d like to explore another shape, one that you’ve likely had to tackle at least once in your front-end life: tooltips. You know what we’re talking about, those little things that look like speech bubbles from comic books. They’re everywhere in the wild, from a hover effect for buttons to the text messaging app on your phone.
The shapes may look easy to make in CSS at first glance, but it always ends with a lot of struggles. For example, how do you adjust the position of the tail to indicate whether the tooltip is coming from a left, right, or center position? There are plenty of considerations to take into account when making tooltips — including overflowage, collision detection, and semantics — but it’s the shape and direction of the tail that I want to focus on because I often see inflexible fixed units used to position them.
Forget what you already know about tooltips because in this article, we will start from zero, and you will learn how to build a tooltip with minimal markup powered by modern CSS that provides flexibility to configure the component by adjusting CSS variables. We are not going to build one or two shapes, but… 100 different shapes!
That may sound like we’re getting into a super-long article, but actually, we can easily get there by adjusting a few values. In the end, you will have a back pocket full of CSS tricks that can be combined to create any shape you want.
And guess what? I’ve already created an online collection of 100 different tooltip shapes where you can easily copy and paste the code for your own use, but stay with me. You’re going to want to know the secret to unlocking hundreds of possibilities with the least possible code.
We’ll start with the shapes themselves, discussing how we can cut out the bubble and tail by combining CSS gradients and clipping. Then, we’ll pick things back up in a second article dedicated to improving another common approach to tooltips using borders and custom shapes.
The HTML
We’re only working with a single element:
<div class="tooltip">Your text content goes here</div>
That’s the challenge: Create hundreds of tooltip variations in CSS with only a single element to hook into in the HTML.
A Simple Tooltip Tail
I’m going to skip right over the basic rectangular shape; you know how to set a width
and height
(or aspect-ratio
) on elements. Let’s start with the simplest shape for the tooltip’s tail, one that can be accomplished with only two CSS properties:
.tooltip {
/* tail dimension */
--b: 2em; /* base */
--h: 1em; /* height*/
border-image: fill 0 // var(--h)
conic-gradient(#CC333F 0 0); /* the color */
clip-path:
polygon(0 100%, 0 0, 100% 0, 100% 100%,
calc(50% + var(--b) / 2) 100%,
50% calc(100% + var(--h)),
calc(50% - var(--b) / 2) 100%);
}
The border-image
property creates an “overflowing color” while clip-path
defines the shape of the tooltip with polygon()
coordinates. (Speaking of border-image
, I wrote a deep-dive on it and explain how it might be the only CSS property that supports double slashes in the syntax!)
The tooltip’s tail is placed at the bottom center, and we have two variables to control its dimensions:
We can do the exact same thing in more intuitive ways, like defining a background and then border (or padding) to create space for the tail:
background: #CC333F;
border-bottom: var(--h) solid #0000;
…or using box-shadow
(or outline
) for the outside color:
background: #CC333F;
box-shadow: 0 0 0 var(--h) #CC333F;
While these approaches are indeed easier, they require an extra declaration compared to the single border-image
declaration we used. Plus, we’ll see later that border-image
is really useful for accomplishing more complex shapes.
Here is a demo with the different directions so you can see how easy it is to adjust the above code to change the tail’s position.
We can fix this by setting limits to some values so the tail never falls outside the container. Two points of the polygon are concerned with the fix.
This:
calc(var(--p) + var(--b) / 2) 100%
…and this:
calc(var(--p) - var(--b) / 2) 100%
The first calc()
needs to be clamped to 100%
to avoid the overflow from the right side, and the second one needs to be clamped to 0%
to avoid the overflow from the left side. We can use the min()
and max()
functions to establish the range limits:
clip-path: polygon(0 100%, 0 0, 100% 0, 100% 100%,
min(100%, var(--p) + var(--b) / 2) 100%,
var(--p) calc(100% + var(--h)),
max(0%, var(--p) - var(--b) / 2) 100%);
Adjusting The Tail Shape
Let’s integrate another variable, --x
, into the clip-path()
and use it to adjust the shape of the tail:
.tooltip { /* tail dimension */ --b: 2em; /* base */ --h: 1em; /* height*/ --p: 50%; /* tail position */
--x: -2em; /* tail shape */
border-image: fill 0 // 9999px conic-gradient(#CC333F 0 0); /* the color */ clip-path: polygon(0 100%, 0 0, 100% 0, 100% 100%, min(100%, var(--p) + var(--b) / 2) 100%,
calc(var(--p) + var(--x)) calc(100% + var(--h)),
max(0%, var(--p) - var(--b) / 2) 100%); }
The --x
variable can be either positive or negative (using whatever unit you want, including percentages). What we’re doing is adding the variable that establishes the tail’s shape, --x
, to the tail’s position, --p
. In other words, we’ve updated this:
var(--p) calc(100% + var(--h))
…to this:
calc(var(--p) + var(--x)) calc(100% + var(--h))
And here is the outcome:
The tooltip’s tail points in either the right or left direction, depending on whether --x
is a positive or negative value. Go ahead and use the range sliders in the following demo to see how the tooltip’s tail is re-positioned (--p
) and re-shaped (--x
) when adjusting two variables.
Note that I have updated the border-image
outset to an impractically large value (9999px
) instead of using the --h
variable. The shape of the tail can be any type of triangle and can take a bigger area. Since there’s no way for us to know the exact value of the outset, we use that big value to make sure we have enough room to fill the tail in with color, no matter its shape.
Does the outset concept look strange to you? I know that working with border-image
isn’t something many of us do all that often, so if this approach is tough to wrap your head around, definitely go check out my border-image
article for a thorough demonstration of how it works.
Working With Gradients
Most of the trouble starts when we want to color the tooltip with a gradient instead of a flat color. Applying one color is simple — even with older techniques — but when it comes to gradients, it’s not easy to make the tail color flow smoothly into the container’s color.
But guess what? That’s no problem for us because we are already using a gradient in our border-image
declaration!
border-image: fill 0 // var(--h)
conic-gradient(#CC333F 0 0);
border-image
only accepts gradients or images, so to produce a solid color, I had to use a gradient consisting of just one color. But if you change it into a “real” gradient that transitions between two or more colors, then you get your tooltip gradient. That’s all!
We start by declaring a background
and border-radius
on the .tooltip
. Nothing fancy. Then, we move to the border-image
property so that we can add a bar (highlighted in red in the last figure) that slightly overflows the container from the bottom. This part is a bit tricky, and here I invite you to read my previous article about border-image
to understand this bit of CSS magic. From there, we add the clip-path
and get our final shape.
.tooltip {
/* triangle dimension */
--b: 2em; /* base */
--h: 1em; /* height */
--p: 50%; /* position */
--r: 1.2em; /* the radius */
--c: #4ECDC4;
border-radius: var(--r);
clip-path: polygon(0 100%, 0 0, 100% 0, 100% 100%,
min(100%, var(--p) + var(--b) / 2) 100%,
var(--p) calc(100% + var(--h)),
max(0%, var(--p) - var(--b) / 2) 100%);
background: var(--c);
border-image: conic-gradient(var(--c) 0 0) fill 0/
var(--r) calc(100% - var(--p) - var(--b) / 2) 0 calc(var(--p) - var(--b) / 2)/
0 0 var(--h) 0;
}
This visual glitch happens when the border-image
overlaps with the rounded corners. To fix this, we need to adjust the border-radius
value based on the tail’s position (--p
).
We are not going to update all the radii, only the bottom ones and, more precisely, the horizontal values. I want to remind you that border-radius
accepts up to eight values — each corner takes two values that set the horizontal and vertical directions — and in our case, we will update the horizontal value of the bottom-left and bottom-right corners:
border-radius:
/* horizontal values */
var(--r)
var(--r)
min(var(--r),100% - var(--p) - var(--b)/2) /* horizontal bottom-right */
min(var(--r),var(--p) - var(--b)/2) /* horizontal bottom-left */
/
/* vertical values */
var(--r)
var(--r)
var(--r)
var(--r)
All the corner values are equal to --r
, except for the bottom-left and bottom-right corners. Notice the forward slash (/
), as it is part of the syntax that separates the horizontal and vertical radii values.
Now, let’s dig in and understand what is happening here. For the bottom-left corner, when the position of the tail is on the right, the position (--p
) variable value will be big in order to keep the radius equal to the radius (--r
), which serves as the minimum value. But when the position gets closer to the left, the value of --p
decreases and, at some point, becomes smaller than the value of --r
. The result is the value of the radius slowly decreasing until it reaches 0
. It adjusts as the position updates!
I know that’s a lot to process, and a visual aid usually helps. Try slowly updating the tail’s position in the following demo to get a clearer picture of what’s happening.
This time, the border image creates a horizontal bar along the bottom that is positioned directly under the element and extends outside of its boundary so that we have enough color for the tail when it’s closer to the edge.
.tooltip {
/* tail dimension */
--b: 2em; /* base */
--h: 1.5em; /* height */
--p: 50%; /* position */
--x: 1.8em; /* tail position */
--r: 1.2em; /* the radius */
--c: #4ECDC4;
border-radius: var(--r) var(--r) min(var(--r), 100% - var(--p) - var(--b) / 2) min(var(--r), var(--p) - var(--b) / 2) / var(--r);
clip-path: polygon(0 100%, 0 0, 100% 0, 100% 100%,
min(100%, var(--p) + var(--b) / 2) 100%,
calc(var(--p) + var(--x)) calc(100% + var(--h)),
max(0%, var(--p) - var(--b) / 2) 100%);
background: var(--c);
border-image: conic-gradient(var(--c) 0 0) 0 0 1 0 / 0 0 var(--h) 0 / 0 999px var(--h) 999px;
}
That’s why I do not use this approach when working with a simple isosceles triangle. This said, the method is perfectly fine, and in most cases, you may not see any visual glitches.
Putting Everything Together
We’ve looked at tooltips with tails that have equal sides, ones with tails that change shape, ones where the tail changes position and direction, ones with rounded corners, and ones that are filled in with gradients. What would it look like if we combined all of these examples into one mega-demo?
We can do it, but not by combining the approaches we’ve covered. We need another method, this time using a pseudo-element. No border-image
for this one, I promise!
.tooltip {
/* triangle dimension */
--b: 2em; /* base */
--h: 1em; /* height */
--p: 50%; /* position */
--r: 1.2em; /* the radius */
border-radius: var(--r) var(--r) min(var(--r), 100% - var(--p) - var(--b) / 2) min(var(--r), var(--p) - var(--b) / 2) / var(--r);
background: 0 0 / 100% calc(100% + var(--h))
linear-gradient(60deg, #CC333F, #4ECDC4); /* the gradient */
position: relative;
z-index: 0;
}
.tooltip:before {
content: "";
position: absolute;
z-index: -1;
inset: 0 0 calc(-1*var(--h));
background-image: inherit;
clip-path:
polygon(50% 50%,
min(100%, var(--p) + var(--b) / 2) calc(100% - var(--h)),
var(--p) 100%,
max(0%, var(--p) - var(--b) / 2) calc(100% - var(--h)));
}
The pseudo-element is used to create the tail at the bottom and notice how it inherits the gradient from the main element to simulate a continuous gradient that covers the entire shape.
Another important thing to note is the background-size
declared in the .tooltip
. The pseudo-element is covering a bigger area due to the negative bottom value, so we have to increase the height of the gradient so it covers the same area.
Can you figure it out? The code for all of them is included in my tooltip collection if you need a reference, but do try to make them yourself — it’s good exercise! Maybe you will find a different (or perhaps better) approach than mine.