<?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: Corey</title>
    <description>The latest articles on DEV Community by Corey (@coreystevens).</description>
    <link>https://dev.to/coreystevens</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%2F791999%2F0c68baa4-ef8b-4b3f-8406-ffd55d70cea3.jpg</url>
      <title>DEV Community: Corey</title>
      <link>https://dev.to/coreystevens</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/coreystevens"/>
    <language>en</language>
    <item>
      <title>Building Loyalty Programs That Actually Work: Beyond Points and Discounts</title>
      <dc:creator>Corey</dc:creator>
      <pubDate>Tue, 06 Jan 2026 20:54:52 +0000</pubDate>
      <link>https://dev.to/coreystevens/building-loyalty-programs-that-actually-work-beyond-points-and-discounts-3ead</link>
      <guid>https://dev.to/coreystevens/building-loyalty-programs-that-actually-work-beyond-points-and-discounts-3ead</guid>
      <description>&lt;p&gt;The average consumer belongs to 14 loyalty programs but is only active in about half of them. Most programs fail because they focus on transactions rather than relationships. Here's how to build a program that actually creates loyal customers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Most Loyalty Programs Fail&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Too complicated&lt;/strong&gt;: Customers can't understand or remember the earning structure&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Low perceived value&lt;/strong&gt;: The rewards don't feel worth the effort&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Delayed gratification&lt;/strong&gt;: Points take forever to accumulate into something meaningful&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No emotional connection&lt;/strong&gt;: Purely transactional programs don't create loyalty&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What Actually Creates Loyalty&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Simplicity&lt;/strong&gt;: The best programs are dead simple. "Spend $1, earn 1 point. 100 points = $5 off." Done.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Attainable Rewards&lt;/strong&gt;: If the first reward takes 50 visits to earn, customers will disengage before they get there.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Surprise and Delight&lt;/strong&gt;: Unexpected rewards create more loyalty than predictable earning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Recognition, Not Just Discounts&lt;/strong&gt;: The best customers often value recognition more than savings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tiered Status&lt;/strong&gt;: People are motivated by status. Creating tiers gives customers something to aspire to.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Designing Your Program&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Earning Structure&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 point per dollar is most intuitive&lt;/li&gt;
&lt;li&gt;Consider bonus points on specific items or times&lt;/li&gt;
&lt;li&gt;Double points for new members during their first month&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Reward Options&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monetary rewards (discounts, free items)&lt;/li&gt;
&lt;li&gt;Access rewards (early access, exclusive products)&lt;/li&gt;
&lt;li&gt;Experiential rewards for highest levels&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Member Tiers&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;2-4 tiers maximum (more creates confusion)&lt;/li&gt;
&lt;li&gt;Clear criteria for advancement&lt;/li&gt;
&lt;li&gt;Meaningful benefits at each level&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Measuring Success&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Track these metrics to evaluate your program:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enrollment rate&lt;/strong&gt;: What percentage of customers join?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Active rate&lt;/strong&gt;: How many enrolled members make repeat purchases within 90 days?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Incremental revenue&lt;/strong&gt;: Are loyalty members spending more than non-members?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Redemption rate&lt;/strong&gt;: Aim for 60-80% of earned rewards eventually being redeemed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customer lifetime value (CLV)&lt;/strong&gt;: How much does a loyalty member spend over their entire relationship?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Common Mistakes to Avoid&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Making it too complicated&lt;/li&gt;
&lt;li&gt;Devaluing points&lt;/li&gt;
&lt;li&gt;Ignoring program members&lt;/li&gt;
&lt;li&gt;Focusing only on discounts&lt;/li&gt;
&lt;li&gt;Not integrating with your POS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.timberpos.app/welcome" rel="noopener noreferrer"&gt;TimberPOS&lt;/a&gt; includes all of these features and more, making it easy to build customer relationships that drive real business results.&lt;/p&gt;

&lt;p&gt;Ready to build a loyalty program that actually works? &lt;a href="https://www.timberpos.app/welcome" rel="noopener noreferrer"&gt;Get started with TimberPOS today&lt;/a&gt;.      &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Customer Relationships Without the Overhead</title>
      <dc:creator>Corey</dc:creator>
      <pubDate>Mon, 05 Jan 2026 02:17:02 +0000</pubDate>
      <link>https://dev.to/coreystevens/customer-relationships-without-the-overhead-5g4e</link>
      <guid>https://dev.to/coreystevens/customer-relationships-without-the-overhead-5g4e</guid>
      <description>&lt;p&gt;&lt;strong&gt;Customer relationships are built in moments — not systems.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A familiar name at check-in. A remembered preference. Knowing how often someone comes in, what they usually book, and how they like to pay. These details shape the experience, but they’re easy to lose when software gets in the way.&lt;/p&gt;

&lt;p&gt;Most CRMs promise insight, then ask for constant input in return.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://https://www.timberpos.app" rel="noopener noreferrer"&gt;Timber&lt;/a&gt; takes a different approach.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Designed Around Real Interactions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Service businesses don’t have time to “manage” customers.&lt;/p&gt;

&lt;p&gt;They’re greeting people, running appointments, taking payments, and moving to the next client. Any system that requires extra steps quickly becomes ignored.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://https://www.timberpos.app" rel="noopener noreferrer"&gt;Timber&lt;/a&gt; is designed to work in the background of real interactions. Customer profiles are created automatically as bookings are made, visits are completed, and payments are processed.&lt;/p&gt;

&lt;p&gt;No manual data entry. No duplicated work. Just context, built over time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customer Data That Stays Current&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Outdated information is worse than no information.&lt;/p&gt;

&lt;p&gt;Traditional CRMs rely on staff to keep records updated, which rarely happens during busy days. &lt;a href="https://https://www.timberpos.app" rel="noopener noreferrer"&gt;Timber&lt;/a&gt; keeps customer profiles accurate by tying them directly to activity.&lt;/p&gt;

&lt;p&gt;Every appointment, transaction, and visit updates the customer record automatically. What you see is what actually happened.&lt;/p&gt;

&lt;p&gt;The system stays current because it’s powered by real usage.&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%2Fgt1yfuh487bs8z69fhl8.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%2Fgt1yfuh487bs8z69fhl8.png" alt="CRM user interface" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Complete View, Instantly&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A customer profile should answer questions immediately.&lt;/p&gt;

&lt;p&gt;Who is this client?&lt;/p&gt;

&lt;p&gt;How often do they come in?&lt;/p&gt;

&lt;p&gt;What do they usually book?&lt;/p&gt;

&lt;p&gt;Have they paid already?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://https://www.timberpos.app" rel="noopener noreferrer"&gt;Timber&lt;/a&gt; brings booking history, payment activity, visit frequency, and notes into a single, clear view. No digging. No switching tools.&lt;/p&gt;

