<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alexis Enache</title>
    <description>The latest articles on DEV Community by Alexis Enache (@extrabright).</description>
    <link>https://dev.to/extrabright</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F328501%2Fb962afe1-631f-4238-ad82-3304840da160.jpg</url>
      <title>DEV Community: Alexis Enache</title>
      <link>https://dev.to/extrabright</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/extrabright"/>
    <language>en</language>
    <item>
      <title>What's new in Webpixels v3</title>
      <dc:creator>Alexis Enache</dc:creator>
      <pubDate>Mon, 12 Jan 2026 07:25:36 +0000</pubDate>
      <link>https://dev.to/extrabright/whats-new-in-webpixels-v3-55d4</link>
      <guid>https://dev.to/extrabright/whats-new-in-webpixels-v3-55d4</guid>
      <description>&lt;p&gt;Building modern interfaces with &lt;strong&gt;Bootstrap&lt;/strong&gt; should be fast, consistent, and production-ready. That’s exactly why we built Webpixels.&lt;/p&gt;

&lt;p&gt;Today, we’re excited to announce the &lt;strong&gt;launch of Webpixels v3&lt;/strong&gt;, a major step forward in our mission to provide a complete &lt;strong&gt;Bootstrap design system&lt;/strong&gt; built around real-world needs: reusable UI components, ready-made templates, and scalable patterns for modern web apps.&lt;/p&gt;

&lt;p&gt;This release focuses on clarity, depth, and long-term usability for developers, freelancers, and teams building with Bootstrap.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is Webpixels?
&lt;/h2&gt;

&lt;p&gt;Webpixels is a &lt;strong&gt;developer-first Bootstrap design system&lt;/strong&gt; that helps you build faster by removing repetitive UI work. &lt;/p&gt;

&lt;p&gt;Instead of starting every project from scratch, Webpixels gives you a structured library of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reusable &lt;strong&gt;Bootstrap UI components&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Fully designed &lt;strong&gt;templates and pages&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Consistent layout and spacing utilities&lt;/li&gt;
&lt;li&gt;Real-world patterns for dashboards, SaaS apps, and marketing sites&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Webpixels is built on &lt;strong&gt;Bootstrap 5&lt;/strong&gt;, with clean HTML, scalable CSS, and practical component APIs that fit naturally into modern workflows.&lt;/p&gt;




&lt;h2&gt;
  
  
  What’s New in Webpixels v3
&lt;/h2&gt;

&lt;p&gt;Webpixels v3 is not just a visual refresh. It’s a structural improvement across the entire system.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Refreshed Experience
&lt;/h3&gt;

&lt;p&gt;The new Webpixels site introduces a clearer structure, faster navigation, and improved discoverability across components, templates, and documentation. Everything is easier to browse, preview, and integrate into your projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  Expanded UI Components Library
&lt;/h3&gt;

&lt;p&gt;Webpixels v3 includes &lt;strong&gt;600+ production-ready UI components&lt;/strong&gt;, designed to cover real interface needs such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigation and headers&lt;/li&gt;
&lt;li&gt;Forms and inputs&lt;/li&gt;
&lt;li&gt;Cards, lists, and tables&lt;/li&gt;
&lt;li&gt;Modals, alerts, and feedback states&lt;/li&gt;
&lt;li&gt;Utility-driven layout components&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frytlqenmp826artd801v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frytlqenmp826artd801v.png" alt="Webpixels UI Blocks" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All components are built to work seamlessly with Bootstrap’s core system, while extending it with consistent patterns and better defaults.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://webpixels.io/library" rel="noopener noreferrer"&gt;Browse all 700+ UI blocks&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Bootstrap Templates and App Screens
&lt;/h2&gt;

&lt;p&gt;Beyond individual components, Webpixels v3 offers &lt;strong&gt;80+ ready-made app screens and marketing site pages&lt;/strong&gt;, helping you move from idea to implementation faster.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5pim3z39ptd262tj8o0l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5pim3z39ptd262tj8o0l.png" alt="Bootstrap Templates &amp;amp; App Screens" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You’ll find templates for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dashboards and analytics screens
&lt;/li&gt;
&lt;li&gt;Authentication flows (login, register, reset)
&lt;/li&gt;
&lt;li&gt;Marketing and landing pages
&lt;/li&gt;
&lt;li&gt;Pricing, contact, and content pages
&lt;/li&gt;
&lt;li&gt;Inner app layouts like settings, profiles, and lists
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each page is designed to be dropped directly into your project or adapted to your product’s needs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://webpixels.io/screens" rel="noopener noreferrer"&gt;Browse all app screens and marketing pages&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Improved Documentation for Bootstrap Developers
&lt;/h2&gt;

&lt;p&gt;Clear documentation is just as important as good UI.&lt;/p&gt;

&lt;p&gt;Webpixels v3 comes with &lt;strong&gt;improved, structured documentation&lt;/strong&gt; that helps you:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm6e4l5ss3qxiwp7ujmm0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm6e4l5ss3qxiwp7ujmm0.png" alt="Webpixels Documentation" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's what you can do with the new docs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Get started quickly with installation and setup
&lt;/li&gt;
&lt;li&gt;Understand component usage and customization
&lt;/li&gt;
&lt;li&gt;Configure colors, typography, spacing, and themes
&lt;/li&gt;
&lt;li&gt;Learn layout patterns and utility-driven design
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The documentation is written for developers who want practical guidance, not abstract theory.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://webpixels.io/docs" rel="noopener noreferrer"&gt;Read the docs&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Built for Long-Term Projects
&lt;/h2&gt;

&lt;p&gt;Webpixels is designed for people who build and maintain products over time. Whether you’re working on a SaaS app, a startup MVP, or multiple client projects, the system is built to scale with you.&lt;/p&gt;

&lt;p&gt;You can use Webpixels for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unlimited personal projects
&lt;/li&gt;
&lt;li&gt;Commercial products and SaaS applications
&lt;/li&gt;
&lt;li&gt;Client work and agency projects
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Updates focus on stability, compatibility, and incremental improvements rather than constant breaking changes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Webpixels Exists
&lt;/h2&gt;

&lt;p&gt;Webpixels was built to solve a simple problem: Bootstrap is powerful, but real-world UI takes time.&lt;/p&gt;

&lt;p&gt;By providing a structured design system, reusable components, and complete templates, Webpixels helps you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ship faster
&lt;/li&gt;
&lt;li&gt;Maintain consistency
&lt;/li&gt;
&lt;li&gt;Focus on product logic instead of repetitive UI work
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Webpixels v3 is a foundation, not a finish line. More components, templates, and refinements are already in progress.&lt;/p&gt;




&lt;h2&gt;
  
  
  Get Started With Webpixels v3
&lt;/h2&gt;

&lt;p&gt;If you’re building with Bootstrap and want a faster, more consistent way to design and ship interfaces, Webpixels v3 is ready.&lt;/p&gt;

&lt;p&gt;Explore the components, browse the templates, and start building with confidence.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://webpixels.io/pricing" rel="noopener noreferrer"&gt;Get started now&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>ai</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Top 9 unsubscribe apps and email cleaners helping you achieve inbox-zero</title>
      <dc:creator>Alexis Enache</dc:creator>
      <pubDate>Wed, 14 Aug 2024 16:14:42 +0000</pubDate>
      <link>https://dev.to/againstdata/top-9-unsubscribe-apps-and-email-cleaners-helping-you-achieve-inbox-zero-3g16</link>
      <guid>https://dev.to/againstdata/top-9-unsubscribe-apps-and-email-cleaners-helping-you-achieve-inbox-zero-3g16</guid>
      <description>&lt;p&gt;The landscape of email inbox cleaning tools has evolved significantly as users increasingly seek ways to manage the overwhelming volume of emails they receive daily. These tools are designed to help users reduce spam, minimize distractions, and maintain a more organized inbox, ultimately enhancing productivity. &lt;/p&gt;

&lt;p&gt;Many of these tools leverage advanced algorithms and machine learning to filter out unwanted messages, unsubscribe from newsletters, and prioritize essential emails. &lt;/p&gt;

&lt;p&gt;By automatically categorizing or even deleting less important emails, these tools allow users to focus on what truly matters without the constant distraction of a cluttered inbox.&lt;/p&gt;




&lt;p&gt;In addition to spam filtering, many inbox cleaning tools offer features that help users regain control over their email subscriptions and manage them more effectively. This includes identifying and unsubscribing from unwanted newsletters and promotional emails that often clog up inboxes. &lt;/p&gt;

&lt;p&gt;Some tools provide daily digests or summary views, allowing users to review non-essential emails at their convenience rather than being interrupted by them throughout the day. &lt;/p&gt;

&lt;p&gt;This approach not only reduces the number of incoming emails but also helps users stay focused on their tasks by limiting the intrusion of non-critical communications.&lt;/p&gt;

&lt;p&gt;Moreover, the integration of these tools with popular email platforms and apps has made it easier for users to implement inbox cleaning routines seamlessly. Many tools now offer customizable settings that allow users to tailor the filtering and organizational processes to their specific needs. &lt;/p&gt;

&lt;p&gt;This personalization ensures that users can maintain an inbox environment that supports their productivity goals, with fewer distractions and less time spent on email management. As digital communication continues to grow, the demand for effective inbox cleaning tools is likely to increase, driven by the need for better focus and efficient email management.&lt;/p&gt;

&lt;p&gt;Without further introduction I have made a list of the best services out there:&lt;/p&gt;

&lt;h2&gt;
  
  
  1. AgainstData
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://againstdata.com" rel="noopener noreferrer"&gt;AgainstData&lt;/a&gt; offers a comprehensive service that enhances user privacy and control by managing and deleting online accounts and personal information, with a notable emphasis on email unsubscribe features.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://againstdata.com" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg8pdmc0wdhqgrdc3mlvb.jpg" alt="AgainstData" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The platform helps users locate and remove their data from various online services by identifying accounts and subscriptions associated with their email addresses. &lt;/p&gt;

&lt;p&gt;It generates a detailed report of where their personal information is stored, allowing users to request the deletion or deactivation of these accounts. &lt;/p&gt;

&lt;p&gt;In addition to account management, AgainstData includes a robust email &lt;strong&gt;unsubscribe&lt;/strong&gt; functionality, which helps users eliminate unwanted subscriptions and &lt;strong&gt;reduce email clutter&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;What sets AgainstData apary is its multifaceted approach to privacy and data management. The platform goes beyond mere account deletion by offering privacy insights and helping users mitigate risks. &lt;/p&gt;

&lt;p&gt;AgainstData’s email unsubscribe feature is particularly valuable for users looking to clean up their inboxes, as it allows them to quickly and efficiently stop receiving unwanted newsletters and promotional emails. This integrated approach ensures that users can not only secure their online presence but also manage their email communications more effectively.&lt;/p&gt;

&lt;p&gt;Another key differentiator for AgainstData is its personalized support and user-centric design. The platform provides tailored guidance throughout the process of account deletion and email unsubscriptions, helping users navigate the complexities of managing their digital footprint. &lt;/p&gt;

&lt;p&gt;Users do not need to do any research on who are the legal entities that hold their data or to research contact details of their Data Protection Office (DPO), the app provides all of these and reduces the effort to 1 click. &lt;/p&gt;

&lt;p&gt;With ongoing monitoring and updates on the status of data removal requests and unsubscribe actions, AgainstData offers a holistic solution that addresses both immediate and long-term privacy concerns. &lt;/p&gt;

