<?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: Syed Ahmedullah Jaser</title>
    <description>The latest articles on DEV Community by Syed Ahmedullah Jaser (@syedahmedullah14).</description>
    <link>https://dev.to/syedahmedullah14</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%2F1623899%2Fb7bf7a57-4e47-4fc5-a13a-7c76d6d38c86.jpeg</url>
      <title>DEV Community: Syed Ahmedullah Jaser</title>
      <link>https://dev.to/syedahmedullah14</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/syedahmedullah14"/>
    <language>en</language>
    <item>
      <title>Enhancing Your Web Development with Sentry: A Comprehensive Guide</title>
      <dc:creator>Syed Ahmedullah Jaser</dc:creator>
      <pubDate>Fri, 05 Jul 2024 20:01:32 +0000</pubDate>
      <link>https://dev.to/syedahmedullah14/enhancing-your-web-development-with-sentry-a-comprehensive-guide-pi</link>
      <guid>https://dev.to/syedahmedullah14/enhancing-your-web-development-with-sentry-a-comprehensive-guide-pi</guid>
      <description>&lt;p&gt;As a web developer, ensuring a smooth and seamless user experience is paramount. Whether you’re building a modern, minimalist portfolio website or a complex web application, monitoring performance and tracking errors are crucial tasks. Recently, I had the opportunity to integrate Sentry into a client project, and it has been a game-changer. In this blog post, I’ll dive deep into why you should consider using Sentry (or a similar tool) in your projects, explore its features in detail, and provide a step-by-step guide to getting started.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Use Sentry (or Any Error Tracking Tool)?
&lt;/h2&gt;

&lt;p&gt;Error tracking and performance monitoring tools like Sentry are indispensable for several reasons:&lt;/p&gt;

&lt;h3&gt;
  
  
  Real-time Error Tracking:
&lt;/h3&gt;

&lt;p&gt;They capture and aggregate errors as they occur, providing detailed stack traces and context. This helps you quickly identify and resolve issues, enhancing the overall user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Performance Monitoring:
&lt;/h3&gt;

&lt;p&gt;They track performance metrics such as slow database queries and long page load times, pinpointing bottlenecks and areas for optimization.&lt;/p&gt;

&lt;h3&gt;
  
  
  User Feedback:
&lt;/h3&gt;

&lt;p&gt;They collect feedback from users experiencing issues, offering direct insights into user pain points and improving troubleshooting.&lt;br&gt;
Alerts and Notifications: They send alerts via email, Slack, or other channels when issues arise, enabling rapid responses and minimizing downtime.&lt;/p&gt;
&lt;h3&gt;
  
  
  Integration:
&lt;/h3&gt;

&lt;p&gt;They seamlessly integrate with various frameworks and tools, making them versatile and easy to incorporate into existing workflows.&lt;/p&gt;
&lt;h2&gt;
  
  
  Features of Sentry
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Real-time Error Tracking
&lt;/h3&gt;

&lt;p&gt;Sentry captures and aggregates errors in real-time, providing detailed stack traces and context to help identify the root cause of issues. This feature is crucial for maintaining application stability and ensuring that errors are addressed promptly.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Performance Monitoring
&lt;/h3&gt;

&lt;p&gt;Sentry tracks performance issues, such as slow database queries or long page load times. It provides insights into bottlenecks and areas for optimization, helping you improve the overall performance of your application.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. User Feedback
&lt;/h3&gt;

&lt;p&gt;Sentry’s user feedback feature collects feedback from users experiencing issues. This direct insight from users is invaluable for understanding and addressing their pain points, improving the overall user experience.&lt;/p&gt;
&lt;h3&gt;
  
  
  4. Alerts and Notifications
&lt;/h3&gt;

&lt;p&gt;Sentry sends alerts via email, Slack, or other channels when issues arise. These alerts ensure that you can respond to problems quickly, minimizing downtime and maintaining application reliability.&lt;/p&gt;
&lt;h3&gt;
  
  
  5. Integration
&lt;/h3&gt;

&lt;p&gt;Sentry seamlessly integrates with various programming languages and frameworks, including JavaScript, Python, Ruby, Node.js, and more. This makes it a versatile tool that can be easily incorporated into different development environments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6svm85epuwipreb3fpzc.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6svm85epuwipreb3fpzc.PNG" alt="Sentry popup" width="339" height="588"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Getting Started with Sentry
&lt;/h2&gt;

&lt;p&gt;Integrating Sentry into your project is straightforward. Here’s a step-by-step guide to get you started.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 1: Sign Up for Sentry
&lt;/h3&gt;

&lt;p&gt;If you don’t already have a Sentry account, sign up at sentry.io. You can choose a plan that suits your needs, including a free tier for smaller projects.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 2: Install Sentry
&lt;/h3&gt;

&lt;p&gt;For this guide, we’ll focus on integrating Sentry with a React.js project. Start by installing the Sentry SDK for JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install @sentry/react @sentry/tracing&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 3: Initialize Sentry
&lt;/h3&gt;

&lt;p&gt;In your project’s entry file (e.g., index.js), initialize Sentry with your DSN (Data Source Name), which you can find in your Sentry project settings.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import * as Sentry from "@sentry/react";
import { Integrations } from "@sentry/tracing";