&lt;p&gt;When staff have the full picture, they can act with confidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built for Front-of-House Speed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Customer interactions happen quickly. Software should keep up.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://https://www.timberpos.app" rel="noopener noreferrer"&gt;Timber&lt;/a&gt; makes customer information easy to access at the register, during booking, or mid-appointment. The interface prioritizes speed and clarity so staff can stay focused on the person in front of them.&lt;/p&gt;

&lt;p&gt;No complex workflows. No hidden menus. Just what’s needed, when it’s needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supporting Better Service, Naturally&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Great service doesn’t come from scripts.&lt;/p&gt;

&lt;p&gt;It comes from awareness — recognizing repeat clients, remembering preferences, and understanding patterns over time.&lt;/p&gt;

&lt;p&gt;By keeping customer context visible and reliable, &lt;a href="https://https://www.timberpos.app" rel="noopener noreferrer"&gt;Timber&lt;/a&gt; helps businesses deliver more consistent experiences without forcing them to “use a CRM.”&lt;/p&gt;

&lt;p&gt;The relationship builds itself. Built for Retention, Not Reporting Most CRMs optimize for reports.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://https://www.timberpos.app" rel="noopener noreferrer"&gt;Timber&lt;/a&gt; optimizes for retention.&lt;/p&gt;

&lt;p&gt;Seeing visit history makes follow-ups easier. Understanding booking patterns helps staff recommend the right services. Recognizing long-time clients reinforces loyalty.&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%2Ft4g4hwcaxcroujxw5oyc.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%2Ft4g4hwcaxcroujxw5oyc.png" alt="Customer history" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Retention isn’t a campaign — it’s the result of small, consistent moments done well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A CRM That Doesn’t Feel Like One&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The best systems don’t announce themselves.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://https://www.timberpos.app" rel="noopener noreferrer"&gt;Timber&lt;/a&gt; removes the overhead typically associated with customer management. There’s no lengthy setup, no training required, and no maintenance to keep things accurate.&lt;/p&gt;

&lt;p&gt;The CRM exists because your business exists.&lt;/p&gt;

&lt;p&gt;Less Managing. More Remembering.&lt;/p&gt;

&lt;p&gt;Customer relationships don’t need dashboards to grow.&lt;/p&gt;

&lt;p&gt;They need presence, consistency, and context.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://https://www.timberpos.app" rel="noopener noreferrer"&gt;Timber&lt;/a&gt; quietly provides that context — without adding work — so service businesses can focus on what they do best.&lt;/p&gt;

</description>
      <category>crm</category>
      <category>management</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
    <item>
      <title>Reducing Friction in Booking</title>
      <dc:creator>Corey</dc:creator>
      <pubDate>Mon, 05 Jan 2026 00:00:47 +0000</pubDate>
      <link>https://dev.to/coreystevens/reducing-friction-in-booking-3gal</link>
      <guid>https://dev.to/coreystevens/reducing-friction-in-booking-3gal</guid>
      <description>&lt;p&gt;With everything we build at Timber POS, we ask the same question:&lt;/p&gt;

&lt;p&gt;“How can we reduce friction?”&lt;/p&gt;

&lt;p&gt;For service businesses, friction shows up everywhere — missed messages, unclear availability, no-shows, and payment follow-ups. Over time, these small inconveniences turn into real operational pain.&lt;/p&gt;

&lt;p&gt;The Booking Storefront exists to remove those points of friction and leave only what’s necessary, helpful, and dependable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Booking Still Breaks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Appointments are the backbone of barbershops, salons, nail studios, and independent professionals. Yet many businesses still rely on DMs, texts, or phone calls to manage them.&lt;/p&gt;

&lt;p&gt;Messages get buried. Time slots overlap. Payments are forgotten. Clients ghost.&lt;/p&gt;

&lt;p&gt;Booking shouldn’t depend on who replies fastest.&lt;/p&gt;

&lt;p&gt;That’s why we focused on building a storefront that works even when you’re busy with clients.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Booking Storefront&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A single, shareable booking page where clients can view your services, choose available times, book instantly, pay upfront, and receive automatic confirmation — all in one seamless flow.&lt;/p&gt;

&lt;p&gt;No back-and-forth. No manual scheduling. No guesswork.&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%2Fi2ymcvw8lpqyzj813me8.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%2Fi2ymcvw8lpqyzj813me8.png" alt="Booking store front" width="800" height="597"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Availability That Stays Accurate&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your calendar updates in real time. Only open time slots are shown, so double bookings never happen and clients always know what’s available.&lt;/p&gt;

&lt;p&gt;Scheduling becomes predictable — for you and your clients.&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%2Fu7kterfq9uuri37alxsn.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%2Fu7kterfq9uuri37alxsn.png" alt="Appointment calendar admin view" width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Payments That Reduce No-Shows&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When clients pay at booking, they show up.&lt;/p&gt;

&lt;p&gt;The Booking Storefront supports upfront payments so appointments are confirmed, not tentative. Less chasing. Fewer cancellations. More reliable revenue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Confirmations That Don’t Get Missed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every booking sends automatic confirmations and reminders via email or SMS. Clients stay informed, and you spend less time following up.&lt;/p&gt;

&lt;p&gt;Reliable communication, without extra work.&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%2Fxzsnte1ou1glfe1kigsl.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%2Fxzsnte1ou1glfe1kigsl.png" alt="Customer notifications" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One Link That Works Everywhere&lt;/p&gt;

&lt;p&gt;Your booking link can live anywhere — Instagram bio, website, Google Business profile, or direct messages. Wherever clients find you, booking is always one click away.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.timberpos.app/store/timbercut" rel="noopener noreferrer"&gt;Try Live Demo&lt;/a&gt;&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%2Fszjv6d6u2gus8sjhcym4.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%2Fszjv6d6u2gus8sjhcym4.png" width="378" height="96"&gt;&lt;/a&gt;&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%2Fhmn6f6pop62tvqf7ahla.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%2Fhmn6f6pop62tvqf7ahla.png" alt="Mobile view" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built for Real Service Workflows&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Booking Storefront was designed around how service businesses actually operate — fast-paced, client-facing, and time-sensitive.&lt;/p&gt;

&lt;p&gt;Less admin. More focus. Better bookings.&lt;/p&gt;

&lt;p&gt;Friction doesn’t disappear by adding more features.&lt;br&gt;
It disappears when the experience gets simpler.&lt;/p&gt;