&lt;p&gt;By focusing on both account management and email decluttering, AgainstData stands out as a comprehensive tool for enhancing digital privacy and organization.&lt;/p&gt;

&lt;p&gt;To help you decide if this tool is right for you, take advantage of the Free Trial to explore its features. If you choose to continue, the service is available for &lt;strong&gt;just $10 per month&lt;/strong&gt;, or you can save with the annual plan at &lt;strong&gt;$25 per year&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Mailstrom
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://mailstrom.co/" rel="noopener noreferrer"&gt;Mailstrom&lt;/a&gt; is an email management service tailored to users seeking to regain control over their overcrowded inboxes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99w61ta7myokwekxw6ux.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99w61ta7myokwekxw6ux.jpg" alt="Mailstorm" width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The platform excels in its ability to sort and organize emails into actionable groups based on key characteristics like sender, subject line, or date, enabling users to efficiently manage large volumes of messages. By consolidating similar emails into categories, Mailstrom allows users to delete, archive, or label thousands of emails with just a few clicks, significantly reducing the time spent on inbox management. This batch processing capability is particularly valuable for those with years of accumulated emails, helping them clean up their inboxes quickly and effectively.&lt;/p&gt;

&lt;p&gt;In addition to its organizing and decluttering features, Mailstrom offers tools that help users prevent future inbox overload. The service makes it easy to unsubscribe from unwanted newsletters and promotional emails, as well as block senders, thus minimizing the influx of non-essential messages. Users can customize their experience with filters and preferences that align with their specific email habits and needs. Integrated with major email providers like Gmail, Outlook, and Yahoo, Mailstrom provides a seamless experience, allowing users to maintain a cleaner, more focused inbox, ultimately improving productivity and reducing digital stress.&lt;/p&gt;

&lt;p&gt;This service offers flexible plans to suit different needs, starting with a Free Trial to get you started. Monthly subscriptions range from $9 to $29.95, while annual plans offer more savings, priced between $59.95 and $199.95 per year.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Superhuman
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://superhuman.com" rel="noopener noreferrer"&gt;Superhuman&lt;/a&gt; offers a premium email client designed for professionals seeking to optimize their email experience with speed, efficiency, and enhanced productivity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl2stb8bslaacla0i69q3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl2stb8bslaacla0i69q3.jpg" alt="Superhuman" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The platform is built with a focus on speed, boasting a sleek, minimalist interface that prioritizes quick navigation and streamlined workflows. Superhuman incorporates powerful features like AI-driven triage, where emails are automatically prioritized based on importance, and a split inbox that categorizes emails into actionable groups. &lt;/p&gt;

&lt;p&gt;Additionally, the service includes features like read status tracking, reminders, and the ability to send emails at a specific time, allowing users to manage their communications with precision and ease.&lt;/p&gt;

&lt;p&gt;Beyond its core functionality, Superhuman is known for its unique onboarding experience, where users receive personalized training to maximize the platform's potential. This high-touch approach, combined with the app’s keyboard shortcuts and customizability, ensures that users can handle their emails at lightning speed, reducing the time spent on email management. &lt;/p&gt;

&lt;p&gt;By focusing on the user experience and offering advanced features not typically found in standard email clients, Superhuman aims to help professionals achieve "inbox zero" more efficiently, fostering a more focused and productive work environment.&lt;/p&gt;

&lt;p&gt;If you're ready to commit, this service offers straightforward pricing without a trial period. Monthly subscriptions range from $25 to $33, giving you access to all features right away.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Trimbox
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.trimbox.io/" rel="noopener noreferrer"&gt;Trimbox&lt;/a&gt; offers a specialized email management tool focused on helping users declutter their inboxes by automatically managing and filtering unwanted emails, particularly promotional content.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo23ozw9qy26zyspx0qx2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo23ozw9qy26zyspx0qx2.jpg" alt="Trimbox" width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The service integrates seamlessly with Gmail, where it identifies and unsubscribes users from newsletters, promotional emails, and other non-essential communications that often flood inboxes. &lt;/p&gt;

&lt;p&gt;By leveraging smart algorithms, Trimbox.io ensures that important emails are retained while eliminating those that contribute to inbox overload, helping users maintain a cleaner, more focused email environment.&lt;/p&gt;

&lt;p&gt;In addition to its core unsubscribe functionality, Trimbox.io is designed to be easy to use, with a lightweight browser extension that requires minimal setup. The tool works in the background, quietly managing incoming emails without requiring constant user input. This simplicity and automation make it an ideal solution for individuals who want to reduce distractions and streamline their email experience without the need for complex configurations. &lt;/p&gt;

&lt;p&gt;Trimbox's focus on ease of use and efficiency helps users reclaim their inboxes, leading to a more organized digital workspace and less time wasted on managing unwanted emails.&lt;/p&gt;

&lt;p&gt;Start with a Free Trial to see if this service meets your needs. After that, you can continue with a monthly plan for $12.99 or opt for the annual plan at just $28 per year for added savings.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. LeaveMeAlone
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://leavemealone.com/" rel="noopener noreferrer"&gt;LeaveMeAlone&lt;/a&gt; offers a streamlined service for users who want to regain control of their email inboxes by efficiently managing and reducing unwanted emails.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdpq87g92w8rf79kbgpz2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdpq87g92w8rf79kbgpz2.jpg" alt="LeaveMeAlone" width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The platform specializes in helping users unsubscribe from unwanted newsletters, promotional emails, and other non-essential communications in bulk. With a simple, user-friendly interface, LeaveMeAlone scans the user's inbox to identify all subscription emails, presenting them in an organized list. Users can then choose which subscriptions to keep and which to unsubscribe from, all with just a few clicks. This approach makes it easy to clean up inboxes and reduce the daily influx of distracting emails.&lt;/p&gt;

&lt;p&gt;In addition to its core unsubscribe functionality, LeaveMeAlone prioritizes privacy and security. The service does not store user emails on its servers, ensuring that personal data remains secure throughout the process. Users can also control how often they receive updates and manage their inbox cleanups on their own schedule. &lt;/p&gt;

&lt;p&gt;By focusing on simplicity, privacy, and effectiveness, LeaveMeAlone provides a valuable solution for individuals looking to declutter their inboxes, reduce distractions, and maintain a more focused and manageable email environment.&lt;/p&gt;

&lt;p&gt;Begin with a Free Trial to explore the features of this service. If you decide to subscribe, monthly plans range from $8 to $14, while annual plans offer savings at $80 to $140 per year, giving you flexible options to suit your needs.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Clean Email
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://clean.email/" rel="noopener noreferrer"&gt;Clean Email&lt;/a&gt; is an email management service designed to help users efficiently organize and declutter their inboxes by offering a suite of powerful tools that streamline email management.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd4hzleh2lnsvyu1sb8y7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd4hzleh2lnsvyu1sb8y7.jpg" alt="Clean Email" width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The platform excels in automatically categorizing emails into easy-to-manage bundles, such as newsletters, social media notifications, and unread messages, allowing users to quickly sort, archive, or delete large groups of emails in just a few clicks. &lt;/p&gt;

&lt;p&gt;Clean Email also offers advanced filtering and search capabilities, enabling users to set custom rules for organizing incoming emails, ensuring that important messages are easily accessible while reducing inbox clutter.&lt;/p&gt;

&lt;p&gt;Beyond basic organization, Clean Email provides features like one-click unsubscribe, which allows users to easily opt out of unwanted subscriptions and prevent future email overload. The service also includes automation options like "Auto Clean," which continuously applies the user's chosen rules to incoming emails, maintaining a tidy inbox with minimal effort. &lt;/p&gt;

&lt;p&gt;Clean Email’s focus on privacy ensures that user data is secure, with no emails stored on its servers. By offering comprehensive tools for inbox management, Clean Email helps users save time, reduce stress, and maintain a more organized digital workspace.&lt;/p&gt;

&lt;p&gt;Take advantage of the Free Trial to see if this service is right for you. After that, monthly pricing ranges from $11.89 to $35.69, with annual plans offering even better value, priced between $35.69 and $118.99 per year.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Cleanfox
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://cleanfox.io/" rel="noopener noreferrer"&gt;Cleanfox&lt;/a&gt; is an email management service that focuses on helping users declutter their inboxes by identifying and eliminating unwanted newsletters and promotional emails.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqj28mfwz30vc4okp8fbu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqj28mfwz30vc4okp8fbu.jpg" alt="CleanFox" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Caution: This service is free because it monetises user anonymised data&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The platform scans the user's inbox to find subscription-based emails and provides a simple interface where users can review, delete, or unsubscribe from them with ease. Cleanfox also offers users the ability to delete past emails from these subscriptions in bulk, allowing for a significant reduction in inbox clutter. &lt;/p&gt;

&lt;p&gt;This service is especially valuable for users who want to maintain a cleaner, more organized inbox with minimal effort, ensuring that important emails aren't lost among the noise of marketing messages.&lt;/p&gt;

&lt;p&gt;A key feature of Cleanfox is its emphasis on environmental impact. The platform highlights the carbon footprint associated with storing unnecessary emails, encouraging users to delete them as a way to reduce their digital carbon footprint. &lt;/p&gt;

&lt;p&gt;By tying the act of decluttering to a positive environmental outcome, Cleanfox positions itself as not just an email management tool, but also a contributor to a greener planet. This unique angle appeals to environmentally conscious users who are looking for ways to reduce their ecological impact in everyday digital activities.&lt;/p&gt;

&lt;p&gt;Cleanfox's business model is primarily based on data monetization, where anonymized data from users’ email habits is aggregated and shared with third-party companies for market research and analysis. &lt;/p&gt;

&lt;p&gt;This data helps companies understand trends in consumer behavior, particularly around email subscriptions and engagement. Importantly, Cleanfox emphasizes that this data is anonymized, ensuring that personal information is not shared. &lt;/p&gt;

&lt;p&gt;The service is free to use for individuals, with the monetization through anonymized data allowing Cleanfox to maintain and improve its offerings without charging users directly. &lt;/p&gt;




&lt;h2&gt;
  
  
  8. Unroll.me
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://unroll.me/" rel="noopener noreferrer"&gt;Unroll.me&lt;/a&gt; offers a streamlined solution for managing and decluttering email inboxes by focusing on subscription emails.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fejcc2mli5n233f2utkwy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fejcc2mli5n233f2utkwy.jpg" alt="Unroll.me" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Caution: This service is free because it monetises user anonymised data&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The platform helps users easily review and organize their subscriptions through a single, user-friendly interface. Upon connecting their email account, users receive a consolidated daily digest called the “Rollup,” which aggregates all their subscription emails into one convenient summary. &lt;/p&gt;

&lt;p&gt;This allows users to quickly scan through and decide whether to keep, unsubscribe from, or delete various email subscriptions. The Rollup feature reduces inbox clutter and provides a more organized way to handle promotional content and newsletters.&lt;/p&gt;

&lt;p&gt;In addition to managing subscriptions, Unroll.me offers tools to simplify email organization and improve productivity. Users can batch unsubscribe from unwanted newsletters, ensuring they no longer receive emails from sources they no longer wish to engage with. The platform also provides options to set preferences for how different types of emails are handled, enhancing user control over their email environment. &lt;/p&gt;

&lt;p&gt;By consolidating subscription emails and offering easy management options, Unroll.me helps users maintain a cleaner inbox and reduce the stress associated with email overload.&lt;/p&gt;