Sentry.init({
  dsn: "YOUR_SENTRY_DSN",
  integrations: [
    new Integrations.BrowserTracing(),
  ],
  tracesSampleRate: 1.0, // Adjust this value in production
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 4: Capture Errors
&lt;/h3&gt;

&lt;p&gt;You can manually capture errors in your application using Sentry’s captureException method.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;try {
  // Your code here
} catch (error) {
  Sentry.captureException(error);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 5: Monitor Performance
&lt;/h3&gt;

&lt;p&gt;To monitor performance, wrap your routes with Sentry.withProfiler and use the useEffect hook to measure performance in your components.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { withProfiler } from "@sentry/react";
import { BrowserRouter as Router, Route } from "react-router-dom";

const App = () =&amp;gt; (
  &amp;lt;Router&amp;gt;
    &amp;lt;Route path="/" component={withProfiler(HomePage)} /&amp;gt;
    {/* Other routes */}
  &amp;lt;/Router&amp;gt;
);

export default App;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Alternatives to Sentry
&lt;/h2&gt;

&lt;p&gt;While Sentry is a powerful tool, there are alternatives that you might consider based on your specific needs:&lt;/p&gt;

&lt;h3&gt;
  
  
  LogRocket:
&lt;/h3&gt;

&lt;p&gt;Focuses on session replay and error tracking, providing insights into user interactions and issues.&lt;br&gt;
New Relic: Offers a comprehensive suite of monitoring tools, including error tracking, performance monitoring, and infrastructure monitoring.&lt;/p&gt;

&lt;h3&gt;
  
  
  Raygun:
&lt;/h3&gt;

&lt;p&gt;Provides error, crash, and performance monitoring with detailed diagnostics and user tracking.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Integrating Sentry into your web development projects can significantly enhance your ability to monitor performance, track errors, and improve the user experience. Its robust features, including real-time error tracking, performance monitoring, user feedback, alerts, and seamless integration, make it an invaluable tool for developers. By following the steps outlined in this guide, you can get started with Sentry and take your development projects to the next level.&lt;/p&gt;

&lt;p&gt;Special thanks to JavaScript Mastery for introducing me to this incredible tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  I would also like to mention the intelligent team behind this amazing tool &lt;a class="mentioned-user" href="https://dev.to/whitep4nth3r"&gt;@whitep4nth3r&lt;/a&gt; &lt;a class="mentioned-user" href="https://dev.to/nikolovlazar"&gt;@nikolovlazar&lt;/a&gt; &lt;a class="mentioned-user" href="https://dev.to/drguthals"&gt;@drguthals&lt;/a&gt; &lt;a class="mentioned-user" href="https://dev.to/rahulchhabria"&gt;@rahulchhabria&lt;/a&gt; &lt;a class="mentioned-user" href="https://dev.to/matt_henderson"&gt;@matt_henderson&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;If you haven’t tried Sentry yet, I highly recommend giving it a go!&lt;/p&gt;

&lt;p&gt;Happy coding! 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Building Stunning Portfolio Websites for Clients in 2024: A Case Study</title>
      <dc:creator>Syed Ahmedullah Jaser</dc:creator>
      <pubDate>Fri, 05 Jul 2024 19:35:48 +0000</pubDate>
      <link>https://dev.to/syedahmedullah14/building-stunning-portfolio-websites-for-clients-in-2024-a-case-study-4cdo</link>
      <guid>https://dev.to/syedahmedullah14/building-stunning-portfolio-websites-for-clients-in-2024-a-case-study-4cdo</guid>
      <description>&lt;p&gt;Creating a captivating, functional, and modern portfolio website is crucial for any professional looking to make an impactful online presence. In 2024, with the advancement of web technologies, the possibilities for creating such websites are endless. Today, I’m excited to share a recent project I completed for a client, showcasing the process, technology stack, and features that made this portfolio website truly stand out.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Project Overview
&lt;/h2&gt;

&lt;p&gt;I recently completed a cutting-edge portfolio website for a delighted client, which you can view live here. This project involved integrating several advanced technologies and design techniques to deliver a seamless user experience.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Technology Stack
&lt;/h2&gt;

&lt;p&gt;The website was built using a modern tech stack that includes:&lt;/p&gt;

&lt;p&gt;Next.js: A powerful React framework that offers server-side rendering and static site generation, ensuring fast load times and SEO benefits.&lt;br&gt;
Three.js: A JavaScript library that enables the creation of complex 3D graphics in the browser, adding depth and engagement to the site.&lt;br&gt;
Framer Motion: A library for creating smooth and interactive animations, making the website visually appealing and engaging.&lt;br&gt;
Tailwind CSS: A utility-first CSS framework that allows for rapid and efficient styling, resulting in a consistent and modern design.&lt;br&gt;
Sentry: A tool for real-time error tracking and performance monitoring, ensuring a seamless user experience by quickly identifying and resolving issues.&lt;/p&gt;

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

&lt;p&gt;The portfolio website boasts several advanced features:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Hero Section
&lt;/h3&gt;

&lt;p&gt;The hero section features a captivating introduction with a spotlight effect and dynamic background, immediately grabbing the visitor's attention.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Bento Grid
&lt;/h3&gt;

&lt;p&gt;A modern layout that presents personal information using cutting-edge CSS design techniques, providing a clean and organized view of the client’s details.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. 3D Elements
&lt;/h3&gt;

&lt;p&gt;Interactive 3D design elements, such as a GitHub-style globe and card hover effects, add depth and engagement, making the site stand out from traditional 2D designs.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Testimonials
&lt;/h3&gt;

&lt;p&gt;A dynamic testimonials area with scrolling or animated content enhances engagement and provides social proof of the client’s skills and expertise.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Work Experience
&lt;/h3&gt;

&lt;p&gt;Prominently displays the client’s professional background, emphasizing credibility and experience in an organized and visually appealing manner.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Canvas Effect
&lt;/h3&gt;

&lt;p&gt;Innovative use of HTML5 canvas to create visually striking effects in the "approaches" section, adding a unique and creative touch to the website.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Responsiveness
&lt;/h3&gt;

&lt;p&gt;Seamless adaptability across all devices ensures an optimal viewing experience for every user, regardless of the device they’re using.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Sentry Integration
&lt;/h3&gt;

&lt;p&gt;Implemented Sentry for real-time error tracking and performance monitoring, ensuring any issues are quickly identified and resolved, maintaining a high-quality user experience.&lt;/p&gt;

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

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

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

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

&lt;p&gt;Why Sentry?&lt;br&gt;
Incorporating Sentry into the project has been a game-changer. Here’s why every developer should consider using Sentry or a similar tool:&lt;/p&gt;

&lt;p&gt;Real-time Error Tracking: Captures and aggregates errors with detailed stack traces, helping identify root causes quickly.&lt;br&gt;
Performance Monitoring: Tracks performance issues like slow queries and long load times, pinpointing bottlenecks.&lt;br&gt;
User Feedback: Collects direct feedback from users experiencing issues, providing invaluable context for troubleshooting.&lt;br&gt;
Alerts and Notifications: Sends alerts via email, Slack, and more, enabling swift responses to issues.&lt;br&gt;
Seamless Integration: Works effortlessly with various frameworks and tools like JavaScript, Python, Ruby, and Node.js.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Getting Started with Sentry
&lt;/h3&gt;

&lt;p&gt;Integrating Sentry into your project is straightforward. Here’s a quick guide to get you started:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Sign Up for Sentry: If you don't have an account, sign up at sentry.io.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install Sentry: For a Next.js project, install the Sentry SDK.&lt;br&gt;
&lt;code&gt;npm install @sentry/nextjs&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Initialize Sentry: In your sentry.server.config.js and sentry.client.config.js, initialize Sentry with your DSN.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import * as Sentry from "@sentry/nextjs";

Sentry.init({
  dsn: "YOUR_SENTRY_DSN",
  tracesSampleRate: 1.0,
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Capture Errors: Manually capture errors using captureException.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;try {
  // Your code here
} catch (error) {
  Sentry.captureException(error);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Monitor Performance: Sentry automatically monitors performance metrics when integrated with Next.js.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Building Portfolio Websites for Clients in 2024
&lt;/h2&gt;

&lt;p&gt;**&lt;br&gt;
In 2024, building portfolio websites for clients involves leveraging the latest technologies and design trends to create engaging, functional, and aesthetically pleasing sites. Here's my approach:&lt;/p&gt;

&lt;p&gt;Understanding Client Needs: Start with a detailed discussion to understand the client's requirements, goals, and target audience.&lt;br&gt;
Choosing the Right Tech Stack: Select a tech stack that offers performance, scalability, and ease of maintenance. For this project, Next.js, Three.js, Framer Motion, and Tailwind CSS were the perfect fit.&lt;br&gt;
Design and Prototyping: Create wireframes and prototypes to visualize the layout and flow of the website.&lt;br&gt;
Development and Testing: Develop the website with a focus on clean code, performance, and responsiveness. Implement thorough testing to ensure a bug-free experience.&lt;br&gt;
Deployment and Monitoring: Deploy the website on a reliable platform (e.g., Netlify) and use tools like Sentry for continuous monitoring and performance tracking.&lt;br&gt;
Client Feedback and Iteration: Collect feedback from the client and make necessary adjustments to ensure satisfaction.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;This project exemplifies how advanced web technologies and thoughtful design can create a stunning and functional portfolio website. By leveraging tools like Sentry for real-time error tracking and performance monitoring, developers can ensure a seamless user experience. Special thanks to JavaScript Mastery for their guidance and for introducing me to invaluable tools like Aceternity UI and Sentry.&lt;/p&gt;

&lt;p&gt;If you’re looking to build a modern, minimalist portfolio website that stands out and delivers top-notch performance, feel free to reach out. Let’s create something amazing together!&lt;/p&gt;

&lt;p&gt;Check out the live site: shareef-shahzer-portfolio.netlify.app&lt;/p&gt;

&lt;p&gt;Happy coding! 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>Recreating Apple's iPhone 15 Pro Website: A Modern Web Development Showcase</title>
      <dc:creator>Syed Ahmedullah Jaser</dc:creator>
      <pubDate>Tue, 02 Jul 2024 19:01:17 +0000</pubDate>
      <link>https://dev.to/syedahmedullah14/recreating-apples-iphone-15-pro-website-a-modern-web-development-showcase-3jlo</link>
      <guid>https://dev.to/syedahmedullah14/recreating-apples-iphone-15-pro-website-a-modern-web-development-showcase-3jlo</guid>
      <description>&lt;p&gt;In my latest project, I embarked on an ambitious journey to recreate Apple’s iPhone 15 Pro website using a cutting-edge tech stack. Leveraging the power of React.js, Three.js, GSAP, and more, I aimed not only to replicate the sleek, interactive experience of the original site but also to push the boundaries of modern web development. Here’s a detailed look at how I brought this vision to life.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Stack Overview
&lt;/h2&gt;

&lt;h3&gt;
  
  
  React.js:
&lt;/h3&gt;

&lt;p&gt;As the foundation for building a responsive and dynamic user interface.&lt;/p&gt;

&lt;h3&gt;
  
  
  Three.js:
&lt;/h3&gt;

&lt;p&gt;For intricate 3D model rendering, allowing users to explore the &lt;br&gt;
iPhone 15 Pro from various angles and in multiple colors and sizes.&lt;/p&gt;

&lt;h3&gt;
  
  
  React Three Fiber:
&lt;/h3&gt;

&lt;p&gt;Integrated seamlessly with Three.js, ensuring smooth interaction and performance within the React framework.&lt;/p&gt;

&lt;h3&gt;
  
  
  React Three Drei:
&lt;/h3&gt;

&lt;p&gt;A supportive library that facilitated complex Three.js functionalities, enhancing development efficiency.&lt;/p&gt;

&lt;h3&gt;
  
  
  GSAP (Greensock Animation Platform):
&lt;/h3&gt;

&lt;p&gt;Used extensively for creating beautiful, subtle animations that elevate user engagement and usability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vite:
&lt;/h3&gt;

&lt;p&gt;Chosen for its speed in development and building, optimizing the workflow throughout the project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tailwind CSS:
&lt;/h3&gt;

&lt;p&gt;Employed for its utility-first approach to styling, ensuring a consistent and visually appealing design across devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features Implemented
&lt;/h2&gt;

&lt;p&gt;Smooth Animations with GSAP: Enhanced the user experience with seamless transitions and animations, ensuring a delightful browsing experience.&lt;/p&gt;

&lt;p&gt;3D Model Rendering: Implemented using Three.js, allowing users to interactively view the iPhone 15 Pro in different colors and sizes, mimicking the original site’s visual appeal.&lt;/p&gt;

&lt;p&gt;Custom Video Carousel: Developed using GSAP, providing an engaging way to showcase videos related to the iPhone 15 Pro, adding dynamic content to the site.&lt;/p&gt;

&lt;p&gt;Fully Responsive Design: Ensured that the website remains accessible and visually appealing across a wide range of devices and screen sizes, enhancing usability and accessibility.&lt;/p&gt;

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

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

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

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

&lt;p&gt;Project Setup and Deployment&lt;br&gt;
To explore and experience the project yourself, follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clone the repository:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/syedahmedullah14/Apple-website.git
cd Apple-website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Install dependencies:&lt;br&gt;
&lt;code&gt;npm install&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Start the development server:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;npm run dev&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Build for production:
&lt;code&gt;npm run build&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This project stands as a testament to the power of combining modern web technologies to create a visually stunning and highly functional website. Through the integration of React.js, Three.js, GSAP, and other tools, I successfully recreated Apple’s iPhone 15 Pro website while showcasing my skills in frontend development.&lt;/p&gt;

&lt;p&gt;Special thanks to Adrian and JavaScript Mastery for their invaluable guidance throughout this process, which greatly contributed to the project’s success.&lt;/p&gt;

&lt;p&gt;🔗&lt;a href="https://apple-website-livid.vercel.app/" rel="noopener noreferrer"&gt;Live Site&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💻&lt;a href="https://github.com/syedahmedullah14/Apple-website" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;br&gt;
Explore the live site to immerse yourself in the interactive experience of the iPhone 15 Pro!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>programming</category>
    </item>
    <item>
      <title>Building a Modern Website with React, Tailwind CSS, and Vite</title>
      <dc:creator>Syed Ahmedullah Jaser</dc:creator>
      <pubDate>Tue, 02 Jul 2024 18:49:39 +0000</pubDate>
      <link>https://dev.to/syedahmedullah14/building-a-modern-website-with-react-tailwind-css-and-vite-4o21</link>
      <guid>https://dev.to/syedahmedullah14/building-a-modern-website-with-react-tailwind-css-and-vite-4o21</guid>
      <description>&lt;p&gt;In today's fast-paced web development landscape, creating a modern, responsive, and visually appealing website requires a combination of the right tools and best practices. Recently, I embarked on a journey to build such a website using React.js, Tailwind CSS, and Vite. The result is a stunning, feature-rich site that I am excited to share with you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Vite, React.js, and Tailwind CSS?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Vite
&lt;/h3&gt;

&lt;p&gt;Vite is a modern build tool that offers lightning-fast development times. Unlike traditional bundlers, Vite leverages native ES modules and provides instant server start, fast HMR, and optimized builds.&lt;/p&gt;

&lt;h3&gt;
  
  
  React.js
&lt;/h3&gt;

&lt;p&gt;React.js needs no introduction. It’s a powerful JavaScript library for building user interfaces, offering component-based architecture and a vast ecosystem that makes development efficient and scalable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tailwind CSS
&lt;/h3&gt;

&lt;p&gt;Tailwind CSS is a utility-first CSS framework that allows for rapid styling directly within your markup. It offers a highly customizable and responsive design system that scales effortlessly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features of the Project
&lt;/h2&gt;

&lt;p&gt;Beautiful Sections&lt;br&gt;
The website features several well-designed sections, including:&lt;/p&gt;
&lt;h3&gt;
  
  
  Hero:
&lt;/h3&gt;

&lt;p&gt;A captivating introduction with a call-to-action.&lt;/p&gt;
&lt;h3&gt;
  
  
  Services:
&lt;/h3&gt;

&lt;p&gt;Detailed information about the services offered.&lt;/p&gt;
&lt;h3&gt;
  
  
  Features:
&lt;/h3&gt;

&lt;p&gt;Highlights of key features and benefits.&lt;/p&gt;
&lt;h3&gt;
  
  
  How to Use:
&lt;/h3&gt;

&lt;p&gt;A guide on how to utilize the website or service.&lt;/p&gt;
&lt;h3&gt;
  
  
  Roadmap:
&lt;/h3&gt;

&lt;p&gt;Future plans and updates.&lt;/p&gt;
&lt;h3&gt;
  
  
  Pricing:
&lt;/h3&gt;

&lt;p&gt;Clear and concise pricing information.&lt;/p&gt;
&lt;h3&gt;
  
  
  Footer and Header:
&lt;/h3&gt;

&lt;p&gt;Consistent navigation and information across the site.&lt;br&gt;
Parallax Animations&lt;/p&gt;

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

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

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

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

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

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

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

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

&lt;p&gt;To enhance user engagement, the site incorporates parallax animations triggered by mouse movements and scrolling. These animations add depth and interactivity, making the browsing experience more dynamic.&lt;/p&gt;
&lt;h3&gt;
  
  
  Complex UI Geometry
&lt;/h3&gt;

&lt;p&gt;Utilizing Tailwind CSS, the site showcases intricate shapes such as circular feature displays, grid lines, and side lines. These elements add a modern and sophisticated touch to the design.&lt;/p&gt;
&lt;h3&gt;
  
  
  Latest UI Trends
&lt;/h3&gt;

&lt;p&gt;The design incorporates modern UI trends, including bento grids, which organize content in an aesthetically pleasing and accessible manner.&lt;/p&gt;
&lt;h3&gt;
  
  
  Cool Gradients
&lt;/h3&gt;

&lt;p&gt;Stylish gradients are used to enhance the visual appeal of cards, buttons, and other UI elements. Tailwind CSS makes it easy to apply and customize these gradients.&lt;/p&gt;
&lt;h3&gt;
  
  
  Responsive Design
&lt;/h3&gt;

&lt;p&gt;Ensuring that the website functions seamlessly across all devices is crucial. The responsive design guarantees that users have a consistent and optimized experience, whether on a desktop, tablet, or smartphone.&lt;/p&gt;
&lt;h3&gt;
  
  
  Emphasis on Code Architecture and Reusability
&lt;/h3&gt;

&lt;p&gt;Throughout the development process, a strong emphasis was placed on code architecture and reusability. Components were designed to be modular and reusable, making future updates and maintenance more manageable.&lt;/p&gt;
&lt;h3&gt;
  
  
  Quick Start
&lt;/h3&gt;

&lt;p&gt;Follow these steps to set up the project locally on your machine.&lt;/p&gt;
&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;p&gt;Make sure you have the following installed on your machine:&lt;/p&gt;

&lt;p&gt;Git&lt;br&gt;
Node.js&lt;br&gt;
npm (Node Package Manager)&lt;br&gt;
Cloning the Repository&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/syedahmedullah14/brainwave.git
cd brainwave
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;

&lt;p&gt;Install the project dependencies using npm:&lt;br&gt;
&lt;code&gt;npm install&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Running the Project
&lt;/h3&gt;

&lt;p&gt;Start the development server:&lt;br&gt;
&lt;code&gt;npm run dev&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Live Demo
&lt;/h3&gt;

&lt;p&gt;Check out the live version of the project &lt;a href="https://jaser-brainwave.netlify.app/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Special Thanks
&lt;/h3&gt;

&lt;p&gt;I would like to extend my heartfelt gratitude to Adrian for his invaluable guidance throughout this project. His insights and advice were instrumental in bringing this website to life.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Building this modern website with Vite, React.js, and Tailwind CSS has been an enriching experience. The combination of these tools allows for a fast, efficient, and enjoyable development process, resulting in a high-quality, visually appealing, and responsive website. I hope this journey inspires you to explore these technologies and create amazing projects of your own.&lt;/p&gt;

&lt;p&gt;Feel free to check out the project on &lt;a href="https://github.com/syedahmedullah14/brainwave" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;and leave your thoughts!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>react</category>
    </item>
    <item>
      <title>How to Build a Medium-like Blogging App with React, Vite, Cloudflare Workers, and More</title>
      <dc:creator>Syed Ahmedullah Jaser</dc:creator>
      <pubDate>Tue, 25 Jun 2024 16:46:06 +0000</pubDate>
      <link>https://dev.to/syedahmedullah14/how-to-build-a-medium-like-blogging-app-with-react-vite-cloudflare-workers-and-more-354p</link>
      <guid>https://dev.to/syedahmedullah14/how-to-build-a-medium-like-blogging-app-with-react-vite-cloudflare-workers-and-more-354p</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In today's world, blogging platforms have become essential for sharing ideas and stories. Medium stands out with its clean design and excellent user experience. Inspired by Medium, I decided to build a similar blogging app from scratch as part of Cohort 2.0 by Harkirat. This post will guide you through the process, from selecting the tech stack to deploying the app. I hope it inspires you to build your own Medium-like app.&lt;/p&gt;

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

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

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

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwbly5g3ayswag0wjc8zz.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwbly5g3ayswag0wjc8zz.PNG" alt="Publish blog"&gt;&lt;/a&gt;&lt;br&gt;
A huge thank you to Harkirat for his support and guidance throughout this project.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;h3&gt;
  
  
  React:
&lt;/h3&gt;

&lt;p&gt;A powerful library for building dynamic and responsive user interfaces.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vite:
&lt;/h3&gt;

&lt;p&gt;A fast build tool that enhances development with instant hot module replacement.&lt;/p&gt;

&lt;h3&gt;
  
  
  Skeleton Loading:
&lt;/h3&gt;

&lt;p&gt;Improves user experience by displaying a placeholder while content is loading.&lt;/p&gt;

&lt;h3&gt;
  
  
  Backend
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Cloudflare Workers:
&lt;/h3&gt;

&lt;p&gt;A serverless platform for building backend logic at the edge, ensuring low latency.&lt;/p&gt;

&lt;h3&gt;
  
  
  TypeScript:
&lt;/h3&gt;

&lt;p&gt;A statically typed superset of JavaScript that improves code reliability and maintainability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prisma:
&lt;/h3&gt;

&lt;p&gt;An ORM that simplifies database interactions and includes connection pooling.&lt;/p&gt;

&lt;h3&gt;
  
  
  PostgreSQL:
&lt;/h3&gt;

&lt;p&gt;A reliable and powerful open-source relational database.&lt;/p&gt;

&lt;h3&gt;
  
  
  Zod:
&lt;/h3&gt;

&lt;p&gt;A schema declaration and validation library providing type inference.&lt;/p&gt;

&lt;h3&gt;
  
  
  JWT:
&lt;/h3&gt;

&lt;p&gt;JSON Web Tokens for secure authentication, enabling stateless sessions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Project Setup
&lt;/h3&gt;

&lt;p&gt;Bootstrapping the Project&lt;br&gt;
Vite makes it easy to create a React project.&lt;/p&gt;

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

npm create vite@latest blogging-app-like-medium --template react
cd blogging-app-like-medium
npm install



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Setting Up the Backend with Cloudflare Workers&lt;br&gt;
Cloudflare Workers allow you to write serverless functions that run on Cloudflare's edge network.&lt;/p&gt;

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

npm install -g wrangler
wrangler init


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Configure your wrangler.toml file with your Cloudflare account details.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuring Prisma and PostgreSQL
&lt;/h3&gt;

&lt;p&gt;Prisma simplifies database management. Set up your PostgreSQL database and configure Prisma:&lt;/p&gt;

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

npm install prisma --save-dev
npx prisma init


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Update the DATABASE_URL in your .env file with your PostgreSQL connection string. Define your database schema in prisma/schema.prisma and run migrations:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx prisma migrate dev --name init&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Integrating TypeScript and Zod&lt;br&gt;
TypeScript enhances code reliability, and Zod complements it by providing runtime validation. Install the necessary packages:&lt;/p&gt;

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

npm install typescript zod



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Add a tsconfig.json file for TypeScript configuration, and use Zod for validating data structures.&lt;/p&gt;

&lt;h3&gt;
  
  
  Implementing Authentication with JWT
&lt;/h3&gt;

&lt;p&gt;JWTs provide secure authentication. Install the package:'&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install jsonwebtoken&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Create utility functions for generating and verifying tokens, and set up authentication routes using Cloudflare Workers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Building the Frontend
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Creating React Components
&lt;/h3&gt;

&lt;p&gt;Organize your components logically, for instance, Header, Footer, PostList, Post, and Editor.&lt;/p&gt;

&lt;p&gt;Enhancing User Experience with Skeleton Loading&lt;br&gt;
Skeleton loading provides a smooth user experience. Implement it in your components:&lt;/p&gt;

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

import Skeleton from 'react-loading-skeleton';

function PostList({ posts, loading }) {
  if (loading) {
    return &amp;lt;Skeleton count={5} /&amp;gt;;
  }
  return (
    &amp;lt;div&amp;gt;
      {posts.map(post =&amp;gt; (
        &amp;lt;Post key={post.id} {...post} /&amp;gt;
      ))}
    &amp;lt;/div&amp;gt;
  );
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Connecting Frontend to Backend
&lt;/h3&gt;

&lt;p&gt;Use fetch or axios to make API calls from your React components to Cloudflare Workers endpoints, ensuring secure data transfer with JWTs.&lt;/p&gt;
&lt;h3&gt;
  
  
  Deployment
&lt;/h3&gt;

&lt;p&gt;Deploying Backend with Cloudflare Workers&lt;br&gt;
Deploy your backend code to Cloudflare Workers:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wrangler publish&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Deploying Frontend with Vercel&lt;br&gt;
Deploy your React app with Vercel:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npm install -g vercel
vercel


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Follow the prompts to deploy your app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Building a Medium-like blogging app from scratch is a rewarding experience. By using modern tools like React, Vite, Cloudflare Workers, TypeScript, Prisma, and PostgreSQL, you can create a robust and scalable application.&lt;/p&gt;

&lt;p&gt;A special thanks to Harkirat for his guidance throughout this journey.&lt;/p&gt;

&lt;p&gt;Check out the live app here &lt;a href="https://blogging-app-like-medium.vercel.app/" rel="noopener noreferrer"&gt;&lt;/a&gt; and the GitHub repository here &lt;a href="https://github.com/syedahmedullah14/blogging-app-like-medium" rel="noopener noreferrer"&gt;&lt;/a&gt;. I hope this guide inspires you to build your own amazing applications!&lt;/p&gt;

&lt;p&gt;Happy coding! 🚀✨&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>react</category>
    </item>
    <item>
      <title>Launching the New Website for S.S Enterprises</title>
      <dc:creator>Syed Ahmedullah Jaser</dc:creator>
      <pubDate>Wed, 19 Jun 2024 10:40:18 +0000</pubDate>
      <link>https://dev.to/syedahmedullah14/launching-the-new-website-for-ss-enterprises-21jf</link>
      <guid>https://dev.to/syedahmedullah14/launching-the-new-website-for-ss-enterprises-21jf</guid>
      <description>&lt;p&gt;I am thrilled to announce the launch of the new website for S.S Enterprises, a premier furniture repair shop specializing in sofa, chair, and carpet restoration, as well as comprehensive cleaning services.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F89gcslxolx7rr1cxtf0s.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F89gcslxolx7rr1cxtf0s.PNG" alt="Home Section" width="800" height="426"&gt;&lt;/a&gt;&lt;br&gt;
The Development Journey&lt;br&gt;
Creating this website has been a fulfilling and educational experience. As part of IntElligence Tech Solutions, my objective was to develop a user-friendly, informative, and visually appealing site that truly reflects the quality and expertise of S.S Enterprises. This project allowed me to revisit and reinforce my foundational skills in HTML, CSS, and JavaScript. From structuring content with HTML5 to styling with CSS3 and adding interactive elements with JavaScript, every step was meticulously planned and executed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Project Guidance and Support
&lt;/h3&gt;

&lt;p&gt;A significant factor in the success of this project was the incredible support and guidance I received:&lt;/p&gt;

&lt;h3&gt;
  
  
  Tahzib Ahmed:
&lt;/h3&gt;

&lt;p&gt;Provided invaluable project guidance, ensuring the project stayed on track.&lt;/p&gt;

&lt;h3&gt;
  
  
  Harkirat Singh and Adrian:
&lt;/h3&gt;

&lt;p&gt;Their mentorship helped solidify my web development skills, making this project possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Features of the Website
&lt;/h3&gt;

&lt;p&gt;The new website offers a range of features designed to provide users with all the information they need about S.S Enterprises’ services:&lt;/p&gt;

&lt;h3&gt;
  
  
  Clean and Modern Design:
&lt;/h3&gt;

&lt;p&gt;The site boasts a user-friendly interface with an attractive layout.&lt;/p&gt;

&lt;h3&gt;
  
  
  Responsive Design:
&lt;/h3&gt;

&lt;p&gt;Optimized for viewing on all devices, including desktops, tablets, and smartphones.&lt;/p&gt;

&lt;h3&gt;
  
  
  Informative Sections:
&lt;/h3&gt;

&lt;p&gt;Detailed descriptions of services, customer testimonials, and a comprehensive contact section.&lt;/p&gt;

&lt;h3&gt;
  
  
  Interactive Elements:
&lt;/h3&gt;

&lt;p&gt;Smooth scrolling, hover effects, and interactive forms enhance the user experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technologies Used
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The website was built using:
&lt;/h3&gt;

&lt;h3&gt;
  
  
  HTML5:
&lt;/h3&gt;

&lt;p&gt;For creating the structure and content of the website.&lt;/p&gt;

&lt;h3&gt;
  
  
  CSS3:
&lt;/h3&gt;

&lt;p&gt;For styling and layout.&lt;/p&gt;

&lt;h3&gt;
  
  
  JavaScript:
&lt;/h3&gt;

&lt;p&gt;For interactive elements and functionality.&lt;br&gt;
This combination of technologies ensures a seamless and engaging user experience.&lt;/p&gt;

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

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

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1yta4qdebhs1z52uppcb.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1yta4qdebhs1z52uppcb.PNG" alt="Services" width="800" height="431"&gt;&lt;/a&gt;&lt;br&gt;
Why It Matters&lt;br&gt;
For S.S Enterprises, having a professional and accessible online presence is essential. The new website not only showcases their expertise but also makes it easy for potential customers to learn about their services and get in touch. It represents a significant step forward in their digital journey, helping them to reach a broader audience and enhance their customer service.&lt;/p&gt;

&lt;p&gt;Visit the Website&lt;br&gt;
I invite you to explore the new website for S.S Enterprises and see the results of our hard work. Visit the site here: &lt;a href="https://ss-enterprises-furniture-repair.netlify.app/" rel="noopener noreferrer"&gt;S.S Enterprises Website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for taking the time to read about this project. I look forward to your feedback and am excited about the positive impact this website will have for S.S Enterprises.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Unlocking the Power of Convex and Clerk: A Guide to Seamless Authentication and Data Management</title>
      <dc:creator>Syed Ahmedullah Jaser</dc:creator>
      <pubDate>Fri, 14 Jun 2024 16:01:09 +0000</pubDate>
      <link>https://dev.to/syedahmedullah14/unlocking-the-power-of-convex-and-clerk-a-guide-to-seamless-authentication-and-data-management-32h7</link>
      <guid>https://dev.to/syedahmedullah14/unlocking-the-power-of-convex-and-clerk-a-guide-to-seamless-authentication-and-data-management-32h7</guid>
      <description>&lt;p&gt;As a web developer, discovering tools that simplify complex tasks and enhance productivity is always exciting. Recently, I had the pleasure of exploring two incredible tools: Convex and Clerk. These tools are game-changers in the realms of data management and authentication. In this blog post, I’ll dive into what Convex and Clerk are, their individual benefits, and how to integrate Clerk with Convex to create seamless, authenticated web applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Convex?
&lt;/h3&gt;

&lt;p&gt;Convex is a state management and data synchronization tool that allows developers to manage application state efficiently. It provides a reactive programming model, enabling real-time updates across your application without the hassle of manual state management.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features of Convex:
&lt;/h3&gt;

&lt;p&gt;Real-Time Synchronization: Convex ensures that all clients are updated in real-time whenever there is a change in the data.&lt;br&gt;
Automatic Conflict Resolution: It handles conflicts gracefully, ensuring data consistency across your application.&lt;br&gt;
Scalability: Convex scales effortlessly with your application, making it suitable for projects of all sizes.&lt;br&gt;
Developer-Friendly API: The API is intuitive and easy to use, allowing developers to focus on building features rather than managing state.&lt;/p&gt;
&lt;h3&gt;
  
  
  What is Clerk?
&lt;/h3&gt;

&lt;p&gt;Clerk is an authentication and user management tool designed to provide a seamless and secure authentication experience. It simplifies integrating authentication into your application, supporting various authentication methods such as email/password, social logins, and passwordless authentication.&lt;/p&gt;
&lt;h2&gt;
  
  
  Key Features of Clerk:
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Multi-Factor Authentication (MFA):
&lt;/h3&gt;

&lt;p&gt;Enhance security with built-in support for MFA.&lt;/p&gt;
&lt;h3&gt;
  
  
  Customizable UI Components:
&lt;/h3&gt;

&lt;p&gt;Clerk offers pre-built, customizable components for login, signup, and user profile management.&lt;/p&gt;
&lt;h3&gt;
  
  
  Extensive Authentication Methods:
&lt;/h3&gt;

&lt;p&gt;Supports email/password, social logins (Google, Facebook, etc.), and passwordless authentication.&lt;/p&gt;
&lt;h3&gt;
  
  
  Easy Integration:
&lt;/h3&gt;

&lt;p&gt;Integrates seamlessly with various frameworks and libraries, reducing the complexity of adding authentication to your app.&lt;/p&gt;
&lt;h3&gt;
  
  
  Integrating Clerk with Convex
&lt;/h3&gt;

&lt;p&gt;Combining the power of Convex and Clerk allows developers to build robust, real-time applications with secure authentication. Here’s a step-by-step guide to integrating Clerk with Convex in a Next.js application:&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 1: Setting Up the Next.js Application
&lt;/h3&gt;

&lt;p&gt;First, create a new Next.js application if you haven’t already:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx create-next-app@latest my-app&lt;br&gt;
cd my-app&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 2: Installing Dependencies
&lt;/h3&gt;

&lt;p&gt;Next, install the necessary dependencies for Clerk and Convex:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install @clerk/clerk-react convex&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 3: Setting Up Clerk
&lt;/h3&gt;
&lt;h3&gt;
  
  
  Create a Clerk Account:
&lt;/h3&gt;

&lt;p&gt;Sign up for an account on Clerk’s website and create a new Clerk application.&lt;br&gt;
Retrieve API Keys: Obtain your Clerk Frontend API and Backend API keys from the Clerk dashboard.&lt;br&gt;
Initialize Clerk in your Next.js app: In your pages/_app.js file, wrap your application with the ClerkProvider:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { ClerkProvider } from '@clerk/clerk-react';

const clerkFrontendApi = process.env.NEXT_PUBLIC_CLERK_FRONTEND_API;

function MyApp({ Component, pageProps }) {
  return (
    &amp;lt;ClerkProvider frontendApi={clerkFrontendApi}&amp;gt;
      &amp;lt;Component {...pageProps} /&amp;gt;
    &amp;lt;/ClerkProvider&amp;gt;
  );
}

export default MyApp;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Create Clerk Components: Add the Sign-in and Sign-up components where necessary in your application. For example, in pages/index.js:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { SignIn, SignUp } from '@clerk/clerk-react';

export default function Home() {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;h1&amp;gt;Welcome to My App&amp;lt;/h1&amp;gt;
      &amp;lt;SignIn /&amp;gt;
      &amp;lt;SignUp /&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 4: Setting Up Convex
&lt;/h3&gt;

&lt;p&gt;Create a Convex Project: Sign up for Convex and create a new project on their &lt;a href="https://www.convex.dev/" rel="noopener noreferrer"&gt;dashboard&lt;/a&gt;.&lt;br&gt;
Retrieve Convex Deployment URL: Obtain your deployment URL from the Convex dashboard.&lt;br&gt;
Initialize Convex in your Next.js app: Create a new file convex.js to initialize Convex:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { ConvexProviderWithAuth } from 'convex/react';
import { useSession } from '@clerk/clerk-react';
import convex from 'convex';

const convexDeploymentUrl = process.env.NEXT_PUBLIC_CONVEX_DEPLOYMENT_URL;

function ConvexWithClerkProvider({ children }) {
  const { sessionId } = useSession();

  return (
    &amp;lt;ConvexProviderWithAuth
      deployment={convexDeploymentUrl}
      auth={sessionId}
    &amp;gt;
      {children}
    &amp;lt;/ConvexProviderWithAuth&amp;gt;
  );
}

export default ConvexWithClerkProvider;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Wrap your application with the Convex provider: Update your pages/_app.js file to include the ConvexWithClerkProvider:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mport ConvexWithClerkProvider from '../convex';

function MyApp({ Component, pageProps }) {
  return (
    &amp;lt;ClerkProvider frontendApi={clerkFrontendApi}&amp;gt;
      &amp;lt;ConvexWithClerkProvider&amp;gt;
        &amp;lt;Component {...pageProps} /&amp;gt;
      &amp;lt;/ConvexWithClerkProvider&amp;gt;
    &amp;lt;/ClerkProvider&amp;gt;
  );
}

export default MyApp;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 5: Using Convex and Clerk Together&lt;br&gt;
Now you can use Convex’s reactive data and Clerk’s authentication in your components. Here’s an example of how to fetch user-specific data:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useQuery } from 'convex/react';
import { useUser } from '@clerk/clerk-react';

function UserProfile() {
  const { user } = useUser();
  const userId = user.id;
  const userData = useQuery('getUserData', { userId });

  if (!userData) return &amp;lt;div&amp;gt;Loading...&amp;lt;/div&amp;gt;;

  return (
    &amp;lt;div&amp;gt;
      &amp;lt;h1&amp;gt;Welcome, {userData.name}!&amp;lt;/h1&amp;gt;
      &amp;lt;p&amp;gt;Email: {userData.email}&amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default UserProfile;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;




&lt;p&gt;Integrating Clerk with Convex in a Next.js application brings the best of both worlds: secure, easy-to-implement authentication and real-time data synchronization. These tools streamline the development process, allowing you to focus on building dynamic, user-friendly applications.&lt;br&gt;
By leveraging Convex's state management and Clerk's authentication capabilities, you can create scalable and secure web applications with minimal effort. Happy coding!&lt;/p&gt;




&lt;p&gt;I hope this guide helps you get started with Convex and Clerk. If you have any questions or need further assistance, feel free to reach out or leave a comment below.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>clerk</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