&lt;p&gt;That’s what the Booking Storefront is built to do.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>ai</category>
      <category>javascript</category>
    </item>
    <item>
      <title>👉 Why I Built Timber: A Simple Booking &amp; Payments Platform</title>
      <dc:creator>Corey</dc:creator>
      <pubDate>Wed, 31 Dec 2025 15:48:33 +0000</pubDate>
      <link>https://dev.to/coreystevens/why-i-built-timber-a-simple-booking-payments-platform-1ipl</link>
      <guid>https://dev.to/coreystevens/why-i-built-timber-a-simple-booking-payments-platform-1ipl</guid>
      <description>&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%2F3rgu1hj0zcv1f32w87i3.jpeg" 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%2F3rgu1hj0zcv1f32w87i3.jpeg" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://www.timberpos.app" rel="noopener noreferrer"&gt;Timber&lt;/a&gt; because booking and getting paid shouldn’t be complicated.&lt;/p&gt;

&lt;p&gt;Most barbers, salons, and service professionals are still managing appointments through texts, DMs, and separate payment apps. That setup leads to missed appointments, unpaid services, and wasted time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.timberpos.app/" rel="noopener noreferrer"&gt;Timber&lt;/a&gt; fixes that by putting booking and payments in one place.&lt;/p&gt;

&lt;p&gt;Clients book online in seconds. Appointments are automatically added to your schedule, reminders are sent out, and payments are tracked with each booking. No back-and-forth. No confusion.&lt;/p&gt;

&lt;p&gt;By connecting booking with payments, &lt;a href="https://www.timberpos.app/" rel="noopener noreferrer"&gt;Timber&lt;/a&gt; helps reduce no-shows and brings in more serious clients. You always know who booked, who paid, and what’s coming up next.&lt;/p&gt;

&lt;p&gt;Everything runs through one simple dashboard — appointments, customers, payments, and reports — built specifically for barbers, salons, and service businesses.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.timberpos.app/" rel="noopener noreferrer"&gt;Timber&lt;/a&gt; is simple, fast, and built by someone who understands the day-to-day of running a service business.&lt;/p&gt;

&lt;p&gt;Let clients book themselves. Let &lt;a href="https://www.timberpos.app/" rel="noopener noreferrer"&gt;Timber&lt;/a&gt; handle the rest. 🚀&lt;/p&gt;

</description>
      <category>appoitments</category>
      <category>distribution</category>
      <category>stripe</category>
      <category>ai</category>
    </item>
    <item>
      <title>🚗 Welcome to Car Wash Jobs – Your Ultimate Destination for Car Wash Careers! 🌟</title>
      <dc:creator>Corey</dc:creator>
      <pubDate>Sun, 18 Aug 2024 15:19:38 +0000</pubDate>
      <link>https://dev.to/coreystevens/welcome-to-car-wash-jobs-your-ultimate-destination-for-car-wash-careers-50da</link>
      <guid>https://dev.to/coreystevens/welcome-to-car-wash-jobs-your-ultimate-destination-for-car-wash-careers-50da</guid>
      <description>&lt;p&gt;Hey everyone!&lt;/p&gt;

&lt;p&gt;I’m excited to share a new project I’ve been working on – Car Wash Jobs, a dedicated job board designed specifically for car wash careers! I’ve built this website from the ground up to connect job seekers with opportunities in the car wash industry, and I’m thrilled to invite you to check it out.&lt;/p&gt;

&lt;p&gt;Why Choose Car Wash Jobs?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Exclusive Focus: Unlike general job boards that mix in unrelated postings, Car Wash Jobs is tailored specifically for the car wash industry. This means every job listing on our site is relevant to your career interests, from management positions and operations roles to hands-on washing jobs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fresh and Updated Listings: We know that the job market is constantly evolving. That’s why we ensure our job listings are updated regularly with the latest opportunities. No more missing out on great positions due to outdated listings!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;User-Friendly Search: Finding your next job should be a breeze. Our intuitive search feature allows you to filter job listings by title, company, or location. Whether you’re looking for a local opportunity or exploring roles in different regions, we’ve got you covered.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Comprehensive Information: Each listing provides detailed information about the job role, company, and application process. This way, you can make informed decisions and apply to the positions that best fit your career goals.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Expert Support: We’re here to help you every step of the way. If you have questions, need advice, or just want to chat about career opportunities, feel free to reach out. We value your feedback and are committed to helping you find the perfect job.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Check It Out!&lt;/p&gt;

&lt;p&gt;I’m really proud of how Car Wash Jobs has turned out and would love for you to explore the site. Visit us at &lt;a href="https://www.carwashjobs.careers" rel="noopener noreferrer"&gt;Car Wash Jobs&lt;/a&gt; to see the latest job openings and start your journey towards your next career move.&lt;/p&gt;

&lt;p&gt;We Value Your Input&lt;/p&gt;

&lt;p&gt;Your experience matters to us! If you have any feedback or suggestions, please drop them in the comments or send us a message. We’re dedicated to improving our platform and ensuring it meets your needs.&lt;/p&gt;

&lt;p&gt;Happy Job Hunting! 🧳📍&lt;/p&gt;

</description>
      <category>carwash</category>
      <category>pointofsale</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Stripe Abandoned Cart Automation - ConvertX</title>
      <dc:creator>Corey</dc:creator>
      <pubDate>Sun, 05 Feb 2023 15:05:18 +0000</pubDate>
      <link>https://dev.to/coreystevens/stripe-abandoned-cart-automation-convertx-5caj</link>
      <guid>https://dev.to/coreystevens/stripe-abandoned-cart-automation-convertx-5caj</guid>
      <description>&lt;p&gt;&lt;a href="https://ConvertX.io" rel="noopener noreferrer"&gt;https://ConvertX.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hey All,&lt;/p&gt;

&lt;p&gt;Check out my latest project ConvertX! It's an abandoned cart automation tool that is seamless to use! &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%2F3j4ccvxm296xnwobdwrm.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%2F3j4ccvxm296xnwobdwrm.png" alt=" " width="800" height="388"&gt;&lt;/a&gt;&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%2Fy6kdgo6pp3xwp68uf6eg.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%2Fy6kdgo6pp3xwp68uf6eg.png" alt=" " width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The App allows you to connect your Stripe account and see when a customer abandons that cart. The app will send an email reminder at 1 hour to try and get the customer to purchase at full price. It will then send an email at 24 hours with a discount.&lt;/p&gt;

</description>
      <category>devto</category>
      <category>offers</category>
      <category>webmonetization</category>
    </item>
    <item>
      <title>My Personal Website *Update* Added SolanaPay</title>
      <dc:creator>Corey</dc:creator>
      <pubDate>Mon, 07 Feb 2022 18:40:03 +0000</pubDate>
      <link>https://dev.to/coreystevens/my-personal-website-update-7mp</link>
      <guid>https://dev.to/coreystevens/my-personal-website-update-7mp</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Website update&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Yoo, so I posted a link to my personal website a few weeks back in a blog on here, and I'm just giving an update on it.&lt;/p&gt;