&lt;p&gt;To keep Unroll.me users from having to pay, Nielsen, which owns this platform, measures e-commerce through a technology that automatically recognizes commercial emails and extracts purchase information from them.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. SaneBox
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.sanebox.com" rel="noopener noreferrer"&gt;SaneBox&lt;/a&gt; provides a sophisticated email management solution designed to help users regain control over their inboxes by leveraging artificial intelligence and advanced algorithms.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvqgo7v66wps52zvchr3h.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvqgo7v66wps52zvchr3h.jpg" alt="SaneBox" width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The platform categorizes incoming emails into various folders based on their importance and relevance, such as "SaneLater" for less urgent messages and "SaneNews" for newsletters and promotional content. This intelligent sorting allows users to focus on high-priority emails while less important messages are neatly organized out of the main inbox, reducing clutter and enhancing productivity. &lt;/p&gt;

&lt;p&gt;Additionally, SaneBox offers features like email snoozing, which lets users temporarily remove emails from their inbox until a more convenient time, and reminders for follow-ups to ensure important messages are not forgotten.&lt;/p&gt;

&lt;p&gt;Beyond basic email categorization, SaneBox includes tools to streamline email management and improve overall efficiency. It provides options for creating custom folders and rules, allowing users to tailor the email organization process to their specific needs. The platform also integrates with various email clients and services, making it a versatile solution for users across different platforms. &lt;/p&gt;

&lt;p&gt;By combining intelligent email sorting with customizable features, SaneBox helps users maintain a cleaner, more organized inbox, ultimately enhancing their ability to manage communications effectively and focus on what truly matters.&lt;/p&gt;

&lt;p&gt;Explore the service with flexible pricing options: monthly subscriptions range from $7 to $36, while annual plans offer significant savings, priced between $59 and $299 per year.&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaway
&lt;/h2&gt;

&lt;p&gt;Free email cleaning services that sell user data often come with significant privacy risks, as the business model relies on monetizing user information to generate revenue. &lt;/p&gt;

&lt;p&gt;These services may collect and exploit personal data, including email addresses and browsing habits, to target users with ads or share data with third parties. This not only jeopardizes user privacy but can also lead to unwanted data breaches and misuse of information. &lt;/p&gt;

&lt;p&gt;In contrast, paid and transparent email cleaning tools offer a more secure alternative by prioritizing user privacy and data protection. With a subscription-based model, these services avoid relying on data sales and instead invest in robust security measures and clear privacy policies. &lt;/p&gt;

&lt;p&gt;Users benefit from enhanced data protection and the assurance that their personal information is handled responsibly, making paid tools a more reliable choice for those concerned about privacy and data security.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Photo credits: Image by rawpixel.com on Freepik&lt;/em&gt;&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>productivity</category>
      <category>news</category>
      <category>startup</category>
    </item>
    <item>
      <title>Build your app 10x faster with Webpixels CSS and Bootstrap</title>
      <dc:creator>Alexis Enache</dc:creator>
      <pubDate>Tue, 11 Oct 2022 11:55:59 +0000</pubDate>
      <link>https://dev.to/webpixels/build-your-app-10x-faster-with-webpixels-css-and-bootstrap-1ii5</link>
      <guid>https://dev.to/webpixels/build-your-app-10x-faster-with-webpixels-css-and-bootstrap-1ii5</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqq8otu2nup7e16iw3a7x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqq8otu2nup7e16iw3a7x.png" alt="Image description" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Webpixels CSS is a relatively new project based on Bootstrap 5. I started this because I needed to improve the way I build web apps. The most time-consuming tasks are usually the ones related to the project setup: creating a new project, setting up the structure, integrating the styles and scripts, including some custom-made code boilerplates, and so on. &lt;/p&gt;

&lt;p&gt;After hundreds of projects, I was able to spot the things that repeat in most projects and I included them in one repo that could be installed and re-used everywhere I need. &lt;/p&gt;

&lt;h2&gt;
  
  
  So, what is it?
&lt;/h2&gt;

&lt;p&gt;Basically, Webpixels CSS is an extension to the base version of Bootstrap. It incorporates the default components and adds new ones on top of them, without messing with too much custom code. This allows me to update to a new version faster.&lt;/p&gt;

&lt;p&gt;What's interesting about the way I build components is that I try as much as possible to avoid writing custom CSS. The way I do it: utility classes&lt;/p&gt;

&lt;p&gt;Utility classes are not new. Bootstrap introduced them years ago. The concept was brought even further by projects like Tailwind CSS, Windi CSS, and the recently launched Uno CSS. &lt;/p&gt;

&lt;p&gt;However, what I like about Bootstrap is the balance between these two concepts: components and utilities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding the right balance
&lt;/h2&gt;

&lt;p&gt;Components are great because they help us encapsulate some code, for a certain situation, and reuse it when we need it, for example, buttons, cards, avatars, and so on. Using Sass variables, you can customize the default look and feel of these and adapt them to your brand's identity.&lt;/p&gt;

&lt;p&gt;But, what happens when you need more? Like changing some properties in a particular situation. Back in the day, it would require creating a custom CSS modifier class to add those styles.&lt;/p&gt;

&lt;p&gt;Let's say you have a button with the &lt;code&gt;.btn&lt;/code&gt; class:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="nc"&gt;.btn&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="n"&gt;dark&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1rem&lt;/span&gt; &lt;span class="m"&gt;2rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And you want to add some additional properties, like margin for example. Instead of creating a new class for it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="nc"&gt;.btn-modifier&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, we have another way to do that. Using utility classes you can do the same thing right into your HTML. No more custom classes. It's cleaner, and faster, and it will help a lot in terms of performance and file size.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn m-4"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Button&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I find this a beautiful and elegant approach. And with the next versions of Bootstrap, I am pretty sure the team will come up with some pretty cool stuff.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;With Webpixels CSS I took these two concepts and extended them to cover 80% of the use cases. I added some new components that are not existing yet in Bootstrap, and I create a comprehensive list of utility classes using the included API. You can see them all documented in our &lt;a href="https://webpixels.io/docs/css" rel="noopener noreferrer"&gt;documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With these two put in place I started creating a components library. The design code is: &lt;strong&gt;simplicity&lt;/strong&gt;. I try to stick to it as much as possible. &lt;/p&gt;

&lt;p&gt;Right now there are approximately 500 components and 40+ templates. I am working on new items every week. Hopefully, I will get enough support and customers to keep me going, but so far, the feedback has been great.&lt;/p&gt;

&lt;p&gt;With a single &lt;code&gt;npm install&lt;/code&gt; you get access to all of these, no extra steps required. Start copying the snippets you need and that's it. More time to focus on functionality, while keeping things pretty.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;I always wanted to write this, but never found the time. That code ain't gonna write itself 😂&lt;/p&gt;

&lt;p&gt;Also, I updated @webpixels/css to the latest Bootstrap version. No significant changes happened, so the migration should go very smoothly. You need to update your package.json file with the new available versions.&lt;/p&gt;

&lt;p&gt;If you want to support our work, &lt;a href="https://github.com/webpixels/css/" rel="noopener noreferrer"&gt;give it a ⭐ on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;🙏&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>opensource</category>
      <category>css</category>
    </item>
    <item>
      <title>Meet Webpixels 2.0</title>
      <dc:creator>Alexis Enache</dc:creator>
      <pubDate>Thu, 02 Jun 2022 09:09:18 +0000</pubDate>
      <link>https://dev.to/webpixels/meet-webpixels-20-39f3</link>
      <guid>https://dev.to/webpixels/meet-webpixels-20-39f3</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnp3eqj27n9fqxhod1caw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnp3eqj27n9fqxhod1caw.png" alt="Meet Webpixels 2.0" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
The new Webpixels website is finally live, after 4 months of continuous development and improvements. This update is focused on how the component library works and the overall experience. The goal is to make it much easier to navigate through examples and preview and copy the stuff you need.&lt;/p&gt;

&lt;p&gt;Here are some of the new stuff you can try starting today:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://webpixels.io?utm_campaign=blog&amp;amp;utm_source=devto&amp;amp;utm_medium=article" rel="noopener noreferrer"&gt;Visit the new Webpixels website&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  New component explorer
&lt;/h2&gt;

&lt;p&gt;Instead of having categories and clicking each one of them, now you’ll be able to see them all in one place and filter out the ones you need. Also, there is a search bar to get the result you want quickly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://webpixels.io/components?utm_campaign=blog&amp;amp;utm_source=devto&amp;amp;utm_medium=article" rel="noopener noreferrer"&gt;Browse components&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9s7vn4ple6mv3gz5fu2b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9s7vn4ple6mv3gz5fu2b.png" alt="Webpixels component explorer" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Preview components in a new sexy modal
&lt;/h2&gt;

&lt;p&gt;Once you find the component you need, click on it to preview the UI, but also the code. Everything happens now in one place, so we hope it will make the whole experience a much better one, with fewer clicks and time spent to get the things you need out of the library.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6rl3cnju3kffv67hwzd6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6rl3cnju3kffv67hwzd6.png" alt="Webpixels preview modal" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Live code editing
&lt;/h2&gt;

&lt;p&gt;Find the component you need, and click on it to preview the UI, but also the code. In the latest version, you will be able to tweak it and see the changes before copying it into your project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcgm8a7y7vwjep3nwkccq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcgm8a7y7vwjep3nwkccq.png" alt="Webpixels live code editor" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Organize components into collections
&lt;/h2&gt;

&lt;p&gt;Since our components are part of an ever-growing library, collections will allow you to create smaller batches of elements based on the category or the project’s type.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92nl6eet2h4arcp60rpv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92nl6eet2h4arcp60rpv.png" alt="Webpixels new Collection feature" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  New tab for listing templates
&lt;/h3&gt;

&lt;p&gt;Instead of mixing components and templates in one place, we thought it would be much better to separate them in two separate sections. This way you can work closer to Atomic Principles.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://webpixels.io/templates?utm_campaign=blog&amp;amp;utm_source=devto&amp;amp;utm_medium=article" rel="noopener noreferrer"&gt;**See all Templates&lt;/a&gt;**&lt;/p&gt;




&lt;h3&gt;
  
  
  Improved documentation
&lt;/h3&gt;

&lt;p&gt;We still have many things to add to our docs, but we are pretty happy with the result, so far. We'll keep adding more examples and features, now that Bootstrap started its big move with the v5.2 update. &lt;/p&gt;

&lt;p&gt;Here are some things you should expect in the near future:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Component CSS variables&lt;/li&gt;
&lt;li&gt;New helpers and utilities&lt;/li&gt;
&lt;li&gt;Groups of variables for root, components, and utilities&lt;/li&gt;
&lt;li&gt;Improved theming capabilities&lt;/li&gt;
&lt;li&gt;Dark mode support out of the box&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We expect to release the next major update for @webpixels/css one month from now.&lt;/p&gt;




&lt;h2&gt;
  
  
  Thank you 🙏
&lt;/h2&gt;

&lt;p&gt;It’s been one year since we officially launched the new Webpixels website. It is such a great feeling to build something that people find useful and brings value to their projects.&lt;/p&gt;

&lt;p&gt;And now we are ready for the next milestone.&lt;/p&gt;

&lt;p&gt;Hope you enjoyed it.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>bootstrap</category>
      <category>showdev</category>
      <category>startup</category>
    </item>
    <item>
      <title>Free and open-source Bootstrap dashboard kit</title>
      <dc:creator>Alexis Enache</dc:creator>
      <pubDate>Thu, 10 Feb 2022 15:36:22 +0000</pubDate>
      <link>https://dev.to/webpixels/free-and-open-source-bootstrap-dashboard-kit-2pgp</link>
      <guid>https://dev.to/webpixels/free-and-open-source-bootstrap-dashboard-kit-2pgp</guid>
      <description>&lt;p&gt;I am super happy to finally release this open-source project that I have worked on for a long time. The final goal is to make it the ideal starting point for your next web app built with Bootstrap 5. A free and minimal starter kit to build fast and modern dashboards and applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp8xrna7edvhpfyml81l1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp8xrna7edvhpfyml81l1.png" alt="Open-source dashboard kit by Webpixels" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you like it, please &lt;a href="https://github.com/webpixels/bootstrap-dashboard-kit" rel="noopener noreferrer"&gt;support this project with a star on Github&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Includes Eleventy static site generator for building the layouts and pages&lt;/li&gt;
&lt;li&gt;Includes Bootstrap (currently using v5) source files via npm&lt;/li&gt;
&lt;li&gt;Includes Webpixels CSS as our design system based on Bootstrap 5&lt;/li&gt;
&lt;li&gt;Includes npm scripts for compiling and auto prefixing Sass, compiling JS, watching for changes, and starting a basic local server&lt;/li&gt;
&lt;li&gt;HTML, CSS, and JS minification&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;For easier asset management we've chosen &lt;a href="https://parceljs.org?ref=webpixels" rel="noopener noreferrer"&gt;Parcel&lt;/a&gt;. If you want to see all the npm scripts included in this starter kit, open the &lt;a href="https://github.com/webpixels/bootstrap-dashboard-kit/blob/main/package.json" rel="noopener noreferrer"&gt;package.json&lt;/a&gt; file.&lt;/p&gt;

&lt;p&gt;Next, navigate to the root folder of the site and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To run a local server and watch for changes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To build for production:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Highlights
&lt;/h2&gt;

&lt;p&gt;This dashboard kit is architected as an extension of Bootstrap, built for a specific set of problems. This means not only extending the base components of Bootstrap, but also adding completely new components, utilities, and plugins. &lt;/p&gt;

&lt;p&gt;Also, our themes and starter kits are different for several reasons:&lt;/p&gt;

&lt;h3&gt;
  
  
  No custom CSS code
&lt;/h3&gt;

&lt;p&gt;Instead of creating new custom CSS classes, we have used utilities to avoid duplicate code and keep the code very clean. Every time you need a custom style or behavior for your components, try using our extended set of utility classes generated with the Bootstrap API&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"card"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"card-body"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"h6 font-semibold text-muted text-sm d-block mb-2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Budget&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"h3 font-bold mb-0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;$750.90&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-auto"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"icon icon-shape bg-tertiary text-white text-lg rounded-circle"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;i&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"bi bi-credit-card"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"mt-2 mb-0 text-sm"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"badge badge-pill bg-soft-success text-success me-2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;i&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"bi bi-arrow-up me-1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;30%
            &lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"text-nowrap text-xs text-muted"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Since last month&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;  
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Fully customizable via Sass variables
&lt;/h3&gt;

&lt;p&gt;All the components are fully customizable via Sass variables and fully responsive to help you build your own dashboard designs with the most popular grid system included in Bootstrap 5. Learn more about how to build your own branded theme in minutes:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://webpixels.io/docs/css/1.0/theme" rel="noopener noreferrer"&gt;Documentation →&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Extend it with our premium components and templates
&lt;/h3&gt;

&lt;p&gt;Webpixels includes over &lt;a href="https://webpixels.io/components" rel="noopener noreferrer"&gt;500 fully responsive Bootstrap components&lt;/a&gt;, carefully designed for specific use-cases, like marketing, application/dashboards, and more. All you need to do is to install Bootstrap and Webpixels CSS and start copying the ready-to-use bits of code.&lt;/p&gt;

&lt;h2&gt;
  
  
  That's it
&lt;/h2&gt;

&lt;p&gt;I hope you'll find this resource valuable. In the following weeks I will take it a step further and prepare other features as well, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;dark mode support&lt;/li&gt;
&lt;li&gt;chart examples&lt;/li&gt;
&lt;li&gt;and some new components&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>bootstrap</category>
      <category>webdev</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
    <item>
      <title>11ty: Inject SVG code using Shortcodes</title>
      <dc:creator>Alexis Enache</dc:creator>
      <pubDate>Thu, 06 Jan 2022 14:33:59 +0000</pubDate>
      <link>https://dev.to/extrabright/11ty-inject-svg-code-using-shortcodes-3l4m</link>
      <guid>https://dev.to/extrabright/11ty-inject-svg-code-using-shortcodes-3l4m</guid>
      <description>&lt;p&gt;Create a &lt;code&gt;{% svg %}&lt;/code&gt; shortcode to inject SVG icons, images, or illustration directly into your template.&lt;/p&gt;

&lt;p&gt;Open the &lt;code&gt;.eleventy.js&lt;/code&gt; config file and add the following code at the top of the page:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside the Eleventy config create a new function that will get the SVG contents:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;eleventyConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;getSvgContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;relativeFilePath&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`./src/svg/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.svg`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;relativeFilePath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
      &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;contents&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
         &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;err&lt;/span&gt;
         &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;contents&lt;/span&gt;
      &lt;span class="p"&gt;});&lt;/span&gt;

      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;utf8&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, create the new shortcode using the &lt;code&gt;addShortcode&lt;/code&gt; function, like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addShortcode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;svg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;getSvgContent&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create a new folder in the &lt;code&gt;src&lt;/code&gt; folder, name it: &lt;code&gt;svg&lt;/code&gt;, and add a new vector file with the &lt;code&gt;.svg&lt;/code&gt; extension.&lt;/p&gt;

&lt;p&gt;To use it in your templates, simply add the new shortcode tag and the file path:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;{% svg "myfile" %}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to use subfolders:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;{% svg "subfolder/myfile" %}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice, we are only using the subfolder and file name, without any extension. That is because in our function we are doing this automatically.&lt;/p&gt;

&lt;p&gt;That's it!&lt;/p&gt;




&lt;h3&gt;
  
  
  The full code
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;eleventyConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;getSvgContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;relativeFilePath&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`./src/svg/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.svg`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;relativeFilePath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
      &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;contents&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
         &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;err&lt;/span&gt;
         &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;contents&lt;/span&gt;
      &lt;span class="p"&gt;});&lt;/span&gt;

      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;utf8&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;

   &lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addShortcode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;svg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;getSvgContent&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;eleventyConfig&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Thanks for reading
&lt;/h3&gt;

&lt;p&gt;Feel free to change it however you need. Don't forget to like, share, and comment ✌️ &lt;/p&gt;

</description>
      <category>100daysofcode</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Build JAMstack-ready sites with Bootstrap and Eleventy</title>
      <dc:creator>Alexis Enache</dc:creator>
      <pubDate>Wed, 05 Jan 2022 17:22:05 +0000</pubDate>
      <link>https://dev.to/webpixels/how-to-get-started-with-bootstrap-and-eleventy-1p4e</link>
      <guid>https://dev.to/webpixels/how-to-get-started-with-bootstrap-and-eleventy-1p4e</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F15fzpqm2ouoxpiapl5oa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F15fzpqm2ouoxpiapl5oa.png" alt="Bootstrap Starter Kit using Eleventy" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
Using a back-end or a front-end framework such as Laravel, React or Vue can become a tedious task, especially for those projects that don't need such complexity. Lately, I've been exploring some other options to build websites more simply. &lt;/p&gt;

&lt;p&gt;Today we'll be talking about static site generators. More specifically, about &lt;a href="https://www.11ty.dev/docs/" rel="noopener noreferrer"&gt;Eleventy&lt;/a&gt;: a simpler static site generator written in JavaScript that helps transform a directory of templates into HTML. &lt;/p&gt;

&lt;p&gt;Site generators are part of a larger architecture called &lt;a href="https://jamstack.org/what-is-jamstack/" rel="noopener noreferrer"&gt;Jamstack&lt;/a&gt;. Its core principles revolve around performance, security, maintainability, and scaling by using tools that support pre-rendering, and decoupling. It enables sites and applications to be delivered with greater confidence and resilience than ever before bringing together a few other ideas and technologies.&lt;/p&gt;
&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;p&gt;Let's start by creating a simple website structure. For this post we'll be using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Eleventy&lt;/strong&gt; as our site generator&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nunjucks&lt;/strong&gt; as our templating system&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bootstrap 5&lt;/strong&gt; as our CSS framework&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Webpixels CSS&lt;/strong&gt; as our design system&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parcel&lt;/strong&gt; as our build tool for JS and Sass&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Autoprefixer&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Post CSS&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;I won't go into detail and write about the requirements and steps you need to take before installing Eleventy or Bootstrap. This information already exists in the official documentation.&lt;/p&gt;

&lt;p&gt;I prepared a &lt;a href="https://github.com/webpixels/bootstrap-starter-kit" rel="noopener noreferrer"&gt;Github repo&lt;/a&gt; with the full code example. You can download it and copy its contents to your project's folder, or simply press the &lt;strong&gt;Use this template&lt;/strong&gt; button which can be found on the repository's page.&lt;/p&gt;

&lt;p&gt;To see what dependencies are needed open the &lt;code&gt;package.json&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;Now, if you're ready, let's dive in. In your terminal, navigate to the project's directory and run the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will install Eleventy, Bootstrap 5, Webpixels CSS, and Parcel. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://parceljs.org/" rel="noopener noreferrer"&gt;Parcel&lt;/a&gt; is a zero-configuration build tool that will help us to compile the Sass and JavaScript files. I decided to drop Gulp or Webpack because the complexity and the maintenance were a big-time consumer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Eleventy Configuration
&lt;/h2&gt;

&lt;p&gt;Eleventy is zero-config by default but has flexible configuration options. It can also work with your project’s existing directory structure if needed.&lt;/p&gt;

&lt;p&gt;What I love about this site generator, in particular, is that it works with multiple template languages, such as HTML, Markdown, JavaScript, Liquid, Nunjucks, Handlebars, Mustache, EJS, Haml, Pug, and JavaScript template literals.&lt;/p&gt;

&lt;p&gt;I chose Nunjucks since it is very familiar to me and it has an easy-to-learn syntax. You can replace it if you'd like to use a different template engine.&lt;/p&gt;

&lt;p&gt;Customizing Eleventy is easy and optional. All the configuration options are stored in the &lt;code&gt;.eleventy.js&lt;/code&gt; file located in the root directory.&lt;/p&gt;

&lt;p&gt;It might look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;eleventyConfig&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="c1"&gt;// Return your Object options:&lt;/span&gt;
   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;dir&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
         &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;src&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
         &lt;span class="na"&gt;output&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dist&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
         &lt;span class="na"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;includes&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
         &lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;data&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;templateFormats&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;html&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;njk&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;md&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;11ty.js&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
      &lt;span class="na"&gt;htmlTemplateEngine&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;njk&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;markdownTemplateEngine&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;njk&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see, we are telling 11ty that we will be using Nunjucks as our templating system and we are also letting it know what folder structure we'll be having.&lt;/p&gt;

&lt;p&gt;For this starter kit we have used passthrough file copy, and layout aliasing. However, there are many configuration options you can add. Please, head to the &lt;a href="https://www.11ty.dev/docs/config/" rel="noopener noreferrer"&gt;11ty documentation&lt;/a&gt; to learn more about these.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;eleventyConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="c1"&gt;// Passthroughs&lt;/span&gt;
   &lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addPassthroughCopy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;src/img&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

   &lt;span class="c1"&gt;// Layout aliases&lt;/span&gt;
   &lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addLayoutAlias&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;base&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;layouts/base.njk&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Passthrough File Copy