&lt;p&gt;I added an "app" button in the top right of the Nav to show some of the apps that I will be testing out on here.&lt;/p&gt;

&lt;p&gt;Right now, the app is &lt;a href="https://solanapay.com" rel="noopener noreferrer"&gt;SolanaPay&lt;/a&gt;, which is a Customer to Merchant payment rail. It's a POS system essentially, without the intermediaries. &lt;/p&gt;

&lt;p&gt;The app is live (currently set up to have payments sent to my wallet, feel free to try😉.) and from the beginning screen you see is where the "merchant" would enter the amount for the sale, then click generate payment code, which generates a QR code; which then the customer would scan from there wallet and pay. I recommended using &lt;a href="https://phantom.app" rel="noopener noreferrer"&gt;Phantom Wallet&lt;/a&gt; which already has the built in Solana Pay QR scanner in it.&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%2Fke84ja22qi1ect7oscyr.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%2Fke84ja22qi1ect7oscyr.png" alt=" " width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Check it out! &lt;a href="https://coreystevens.xyz/" rel="noopener noreferrer"&gt;https://coreystevens.xyz/&lt;/a&gt;&lt;/strong&gt;
&lt;/h2&gt;

</description>
      <category>webdev</category>
      <category>css</category>
      <category>career</category>
      <category>programming</category>
    </item>
    <item>
      <title>How To Make Your Own Cryptocurrency Token on Solana 🤝</title>
      <dc:creator>Corey</dc:creator>
      <pubDate>Tue, 25 Jan 2022 04:08:10 +0000</pubDate>
      <link>https://dev.to/coreystevens/how-to-make-your-own-token-on-solana-20jk</link>
      <guid>https://dev.to/coreystevens/how-to-make-your-own-token-on-solana-20jk</guid>
      <description>&lt;p&gt;Sol address: 4mgnTysrA7kQVYCsE2CJcaJzpX8xPxGPoKPz2LyiN782&lt;/p&gt;

&lt;p&gt;Twitter: &lt;a href="https://twitter.com/OfficialCoreyS" rel="noopener noreferrer"&gt;https://twitter.com/OfficialCoreyS&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Project overview&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In this tutorial we are going to go over how to make your very own Shitcoin, I mean Crypto coin! LOL&lt;/p&gt;

&lt;p&gt;Without further a-do(idk if thats even correctly said) lets get into what we need to get started.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Prerequisites&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This doesn't require much coding at all, so beginners should be able to follow right along! &lt;/p&gt;

&lt;p&gt;We are going to need a small amount of Sol so we can do some transactions on the Blockchain to get it live. Under $5&lt;/p&gt;

&lt;p&gt;Github Account: &lt;a href="https://github.com" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Solana Tool Suite- &lt;a href="https://docs.solana.com/cli/install-solana-cli-tools" rel="noopener noreferrer"&gt;Solana Tool Suite&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Git: &lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;Git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Rust: &lt;a href="https://www.rust-lang.org/tools/install" rel="noopener noreferrer"&gt;Rust&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Let's start by creating ourselves a new wallet in the command line interface(Terminal) by running a command. Open your terminal 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;solana-keygen new
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you already have a Solana key-pair on your computer then you don't have to do this first step. Here is what it will look like in terminal when you type that command in:&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%2Fch5w0hw2p869iqt4js60.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%2Fch5w0hw2p869iqt4js60.png" alt=" " width="800" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can type in whatever Passphrase you want, then you'll get your Pubkey in the next screen:&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%2Fol1yhszc922my1xhfzit.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%2Fol1yhszc922my1xhfzit.png" alt=" " width="800" height="443"&gt;&lt;/a&gt;&lt;br&gt;
Im hiding my passphrase for oniouvous reasons haha&lt;/p&gt;

&lt;p&gt;Alright, cool. Now we need to send some Sol to this address so we can pay for the transaction while making the token. So, send some Sol over from a Phantom or Coinbase wallet.&lt;/p&gt;

&lt;p&gt;Once sent, we can go back into our Terminal and check the balance of our new wallet by running 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;Solana balance
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should get the amount of Sol that you sent from your other wallet like:&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%2Fcxrh3f5z0wz701oiacmj.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%2Fcxrh3f5z0wz701oiacmj.png" alt=" " width="800" height="470"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Alright, on to the next. &lt;/p&gt;

&lt;p&gt;Now, we are going to create the Token.&lt;/p&gt;

&lt;p&gt;Lets run a command in our Terminal to get the SPL token CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cargo install spl-token-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Ff7xh1tfpazjftpcqpzy5.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%2Ff7xh1tfpazjftpcqpzy5.png" alt=" " width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, lets run this command which will create the token and give you a token address:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;spl-token create-token
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F1nudxo0k1ejw4t07as0i.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%2F1nudxo0k1ejw4t07as0i.png" alt=" " width="800" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Just a fyi, if you get an error, it could be because you do not have any Sol in your new wallet.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;DOPE, we have made the token. Well sort of.. We still have some more to do.&lt;/p&gt;

&lt;p&gt;You can actually take the token address of your new token and  look at the Solana Explorer and see it live on the Blockchain!! &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%2Fcz4kusyyuixav4uoakp1.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%2Fcz4kusyyuixav4uoakp1.png" alt=" " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It says Unknown token now, but we are going to name it..&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Account&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Now, let's make an account to handle the new token we just made. In your terminal we are going to 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;spl-token create-account F4x1DFSzeKrNrmKQFiGkeTKrZQkkAng9Hi7GFk91RGY
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replacing the address with the new SPL token address you just created.&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%2Fvaz9n7cn9tiaulkliqdq.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%2Fvaz9n7cn9tiaulkliqdq.png" alt=" " width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go ahead and run this command to check the balance of our wallet:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Solana balance
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and you'll notice not much Sol is gone, as it's not that expensive to transact over the Solana blockchain. &lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Time to Mint🥶&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Now, let's go ahead and mint these bad boys and send them around why don't we. &lt;/p&gt;

&lt;p&gt;Head over to our terminal and lets run this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;spl-token mint tokenAddress mintAmount recipientAddress
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;tokenAddress being the new token we just made.&lt;br&gt;
mintAmount being the amount we want to Mint!(like bitcoin only has 21m)&lt;br&gt;
recipientAddress is the wallet you want to send it over to.&lt;/p&gt;

&lt;p&gt;Take a look at an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;spl-token mint F4x1DFSzeKrNrmKQFiGkeTKrZQkkAng9Hi7GFk91RGY 1000000 9m1yqFTi12WPVrJnhcwUbGFj9iT7kyTg5K2wy6SrXFo6
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fqgqiqvplrdc3usvns5aq.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%2Fqgqiqvplrdc3usvns5aq.png" alt=" " width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay, now that we have that all done, let's move along to pushing this to Github.&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;GitHub Pull Request&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Before we do any forking, we need to make a Repository to host our logo for the token. Lets go to Github and click Create a new repo:&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%2Fe0uw718wi2yqf9agbz1t.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%2Fe0uw718wi2yqf9agbz1t.png" alt=" " width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Name it whatever you'd like and click create at the bottom.&lt;/p&gt;

&lt;p&gt;Next, we are going to upload our logo image:&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%2Fwfhc0u374iguud01fsjk.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%2Fwfhc0u374iguud01fsjk.png" alt=" " width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay. Now we have our logo added to a repo.&lt;/p&gt;

&lt;p&gt;Let's go on over the Github to get the Solana token list repo.&lt;/p&gt;

&lt;p&gt;You can find the Solana token list Github here: &lt;a href="https://github.com/solana-labs/token-list" rel="noopener noreferrer"&gt;Token List&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's FORK that repo.&lt;/p&gt;

&lt;p&gt;Now that we have it forked, while we are in in our forked version we are going to hit the . button. Yes, the period button. This is going to open Visual code studio in your browser, like this:&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%2F3nuephze38woxoact7vi.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%2F3nuephze38woxoact7vi.png" alt=" " width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We are going to change a few things in here, so don't be scared of all the code, idk what it all means either loll.&lt;/p&gt;

&lt;p&gt;First, let's go into the assets folder on the left side as seen with the arrow, and then we are going to click the little Add folder button at the top, again, as seen in this picture:&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%2F4er7h1mdstdjjmuf2kz0.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%2F4er7h1mdstdjjmuf2kz0.png" alt=" " width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, we are going to paste our new token address into the window that pops up and press enter!&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%2F49k2nf1molsheblo9t0a.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%2F49k2nf1molsheblo9t0a.png" alt=" " width="746" height="1368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, go ahead and right click on your new token address and click upload. Here, we are going to upload a logo for our new token!!&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%2F41ue0ubmm9my2t8sqz2h.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%2F41ue0ubmm9my2t8sqz2h.png" alt=" " width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, lets head into the src file and then tokens and open up the .json file:&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%2Fodmmooe4qnvdz5cq3b01.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%2Fodmmooe4qnvdz5cq3b01.png" alt=" " width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's scroll all the way to the bottom of the file where the last token was added. Go ahead and copy it like this:&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%2Fckk3sknsadj8vkatgicz.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%2Fckk3sknsadj8vkatgicz.png" alt=" " width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, we want to add a comma at the last syntax like in this picture, hit enter, and then paste that code:&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%2Fdwe5h4acbdaqs97shhae.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%2Fdwe5h4acbdaqs97shhae.png" alt=" " width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, we are going to change a few things in that pasted code we just did..&lt;/p&gt;

&lt;p&gt;We are going to change the address to the address of our new coin. &lt;br&gt;
Change the Symbol to whatever you want&lt;br&gt;
Change the name to whatever you want&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%2Fszfgp0cqc6kgyrifsj0l.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%2Fszfgp0cqc6kgyrifsj0l.png" alt=" " width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And also change the logo uri by going to out Logo Github Repo and clicking download and copying the URL in the address bar.&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%2F18nb1hilq7b07lyj138k.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%2F18nb1hilq7b07lyj138k.png" alt=" " width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, lets head over to this little symbol on the left, to commit our changes:&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%2Fd3ga3hv7cp4vsem1lvuw.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%2Fd3ga3hv7cp4vsem1lvuw.png" alt=" " width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First, type in the change we are making, and then hit the check mark as seen in the pic:&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%2F76bci31jv3gnuzsuj6cx.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%2F76bci31jv3gnuzsuj6cx.png" alt=" " width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cool, now lets head back to the actual solana labs token list GitHub repo, here's the link : &lt;a href="https://github.com/solana-labs/token-list" rel="noopener noreferrer"&gt;https://github.com/solana-labs/token-list&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go ahead and click on Pull Requests:&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%2F86k9cuqbzhba2k523b06.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%2F86k9cuqbzhba2k523b06.png" alt=" " width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then go ahead and click on new pull request.&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%2F8uxd11dkzqgqyweahwe9.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%2F8uxd11dkzqgqyweahwe9.png" alt=" " width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then.. lets click compare across all forks:&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%2F9a48ye24p8b0xeembwww.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%2F9a48ye24p8b0xeembwww.png" alt=" " width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then we are going to click on the head repository drop down, and you should see your Repo there. Click on it:&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%2Fm1j904rwlesntju3difm.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%2Fm1j904rwlesntju3difm.png" alt=" " width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, lets go ahead and do the pull request:&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%2F1t8f28ciudx2jby65y09.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%2F1t8f28ciudx2jby65y09.png" alt=" " width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And there we have it. It takes some time, but eventually it will be auto-merged and added to the token registry!&lt;/p&gt;

&lt;p&gt;I hope this helps someone out because I know this was confusing as hell for me in the beginning. &lt;/p&gt;

&lt;p&gt;Feel free to shoot me a follow on my socials!!!&lt;/p&gt;

&lt;p&gt;Github: &lt;a href="https://github.com/coreyman11" rel="noopener noreferrer"&gt;https://github.com/coreyman11&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Twitter: &lt;a href="https://twitter.com/OfficialCoreyS" rel="noopener noreferrer"&gt;https://twitter.com/OfficialCoreyS&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>rust</category>
      <category>tutorial</category>
      <category>solana</category>
    </item>
    <item>
      <title>My Personal Website</title>
      <dc:creator>Corey</dc:creator>
      <pubDate>Fri, 21 Jan 2022 20:18:20 +0000</pubDate>
      <link>https://dev.to/coreystevens/my-personal-website-ip3</link>
      <guid>https://dev.to/coreystevens/my-personal-website-ip3</guid>
      <description>&lt;p&gt;Yooo,&lt;/p&gt;

&lt;p&gt;Not my usual post, but check out my personal website which shows past projects and blogs/tutorials! I'll always be adding to it!&lt;/p&gt;