&lt;/h3&gt;

&lt;p&gt;If we want to copy additional files that are not Eleventy templates, we use a feature called Passthrough File Copy to tell Eleventy to copy things to our output folder for us.&lt;/p&gt;

&lt;p&gt;Say you need to copy a new folder with your SVG files. Simply add this line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addPassthroughCopy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;src/svg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Layout Aliasing
&lt;/h3&gt;

&lt;p&gt;Use &lt;code&gt;config.addLayoutAlias(from, to)&lt;/code&gt; to add layout aliases. If you have a bunch of existing content using the &lt;code&gt;base&lt;/code&gt; layout and you don’t want to rewrite the full path &lt;code&gt;includes/layouts/base&lt;/code&gt;, map post to a new file like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;eleventyConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addLayoutAlias&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;base&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;layouts/base.njk&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you can use it in your templates (e.g: index.njk) like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;---
layout: base
---
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Add the CSS styles
&lt;/h2&gt;

&lt;p&gt;As I previously mentioned, we'll be using &lt;a href="https://github.com/webpixels/css" rel="noopener noreferrer"&gt;Webpixels CSS&lt;/a&gt; to style our site. It is a utility and component-centric design system based on Bootstrap for fast, responsive UI development. It will help us to build a modern website much faster.&lt;/p&gt;

&lt;p&gt;You can also make use of the components and templates existing on the &lt;a href="https://webpixels.io/components" rel="noopener noreferrer"&gt;Webpixels&lt;/a&gt; website. All you have to do is to copy the HTML markup and paste it into your page.&lt;/p&gt;

&lt;p&gt;Open the &lt;code&gt;src/scss/main.scss&lt;/code&gt; file and add the following lines:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="k"&gt;@import&lt;/span&gt; &lt;span class="s2"&gt;"@webpixels/css/base"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;@import&lt;/span&gt; &lt;span class="s2"&gt;"@webpixels/css/forms"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;@import&lt;/span&gt; &lt;span class="s2"&gt;"@webpixels/css/components"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;@import&lt;/span&gt; &lt;span class="s2"&gt;"@webpixels/css/utilities"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Webpixels CSS will automatically load the latest version of Bootstrap 5. To learn more about how to customize it &lt;a href="https://webpixels.io/docs/css/1.0/installation" rel="noopener noreferrer"&gt;read the documentation&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  Include Bootstrap JavaScript plugins
&lt;/h2&gt;

&lt;p&gt;Bootstrap plugins can be included individually (using Bootstrap’s individual js/dist/*.js), or all at once using bootstrap.js or the minified bootstrap.min.js (don’t include both).&lt;/p&gt;

&lt;p&gt;For keeping things simple we will import all the plugins in the &lt;code&gt;src/js/main.js&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;bootstrap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;bootstrap&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you will be able to use the modal, the dropdown, and the offcanvas, plus a bunch more Bootstrap components. Learn about each plugin, our data and programmatic API options, and more in the &lt;a href="https://getbootstrap.com/docs/5.1/getting-started/javascript/" rel="noopener noreferrer"&gt;official documentation&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Building the Templates
&lt;/h2&gt;

&lt;p&gt;To optimize the process we will be using layouts and partials to store the repeating pieces of code in one place.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create the layout
&lt;/h3&gt;

&lt;p&gt;Eleventy Layouts are special templates that can be used to wrap other content. They are located in the &lt;code&gt;includes/layouts&lt;/code&gt; folder. &lt;/p&gt;

&lt;p&gt;We will create a &lt;code&gt;base.njk&lt;/code&gt; file inside &lt;code&gt;includes/layouts&lt;/code&gt;. It can contain any type of text, but here we’re using HTML:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"{{ site.lang}}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1, viewport-fit=cover"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;{{ title }} | {{ site.name }}&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;

        &lt;span class="c"&gt;&amp;lt;!-- Bootstrap Icons --&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.3.0/font/bootstrap-icons.css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

        &lt;span class="c"&gt;&amp;lt;!-- Styles --&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"{{ '/css/main.css' | url }}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"app"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="c"&gt;&amp;lt;!-- Header --&amp;gt;&lt;/span&gt;
            {% include "partials/header.njk" %}

            &lt;span class="c"&gt;&amp;lt;!-- Main container --&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"main-container"&lt;/span&gt; &lt;span class="na"&gt;role=&lt;/span&gt;&lt;span class="s"&gt;"document"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;main&lt;/span&gt; &lt;span class="na"&gt;role=&lt;/span&gt;&lt;span class="s"&gt;"main"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    {{ content | safe }}
                &lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

            &lt;span class="c"&gt;&amp;lt;!-- Footer --&amp;gt;&lt;/span&gt;
            {% include "partials/footer.njk" %}
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"{{ '/js/main.js' | url }}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here we've included our CSS and JS files. Besides, we've added Bootstrap Icons by default. You can replace it with another library if this one isn't the one you need.&lt;/p&gt;

&lt;h3&gt;
  
  
  Including partials
&lt;/h3&gt;

&lt;p&gt;The tag &lt;code&gt;{% include %}&lt;/code&gt; is how a code partial is added to a page. By default, Eleventy looks for partials in the &lt;code&gt;includes&lt;/code&gt;folder.&lt;/p&gt;

&lt;p&gt;We created two partials for the header and footer since these are the elements we will be using in most of our pages.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using the layout
&lt;/h3&gt;

&lt;p&gt;To denote that a piece of content should be wrapped in a template, use the &lt;code&gt;layout&lt;/code&gt; key in your front matter. Since we are using layout aliasing, you only need to write the name of the layout without specifying the path or the extension, like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;---
layout: base
title: Life is Good
---
# {{ title }}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Using data
&lt;/h3&gt;

&lt;p&gt;Frontmatter and Markdown are ways to provide data and content for Eleventy to process into web pages, but to better organize the data being used in a website, Eleventy can use &lt;strong&gt;global data files&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;These are files located in a central location that can be used across all templates. These data files can be either JSON or JavaScript. &lt;/p&gt;

&lt;p&gt;Our starter kit stores all the data into the &lt;code&gt;data&lt;/code&gt; folder. You can find a &lt;code&gt;site.json&lt;/code&gt; which was created to keep all the information needed about our current project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bootstrap Starter Kit"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Minimal starter template for websites using Bootstrap 5 and Webpixels CSS next to the Eleventy static site generator."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"lang"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"en"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"github"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://github.com/webpixels/bootstrap-starter-kit"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Your Name"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"handle"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@twitterhandle"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"email@example.com"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2021&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"copyright"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2022"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Later, in your pages you can use this data like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;{{ site.name }}&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Learn more about how to use data in your templates in the &lt;a href="https://www.11ty.dev/docs/data/" rel="noopener noreferrer"&gt;official documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compile Sass and JavaScript
&lt;/h2&gt;

&lt;p&gt;This Bootstrap starter kit comes with a few npm scripts included to make the development and building process much easier. For this, I chose Parcel. It is very easy to install and configure, and it comes with all the features you need out of the box.&lt;/p&gt;

&lt;p&gt;In our case, we need to compile Sass to CSS, and to optimize our JavaScript.&lt;/p&gt;

&lt;h3&gt;
  
  
  Working locally
&lt;/h3&gt;

&lt;p&gt;Here are the commands you can use in your terminal to start working with this starter kit.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will transform Eleventy templates to HTML, compile Sass and JS, start a local server, and watch for changes made to your files.&lt;/p&gt;

&lt;p&gt;If you want to run the tasks separately here are the commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run serve:eleventy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run watch:css
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run watch:js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Building for production
&lt;/h3&gt;

&lt;p&gt;When going live you need to optimize your files. Use the following command to bundle up and minify all the CSS and Javascript.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Going Live
&lt;/h2&gt;

&lt;p&gt;You can use &lt;a href="https://www.netlify.com/" rel="noopener noreferrer"&gt;Netlify&lt;/a&gt; to quickly upload your site on the web. Create a new account or log in to, and then, simply drag and drop our &lt;code&gt;dist&lt;/code&gt; folder onto the web browser window to upload the contents live to the web.&lt;/p&gt;

&lt;p&gt;Another way is to connect your Github account to automatically take the source code and deploy it. Netlify will run the &lt;code&gt;npm run build&lt;/code&gt; code for which will generate the dist folder.&lt;/p&gt;

&lt;h2&gt;
  
  
  Up Next
&lt;/h2&gt;

&lt;p&gt;This is the first part of this series. To keep it clean and simple, I will dedicate one article for each major step towards our project completion.&lt;/p&gt;

&lt;p&gt;In the following parts, we will take it a step further and prepare your site for more complex pages and features, like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;creating a blog &lt;/li&gt;
&lt;li&gt;connecting Eleventy to a headless CMS like Strapi&lt;/li&gt;
&lt;li&gt;creating a simple e-commerce site&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Follow me and subscribe to the newsletter to be the first to find out when I release them.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>webdev</category>
      <category>100daysofcode</category>
      <category>bootstrap</category>
    </item>
    <item>
      <title>Extending Bootstrap components using utility classes only, just like Tailwind</title>
      <dc:creator>Alexis Enache</dc:creator>
      <pubDate>Thu, 09 Dec 2021 10:06:34 +0000</pubDate>
      <link>https://dev.to/webpixels/extending-bootstrap-components-using-utility-classes-only-just-like-tailwind-59am</link>
      <guid>https://dev.to/webpixels/extending-bootstrap-components-using-utility-classes-only-just-like-tailwind-59am</guid>
      <description>&lt;p&gt;In this post, I will talk about the utility classes concept to demonstrate how you can use Bootstrap in a way that allows you to build faster, better, and with no duplicate code or custom CSS classes.&lt;/p&gt;

&lt;p&gt;Using the utility API included in the framework, you can create classes like &lt;code&gt;mx-auto&lt;/code&gt; or &lt;code&gt;shadow-5&lt;/code&gt; to change the default style of an element, just like Tailwind does. This is a great approach that allows us to remain consistent, by having pre-built patterns (buttons, cards, etc.) and these classes to tweak the components quickly without messing with CSS. &lt;/p&gt;

&lt;p&gt;To make things easier in my development process, I created a Bootstrap 5 extension to add new components that are not included in the core of the framework (e.g. avatars), new colors and typography, and an extended set of utility classes to allow you to customize your components directly into you HTML. It is open-source. Here is the &lt;a href="https://webpixels.io/docs/css/1.0/transform" rel="noopener noreferrer"&gt;demo&lt;/a&gt; and the &lt;a href="https://github.com/webpixels/css" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Customizing Bootstrap components
&lt;/h2&gt;

&lt;p&gt;How can you customize and extend a Bootstrap component? There are two approaches I recommend:&lt;/p&gt;

&lt;h3&gt;
  
  
  Using the Sass variables
&lt;/h3&gt;

&lt;p&gt;I highly recommend using Sass when you want to change the default style provided by Bootstrap. Change the padding, color, border using variables. Bootstrap did a great job documenting each component and its variables.&lt;/p&gt;

&lt;p&gt;Say you want to change the appearance of the alert component. Head to the documentation and scroll to the Sass variables section. You will find something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="nv"&gt;$alert-padding-y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;               &lt;span class="nv"&gt;$spacer&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$alert-padding-x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;               &lt;span class="nv"&gt;$spacer&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$alert-margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;           &lt;span class="m"&gt;1rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$alert-border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;           &lt;span class="nv"&gt;$border-radius&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$alert-link-font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;        &lt;span class="nv"&gt;$font-weight-bold&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$alert-border-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;            &lt;span class="nv"&gt;$border-width&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$alert-bg-scale&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;                &lt;span class="m"&gt;-80%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$alert-border-scale&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;            &lt;span class="m"&gt;-70%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$alert-color-scale&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;             &lt;span class="m"&gt;40%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$alert-dismissible-padding-r&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;   &lt;span class="nv"&gt;$alert-padding-x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 3x covers width of x plus default padding on either side&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace the values with your own and compile it to see the changes using Gulp, Webpack, Laravel Mix, or your current setup.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using utility classes
&lt;/h3&gt;

&lt;p&gt;Instead of creating new custom CSS classes, you can use utilities. These allow you to avoid duplicate code and help you keep things very clean. Every time you need a custom style or behavior for your components, try using utility classes.&lt;/p&gt;

&lt;p&gt;Say you want a pill button. Instead of going to your CSS and create a new class:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.btn-pill&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;border-radius-pill&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It would look something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn btn-primary rounded-pill"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Button&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So simple right? And this is just the easiest example. Things get much more interesting when you need more complex stuff. &lt;/p&gt;

&lt;p&gt;Check out how I used the transform utilities to change the orientation or rotation of an element.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"d-flex"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"transform translate-x-n1/2 translate-y-n1/2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"transform rotate-12"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"transform skew-x-12"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"transform scale-50"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://webpixels.io/docs/css/" rel="noopener noreferrer"&gt;Check out the documentation&lt;/a&gt; to see all the utility classes included in Webpixels CSS using the Bootstrap utility API.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using the responsive breakpoints
&lt;/h2&gt;

&lt;p&gt;Use the &lt;code&gt;.transform-none&lt;/code&gt; to remove this behaviour on any breakpoint.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"transform translate-x-32 transform-md-none"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    ...
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;This was just a short introduction to the Bootstrap utility API and how you can use Webpixels CSS to extend the framework's default look and feel.&lt;/p&gt;

&lt;p&gt;What do you think about this approach? Is this how you build UIs too, or do you prefer a different method? 🤔&lt;/p&gt;

</description>
      <category>bootstrap</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>tailwindcss</category>
    </item>
    <item>
      <title>5+ Bootstrap chat templates for building modern messaging user interfaces</title>
      <dc:creator>Alexis Enache</dc:creator>
      <pubDate>Thu, 30 Sep 2021 13:07:13 +0000</pubDate>
      <link>https://dev.to/webpixels/5-bootstrap-chat-templates-for-building-modern-messaging-user-interfaces-24jc</link>
      <guid>https://dev.to/webpixels/5-bootstrap-chat-templates-for-building-modern-messaging-user-interfaces-24jc</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffsq9r9xuav61i974rc7h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffsq9r9xuav61i974rc7h.png" alt="Bootstrap chat templates "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead of wasting time building from the ground up why not use pre-built modules and already tested bits of code?&lt;/p&gt;

&lt;p&gt;No matter how complex your project is, you can streamline the development process by saving dozens of hours of work.&lt;/p&gt;

&lt;p&gt;In this week's update, we've included some pretty cool templates and components for building messaging and chat user interfaces, plus a bunch of other elements to help your craft some amazing apps.&lt;/p&gt;

&lt;p&gt;Here's a sneak peek into some of the best Bootstrap templates available on our website.&lt;/p&gt;

&lt;h2&gt;
  
  
  Messaging and Chat Screens
&lt;/h2&gt;

&lt;p&gt;Development is much more fun when you don't need to worry about design. With this collection of high-quality, simple, fresh, and modern Bootstrap templates, you will be able to create chat and discussion platforms in no time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://webpixels.io/components/application/application-pages/messaging-screens" rel="noopener noreferrer"&gt;Browse all Chat Screens&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2FvJ0KAjaPqFaM8L0DNXoK5c8JbSpcy3HHaTXMdoh7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2FvJ0KAjaPqFaM8L0DNXoK5c8JbSpcy3HHaTXMdoh7.png" alt="Bootstrap chat template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2Fre03PMC9GBQmCeFUNizmp8YEyD9eG7QxNnFMlrsZ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2Fre03PMC9GBQmCeFUNizmp8YEyD9eG7QxNnFMlrsZ.png" alt="Bootstrap chat template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2FDx0dWvNacrQ4d9cvGnvvRmrIi1S5n1AUMxaAhJXK.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2FDx0dWvNacrQ4d9cvGnvvRmrIi1S5n1AUMxaAhJXK.png" alt="Bootstrap chat template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2FoHRaq2t47Qg3viRRJds83YiksyAhKtRVvZt9AaJZ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2FoHRaq2t47Qg3viRRJds83YiksyAhKtRVvZt9AaJZ.png" alt="Bootstrap chat template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2FtDI6Mk603knYBQi8UO4lNxirVoNpVORE0XyBASzz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2FtDI6Mk603knYBQi8UO4lNxirVoNpVORE0XyBASzz.png" alt="Bootstrap chat template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Offcanvas Components
&lt;/h2&gt;

&lt;p&gt;Because many of you asked about these, we've included in our library a variety of offcanvas components to help you build hidden sidebars into your project for navigation, shopping carts, and much more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://webpixels.io/components/base/overlays/offcanvas" rel="noopener noreferrer"&gt;Browse all Offcanvas Components&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2Flgf4U8O1l9WjjdzFIctKY86ZYhKAhdIeIQfbEdSN.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2Flgf4U8O1l9WjjdzFIctKY86ZYhKAhdIeIQfbEdSN.png" alt="Offcanvas component example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2F2RBvfNii36b8xXh5921buFTCuHzaCCFHfoYEdXAt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2F2RBvfNii36b8xXh5921buFTCuHzaCCFHfoYEdXAt.png" alt="Offcanvas component example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Build amazing Bootstrap websites today!
&lt;/h2&gt;

&lt;p&gt;So there you have it, our newest roundup of amazing Bootstrap website templates. What did you think of our list? I hope you’ve found one that’s going to help make your next website project a great one.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
      <category>weeklyui</category>
    </item>
    <item>
      <title>Build modern landing pages that convert with the best ready-made Bootstrap templates</title>
      <dc:creator>Alexis Enache</dc:creator>
      <pubDate>Mon, 06 Sep 2021 12:22:18 +0000</pubDate>
      <link>https://dev.to/webpixels/bootstrap-5-templates-landing-pages-and-pricing-sections-3je7</link>
      <guid>https://dev.to/webpixels/bootstrap-5-templates-landing-pages-and-pricing-sections-3je7</guid>
      <description>&lt;p&gt;🦁 I am happy to announce that today is the day we start releasing some cool updates on Webpixels, including new Bootstrap components, site features, and functionalities meant to make your life as a developer easier and more fun. &lt;/p&gt;

&lt;p&gt;In this week's update we've added new categories for &lt;a href="https://webpixels.io/components/marketing/marketing-pages/landing-pages" rel="noopener noreferrer"&gt;Landing Pages&lt;/a&gt;, &lt;a href="https://webpixels.io/components/marketing/marketing-pages/inner-pages" rel="noopener noreferrer"&gt;Inner Pages&lt;/a&gt;, and &lt;a href="https://webpixels.io/components/marketing/sections/pricing" rel="noopener noreferrer"&gt;Pricing Sections&lt;/a&gt;, and also added a bunch of new ideas for &lt;a href="https://webpixels.io/components/marketing/sections/hero" rel="noopener noreferrer"&gt;Hero&lt;/a&gt;, &lt;a href="https://webpixels.io/components/marketing/sections/features" rel="noopener noreferrer"&gt;Feature&lt;/a&gt;, &lt;a href="https://webpixels.io/components/marketing/sections/blog" rel="noopener noreferrer"&gt;Blog&lt;/a&gt;, and &lt;a href="https://webpixels.io/components/marketing/sections/contact" rel="noopener noreferrer"&gt;Contact&lt;/a&gt; sections, all crafted with Bootstrap 5.&lt;/p&gt;




&lt;h3&gt;
  
  
  Landing pages
&lt;/h3&gt;

&lt;p&gt;Development is much more fun when you don't need to worry about design. We've included a few amazingly designed and coded Bootstrap landing templates and inner pages that are supported by rock-solid design principles. Start using them right away.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://webpixels.io/components/marketing/marketing-pages/landing-pages" rel="noopener noreferrer"&gt;Browse all Landing Pages&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2FhsXrRk3ibkljaCQkPNNztVV3TCOpxKcB5FZMwGCw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2FhsXrRk3ibkljaCQkPNNztVV3TCOpxKcB5FZMwGCw.png" alt="Bootstrap Landing Page Template"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2FxANsycVYY6hmMU0jbPAjXEvhdhKFVTerbCZ9P9xf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2FxANsycVYY6hmMU0jbPAjXEvhdhKFVTerbCZ9P9xf.png" alt="Bootstrap Landing Page Template"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2FxDk9BEcqXDApMsOb4B6dSPeEX072vL1JtEuMTg08.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2FxDk9BEcqXDApMsOb4B6dSPeEX072vL1JtEuMTg08.png" alt="Bootstrap Landing Page Template"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2Fg2XrZD2YD2oag7eCLYge8KX6wQobdmoqUEdCKouD.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2Fg2XrZD2YD2oag7eCLYge8KX6wQobdmoqUEdCKouD.png" alt="Bootstrap Landing Page Template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get your new web design project started with these amazing templates, or copy and paste elements into your existing projects to give them a creative boost.&lt;/p&gt;




&lt;h3&gt;
  
  
  Pricing Sections and Components
&lt;/h3&gt;

&lt;p&gt;Also, we've updated our collection of Bootstrap pricing components and sections. You will find plenty of ideas to start from. Browse them as &lt;a href="https://webpixels.io/components/application/cards/pricing-cards" rel="noopener noreferrer"&gt;single components&lt;/a&gt; or as &lt;a href="https://webpixels.io/components/marketing/sections/pricing" rel="noopener noreferrer"&gt;fully assembled sections&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2F1ty1p10LLB0CAWzvELxiwjrfE0BisiMK2Cu3iKwa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwebpixels.s3.eu-central-1.amazonaws.com%2Fupload%2F1ty1p10LLB0CAWzvELxiwjrfE0BisiMK2Cu3iKwa.png" alt="Bootstrap Pricing Templates"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Coming up
&lt;/h3&gt;

&lt;p&gt;As previously mentioned, this is just the beginning. From now on we will bring new components and templates periodically. So make sure to stay subscribed to our newsletter and check out our website for new stuff.&lt;/p&gt;

&lt;p&gt;Some of the things we are working on right now are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;new application components&lt;/li&gt;
&lt;li&gt;overlay components: modals, and off-canvas&lt;/li&gt;
&lt;li&gt;detail view pages for dashboards and applications&lt;/li&gt;
&lt;li&gt;pricing pages&lt;/li&gt;
&lt;li&gt;contact pages&lt;/li&gt;
&lt;li&gt;and much more ...&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a href="https://webpixels.io/components" rel="noopener noreferrer"&gt;Webpixels Components&lt;/a&gt; includes over 400 fully responsive HTML components, carefully designed for specific use-cases, like marketing, application/dashboards, and more. All you need to do is to install Bootstrap + Webpixels CSS and start copying the ready-to-use bits of code.&lt;/p&gt;

&lt;p&gt;Quickly get a project started with any of our layouts and page examples ranging from using parts of the framework to custom components and layouts. We have plenty of ideas, and in the following weeks, we will release many new components and page categories, like landing, contact, pricing pages, and more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://webpixels.io/plans" rel="noopener noreferrer"&gt;Get access to Webpixels Components →&lt;/a&gt;&lt;/p&gt;

</description>
      <category>bootstrap</category>
      <category>frontend</category>
      <category>development</category>
      <category>design</category>
    </item>
    <item>
      <title>Build modern authentication screens with Laravel 8 and Bootstrap 5</title>
      <dc:creator>Alexis Enache</dc:creator>
      <pubDate>Sun, 23 May 2021 15:58:03 +0000</pubDate>
      <link>https://dev.to/webpixels/build-modern-authentication-screens-with-laravel-8-and-bootstrap-5-36io</link>
      <guid>https://dev.to/webpixels/build-modern-authentication-screens-with-laravel-8-and-bootstrap-5-36io</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr59gnerf9w22lvd4ehow.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr59gnerf9w22lvd4ehow.png" alt="Authentication Screens - Webpixels Components" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am Laravel and Bootstrap fan since the beginning. Even though recently Laravel switch to Tailwind CSS as its primary way of building interfaces, I still prefer Bootstrap for several reasons.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I like my HTML and CSS separated&lt;/li&gt;
&lt;li&gt;Building or maintaining components and pages is much easier&lt;/li&gt;
&lt;li&gt;Basic customization is made using Sass which makes global customization less time consuming&lt;/li&gt;
&lt;li&gt;You can always use Bootstrap utilities to extend components directly into your HTML or add new ones just like Tailwind&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this tutorial, I will show you how to get started fast with Laravel 8 and Bootstrap 5. These are the things we'll cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Installation&lt;/li&gt;
&lt;li&gt;Laravel Mix setup&lt;/li&gt;
&lt;li&gt;Authentication scaffolding&lt;/li&gt;
&lt;li&gt;Login, Register, and Recover design&lt;/li&gt;
&lt;li&gt;User management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also, I am going to use a pretty cool design system built with Bootstrap 5 to extend the default look and feel and add new components and utility classes for allowing me to build more complex architectures. &lt;/p&gt;

&lt;p&gt;If you want your application's UI to look like the one in the article's image, then you should give &lt;a href="https://github.com/webpixels/css" rel="noopener noreferrer"&gt;Webpixels CSS&lt;/a&gt; a try.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;I won't go into detail and write about the requirements and steps you need to take before installing Laravel. This information already exists in the &lt;a href="https://laravel.com/docs/8.x/installation" rel="noopener noreferrer"&gt;official documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, if you're ready, let's dive in.&lt;/p&gt;

&lt;p&gt;Create a new folder called &lt;code&gt;laravel-starter-kit&lt;/code&gt; and install Laravel using your preferred method from the docs.&lt;/p&gt;

&lt;p&gt;Next, we will install everything we need for our app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Authentication Scaffolding
&lt;/h2&gt;

&lt;p&gt;Laravel provides a basic starting point using Bootstrap, React, and/or Vue that will be helpful for many applications. &lt;/p&gt;

&lt;p&gt;By default, Laravel uses NPM to install both of these frontend packages.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;composer require laravel/ui
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Generate basic scaffolding...&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;php artisan ui bootstrap
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Generate login / registration scaffolding...&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;php artisan ui bootstrap --auth
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After installing the &lt;code&gt;laravel/ui&lt;/code&gt; Composer package and generating the frontend scaffolding, the &lt;code&gt;package.json&lt;/code&gt; file will include the Bootstrap and Webpixels CSS packages to help you get started prototyping your application's frontend without worrying about the design. &lt;/p&gt;

&lt;p&gt;Before compiling CSS, open &lt;code&gt;package.json&lt;/code&gt; and replace devDependencies like in the example below. This way you'll make sure to use the latest Bootstrap version.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"devDependencies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
   &lt;/span&gt;&lt;span class="nl"&gt;"@popperjs/core"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^2.6.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
   &lt;/span&gt;&lt;span class="nl"&gt;"@webpixels/css"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^1.0.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
   &lt;/span&gt;&lt;span class="nl"&gt;"axios"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^0.21"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
   &lt;/span&gt;&lt;span class="nl"&gt;"bootstrap"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^5.0.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
   &lt;/span&gt;&lt;span class="nl"&gt;"laravel-mix"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^6.0.6"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
   &lt;/span&gt;&lt;span class="nl"&gt;"lodash"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^4.17.19"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
   &lt;/span&gt;&lt;span class="nl"&gt;"postcss"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^8.2.2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
   &lt;/span&gt;&lt;span class="nl"&gt;"sass"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^1.32.11"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
   &lt;/span&gt;&lt;span class="nl"&gt;"sass-loader"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^11.0.1"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, install your project's frontend dependencies using the &lt;a href="https://www.npmjs.com/" rel="noopener noreferrer"&gt;Node package manager (NPM)&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configure Laravel Mix
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://laravel.com/docs/mix" rel="noopener noreferrer"&gt;Laravel Mix&lt;/a&gt; provides a clean, expressive API over compiling SASS, which are extensions of plain CSS that add variables, mixins, and other powerful features that make working with CSS much more enjoyable.&lt;/p&gt;

&lt;p&gt;To configure Laravel Mix use the &lt;code&gt;webpack.mix.js&lt;/code&gt; file. It comes with a default initial setup, but we'll make some improvements here:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;mix&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;laravel-mix&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;mix&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;js&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;resources/js/app.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;public/js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;resources/sass/app.scss&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;public/css&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;sassOptions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
         &lt;span class="na"&gt;includePaths&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;node_modules&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
   &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;mix&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;browserSync&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
   &lt;span class="na"&gt;proxy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;localhost:8000&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
   &lt;span class="na"&gt;notify&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;mix&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;inProduction&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nx"&gt;mix&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;version&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
   &lt;span class="nx"&gt;mix&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sourceMaps&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To run your Mix tasks you only need to execute one of the NPM scripts that are included in the default Laravel &lt;code&gt;package.json&lt;/code&gt; file. When you run the &lt;code&gt;dev&lt;/code&gt; or &lt;code&gt;production&lt;/code&gt; scripts, all of your application's CSS and JavaScript assets will be compiled and placed in your application's public directory. We will use these later, but just to be aware, here are the commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Run all Mix tasks...
npm run dev

// Run all Mix tasks and minify output...
npm run prod
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The frontend scaffolding is now ready. In the following steps, we will set up the database connection and run the migrations which will allow us to create some beautiful authentication screens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Add the CSS styles
&lt;/h2&gt;

&lt;p&gt;As I previously mentioned, we'll use &lt;a href="https://github.com/webpixels/css" rel="noopener noreferrer"&gt;Webpixels CSS&lt;/a&gt; to style our dashboard. It is a utility and component-centric Design System based on Bootstrap for fast, responsive UI development.&lt;/p&gt;

&lt;p&gt;Open the &lt;code&gt;resource/sass/app.scss&lt;/code&gt; file and replace its content with the following lines:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="k"&gt;@import&lt;/span&gt; &lt;span class="s2"&gt;"@webpixels/css/base"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;@import&lt;/span&gt; &lt;span class="s2"&gt;"@webpixels/css/forms"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;@import&lt;/span&gt; &lt;span class="s2"&gt;"@webpixels/css/components"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;@import&lt;/span&gt; &lt;span class="s2"&gt;"@webpixels/css/utilities"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Webpixels CSS will automatically load the latest version of Bootstrap 5. To learn more about how to customize it &lt;a href="https://webpixels.io/docs/css/" rel="noopener noreferrer"&gt;read the documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Add Bootstrap to your app's JS
&lt;/h2&gt;

&lt;p&gt;Open the &lt;code&gt;resource/js/app.js&lt;/code&gt; file and replace its content with the following lines:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;bootstrap&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Since now we are using Bootstrap 5, you can remove the &lt;code&gt;bootstrap.js&lt;/code&gt; file located in the same folder. That one is added when &lt;code&gt;laravel/ui&lt;/code&gt; is installed to include jQuery and Popper, which is not the case anymore.&lt;/p&gt;




&lt;p&gt;Great! On the front end side, we're all set. Next, we will focus on setting up the database and build our app's backend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Database setup
&lt;/h2&gt;

&lt;p&gt;When you create a new Laravel project, the installation process automatically creates a .env file for configuration and credentials. Depending on your setup, you’ll need to modify the following block of settings to match your database configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With your connection set up, let's run the migrations using the dedicated artisan command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;php artisan migrate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Let's build our app
&lt;/h2&gt;

&lt;p&gt;These are the final steps before starting our app:&lt;/p&gt;

&lt;h4&gt;
  
  
  Generate the app's key
&lt;/h4&gt;

&lt;p&gt;Since this is your first time starting this project, you must set the key configuration option in your config/app.php configuration file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;php artisan key:generate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Run database migrations
&lt;/h4&gt;

&lt;p&gt;Before running the migrations, you may need to manually configure the default string length generated by migrations in order for MySQL to create indexes for them. You may configure the default string length by calling the &lt;code&gt;Schema::defaultStringLength&lt;/code&gt; method within the boot method of your &lt;code&gt;App\Providers\AppServiceProvider&lt;/code&gt; class:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Illuminate\Support\Facades\Schema&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="cd"&gt;/**
 * Bootstrap any application services.
 *
 * @return void
 */&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;boot&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nc"&gt;Schema&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;defaultStringLength&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;191&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To run all of your outstanding migrations, execute the migrate Artisan command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;php artisan migrate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Start the app
&lt;/h3&gt;

&lt;p&gt;After the application has been created, you may start Laravel's local development server using the Artisan CLI's serve command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;php artisan serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The database is all set so we will take care now of the user interface.&lt;/p&gt;

&lt;h2&gt;
  
  
  Set up the routes
&lt;/h2&gt;

&lt;p&gt;By default, Laravel comes with a couple of implemented routes used for displaying the Home and Welcome pages of the website. It also creates the authentication routes automatically when you install Laravel UI.&lt;/p&gt;

&lt;p&gt;Next, we'll make some minor changes for displaying the Home page. Copy this in your &lt;code&gt;routes/web.php&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nc"&gt;Auth&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;routes&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="nc"&gt;Route&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nc"&gt;App\Http\Controllers\HomeController&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'index'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="nc"&gt;Route&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/home'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nc"&gt;App\Http\Controllers\HomeController&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'index'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'home'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Create the layout
&lt;/h2&gt;

&lt;p&gt;For creating the authentication pages and forms we will use Laravel's class-based components. Let's create a new guest layout using the &lt;code&gt;make:component&lt;/code&gt; command which will place it in the &lt;code&gt;App\View\Components&lt;/code&gt; directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;php artisan make:component GuestLayout
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;make:component&lt;/code&gt; command will also create a view template for the component. The view will be placed in the &lt;code&gt;resources/views/components&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;Once the layout component has been defined, place this content inside it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!doctype html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"{{ str_replace('_', '-', app()-&amp;gt;getLocale()) }}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="c"&gt;&amp;lt;!-- CSRF Token --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"csrf-token"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"{{ csrf_token() }}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;{{ config('app.name', 'Laravel') }}&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;

    &lt;span class="c"&gt;&amp;lt;!-- Fonts --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"dns-prefetch"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"//fonts.gstatic.com"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://fonts.googleapis.com/css?family=Inter"&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="c"&gt;&amp;lt;!-- Styles --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"{{ asset('css/app.css') }}"&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"app"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;main&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"py-4"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            {{ $slot }}
        &lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

    &lt;span class="c"&gt;&amp;lt;!-- Scripts --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"{{ asset('js/app.js') }}"&lt;/span&gt; &lt;span class="na"&gt;defer&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see, we are doing a few things here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;added the Inter font&lt;/li&gt;
&lt;li&gt;linked the CSS styles&lt;/li&gt;
&lt;li&gt;added the &lt;code&gt;$slot&lt;/code&gt; variable within our layout component used for injecting the content from other pages&lt;/li&gt;
&lt;li&gt;linked the app's scripts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now we are ready to build the authentication pages :)&lt;/p&gt;

&lt;h2&gt;
  
  
  Create the authentication screens
&lt;/h2&gt;

&lt;p&gt;For this part, I will use one of the free and beautiful &lt;a href="https://webpixels.io/components/application/application-pages/auth-screens" rel="noopener noreferrer"&gt;pre-made authentication screens&lt;/a&gt; from the UI components library provided by Webpixels. They're all crafted with the latest version of Bootstrap (currently v5) and you can use the HTML code to create all the pages you need.&lt;/p&gt;

&lt;p&gt;In the following example, I took the HTML from Webpixels and replaced its elements with the ones needed by Laravel to become fully functional.&lt;/p&gt;




&lt;h4&gt;
  
  
  The login page
&lt;/h4&gt;

&lt;p&gt;Copy and paste the code below in your login page located in the &lt;code&gt;resources/views/auth/login.blade.php&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;x-guest-layout&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"px-5 py-5 p-lg-0 bg-surface-secondary"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"d-flex justify-content-center"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-lg-5 col-xl-4 p-12 p-xl-20 position-fixed start-0 top-0 h-screen overflow-y-hidden bg-primary d-none d-lg-flex flex-column"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="c"&gt;&amp;lt;!-- Logo --&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"d-block"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://preview.webpixels.io/web/img/logos/clever-light.svg"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"h-10"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"..."&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
                &lt;span class="c"&gt;&amp;lt;!-- Title --&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"mt-32 mb-20"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;h1&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"ls-tight font-bolder display-6 text-white mb-5"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                        Let’s build something amazing today.
                    &lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"text-white-80"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                        Maybe some text here will help me see it better. Oh God. Oke, let’s do it then.
                    &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="c"&gt;&amp;lt;!-- Circle --&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"w-56 h-56 bg-orange-500 rounded-circle position-absolute bottom-0 end-20 transform translate-y-1/3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-12 col-md-9 col-lg-7 offset-lg-5 border-left-lg min-h-lg-screen d-flex flex-column justify-content-center py-lg-16 px-lg-20 position-relative"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-lg-10 col-md-9 col-xl-6 mx-auto ms-xl-0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"mt-10 mt-lg-5 mb-6 d-flex align-items-center d-lg-block"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"d-inline-block d-lg-block h1 mb-lg-6 me-3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;👋&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;h1&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"ls-tight font-bolder h2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                {{ __('Nice to see you!') }}
                            &lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
                        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                        &lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;method=&lt;/span&gt;&lt;span class="s"&gt;"POST"&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;"{{ route('login') }}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                            @csrf
                            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"mb-5"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-label"&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;{{ __('E-Mail Address') }}&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-control @error('email') is-invalid @enderror"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"{{ old('email') }}"&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt; &lt;span class="na"&gt;autocomplete=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;autofocus&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

                                @error('email')
                                    &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"invalid-feedback"&lt;/span&gt; &lt;span class="na"&gt;role=&lt;/span&gt;&lt;span class="s"&gt;"alert"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                        &lt;span class="nt"&gt;&amp;lt;strong&amp;gt;&lt;/span&gt;{{ $message }}&lt;span class="nt"&gt;&amp;lt;/strong&amp;gt;&lt;/span&gt;
                                    &lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
                                @enderror
                            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"mb-5"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"d-flex align-items-center justify-content-between"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                    &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
                                        &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-label"&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;{{ __('Password') }}&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
                                    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                                    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"mb-2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                        @if (Route::has('password.request'))
                                        &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"{{ route('password.request') }}"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"small text-muted"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Forgot password?&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
                                        @endif
                                    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-control @error('password') is-invalid @enderror"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt; &lt;span class="na"&gt;autocomplete=&lt;/span&gt;&lt;span class="s"&gt;"current-password"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

                                @error('password')
                                    &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"invalid-feedback"&lt;/span&gt; &lt;span class="na"&gt;role=&lt;/span&gt;&lt;span class="s"&gt;"alert"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                        &lt;span class="nt"&gt;&amp;lt;strong&amp;gt;&lt;/span&gt;{{ $message }}&lt;span class="nt"&gt;&amp;lt;/strong&amp;gt;&lt;/span&gt;
                                    &lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
                                @enderror
                            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"mb-5"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-check"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-check-input"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"checkbox"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"remember"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"remember"&lt;/span&gt; &lt;span class="err"&gt;{{&lt;/span&gt; &lt;span class="na"&gt;old&lt;/span&gt;&lt;span class="err"&gt;('&lt;/span&gt;&lt;span class="na"&gt;remember&lt;/span&gt;&lt;span class="err"&gt;')&lt;/span&gt; &lt;span class="err"&gt;?&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="na"&gt;checked&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="err"&gt;''&lt;/span&gt; &lt;span class="err"&gt;}}&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                    &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-check-label"&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"remember"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                        {{ __('Remember Me') }}
                                    &lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn btn-primary w-full"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                    {{ __('Sign in') }}
                                &lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                        &lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
                        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"my-6"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;small&amp;gt;&lt;/span&gt;{{ __('Don\'t have an account') }}&lt;span class="nt"&gt;&amp;lt;/small&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"{{ route('register') }}"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"text-warning text-sm font-semibold"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;{{ __('Sign up') }}&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
                        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/x-guest-layout&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h4&gt;
  
  
  The register page
&lt;/h4&gt;

&lt;p&gt;Copy and paste the code below in your register page located in the &lt;code&gt;resources/views/auth/register.blade.php&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;x-guest-layout&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"px-5 py-5 p-lg-0 bg-surface-secondary"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"d-flex justify-content-center"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-lg-5 col-xl-4 p-12 p-xl-20 position-fixed start-0 top-0 h-screen overflow-y-hidden bg-primary d-none d-lg-flex flex-column"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="c"&gt;&amp;lt;!-- Logo --&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"d-block"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://preview.webpixels.io/web/img/logos/clever-light.svg"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"h-10"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"..."&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
                &lt;span class="c"&gt;&amp;lt;!-- Title --&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"mt-32 mb-20"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;h1&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"ls-tight font-bolder display-6 text-white mb-5"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                        Let’s build something amazing today.
                    &lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"text-white-80"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                        Maybe some text here will help me see it better. Oh God. Oke, let’s do it then.
                    &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="c"&gt;&amp;lt;!-- Circle --&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"w-56 h-56 bg-orange-500 rounded-circle position-absolute bottom-0 end-20 transform translate-y-1/3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-12 col-md-9 col-lg-7 offset-lg-5 border-left-lg min-h-lg-screen d-flex flex-column justify-content-center py-lg-16 px-lg-20 position-relative"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-lg-10 col-md-9 col-xl-6 mx-auto ms-xl-0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"mt-10 mt-lg-5 mb-6 d-flex align-items-center d-lg-block"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"d-inline-block d-lg-block h1 mb-lg-6 me-3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;👋&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;h1&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"ls-tight font-bolder h2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                {{ __('Create an account') }}
                            &lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
                        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                        &lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;method=&lt;/span&gt;&lt;span class="s"&gt;"POST"&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;"{{ route('register') }}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                            @csrf
                            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"mb-5"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-label"&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;{{ __('Name') }}&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-control @error('name') is-invalid @enderror"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"{{ old('name') }}"&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt; &lt;span class="na"&gt;autocomplete=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt; &lt;span class="na"&gt;autofocus&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

                                @error('name')
                                    &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"invalid-feedback"&lt;/span&gt; &lt;span class="na"&gt;role=&lt;/span&gt;&lt;span class="s"&gt;"alert"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                        &lt;span class="nt"&gt;&amp;lt;strong&amp;gt;&lt;/span&gt;{{ $message }}&lt;span class="nt"&gt;&amp;lt;/strong&amp;gt;&lt;/span&gt;
                                    &lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
                                @enderror
                            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"mb-5"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-label"&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;{{ __('E-Mail Address') }}&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-control @error('email') is-invalid @enderror"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"{{ old('email') }}"&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt; &lt;span class="na"&gt;autocomplete=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;autofocus&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

                                @error('email')
                                    &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"invalid-feedback"&lt;/span&gt; &lt;span class="na"&gt;role=&lt;/span&gt;&lt;span class="s"&gt;"alert"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                        &lt;span class="nt"&gt;&amp;lt;strong&amp;gt;&lt;/span&gt;{{ $message }}&lt;span class="nt"&gt;&amp;lt;/strong&amp;gt;&lt;/span&gt;
                                    &lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
                                @enderror
                            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"mb-5"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-label"&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;{{ __('Password') }}&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-control @error('password') is-invalid @enderror"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt; &lt;span class="na"&gt;autocomplete=&lt;/span&gt;&lt;span class="s"&gt;"current-password"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

                                @error('password')
                                    &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"invalid-feedback"&lt;/span&gt; &lt;span class="na"&gt;role=&lt;/span&gt;&lt;span class="s"&gt;"alert"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                        &lt;span class="nt"&gt;&amp;lt;strong&amp;gt;&lt;/span&gt;{{ $message }}&lt;span class="nt"&gt;&amp;lt;/strong&amp;gt;&lt;/span&gt;
                                    &lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
                                @enderror
                            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"mb-5"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-label"&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"password-confirm"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;{{ __('Confirm Password') }}&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"password-confirm"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-control"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"password_confirmation"&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt; &lt;span class="na"&gt;autocomplete=&lt;/span&gt;&lt;span class="s"&gt;"new-password"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
                                &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn btn-primary w-full"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                                    {{ __('Sign up') }}
                                &lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                        &lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
                        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"my-6"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;small&amp;gt;&lt;/span&gt;{{ __('Already have an account?') }}&lt;span class="nt"&gt;&amp;lt;/small&amp;gt;&lt;/span&gt;
                            &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"{{ route('login') }}"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"text-warning text-sm font-semibold"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;{{ __('Sign in') }}&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
                        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/x-guest-layout&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Other authentication screens
&lt;/h3&gt;

&lt;p&gt;Inside your Laravel app, you will notice there are additional pages for account verification, password reset, and more. I took care of those too and you can find them in the &lt;a href="https://github.com/webpixels/laravel-starter-kit" rel="noopener noreferrer"&gt;project's repo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For those who want to explore the code, here's the &lt;a href="https://github.com/webpixels/laravel-starter-kit" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; repo for this project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Coming up
&lt;/h2&gt;

&lt;p&gt;This is the first part of this series. In order to keep it clean and simple, I will dedicate one article for each major step towards our app completion.&lt;/p&gt;

&lt;p&gt;In the following parts we will take it a step further and prepare your app for more complex pages and features, like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;user list and management&lt;/li&gt;
&lt;li&gt;user roles and permissions&lt;/li&gt;
&lt;li&gt;simple blog system&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Follow me and subscribe to the newsletter to be the first to find out when I release them.&lt;/p&gt;

</description>
      <category>bootstrap</category>
      <category>laravel</category>
      <category>dashboard</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