&lt;p&gt;Im always happy to hear feedback on it!!(good or bad)&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;a href="//coreystevens.xyz"&gt;coreystevens.xyz&lt;/a&gt;&lt;/strong&gt;
&lt;/h2&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%2Fnnm1ycdn87al3s27vk3x.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%2Fnnm1ycdn87al3s27vk3x.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&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%2Fjf2475lpw2h8mizuz83n.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%2Fjf2475lpw2h8mizuz83n.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&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%2Flqus2tqz9vt5pp7k4mhi.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%2Flqus2tqz9vt5pp7k4mhi.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&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%2Fmp81k8p3yywhrhkn2y76.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%2Fmp81k8p3yywhrhkn2y76.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&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%2Ffw9sdofh7k5g0hnf7213.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%2Ffw9sdofh7k5g0hnf7213.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&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%2Fgt1yfuh487bs8z69fhl8.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%2Fgt1yfuh487bs8z69fhl8.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&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%2Ft4g4hwcaxcroujxw5oyc.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%2Ft4g4hwcaxcroujxw5oyc.png" alt=" " width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>css</category>
      <category>career</category>
      <category>programming</category>
    </item>
    <item>
      <title>How to Make Your Own NFT</title>
      <dc:creator>Corey</dc:creator>
      <pubDate>Wed, 19 Jan 2022 20:26:31 +0000</pubDate>
      <link>https://dev.to/coreystevens/how-to-make-your-own-nft-24dn</link>
      <guid>https://dev.to/coreystevens/how-to-make-your-own-nft-24dn</guid>
      <description>&lt;p&gt;Sol address: 4mgnTysrA7kQVYCsE2CJcaJzpX8xPxGPoKPz2LyiN782&lt;/p&gt;

&lt;p&gt;Twitter: &lt;a href="https://twitter.com/OfficialCoreyS" rel="noopener noreferrer"&gt;https://twitter.com/OfficialCoreyS&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Project overview&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Today we are going to go over the steps on how to generate NFTS by providing image layers into a code.&lt;/p&gt;

&lt;p&gt;I will go over exactly how to get the GitHub repo and how to update the code to make images.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Prerequisites&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Yarn- &lt;a href="https://classic.yarnpkg.com/lang/en/docs/install/#mac-stable" rel="noopener noreferrer"&gt;https://classic.yarnpkg.com/lang/en/docs/install/#mac-stable&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NPM-&lt;a href="https://docs.npmjs.com/downloading-and-installing-node-js-and-npm" rel="noopener noreferrer"&gt;https://docs.npmjs.com/downloading-and-installing-node-js-and-npm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Solana Tool Suite- &lt;a href="https://docs.solana.com/cli/install-solana-cli-tools" rel="noopener noreferrer"&gt;https://docs.solana.com/cli/install-solana-cli-tools&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Git: &lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;https://git-scm.com/downloads&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Atom(Code editor)- &lt;a href="https://atom.io" rel="noopener noreferrer"&gt;https://atom.io&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;After downloading all the prerequisites, we are ready to get started. &lt;/p&gt;

&lt;p&gt;To start, let's create a folder on our desktop, or wherever you would like the Repo to be saved. I made the file name NFTProject. We are going to be downloading the GitHub Repo into this folder.&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%2F9efgh9jinwpiro4dvuih.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%2F9efgh9jinwpiro4dvuih.png" alt=" " width="446" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fork the GitHub Repo here: &lt;a href="https://github.com/HashLips/hashlips_art_engine" rel="noopener noreferrer"&gt;NFT Generator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you have forked it, we are going to download it. &lt;/p&gt;

&lt;p&gt;Open terminal and change the directory to the folder we created on the desktop(or wherever you have it). You can do this by copying the folder, going to terminal and typing CD and pasting the folder path. &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%2Fa99c7gtoeu0oyxq33516.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%2Fa99c7gtoeu0oyxq33516.png" alt=" " width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, we are going to clone the repo into our folder with this command :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Git Clone https://github.com//hashlips_art_engine
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and of course, add your own Url to that so you download your own fork.&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%2Fwpa7yaxaz4o2wwfjutp7.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%2Fwpa7yaxaz4o2wwfjutp7.png" alt=" " width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay, cool. We got it downloaded, now we need to download the dependencies. Let's go into the new directory that we just downloaded by copying the new folder inside the folder we made. &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%2Fzbcn1dcry7dcjzs4lxik.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%2Fzbcn1dcry7dcjzs4lxik.png" alt=" " width="800" height="443"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Then, go to your terminal window and type in CD and paste the new path. &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%2F08y136yb6p485owjyp9q.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%2F08y136yb6p485owjyp9q.png" alt=" " width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you're in the new folder we downloaded, let's install the dependencies by running a few lines of code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Yarn install
&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;Sudo NPM install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I use Sudo for NPM because sometimes it has authorization issues.  &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%2Fd4nrjsaun7mp2n28vnz6.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%2Fd4nrjsaun7mp2n28vnz6.png" alt=" " width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From here, we can actually build the images from the layers already provided! All we have to do is run a simple command in our terminal. &lt;/p&gt;

&lt;p&gt;So, in terminal run this code while in the hashlips_art_engine directory(which you should already be in) :&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;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%2Frtbgmksimu6s8tbcsjmm.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%2Frtbgmksimu6s8tbcsjmm.png" alt=" " width="800" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, if we go back into our Code Editor, you'll notice a Folder named Build was created. If we open that up, you'll see the images that were created.&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%2Fl1tu4fz0za3wuw58njs5.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%2Fl1tu4fz0za3wuw58njs5.png" alt=" " width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's cool and all, but ..let's add our own layers and build it... &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Updating The Config.js File&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I'm going to be using my own images that's an actual project, so I can't share them. Feel free to create your own. &lt;/p&gt;

&lt;p&gt;Alright, let's open the hashlips_art_engine file in our Code Text Editor (I recommended downloading Atom in the peereqs).&lt;/p&gt;

&lt;p&gt;Go to the SRC Folder and open up the Config.js file.&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%2Fc4evppybby0qxvz987vo.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%2Fc4evppybby0qxvz987vo.png" alt=" " width="800" height="437"&gt;&lt;/a&gt;&lt;br&gt;
A few things we want to do in this file, so lets go over those..&lt;/p&gt;

&lt;p&gt;First, let's change the name, description. This can be whatever you'd like. Just leave the baseUri as-is.&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%2Fqg8zk5xsp2aebpid7ip1.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%2Fqg8zk5xsp2aebpid7ip1.png" alt=" " width="800" height="511"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, lets change the Sol address to our personal one( use your own, or use mine haha). &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%2Fje0rkotxzkcrlttbulu6.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%2Fje0rkotxzkcrlttbulu6.png" alt=" " width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The growEditionSizeTo is the amount of images you want to make. I'll just do a small amount for the example. &lt;/p&gt;

&lt;p&gt;Now, lets add our own layers below that line. You'll see layersOrder below the editions. That is where we will update the layer order when we make new ones in the file. &lt;/p&gt;

&lt;p&gt;Lets, head over to the hashlips_art_engine on our desktop(or wherever saved) and lets go into the layers folder.&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%2Fip8abijec46j6xhe17zj.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%2Fip8abijec46j6xhe17zj.png" alt=" " width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once in the layer folder, you should see a list of layers with titles associated to them. These are the same titles that are in out Config.js file under layersOrder. The order of these DOES matter. &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%2Fz0llargpirxpss3hyf1v.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%2Fz0llargpirxpss3hyf1v.png" alt=" " width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GO ahead and open up the Bottom lid file.&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%2F603690u9hyi5446wxm0c.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%2F603690u9hyi5446wxm0c.png" alt=" " width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You'll notice there is the name of the file and then a # with a number. The # with the number is the rarity weight 1-100. 1 being the rarest and 100 being most common.&lt;/p&gt;

&lt;p&gt;Since we have our own layers, we are going to delete all of the files inside of the layers folder, so it's fully empty.&lt;/p&gt;

&lt;p&gt;Start by making a new folder inside the layer folder and name it. &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%2Fg6di6evbqfv6aj7hn7f0.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%2Fg6di6evbqfv6aj7hn7f0.png" alt=" " width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, go ahead and put the new layers inside of that folder.. like this..&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%2Ftdlusm4kbnwk64cgpkwc.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%2Ftdlusm4kbnwk64cgpkwc.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your images will look different, these are just the ones I'm using.&lt;/p&gt;

&lt;p&gt;Now, let's rename the files in here so that it we have the rarity weights. You can name the files whatever you want, just make sure to add # and a number to say the rarity. For example : green#50.png &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%2F23xlgcv7bj9uvuwsanij.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%2F23xlgcv7bj9uvuwsanij.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And just add all your layers the same way.&lt;/p&gt;

&lt;p&gt;Now that we have all the layers added and all of our images correctly labeled in the format of green#50.png. My layers folder looks like this:&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%2Fsdcez9sehufxj0sq5n8j.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%2Fsdcez9sehufxj0sq5n8j.png" alt=" " width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, we need to change the order of the layer in our code. Lets head back over to our Code Viewer, and go to the Config.js file.&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%2Fw9qwi78drbu0s4yfted1.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%2Fw9qwi78drbu0s4yfted1.png" alt=" " width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We need to match this order to the order we have in our Layer file we just made.&lt;/p&gt;

&lt;p&gt;Your order will be different, but here is mine:&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%2F5nbxvmclj0oth828unl8.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%2F5nbxvmclj0oth828unl8.png" alt=" " width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay cool, now all we gotta do is build it. Lets go back to terminal, and in our Cd hashlips_art_engine, we want to 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 run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F6cle42my5a4j9wxkjdlr.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%2F6cle42my5a4j9wxkjdlr.png" alt=" " width="800" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And.. if we head back over to our build file that we talked about before, you'll see the new images with the layers you updated. &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%2Fjyyrizm38yqqwgm04nw7.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%2Fjyyrizm38yqqwgm04nw7.png" alt=" " width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pretty sweet huh?!&lt;/p&gt;

&lt;p&gt;Okay, there are a few other things that you can do. But first, let me just show you that the images also come with Meta data.&lt;/p&gt;

&lt;p&gt;If you go back to you Code Editor and go to the build file, you'll notice there is a json file. Open it.&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%2Fn70l6ik6l086vgod8795.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%2Fn70l6ik6l086vgod8795.png" alt=" " width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And you'll see each image has it's own Meta Data. Okay dope.&lt;/p&gt;

&lt;p&gt;Lets head back to our Terminal 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 run preview
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now if we go back to our build file, you'll see a preview image that compiles all the images together into one big collage. &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%2Feztx2752x1qryxhlvc94.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%2Feztx2752x1qryxhlvc94.png" alt=" " width="250" height="50"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay cool, that's pretty dope, but let's try a different one. &lt;/p&gt;

&lt;p&gt;If you want to create another folder with all the original pictures(this doesn't delete the originals) pixelated, you will 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 run pixelate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fk8z7uae56qkhbfamz3lr.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%2Fk8z7uae56qkhbfamz3lr.png" alt=" " width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You'll now see a new folder with your images in pixelated form (which is MAD popular right now).&lt;/p&gt;

&lt;p&gt;To change how pixelated the images come out, go over to our Config.js file in the code viewer and go down to line 68, and change the number to the left of the / where the arrow is pointing. The higher it is, the better the quality:&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%2Fh0u69w4c2wi4l553dvkv.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%2Fh0u69w4c2wi4l553dvkv.png" alt=" " width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And that's it! If you read the bottom of the Hash Lips GitHub you'll see a bit more info on different things that you can do with it!&lt;/p&gt;

&lt;p&gt;Thanks for tuning in with me and going through this Tutorial. I hope this helped out a few people!!!&lt;/p&gt;

&lt;p&gt;Feel free to shoot me a follow on my socials!!!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Github&lt;/strong&gt;: &lt;a href="https://github.com/coreyman11" rel="noopener noreferrer"&gt;https://github.com/coreyman11&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Twitter&lt;/strong&gt;: &lt;a href="https://twitter.com/OfficialCoreyS" rel="noopener noreferrer"&gt;https://twitter.com/OfficialCoreyS&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nft</category>
      <category>rust</category>
      <category>tutorial</category>
      <category>solana</category>
    </item>
    <item>
      <title>How to clone/download a GitHub Repository</title>
      <dc:creator>Corey</dc:creator>
      <pubDate>Fri, 14 Jan 2022 02:24:58 +0000</pubDate>
      <link>https://dev.to/coreystevens/how-to-clone-a-github-repository-1f1</link>
      <guid>https://dev.to/coreystevens/how-to-clone-a-github-repository-1f1</guid>
      <description>&lt;p&gt;Sol addy: 4mgnTysrA7kQVYCsE2CJcaJzpX8xPxGPoKPz2LyiN782&lt;/p&gt;

&lt;p&gt;So, as a beginner myself, i've been finding it pretty difficult to find shit. And by shit I mean tutorials on how to do basic stuff, stuff just to get started, so I thought I'd make a little something. &lt;/p&gt;

&lt;p&gt;Here i'm going to show you how to clone a GitHub repository to a folder on your computer and get all the dependencies. Get all the what?!! &lt;/p&gt;

&lt;p&gt;Dependencies: &lt;strong&gt;A software dependency is an external standalone library that can be as small as a single file or as big as multiple files and folders organized into packages to perform a specific task&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Lets get Started&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;First, lets download some shit we need to get out of the way.&lt;/p&gt;

&lt;p&gt;NPM: &lt;a href="https://nodejs.org/en/download/" rel="noopener noreferrer"&gt;https://nodejs.org/en/download/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yarn: &lt;a href="https://classic.yarnpkg.com/lang/en/docs/install/#mac-stable" rel="noopener noreferrer"&gt;https://classic.yarnpkg.com/lang/en/docs/install/#mac-stable&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Git: &lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;https://git-scm.com/downloads&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cool, once all that is download, we can really get started.&lt;/p&gt;

&lt;p&gt;Next, lets create a folder on our desktop(I use desktop so its easier for me to find, not sharpest tool in the shed) and name it whatever you'd like. I am naming it Test Repo. &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%2Fjbngulc8sld4svhddukj.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%2Fjbngulc8sld4svhddukj.png" alt=" " width="604" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go ahead and copy that Folder and open up your terminal to point your directory to that folder by tying CD and pasting the folder path and hitting enter. It'll look like this: (of course it'll be your own path on your comp, so it won't have my name and shit).&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%2F6bgw0spf5pifg34511d6.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%2F6bgw0spf5pifg34511d6.png" alt=" " width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay cool, now that we have our Terminal in the right directory we need to download the repo. Let's go download it. You can use any repo you'd like to get, but i'll give this link for now to test it all out.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/coreyman11/oyster-swap.git" rel="noopener noreferrer"&gt;https://github.com/coreyman11/oyster-swap.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you go to the link, you'll see something like the next screenshot. In the right corner, you'll see a button that says Code in green(1). Once you click the down drop menu, you'll then see a URL with a button next to it(2). Go ahead and click that button.(this copies the Git Repo URL to clone via HTTPS)&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%2F574govoxv9om3f6na9rx.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%2F574govoxv9om3f6na9rx.png" alt=" " width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, let's go back to our Terminal window and type some stuff in. Once in Terminal type in 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;Git Clone &amp;lt;Repository URL&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this case I'm using the test URL so it will be&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Git Clone https://github.com/coreyman11/oyster-swap.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hit enter and it will download the Repo into the folder we made on the Desktop!&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%2Fmsf2h97n513x2hbercd6.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%2Fmsf2h97n513x2hbercd6.png" alt=" " width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay cool, now we need to download the Dependencies!!!&lt;/p&gt;

&lt;p&gt;Let's go into the folder we made on our desktop. You'll notice there is a new folder there named Oyster-swap(well if you downloaded a different repo it'll be something different). Go ahead and copy that with command C on Mac and go back into your terminal window.&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%2Fqkae2wkhj8bkxcd8dkz4.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%2Fqkae2wkhj8bkxcd8dkz4.png" alt=" " width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once we are in the terminal window, we need to get in that oyster swap folder, so we will do the CD command again.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Cd /Users/coreystevens/Desktop/Test\ Repo/oyster-swap
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fi7besztlute37y25gr9j.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%2Fi7besztlute37y25gr9j.png" alt=" " width="800" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The next command we are going to type into the terminal will download the dependencies.&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;This may take some time, but you should see a window like this once done: (If you have an error due to permission issues use this: Sudo yarn install.)&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%2Fy9o3adi1fmv7en1euwmw.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%2Fy9o3adi1fmv7en1euwmw.png" alt=" " width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And that's it!! If you go into the file, you'll see we downloaded all the node_modules need(which were the dependencies). &lt;/p&gt;

&lt;p&gt;Good shit, you just downloaded a Github Repo to your comp. &lt;/p&gt;

&lt;p&gt;Next tutorial ill show you how to fork the repo to make your own copy of it and push the data onto the repo!!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>github</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Recreating the Solana Explorer</title>
      <dc:creator>Corey</dc:creator>
      <pubDate>Thu, 13 Jan 2022 17:10:20 +0000</pubDate>
      <link>https://dev.to/coreystevens/recreating-the-solana-explorer-1eo4</link>
      <guid>https://dev.to/coreystevens/recreating-the-solana-explorer-1eo4</guid>
      <description>&lt;p&gt;As a beginner building in the Solana Ecosystem, I've been searching for hands on projects to get involved with. Really I have been just cloning and building off the shoulder of giants, so that's what this is...&lt;/p&gt;

&lt;p&gt;Still, not as easy as just plug and play, so it really is a big of a process to get it deployed. &lt;/p&gt;

&lt;p&gt;Check out the Solana Explorer with not much of a twist, but again it's still fucking deployed. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SolExplr&lt;/strong&gt; &lt;a href="https://solexplr.vercel.app/" rel="noopener noreferrer"&gt;https://solexplr.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Give me a follow on my socials:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Twitter &lt;a href="https://twitter.com/OfficialCoreyS" rel="noopener noreferrer"&gt;https://twitter.com/OfficialCoreyS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Github &lt;a href="https://t.co/jQfcnf5dFi" rel="noopener noreferrer"&gt;https://t.co/jQfcnf5dFi&lt;/a&gt;&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%2Fwkex2dka6lc6yz41yijr.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%2Fwkex2dka6lc6yz41yijr.png" alt=" " width="800" height="597"&gt;&lt;/a&gt;&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%2Fwz2sxfolvaeqo9ojvufw.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%2Fwz2sxfolvaeqo9ojvufw.png" alt=" " width="800" height="597"&gt;&lt;/a&gt;&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%2F7ke9iisspexhf118qe9l.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%2F7ke9iisspexhf118qe9l.png" alt=" " width="800" height="323"&gt;&lt;/a&gt;&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%2Fy6n5f4s4gkeg7kej5da4.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%2Fy6n5f4s4gkeg7kej5da4.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&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%2F04l7her0ty87mtsx8b5l.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%2F04l7her0ty87mtsx8b5l.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&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%2Fiy4w8ne8ot9hsdmwl8cf.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%2Fiy4w8ne8ot9hsdmwl8cf.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&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%2Fk97vz83j1rx0s69ipw4b.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%2Fk97vz83j1rx0s69ipw4b.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&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%2Fqxezci5qn6o0p0wimarc.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%2Fqxezci5qn6o0p0wimarc.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&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%2F2afunu8yqr22z1wi0cbc.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%2F2afunu8yqr22z1wi0cbc.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&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%2Fljk64ckotlat202ueni2.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%2Fljk64ckotlat202ueni2.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&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%2F376s05tco3q3jor3ssh1.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%2F376s05tco3q3jor3ssh1.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&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%2Fbwu6wy6zz02j1k4ah46o.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%2Fbwu6wy6zz02j1k4ah46o.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&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%2F2mkvwr75umqjx186ip3d.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%2F2mkvwr75umqjx186ip3d.png" alt=" " width="800" height="577"&gt;&lt;/a&gt;&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%2Fut6j3x051lc6z2sdpddj.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%2Fut6j3x051lc6z2sdpddj.png" alt=" " width="800" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>solana</category>
      <category>rust</category>
      <category>react</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
