Blog

  • Monetizing AI Influencers: Strategy and Platform Guide

    Monetizing AI Influencers: Strategy and Platform Guide

    “AI OFM: Create a Profitable AI Model from Scratch” provides a guide to building and monetizing AI influencers. The source details creating realistic AI models using tools like face-swapping and AI image generators, focusing on attracting high-paying customers rather than general views. It emphasizes ethical and legal practices, cautioning against common pitfalls like platform bans. The guide covers the technical creation process, strategies for gaining visibility on platforms like Instagram and Threads by targeting a specific demographic, and methods for converting engagement into income through platforms like Uncov. It stresses building a persona for the AI and engaging with fans authentically to foster relationships that lead to sales, offering advice on sales techniques and avoiding common mistakes. Ultimately, the resource aims to equip users with a comprehensive system for establishing a profitable AI influencer business.

    Study Guide: Profitable AI Influencer Model Creation

    Quiz

    Answer the following questions in 2-3 sentences each.

    1. What was the key mistake Jake made that led to his AI model income being wiped out?
    2. According to the guide, what is a crucial characteristic of the reference model’s body that should be avoided?
    3. Why does the guide recommend generating multiple images (e.g., three) from a single prompt in Picasso?
    4. What is the purpose of the “upscale” feature in Picasso when working with AI-generated faces?
    5. Explain the “warm-up” process for a new Instagram account intended for an AI influencer.
    6. Why is it important to focus on attracting a specific demographic (e.g., 40-year-old high-income men) for an AI influencer?
    7. Describe one of the two methods suggested for posting engaging reels on Instagram for an AI influencer.
    8. What is the primary goal of using Threads (Friends) in the context of promoting an AI influencer?
    9. According to the guide, why should you avoid including direct links in Instagram stories to promote your content platform?
    10. What is presented as the best AI-friendly platform for selling AI-generated content, and why are alternatives like Onlyfans and Fanmail discouraged?

    Quiz Answer Key

    1. Jake’s key mistake was not knowing the rules and guidelines of the platform he was using for his AI model. This resulted in his account being banned and his income being completely lost overnight without any prior warning.
    2. A crucial characteristic to avoid in a reference model’s body is tattoos. The guide explains that tattoos would be very difficult for the AI to reproduce consistently across multiple images, hindering the creation of a cohesive AI influencer.
    3. Generating multiple images from a single prompt is recommended because AI is not always perfect and can sometimes produce flawed or awkward results, such as mistakes in anatomy like fingers. Having multiple options increases the chances of getting at least one great result.
    4. The “upscale” feature in Picasso adds much more detail to the AI-generated face, making the picture feel significantly more realistic. It helps to reduce the “flat” or artificial look that can sometimes be present in AI-generated images.
    5. The “warm-up” process involves creating a new Gmail account and then a new Instagram account from the phone. For the first few days, the user should passively consume content related to sexy models to help Instagram understand the desired niche, gradually progressing to following, liking, and eventually interacting with similar accounts.
    6. Focusing on attracting a specific demographic like 40-year-old high-income men is important because these individuals are more likely to have disposable income and be willing to spend money on the content offered by the AI influencer, leading to actual sales rather than just views.
    7. One method for posting engaging reels is to use face-swapped content of a real person and add a text overlay with a hook and a call to action specifically targeting the desired demographic (e.g., “Old man where are you?”). This encourages comments and interactions, signaling to Instagram that the content is engaging and should be shown to more similar users.
    8. The primary goal of using Threads (Friends) is to drive traffic to the main Instagram account of the AI influencer. It’s recommended to use open-ended questions or create debates to encourage interaction and then direct interested users to the Instagram profile for further engagement.
    9. Including direct links in Instagram stories is discouraged because Instagram’s algorithm reportedly dislikes when users leave the platform. Stories with links may receive fewer views as Instagram prioritizes keeping users within the app.
    10. The best AI-friendly platform presented is Uncov (specifically a VIP account). Onlyfans is discouraged because AI models cannot pass the required video verification, and Fanmail has issues with fan accounts being frozen. Uncov is described as being designed for this type of content and offers a way to avoid bans.

    Essay Format Questions

    1. Discuss the ethical considerations and potential pitfalls of creating and monetizing AI influencers, drawing on the examples and advice provided in the source material.
    2. Analyze the importance of creating a believable “personality” and “lifestyle” for an AI influencer on social media, and explain how the techniques described in the guide contribute to this goal.
    3. Evaluate the effectiveness of the “warm-up” process for Instagram in establishing the desired audience for an AI influencer, considering both the potential benefits and limitations.
    4. Compare and contrast the strategies for content creation (images and videos) and audience engagement (reels, stories, Threads) suggested in the guide, explaining how they work together to achieve profitability.
    5. Critically assess the sales and monetization strategies outlined in the guide, including the recommended platform and the techniques for engaging with potential customers in direct messages.

    Glossary of Key Terms

    • AI Influencer: A digital persona created using artificial intelligence that is designed to behave like a human influencer on social media, often with the goal of generating income.
    • Face Swap: A technology that allows a person’s face in an image or video to be replaced with another face, used in the guide to combine an AI-generated face with a real person’s body.
    • Prompt: A text-based instruction given to an AI image generator to create a specific image based on the description.
    • Photorealistic: Appearing real or very close to a real photograph.
    • Upscale (Image): The process of increasing the resolution and detail of an image, often used to make AI-generated faces look less artificial.
    • Reference Model: A real person (typically found on social media) whose body is used as a template for the AI influencer’s body through face-swapping techniques.
    • Onlyfans (OF): A content subscription service popular for adult content, but not suitable for AI influencers due to its verification process.
    • Fanmail: Another content subscription platform, mentioned as having issues with fan accounts being frozen, making it a less reliable option.
    • Uncov (VIP): The AI-friendly platform recommended in the guide for legally selling AI-generated content without the risk of being banned.
    • Warm-up (Instagram): A strategic process of creating a new Instagram account and gradually engaging with content related to the desired niche to signal to the platform the type of audience to target.
    • Shadow Ban: A state where a user’s content is hidden from most of their followers and non-followers on a social media platform without the user being explicitly notified.
    • Call to Action (CTA): An instruction or prompt designed to encourage a specific response from the audience, such as leaving a comment, sending a DM, or visiting a link.
    • Threads (Friends): Instagram’s text-based conversation app, used in the guide as a tool to engage with a broader audience and drive traffic to the main Instagram profile.
    • Sniping (Threads/Friends): A strategy of commenting on popular or viral threads to gain visibility and attract new followers to the AI influencer’s profile.
    • Hook: The opening part of a piece of content (e.g., a reel or text) designed to capture the audience’s attention immediately.
    • DM (Direct Message): A private message sent directly from one user to another on a social media platform.
    • Conversion Rate: The percentage of viewers or leads who become paying customers.
    • Feed Page: The main profile grid on Instagram where a user’s posts are displayed.
    • Stories (Instagram): Short-form ephemeral content on Instagram that disappears after 24 hours, used for more casual updates and engagement.
    • Highlights (Instagram): A feature that allows users to save and display selected Instagram stories on their profile for longer than 24 hours.
    • Close Friends (Instagram): A feature that allows users to share stories with a smaller, selected group of followers, used in the guide as a technique to create a sense of exclusivity.
    • GFE (Girlfriend Experience): A sales strategy that focuses on building an emotional connection and rapport with the customer, making them feel like they have a personal relationship with the content creator.
    • Anti-Selling: A sales technique where the seller positions themselves as hesitant or indifferent to the sale to create desire in the buyer.
    • Scarcity (Sales): A tactic to make an offer seem unique and limited to create a sense of urgency and encourage a purchase.
    • Copywriting: The art of writing persuasive text for marketing or promotional purposes.
    • Labeling (Sales): Reinforcing a customer’s positive feelings and identity after a purchase to build confidence and encourage future spending.
    • Objection Handling (Sales): Techniques used to address and overcome a potential customer’s reasons for not making a purchase.
    • Odeo Message: A short audio message.

    Briefing Document: Creating a Profitable AI Influencer

    Overview:

    This document provides a detailed briefing on the strategies and techniques outlined in the “AI OFM: Create a Profitable AI Model from Scratch” guide for building and monetizing hyperrealistic AI influencers. The guide emphasizes ethical and legal methods, focusing on attracting high-paying customers and avoiding platform bans. It covers the entire process, from creating the AI model’s face and body to attracting the right audience, engaging them, and selling content on appropriate platforms.

    Main Themes and Important Ideas/Facts:

    1. The Potential and Pitfalls of AI Influencers:
    • The guide opens with the enticing prospect of creating an AI influencer that can generate income 24/7 and attract wealthy customers without the risks of a real person’s account being banned.
    • It immediately cautions against common mistakes, citing the story of “Jake” whose six-figure potential was wiped out overnight due to a platform ban for violating rules. This highlights the importance of understanding and adhering to platform guidelines.
    • The guide also addresses the misconception that creating AI models requires coding skills or expensive setups, asserting that it’s “completely wrong.”
    1. Creating a Hyperrealistic AI Model:
    • Face Generation: The first step involves creating the face using the website Picasso. The guide recommends using an affiliate link for free credits.
    • Users should select the “AI image generator” and choose “ultra realistic” style.
    • The aspect ratio should be square for social media compatibility.
    • Generating 3 images per prompt is advised to ensure at least one good result due to AI imperfections.
    • A sample prompt is provided, and the importance of detailed prompts is mentioned.
    • The guide advises against creating an AI that is “too pretty,” suggesting that a “next door girl profile” tends to perform better as people can relate more easily.
    • The “upscale” option in Picasso is recommended to add more detail and realism to faces that appear too flat.
    • Body Generation (Face Swapping Technique):To create a consistent body for the AI, the guide recommends finding a reference model on Instagram (specifically, an OnlyFans model with specific criteria).
    • Criteria for Reference Model: No tattoos, casual body type, no body piercings, and a large amount of content (photos, reels, stories).
    • The guide provides steps for identifying potential reference models by looking for links in their bios (indicating an OnlyFans account) and checking their following (OnlyFans models often follow each other).
    • Popular models like “Sophie Ryan” are discouraged as reference models due to being “way too popular.” The focus should be on someone who looks like a “very casual girl” with “next door girl type of photos.”
    • Selecting Photos for Face Swapping: Choose 20 photos of the reference model where she looks consistent. Vary the angles (front, side, back). Avoid photos with significant variations in hair or makeup.
    • The guide details how to copy the Instagram link of the reference model’s photo and use the “face swap” feature in Picasso, activating the previously created AI face as the default. This process needs to be done for all 20 chosen photos.
    • Downloading stories and highlights from the reference model’s Instagram profile is suggested to obtain the necessary 20 photos.
    • Refining the AI Model:Checking the face-swapped images for unnatural features (e.g., eyes looking sideways) is crucial.
    • The website PhotoEditor.Pho.to is recommended for making small corrections, such as changing eye color.
    • Training the AI Influencer in Picasso: After preparing 20 face-swapped images, users can go to the “AI image generator” in Picasso, click “create influencer,” enter a name, and upload the 20 pictures. This training process takes 20-30 minutes.
    • Generating Content with the Trained AI: Once trained, users can generate new images by selecting their AI influencer (e.g., “Chloe” or “Emma”) and providing a prompt (e.g., “photo of Chloe in Paris”). The AI will generate images of the trained model in the specified setting.
    • It’s important to be cautious and check generated content for inconsistencies like extra fingers.
    • The “upscale” option can be used on generated images as well to enhance realism.
    • The guide mentions presets for generating “unlimited X content” (adult content), such as “ultra realistic with an ice cream” and “ultra realistic this,” which relate to suggestive scenarios. These details are further elaborated in a private “AI bot community system.”
    • Creating AI Videos: The guide briefly mentions using an “AI Video Generator” and prepared AI pictures to create short videos suitable for platforms like Reels and Stories. Face swapping can also be applied to video content.
    1. Attracting Wealthy and Engaged Customers (Avoiding the “Broke Student” Problem):
    • The core strategy shifts from chasing general views and likes to targeting “high net worth men who actually spend money.”
    • The guide introduces “Mark,” who achieved success by targeting wealthy men instead of focusing on broad viral reach. His first big sale was $300 overnight after adopting this approach.
    • The goal is to attract “customers very qualified people” and avoid the trap of “1 million views and generate zero” sales.
    1. The “Warm Up” Process for Instagram and Threads:
    • This is a critical multi-day process designed to signal to the Instagram algorithm the type of content and audience the AI influencer aims to attract, thereby avoiding bans and shadowbanning.
    • Day 1: Create a new Gmail account (not Proton or Yahoo) on a phone. Download Instagram and create a new account using this new Gmail. Scroll the feed for 15 minutes, only watching content of “sexy girls” and “oaf models.” Use the search button to find accounts like “Sophie Rain” but only watch their content, do not follow or react. On the feed, only watch similar sexy content. If you see a relevant Reel, click the three dots and select “interested.” Set a profile picture of the AI influencer and choose a username that sounds like a real person’s name with an adult-related abbreviation (e.g., “Vanessa.AdultMRT”).
    • Day 2: Scroll for 15 minutes. Follow 5 sexy girls (content creators in the same niche). Like some of their sexy Reels (not too many). Look at some of their stories (no reactions).
    • Day 3: Scroll for 15 minutes. Follow 5 more sexy girls. Like some sexy Reels. Reply to some stories (e.g., with a heart emoji).
    • Day 4: Repeat Day 3. Begin very slowly to follow and unfollow “horny guys” who are likely to be the target demographic (40+ years old, not young students). Find these profiles by looking at the comment sections of popular models. Follow/unfollow about 10 such guys during the day.
    • Day 5: Repeat Day 4. Begin posting one Reel per day. Also, start posting one story per day (very slowly).
    • Day 8: Begin posting one IG post per day.
    • Friends (Threads): Create a Friends (Threads) account only on Day 5 of the Instagram account creation, doing it from within the Instagram app for a potential boost.
    • Week 1 (Friends): Maximum of five interactions per day: follow five target guys (40+), post one thread per day, comment on 10 viral threads (sniping for visibility by leaving provocative comments and AI influencer photos).
    • Week 2 (Friends): Increase interactions to 10 per day (double Week 1).
    • Week 3 (Friends): Triple interactions to 30 viral thread snipings, three threads per day, and 15 follows/unfollows.
    • Week 4 (Friends): Increase interactions further.
    • The warm-up process is crucial to make Instagram and Threads understand the account’s niche and target audience, leading to higher engagement from the right people and avoiding being flagged as spam or shown to irrelevant audiences.
    1. Creating Engaging Content that Converts (Reels and Threads):
    • The guide emphasizes that simply posting beautiful content that goes viral is insufficient for generating sales. Content needs a “hook” and a “call to action” specifically targeting the desired demographic (40+ year old men).
    • Reels Strategies:Face Swap Content Example: Post a Reel (e.g., using a Bella Hadid clip with face swap) but add text with a hook directed at older men (e.g., “Old man where are you?”) to provoke reactions and comments. This increased engagement signals to Instagram that the content is good and should be shown to more people in the target audience.
    • Call to Actions in Reels: Can be placed as text in the Reel or as a pinned comment (e.g., “Send me your application in DM only if you’re over 40 years old,” “Send me a DM to see my secret pic only if you’re over 35 years old”). This encourages direct engagement and leads.
    • 100% AI Generated Video Example: Use a trendy music track with an AI-generated video of the influencer and add a hook and call to action (e.g., “I can show you my surprise outfit for our next date by DMS”). The goal is to make guys feel invested and send DMs.
    • Trend Following: Joining a group that shares daily viral trends for AI influencers is recommended to automate content creation and ensure virality and reach to qualified people.
    • Threads Strategies:Friends is not for short-form scrolling but for reacting to other people’s posts and sharing opinions.
    • The main goal of Threads is to drive traffic to the main Instagram account.
    • Share beautiful photos and ask open questions or create debates to encourage engagement.
    • Example thread: “Where are the singles feel like everyone [is] for a good relationship except me and you.” The call to action is to invite discussion on Instagram (“can discuss on my IG”).
    • Thread Sniping: Commenting on viral threads with shocking or provocative comments and AI influencer photos to steal visibility and attract followers.
    • Consistent engagement on relevant threads, especially in the initial stages, can lead to significant follower growth.
    1. Monetization Strategy (Beyond OnlyFans):
    • The guide explicitly states that putting an AI influencer on OnlyFans is “impossible” due to the platform’s verification requirements (requiring a live video). It warns against believing “gurus” showing OnlyFans results for AI models.
    • Fanmail is also cautioned against due to the risk of funds being frozen if fans complain about the AI nature of the content.
    • The Recommended Platform: Uncov (Specifically, a VIP Account): This is presented as the best AI-friendly platform where bans are virtually impossible with a VIP account.
    • Creating a VIP Uncov Account: The guide provides a step-by-step process:
    • Use the provided link.
    • Connect with Google.
    • Enter real personal information (for payment withdrawal and verification – customers won’t see this).
    • Use a fake girl name for the username (can be slightly more suggestive here, e.g., “Aubrey Sweet”).
    • Indicate you are a content creator/model (amateur).
    • Initially, link any Instagram account (can be changed later).
    • Upload a profile picture.
    • Declare “I am an AI.”
    • Confirm being over 18.
    • Choose USD as the payment currency for targeting the US market.
    • Set a subscription price (recommended $5-$7 initially).
    • Write a short description.
    • Verify the account via email.
    • Post a public photo.
    • Upload content (soft content for the feed).
    • Set up exclusive content (blurred for non-subscribers) to incentivize subscriptions.
    • Verify bank details and ID/passport for payouts (can take 24-48 hours).
    • Content Strategy on Uncov:Post soft content (bikini, lingerie) on the main feed.
    • Keep NSFW content for private sales.
    • Use collections to organize content.
    • Write enticing descriptions for blurred exclusive content.
    1. Sales and Chatting Techniques on Uncov:
    • The guide emphasizes that the subscription fee alone won’t generate significant income; the real money is in private content sales through direct chatting.
    • It shares a personal anecdote of making $276 in one night with a single customer through effective chatting and sales.
    • The Art of Chatting: Focus on building relationships and emotional connection, not just selling content. Fans are looking for a “girlfriend experience.”
    • Step 1: Qualification: Quickly identify time-wasters by asking key questions in order:
    • Location (filter for higher-income countries).
    • Job (determine purchasing power indirectly).
    • Age (prioritize 40+).
    • Subtly introduce a “side hustle” (e.g., waitress with a small side gig for extra money) to gauge interest and justify sending paid content (e.g., to pay for studies). Portray an innocent and slightly naive persona.
    • Step 2: The Girlfriend Experience: Build a connection by learning about his passions and interests. Gradually steer the conversation towards intimacy using the “push and pull” technique (suggestive hints followed by casual conversation). Allow him to escalate the topic naturally. Time the sales appropriately (don’t push if he’s busy). Be prompt in responses (delays can lose sales).
    • Step 3: The Sales Window (within 1 hour of identifying a ready buyer):Personalize the chat based on his preferences.
    • Introduce media in stages: start with a soft, free teaser (“Do you like this? Would you like to see me more?”).
    • Send the VIP Uncov account link.
    • Adjust pricing based on his profile but maintain a staged approach to increase prices gradually.
    • Use sensory descriptions to heighten arousal.
    • Create suspense (“Wait for me, don’t come too soon, let’s play a game”).
    • If he refuses, understand the hesitation and adapt.
    • Techniques to Increase Sales:Anti-Selling: Position yourself as indifferent to the sale to create desire (“I’m not sure if I should send this, I’m quite shy”).
    • Scarcity: Make him feel special (“I don’t usually do this, but I feel a special connection with you”).
    • Good Copywriting (Storytelling): Use proper spelling, punctuation, and tone to make him feel unique.
    • Labeling After a Sale: Reinforce his confidence and masculinity (“You’re really daring, I admire that”).
    • Handling Objections: Respond positively (“Yes, but…”) and find solutions.
    • Top Mistakes to Avoid:Never promise a real-life meeting (play the “maybe someday” game).
    • Avoid conflict over price (respond with emotional disappointment).
    • Using Audio Messages: Tools like Elephant Labs can be used to send audio messages to convey emotion.
    • Practice is key to mastering chatting and converting effectively.
    1. Optimizing Social Media Profiles for Conversion (Instagram Example):
    • Username: Real first name, fake family name (shortened).
    • Bio: Include age, a relatable detail (e.g., Astro sign), and a student persona (as a relatable argument for needing extra income). Avoid overtly sexual or cliché descriptions.
    • Feed Page: Curate a natural-looking feed that tells a story and creates a relatable personality (e.g., a student who enjoys picnics, painting, the beach). Use a mix of face-swapped and 100% AI-generated content, along with some lifestyle images from platforms like Pinterest to create context. Frame moments and locations in the photos as potential date scenarios to help guys project themselves.
    • Reels: Should primarily focus on driving traffic to the profile, not reside on the feed.
    • Highlights: Limit to three:
    • One to promote the Uncov link indirectly (e.g., a link emoji and a chili pepper leading to “VIP uncov”).
    • One showcasing the AI influencer’s “passions/hobbies/lifestyle” using Pinterest content to create a persona.
    • One titled “Me” with face-swapped photos of the influencer in casual settings.
    • Stories: Use stories to build the influencer’s life and personality. Include shots where at least a part of the “body” (e.g., hand, hair) is visible for authenticity. Follow a logical narrative consistent with the persona (e.g., a girl who likes picnics would have picnic-related stories).
    • Promoting the Uncov Link in Stories: Avoid directly posting the link in the story as Instagram penalizes this. Instead, use a story with a text overlay (e.g., “Exclusive content, DM ‘go’ or ❤️”) to encourage direct messages, which can then be automated with the platform link. Alternatively, mention “link in bio” in a text overlay.
    • Close Friends Feature: Add all followers to the “Close Friends” list using a secret tool. Posting a provocative “Close Friends” story (e.g., just out of the shower with a question) at 6 PM (when guys are likely alone after work) will make them feel special and encourage DMs, leading to sales opportunities.
    1. Scaling and Growth (OFM Growth Plan and Community):
    • Once reaching $50k per month, the guide mentions a plan to hire an OnlyFans model and leverage the established AI influencer system for additional income through commissions.
    • Joining the “AI Vault” community is strongly recommended for accessing daily viral content trends, pre-made sales scripts, exclusive AI content resources, legal contracts, and peer support for faster scaling and growth.

    Key Quotes:

    • “what if you could build a AI influencer that makes money 24 hours per day attract high paying customers and never worry about getting banned sounds too good to be true right so stick with me because in this ultimate free course I’ll show you exactly how to do it legally ethically and profitably”
    • “it’s impossible to put an AI influencer on Onlyfans but we have another solution for that so stop believing people talking about AI with FM and showing you Onlyfans results because I spent months researching this and I even created an AI influencer two weeks ago on my channel and I already made more than 10K with her”
    • “most people think AI model require coding skills or expensive setups it’s completely wrong”
    • “you don’t want to create like a too pretty okay AI model because when the girl is too beautiful she won’t make a lot of money based on my experience best Profile is trying to create next door girl profile”
    • “the goal is not only to be viral getting some views because views doesn’t bring you actually sales okay and sales is money you can make 1 million views and generate zero”
    • “you have to use the best AI platform and verify the account of your AI influencer and I’m about to show you how you learn the best way to sell AI content legally and without breaking any platforms rule so the best platform if you don’t want to get banned … is actually uncov but not a regular uncov account if you manage to create a VIP one you just cannot get banned”
    • “the art of chatting is about understanding your client you need to adapt your approach to each situation to maximize earnings from your fans understand who you are interacting with to be a strong rapport and emotional proximity”
    • “knowledge or course salon won’t make you money taking action will and that’s exactly why you should take a serious look at AI Vault”

    Conclusion:

    The “AI OFM: Create a Profitable AI Model from Scratch” guide presents a comprehensive strategy for building and monetizing AI influencers, emphasizing realism, targeted audience engagement, and legal, ethical practices. It deconstructs the process into actionable steps, from initial AI creation to nuanced sales techniques, highlighting the importance of understanding platform rules and focusing on building genuine connections with potential customers. The guide positions Uncov as the preferred platform for AI content creators and strongly advocates for joining the “AI Vault” community for accelerated growth and access to valuable resources.

    Profitable AI Influencer: Building and Monetizing

    Frequently Asked Questions: Building a Profitable AI Influencer

    1. What is the core concept behind creating a profitable AI influencer? The fundamental idea is to build a hyperrealistic AI model that can attract high-paying customers and generate income 24/7 without the risks associated with real-life content creators (like getting banned on platforms). This involves legally and ethically creating AI-generated content and strategically targeting a specific, affluent audience.

    2. What are the key steps in creating the AI influencer’s visual identity? The process begins with creating a realistic face using an AI image generator like Picasso, focusing on a “next door girl” profile rather than an overly perfect one to encourage engagement. Next, a reference model is found on Instagram for the body, ensuring she has a casual look, no visible tattoos or piercings, and a lot of consistent content. Twenty similar photos of the reference model are selected, and the AI influencer’s face is then face-swapped onto these body images using a tool within Picasso. Adjustments like eye color changes and upscaling for facial detail enhancement can further refine the images. Finally, these face-swapped images are used to train an AI model of your influencer within Picasso, allowing for the generation of new content featuring the same AI persona.

    3. How can AI-generated content be created for the influencer? Once the AI model is trained, you can generate photos and short videos by providing text prompts describing the desired scene or activity (e.g., “Chloe in Paris”). The AI will then create images or videos featuring your trained AI influencer in that context. It’s recommended to generate multiple options per prompt to select the best results and to pay attention to details like unnatural features (e.g., extra fingers). Tools within the platform allow for upscaling images for better realism and even performing additional face swaps on generated content if the likeness isn’t consistent.

    4. How do you attract the right kind of (high-paying) audience for your AI influencer? The strategy focuses on attracting high-net-worth men (around 40 years old and above) who have the disposable income to spend. This involves a “warm-up” process for new Instagram and Friends (Threads) accounts, where you initially engage only with content related to your niche (e.g., “oaf girls”) to train the algorithm. You gradually start following similar accounts and engaging with their content. Importantly, you follow and unfollow profiles of older, affluent men found in the comment sections of popular accounts in your niche. This targeted approach helps Instagram and Friends show your content to the desired demographic.

    5. What kind of content should be posted on Instagram and Friends to generate sales? Instead of just posting visually appealing content, the focus should be on reels and threads with hooks and calls to action that specifically target the desired audience. For Instagram reels, add text overlays that pose questions or make statements designed to elicit responses from older men (e.g., “Old man, where are you?”). Include calls to action like “Send me your application in DM only if you’re over 40 years old” or “DM me to see my secret pic only if you’re over 35.” For Friends, post engaging photos with open-ended questions or debate-starting topics to encourage comments and then subtly redirect traffic to your Instagram profile. “Sniping” involves commenting provocatively on viral threads to gain visibility.

    6. How do you build engagement and a connection with your audience? To make the AI influencer feel more real and relatable, you need to create a persona with a backstory, hobbies, and preferences. Your Instagram feed should tell a story, showing the influencer engaging in everyday activities that a potential admirer could envision being a part of (e.g., picnics, art, relaxing at home). Use Instagram Stories to further showcase the “life” of the influencer, but avoid directly posting links in stories as it can hurt reach. Instead, use text-based calls to action in stories that encourage DMs for exclusive content or direct viewers to the link in the bio (used sparingly). Highlights should be curated to showcase the “me” (AI model pics), “passion/hobbies/lifestyle” (Pinterest images depicting activities), and a clear call to action for your sales platform.

    7. What is the recommended platform for legally selling AI-generated content without getting banned, and how does it work? The recommended platform is a VIP account on Uncov (not a regular account). Unlike OnlyFans (which requires real person verification and prohibits AI) or Fanmail (which can freeze funds due to complaints about fake models), a VIP Uncov account is designed for AI influencers and aims to be ban-proof. To create a VIP account, use the provided link, fill in your real details (for payment purposes), and create a fake girl username for your AI influencer. Set a subscription price (around $5-$7) and start posting content. Focus on posting softer, blurred exclusive content that users need to subscribe to see, while saving more explicit NSFW content for private sales. Verify your account with your real ID and bank details to receive payouts.

    8. What are the key strategies for effectively selling content through direct messaging (chatting)? Effective selling involves building relationships and understanding your clients. The process includes:

    • Qualification: Quickly identify serious buyers by asking about their location, job (indirectly gauging purchasing power), and age (targeting older demographics).
    • Girlfriend Experience: Build rapport by learning about their interests, subtly steering conversations towards intimacy using “push and pull” techniques, and being responsive.
    • Sales Window: Once interest is high, personalize the chat based on their preferences, introduce content in stages (starting with a free teaser), adjust pricing accordingly, use sensory language to heighten arousal, and handle objections with positive “yes, but” statements.
    • Utilize Sales Psychology: Employ techniques like “anti-selling” (acting indifferent), scarcity (making them feel special), and positive reinforcement after a sale to encourage repeat business.
    • Avoid Mistakes: Never promise real-life meetings and avoid arguing over price (respond with emotional disappointment instead).

    Consider using pre-made sales scripts to guide your conversations and maximize conversions. Also, adding all your followers to your “close friends” list and posting a provoking story there can drive significant engagement and DMs, leading to sales.

    Profitable AI Influencer Creation and Monetization

    Based on the information in the source “01.pdf”, creating a profitable AI influencer involves a multi-step process encompassing model generation, content creation, audience attraction, and strategic monetization.

    1. AI Model Creation:

    • The first step is to create the face of your AI influencer using an AI image generator like Picasso. It’s recommended to choose the “ultra realistic” option and a square aspect ratio suitable for social media. Generating multiple images (e.g., three) per prompt is advised to account for AI imperfections. The prompt should be detailed, but even a simple prompt allows the AI to make creative choices like outfits. It’s suggested to aim for a “next door girl” profile rather than an overly beautiful one, as this can lead to better engagement. You can refine the face by using the “upscale” feature to add more realistic details if it appears too flat.
    • Next, you need to create the body of your AI influencer. The source suggests using Instagram to find a reference model, ideally someone who looks casual, doesn’t have tattoos or piercings, and has a lot of existing content. It’s important to find models who likely have OnlyFans accounts (indicated by a link in their bio) as they tend to have more suitable content.
    • Once you have a reference model, the key is face swapping. Using Picasso’s face swap feature, you apply the generated face to images of the reference model’s body. You need to find around 20 consistent photos of the reference model from various angles (front, back, profile) to help the AI create a good clone. Pay close attention to the consistency of the reference photos (e.g., similar hair and makeup). You can download content from the reference model’s Instagram feed, reels, and stories.
    • After face swapping, you might need to refine the images. Tools like upscalers can add detail to the face, making it look more realistic. You can also use photo editing websites like Phonto to make small corrections, such as changing eye color across all the photos to ensure consistency in your AI influencer’s appearance.
    • Finally, you train your AI influencer within Picasso by uploading the 20 prepared face-swapped images and giving your model a name. This process typically takes 20 to 30 minutes. Once trained, you can generate new images and videos of your AI influencer by providing text prompts, and the AI should consistently reproduce the trained model.

    2. Content Generation:

    • After training, you can generate photos of your AI influencer in various scenarios by using descriptive prompts. It’s still recommended to generate multiple images per prompt to select the best results, checking for anomalies like extra fingers. You can further enhance the realism of generated images using the upscale option.
    • You can also create AI-generated videos using AI video generator tools by describing the desired content. Short videos are suitable for platforms like Reels and Stories. If the face in generated content doesn’t look consistent, you can perform another face swap.

    3. Audience Attraction:

    • The source emphasizes attracting high-paying customers, specifically men around 40 years old with disposable income, rather than just chasing broad views.
    • For Instagram, the guide outlines a specific “warm-up” process for new accounts to avoid bans and target the right audience. This includes:
    • Creating a new Gmail account and a new Instagram account from a phone using that Gmail.
    • Scrolling the feed for 15 minutes daily, only watching sexy content to train the algorithm.
    • Searching for and watching content from established creators in the niche (e.g., Sophie Rain) without following or reacting initially.
    • Utilizing the “not interested” option on irrelevant content and “suggest more posts like this” on relevant reels.
    • Setting a profile picture and a non-cringeworthy username that resembles a real name with an adult theme.
    • Gradually starting to follow (5 per day from day 2), like, and view stories of sexy creators.
    • Slowly beginning to follow and unfollow targeted “horny guys” (40+ English speakers found in the comments of popular accounts) from day 4.
    • Only posting one reel per day from day 5, one IG post per day from day 8, and one story per day from day 5.
    • For Threads, the source recommends creating an account via Instagram after day 5 of the Instagram warm-up. The strategy involves:
    • Starting with a low number of interactions (5 per day in week 1).
    • Following targeted guys, posting one thread per day, and commenting on 10 viral threads (“sniping”). The goal of Threads is to drive traffic to your Instagram.
    • Gradually increasing interactions in subsequent weeks.

    4. Monetization:

    • The source advises against using OnlyFans for AI influencers due to difficulties with verification and the risk of bans. Fanmail is also cautioned against due to potential fund freezes from complaints about fake content.
    • The recommended platform is Uncov, specifically a VIP account, which is considered AI-friendly and less prone to bans. The source provides a link to create a VIP Uncov account.
    • When setting up Uncov, use your real information for payment and ID verification but a fake female username for your AI influencer. Set a subscription price (e.g., $5-$7).
    • Content strategy on Uncov: Post soft, non-explicit content (bikini/lingerie) on the main feed as “exclusive content” that is blurred for non-subscribers, encouraging subscriptions. More explicit NSFW content should be sold through private sales/DMs.
    • Direct Sales via Chat: The source emphasizes that significant income comes from direct interaction and sales in DMs, not just subscription fees. Key steps in successful chatting for conversion include:
    • Qualification: Quickly identify serious buyers by asking about location, job, and age.
    • Building Rapport (“Girlfriend Experience”): Learn about their interests and gradually steer the conversation towards intimacy using push-and-pull techniques.
    • Timing the Sell: Don’t rush the sale; be prompt in responses when the fan is ready.
    • Personalization: Tailor the chatting experience to their preferences.
    • Staged Media: Start with a soft, free teaser before sending the Uncov link and gradually increasing prices.
    • Sensory Descriptions: Use vivid language to heighten arousal.
    • Employing Sales Tactics: Utilize anti-selling (acting indifferent), scarcity (making them feel special), and good copywriting (storytelling).
    • Labeling: Reinforce their confidence after a purchase.
    • Handling Objections: Respond positively and find solutions.
    • Avoiding Mistakes: Never promise real-life meetings and avoid arguing about price.
    • The source also suggests a powerful technique to boost views on promotional stories: add all followers to your “close friends” list (using a potential tool for automation) and then post exclusive, enticing content to this list, leading to more engagement and DMs.
    • Promote your Uncov link strategically through a dedicated highlight on your Instagram profile, using intriguing text and emojis rather than direct calls to action in the bio. You can also promote it subtly in stories by asking for DMs in response to a teaser, then sending the link in the DM.

    By following these steps, you can create an AI influencer, attract a targeted audience, and monetize your content effectively through a combination of platform subscriptions and direct sales. The source highlights that success requires consistent effort, strategic engagement, and strong sales skills.

    Creating AI Influencers: Face Swapping Techniques

    Based on the information in the source “01.pdf”, face swapping is a key technique used in the creation of an AI influencer. The process involves taking a generated AI face and applying it to the body of a reference model. Here’s a breakdown of the steps involved:

    • Generating the AI Face: The first step is to create the face of your AI influencer using an AI image generator like Picasso. It’s recommended to use the “ultra realistic” option and a square aspect ratio. You can generate multiple images from a prompt to have more options.
    • Finding a Reference Model for the Body: The source suggests using Instagram to find a reference model. Ideal candidates are those who look casual, don’t have tattoos or piercings, and have a lot of existing content. A link in their bio often indicates they have an OnlyFans account, suggesting they have suitable content. It’s advised to find someone who isn’t overly popular (“next door girl” profile) and has consistent photos.
    • Acquiring Content of the Reference Model: Once a suitable reference model is found, you need to download content of them, including feed posts, reels, and stories. Aim for around 20 consistent photos from various angles (front, back, profile) to help the AI create a good clone. Consistency in appearance (hair, makeup) across these photos is important.
    • Performing the Face Swap: Using the face swap feature in Picasso, you apply the generated AI face to the downloaded images of the reference model’s body. You can copy the link of an Instagram photo and paste it into the face swap tool alongside your saved AI face. You can either do this one by one for all 20 photos or potentially use a bulk face swap option if available.
    • Refining the Face-Swapped Images: After the initial face swap, the results might need refinement.
    • Upscaling: If a face looks flat or lacks detail, you can use an upscaler tool to add more realistic details. This can significantly enhance the realism of the face.
    • Corrections: Photo editing websites like Phonto can be used for small corrections, such as changing eye color across all the photos to ensure consistency.
    • Training the AI Influencer: Finally, you train your AI influencer within Picasso by uploading the prepared 20 face-swapped images and giving your model a name. This process takes approximately 20 to 30 minutes. Once trained, the AI should consistently reproduce the trained model when generating new content from text prompts. If the face in newly generated content doesn’t look consistent, you can perform another face swap. Even if a generated image is good but has minor flaws (like an eye being misplaced), you can use face swap again for correction.

    The goal of face swapping is to combine a unique and potentially appealing AI-generated face with a realistic and varied body type from a reference model who already has a substantial amount of content suitable for the intended purpose. This allows for the creation of an AI influencer with a consistent appearance across different poses and scenarios.

    Attracting Paying Customers for an AI Influencer

    Based on the information in the source “01.pdf”, attracting customers for an AI influencer involves specific strategies tailored to different social media platforms, with a focus on reaching high-paying individuals, particularly men around 40 years old with disposable income. The goal is to attract qualified customers who will spend money, rather than just generating a high number of views.

    Here are the customer attraction strategies discussed in the source:

    1. Instagram “Warm-up” Process:

    The source outlines a detailed “warm-up” process for new Instagram accounts to avoid bans, get the algorithm to show the content to the right audience, and ultimately attract potential customers. This process involves the following steps:

    • Creating a New Account: Use a new Gmail account created on your phone to set up a new Instagram account.
    • Algorithm Training (Day 1-4):Scroll the feed for 15 minutes daily, watching only sexy content to train the algorithm.
    • Actively search for and watch content from established creators in the niche (e.g., Sophie Rain) without initially following or reacting.
    • Utilize the “not interested” option on irrelevant content and “suggest more posts like this” on relevant reels.
    • Profile Setup: Set a profile picture of your AI influencer and a non-cringeworthy username that resembles a real name with an adult theme (e.g., “Vanessa_mrt”).
    • Gradual Engagement (Day 2 onwards):Slowly start following 5 sexy girls per day and liking some of their reels.
    • Look at their stories without reacting initially.
    • From day 4, begin following and unfollowing targeted “horny guys” (40+ English speakers with disposable income) found in the comments of popular accounts (around 10 per day initially).
    • Content Posting (Day 5 onwards):Start posting one reel per day from day 5.
    • Begin posting one story per day from day 5.
    • Start posting one IG post per day from day 8.

    The source emphasizes that following these steps precisely is crucial to avoid shadow bans, restrictions, and to ensure Instagram shows your content to the desired demographic.

    2. Threads Strategy:

    For Threads, the source recommends creating an account via Instagram after day 5 of the Instagram warm-up. The initial strategy involves:

    • Limited Interactions (Week 1): Engage in a maximum of five interactions per day. This includes:
    • Following five targeted guys (40+ year olds).
    • Posting one thread per day.
    • Commenting on 10 viral threads (“sniping”) to gain visibility. The goal of Threads at this stage is to drive traffic to your Instagram.
    • Gradual Increase in Interactions: Increase the number of interactions in subsequent weeks (10 per day in week 2, 30 in week 3, and even more in week 4) to avoid being flagged as a bot.

    3. Content Creation for Engagement:

    The source stresses that simply posting beautiful content is not enough to attract paying customers. The content strategy should include:

    • Reels with Hooks and Calls to Action: Add text to reels with a hook to grab attention and a call to action that specifically targets the desired audience (e.g., “Old man where are you?”) and encourages interaction (e.g., “Send me your application in DM only if you’re over 40 years old”).
    • Directing to DMs: Encourage viewers to send DMs for “secret pics” or to answer questions, which opens a channel for direct interaction and potential sales.
    • Adding Personality to the AI Influencer: Create a story and personality for your AI influencer to build a bond with the audience. This includes thinking about her hobbies, passions, and creating a life that resonates with potential customers.
    • Strategic Use of Feed Posts: Curate the Instagram feed with images that create a certain vibe and allow potential customers to imagine dating the AI influencer (e.g., picnic photos, coffee shop pictures).
    • Intriguing Story Highlights: Use only three story highlights: one to promote your Uncov link, one showcasing the AI’s “passions/hobbies/lifestyle,” and a third with “me” pics. Promote the Uncov link subtly through intriguing text and emojis rather than direct calls to action.

    4. Leveraging “Close Friends” Feature:

    A powerful technique mentioned is to add all followers to your “close friends” list using a potential automation tool. Posting exclusive, enticing content to this list ensures that your content is prioritized in their feeds, leading to more engagement and DMs. This creates a feeling of special connection and encourages interaction.

    5. Promoting the Monetization Platform (Uncov):

    • Promote your Uncov VIP account link strategically through a dedicated highlight on your Instagram profile, using intriguing text and emojis.
    • Subtly promote the link in stories by asking for DMs in response to a teaser, then sending the link in the DM. Avoid directly posting the link in stories as Instagram’s algorithm dislikes users leaving the platform.

    By implementing these multi-faceted strategies, the source suggests you can effectively attract a targeted audience of high-paying customers and build a profitable AI influencer.

    Monetizing AI Influencers: Strategies and Platforms

    Based on the information in the source “01.pdf”, there are several methods discussed for monetizing the content of an AI influencer. The primary recommended platform for direct monetization is Uncov VIP, as traditional platforms like OnlyFans have verification hurdles that AI influencers cannot overcome, and Fanmail carries risks of account freezes.

    Here are the content monetization methods detailed in the source:

    • Subscription-based access to exclusive content on Uncov VIP: The core strategy involves creating a VIP account on Uncov and offering exclusive, often blurred or teased, content that fans can access by paying a subscription fee. The suggested initial price range is between $5 to $7. The more exclusive content available behind the paywall, the higher the likelihood of fans subscribing.
    • Direct sales of individual content through chat: Beyond the subscription, significant income can be generated through direct interactions in DMs on platforms like Instagram. By building a rapport with fans (the “girlfriend experience”) and understanding their preferences, you can offer and sell personalized photos and videos at varying price points. The source provides an example of a first customer spending $276 through such direct sales in a short period.
    • Leveraging the “Close Friends” feature on Instagram: By adding followers to a “Close Friends” list (potentially through automation), you can share exclusive, enticing content that is prioritized in their feeds. This fosters a sense of special connection and encourages them to engage via DMs, opening opportunities for sales on Uncov VIP.
    • Strategic promotion of the Uncov VIP link: While direct links in Instagram stories are discouraged due to algorithm penalties, the source advises using intriguing text and emojis in story highlights and in direct messages to guide interested fans to the Uncov VIP platform. Asking for DMs in response to teasers in stories and then sharing the link in the private message is also suggested.
    • Building relationships and employing sales techniques in DMs: The “art of chatting” is crucial for conversion. This involves:
    • Qualifying potential buyers by asking about their location, job, and age to identify those with disposable income.
    • Creating emotional proximity by learning about their interests and subtly introducing the AI influencer’s “side hustle”.
    • Using the “girlfriend experience” to build a connection and steer conversations towards intimacy.
    • Timing the sale appropriately and personalizing the experience based on the fan’s preferences.
    • Employing sales tactics like “anti-selling,” creating a sense of scarcity, and using compelling copywriting.
    • Handling objections positively.
    • Potential for affiliate income through Uncov: The source mentions that creators on VIP Uncov can earn 10% commission on all spending by their referred fans on the entire platform, offering a passive income stream.
    • Future scaling through real OnlyFans models (OFM Growth Plan): Once the AI influencer is generating significant income (e.g., $50k per month), the guide suggests using the established system to hire real OnlyFans models and take a commission on their earnings, creating an additional income stream.

    The source emphasizes that simply attracting views is insufficient; the focus should be on converting qualified individuals into paying customers through these various monetization strategies. The combination of subscription fees and direct sales of exclusive content on a platform designed for this type of content (Uncov VIP), coupled with effective engagement and sales techniques on social media, forms the core of the monetization strategy outlined.

    Instagram Growth Tactics for Monetizing an AI Influencer

    Based on the information in the source “01.pdf”, several key Instagram growth tactics are discussed, primarily geared towards attracting high-paying customers, particularly men around 40 years old with disposable income, for an AI influencer. The goal is to cultivate a targeted audience that will engage and ultimately spend money on content.

    Here are the Instagram growth tactics detailed in the source:

    • The “Warm-up” Process for New Accounts: This is a crucial multi-day strategy designed to train the Instagram algorithm and avoid bans, ensuring content is shown to the right audience. It involves:
    • Creating a new Gmail account on your phone specifically for the new Instagram account.
    • Algorithm Training (Days 1-4): Scrolling the feed for 15 minutes daily, watching only sexy content to signal the desired niche to Instagram. Actively searching for and watching content from established creators in the niche without initially following or reacting. Utilizing the “not interested” option on irrelevant content and “suggest more posts like this” on relevant reels.
    • Profile Setup: Using a profile picture of the AI influencer and a non-cringeworthy username that resembles a real name with an adult theme (e.g., “Vanessa_mrt”).
    • Gradual Engagement (Day 2 onwards): Slowly starting to follow 5 sexy girls per day and liking some of their reels. Looking at their stories without reacting initially. From day 4, beginning to follow and unfollow targeted “horny guys” (40+ English speakers with disposable income) found in the comments of popular accounts (around 10 per day initially).
    • Content Posting (Day 5 onwards): Starting to post one reel per day from day 5. Beginning to post one story per day from day 5. Starting to post one IG post per day from day 8. The source emphasizes the importance of following these steps precisely to avoid shadow bans and restrictions and to effectively target the desired demographic.
    • Creating Engaging Reels with a Purpose: Simply posting beautiful content is insufficient. Reels should be designed to attract the target audience and encourage interaction. This includes:
    • Adding text with a hook to grab attention and a call to action specifically for the desired demographic (e.g., “Old man where are you?”).
    • Encouraging DMs for “secret pics” or to answer questions, opening a channel for direct interaction and potential sales. Examples include “Send me your application in DM only if you’re over 40 years old” or “Tell me in DM where you’ll take me for a date and I’ll show you what I’ll be wearing”.
    • Using trending music to increase visibility.
    • Curating an Appealing Feed Page: The Instagram feed should create a certain vibe and allow potential customers to imagine a connection with the AI influencer. This involves:
    • Presenting the AI influencer as a person with a life and personality, not just a model. This can include photos suggesting hobbies, interests, and everyday activities (e.g., picnics, coffee shops, art).
    • Showing moments and places that could be dates, allowing men to project themselves into those scenarios.
    • Using a consistent aesthetic that aligns with the desired image (e.g., “next door girl” profile rather than a supermodel look).
    • Strategic Use of Instagram Stories: Stories should be used to engage followers and subtly promote the monetization platform without directly linking, as Instagram’s algorithm dislikes users leaving the platform.
    • Use intriguing text and emojis to encourage DMs (e.g., “Exclusive content if you want to see it DM go or DM the emoji heart”). This allows for direct messaging of the monetization link.
    • Alternatively, use text to tell users the link is in the bio.
    • Optimizing Instagram Story Highlights: Limit the number of highlights to three key areas for better conversion:
    • One highlight to promote the Uncov VIP link using intriguing text and emojis (e.g., a chili pepper next to a link emoji) rather than direct calls to action.
    • One highlight showcasing the AI’s passions, hobbies, and lifestyle to build personality.
    • A third highlight with “me” pics of the AI influencer.
    • Leveraging the “Close Friends” Feature: This is described as a very powerful technique.
    • Add all followers to the “close friends” list using a potential automation tool.
    • Post exclusive, enticing content to this list, ensuring it’s prioritized in followers’ feeds.
    • This creates a feeling of special connection and encourages DMs, leading to more engagement and potential sales. A suggested tactic is to post a provoking story (e.g., “I am pretty without makeup or do you prefer with it?”) to generate reactions and start conversations.
    • Driving Traffic from Threads (Created via Instagram): Create a Threads account after day 5 of the Instagram warm-up. The initial strategy involves:
    • Limited Interactions (Week 1): A maximum of five interactions per day, including following five targeted guys, posting one thread, and commenting on 10 viral threads (“sniping”) to gain visibility.
    • The primary goal of Threads at this stage is to drive traffic to your Instagram, not to sell content directly on Threads. Threads should share photos and ask open questions to encourage engagement and then direct users to discuss further on Instagram.
    • Consistency and Understanding the Algorithm:
    • Follow the “warm-up” process to signal the niche to Instagram and avoid being flagged.
    • Engage with content in the desired niche to refine the algorithm’s understanding of the account.
    • Focus on attracting genuine engagement from the target audience, as high engagement rates with the right demographic signal quality to Instagram.

    By implementing these tactics, the source suggests a comprehensive approach to growing an Instagram account that effectively attracts the desired customer base for an AI influencer.

    AI OFM: Create a Profitable AI Model from Scratch (Free Ultimate Guide)

    The Original Text

    what if you could build a AI influencer that makes money 24 hours per day attract high paying customers and never worry about getting banned sounds too good to be true right so stick with me because in this ultimate free course I’ll show you exactly how to do it legally ethically and profitably welcome to this game changing 1 hour course where you will learn how to create a hyper realistic AI model and use face swap the right way how to attract wealthy engage customers instead of broke students and how to sell AI generating content without getting banned on platforms like Onlyfans it’s impossible to put an AI influencer on Onlyfans but we have another solution for that so stop believing people talking about AI with FM and showing you Onlyfans results because I spent months researching this and I even created an AI influencer two weeks ago on my channel and I already made more than 10K with her and by the end of this video you have a complete roadmap to start making money with AI but before we dive in let me tell you a quick story I know someone let’s call him Jake to spend months perfecting a Naomi model he was on track to make six figures but one morning he woke up to find everything was gone banned account terminated no warning and his income totally wiped out overnight that’s when I realized if you don’t know the rules you’re playing with fire that’s why today I’m giving you the insider knowledge to avoid Jake’s mistakes and with something that lasts for the long term so most people think AI model require coding skills or expensive setups it’s completely wrong a creator I met was desperate to make money with AI he followed the hype downloaded a random face swap tool and thought he was set but what happened his video got flagged his model looked fake and instead of making money he ended up with comments like AI generated lol embarrassing right I will show you the only tool I’m using and you learn the easiest way to generate a photorealistic AI personal legally and professionally so right before being able to create multiple content of your AI influencer like you can see on my screen we have to go through the first step and what’s the first step before creating the whole body we have to begin from somewhere right we need to create first the face of your AI influencer and I will show you how it works we just want to go on the website Picasso if you want I have an affiliate link which gives you multiple free credits so you can try it first then I want you to go on AI image generator we’ll create together the face of your AI influencer you will see multiple options so I want you to choose ultra realistic one can choose an aspect ratio we never want to use landscape ones okay because we work with social medias and there are no landscape content on social media so just for the face I will choose square and then for the number of images what is that number when you will enter one prompt Picasso will show you multiple results so if you want every time you generate a prompt to have 3 4 or two results you just have to choose that number personally I recommend you to choose 3 because AI is not always perfect okay sometimes it makes mistake or like very awkward fingers so every time I want to generate free pictures at least so I can be sure that on the free pictures I will have one great result and then just enter prompt so that’s a prompt I like to use I will explain to you later why but basically you can just like copy or inspire from that prompt and right there there’s like the seed number we don’t want to touch it because my prompt is very very detailed I want to put realistic or realistic plus let’s say that my prompt was only this I can choose creative or creative plus because my prompt is very simple this AI will make some personal choices for example I didn’t detail like her outfits he will choose her outfit and make some propositions but because I like to work with a very very detailed prompt and then you just have to click right there generate just wait a few seconds okay so I did it three times to have multiple pictures to show you so let’s check it together look at that very very realistic right you don’t want to create like a too pretty okay AI model because when the girl is too beautiful she won’t make a lot of money based on my experience best Profile is trying to create next door girl profile I always work with that type of profile I have very good results I have all of my strategies with this type of profile that’s basically what I recommend you if you want to follow my well so now just check some results okay my favorite one is this one let’s do another generation to get like even more choices you know what I like this one she looks not too beautiful people will get attached okay when she’s too beautiful too high ticket some guys they don’t feel very confident talking to the girl and if you think that the face is a bit too flat you can click on up scale okay so now that I have like my AI face I just want to go like on my new face right there and then we’ll add the default face of our AI influencer so just click on it click there perfect okay so now that we have the face we want to create the body so there’s an amazing feature in Pikaso to train your AI influencer so after look you’ll be able to generate multiple times the same person for example her for example her or she’s at the coffee shop okay if you want to do that we need to upload 20 pictures so he can create a clone so how to do it I will show you right now we use Instagram to find a reference model for the body so my technique is just go on Instagram and for example like you have to find a Onifun model and there are very specific criteria you need for your reference model you don’t want her to have tattoos you want her to have a very casual body don’t want her to have some piercing on the body and then you want her to have a lot a lot of content so how to recognize that a girl has an onlyfan basically you will find in her bio a link it means that she has an onlyfan account and basically what I want you to do is like go on her following okay like that and try to find some other girls okay so let’s say her click on her okay she also have a link in the bio so she has an only fan so that’s great she has like a lot of content that’s cool she’s very active it’s really important also and she has a lot of stories but like look the problem is she has some tattoos and that would be very difficult for the AI to reproduce so just continue like that and you try to find other girls because only fan girls follow only fan girls she’s promoting and she’s very active but but she doesn’t have like a lot of stories I will continue we want her to have a lot of pictures on her feed a lot of reels it’s missing a bit some stories so I will just continue okay perfect I think I found like my um reference model first she’s very active means that she’s active so can we continue posting some content even for the next month she has like a link in the bio she’s not too popular okay like you don’t want to choose like a girl like Sophie Ryan okay Sophie Ryan is way too popular and then look she has a very very good feed and I like her feed because she doesn’t look like a supermodel she looks like a very casual girl she really has like this next door girl type of photos her photo are not too professional and that’s what I like that’s what I want she has like a lot of uh contents like that and also if I go look she has a lot a lot of reels and her reels have a lot of views so it means that because her reels have a lot of views I will have a high chance for my air influencer to have a lot of views if I inspire and use her reels and also look she has a lot a lot of photos and a lot of stories that’s really really cool and you will understand why by staying on this video okay so now what we want to do is choose 20 photos so how to choose the photo something which is very important if you want the clone of your influencer to works very well you have to choose 20 pictures of her where she looks the same on the 20 pictures okay like sometimes you know like the girls they put like they have different faces like they put some makeup we really want to have consistent 20 similar photos so the AI would be able to train and create an AI in front of us so we choose 20 pictures among the 20 photos you want to try to find some photos of like her profile from the front of her body from behind her like everything so really like the AI can create like something which is really really good so now I will take the time to choose the picture and to show you okay but like for example like what you don’t want to do like look on this photo her hair is very very curly okay if you are like making a comparison to this photo so I don’t want to choose this photo otherwise the AI will not understand that it’s the same person and he will get confused also like her eyes look a bit more like dark on this one so really pay attention to the pictures you’re choosing but we don’t want to make a clone of this girl right so what we do is we’ll face swap her face okay just like to inspire from her body so how to do that you click here you click like on the copy the link sorry it’s written in French and then you go back on Picasso okay and you go on face swap right there activate your default face okay so remember it’s the picture we created before the face and then right there you can just copy paste the link and then you just have to click on large face swap oh what you can do is like find first your 20 pictures okay by putting the link each time and then you will launch the Facebook for every of the 20 pictures so right now there’s not enough good photos of me like on the feed so what I will do is like I will download some stories okay because she has like a lot of pictures of her on her stories so um just go on like Instagram and put like the link of her profile and you will see that I can see all the post and just click on it to download okay so same things for story highlights and reels so I will go on highlights I just click on it and look I just have everything so now I just have to choose so I like this one that’s a cool photo or so of her okay so now that I have like 20 pictures of her don’t forget to activate this one and just click on large face swap so we do the face swap on like all content so that’s really really cool okay so now the face swap is finished if you don’t want like to download like one by one by one look you can just go there and click on book download so even if you make like 100 and you waited like a I don’t know 20 minutes for 100 content can just like click on it and it will download everything it will create a files on your computer and it will send you an email so you just have to check your email and download the file okay I’m taking my files okay so now you might think okay that’s great everything is perfect no you have to check like this one doesn’t really looks really really great this one also look it’s a bit flat if a photo like is a bit like flat on the face okay what you can do is like you go to upscaler right there okay and I will show you the difference go there what this option will do is it will adds much more details on the face so the picture will feel much much more realistic I just wanted to show you like um the option of the of the Obscura okay so basically that was another photo uh and look the face is a bit too flat right uh looks a bit like AI and look with that much much more details crazy right so that’s really really good I did it with like um this content also but that’s so much better so what we want to do now we really want to prepare in a great way do 20 pictures there’s like another thing you can do if you want to like make some small correction okay we can go on this website so it’s called photo just click here okay upload a picture so let’s say that now I have this picture right so if for example you don’t want your AI influencer to have like brown eyes and you want her to have like green or blue eyes or whatever color you want red I don’t know I can go on eye tint for example if I want her to have green eyes just do exactly the same and basically you can just do that on like every of your pictures to make sure that you will have after an influencer with green eyes so now just take the time to make every rectification with all of the photos so what I will do now is I will check if on my photos there are some weird things because sometimes like the the eye with the face of goes on the side and like it’s very not natural okay so now that I’ve prepared all the 20 pictures to create your AI model okay and to train the AI get back to Picasso go on AI image generator so I already have like a few AI okay but like just go on plus create influencer enter a name Kroey and then you just have to upload the 20 pages right there so yeah basically I did everything right there and Picasso will ask you to put between 10 or 20 pictures I recommend you to put 20 always always it took so much time to do like all of these steps the better the quality of the first steps are and the better like the quality of the result you’ll get it takes usually between like 20 to 30 minutes so now you have time I will just wait a bit I will show you like how to actually create like 100% AI content and I’m talking about photos so now I will select for example Chloe let’s say that I want to make like a portrait and now I just have to describe what I want and I don’t have actually to describe how’s the girl I just have to put the name Chloe and that’s it let’s say photo of Chloe in Paris I didn’t put like a very precise uh prompt it just like very quickly show you um so yeah sometimes it makes like really really weird things that’s why I told you like every time to make like three to choose three pictures per prompt okay but like still look at the results in this one we have like Chloe in her bedroom but look at the restaurant this one is nice this one is nice and this one is bad yeah look at this one I went to like Louis Vuitton Paris and I had it even on this one and that’s cool um just be very cautious uh when you generate like some contents to check like if there’s not like 6 fingers or things like that okay they are very small details but you have to pay attention if you just want to make a small difference let’s say for example like yeah I just want like her dress to be red copy the prompt also this time you can copy Tuck the seed just copy the seed and then say like that’s a blue one and because you will like copy like the seed you will get very similar results there are some really results but like this one looks great and don’t forget guys because now it’s 100% AI if you want it to look more realistic just click on it guess so let’s say this one okay uh this one I will take this one and don’t forget to put upscale if you think that the face is a bit too flat and yeah now I have a new AI influencer and look if for example like I change it and I say like a photo of Emma in Paris instead of like Chloe so the one I just created that’s my AI influencer Emma perfect I just want to show you like the power of upscale look at how real she looks wow guys the upscale options it is so so great so now basically you can make unlimited X content X pictures of this AI influencer the only thing you have to do is look there’s a preset there’s ultra realistic with like an ice cream uh ultra realistic with like a peach and big balloons Ultra realistic with ice cream is basically if you want to make some pictures with her having like a skincare treatment okay so some ice cream on her face I think and for example you can ask her like to put her tongue out and having some ice cream on her face and to enjoy it I can only show it in the community rights so we put like some example of pictures and prompts I like to use and that is the ultra realistic this it means that you can see um the little kitty and you will also how to say it the football balloons okay so you’ll be able to make unlimited X pictures with her so let’s say for example like I want to put this I will only show uh the rest in the community I cannot show everything on YouTube sorry guys guys look at that look at that isn’t it crazy this result is crazy look at this I just don’t know why like she has like a small tattoo but anyways I don’t really really care and don’t forget guys if you think that her skin is like too perfect guys now you know my favorite option upscale much more details on the skin texture crazy that’s so so crazy wow you know what I will upscale it just to show you just to show you yeah I will upscale let’s upscale guys you guys know I like to upscale yeah crazy result you know what I mean it doesn’t feel like it’s an AI it feels like it’s she’s a real person like you know like this type of photo and that’s what you should be looking for not looking for like professional photo like a model no this type of photo look look at this one oh what looks so good wait we double it okay guys just very quickly I just wanted to show you like how it looks like when you use upscale look at these details like what the wow it just looks like a real person like I want to be honest man like I know some some real girls on IG they put so much filter they looks it looks fake compared to that girl this X content upscale it’s it’s crazy I wasn’t expecting to have such like beautiful new AI influencer like that I just want to work with her like long term oh really seriously I will think about that so guys now I will show you how to create AI video okay so basically you just go to AI Video Generator prepare the good AI pictures and you just describe like what you want to see in that short video and basically we don’t need longer video okay because mainly it would be for the risk or some story so we want it to be very short if you got like some new pictures generated and you think that the face doesn’t just doesn’t looks like the same girl you can like just do another face swap on it to make sure that you have exactly the same face okay that’s totally okay even for example if you generate like over like it’s content and you have like very very good picture but like there’s like an eye going like on the side or feel like that just use the face swap again and you will get the perfect result it’s finished so let’s look at the AI generated videos that’s so so cool look look at the details look at how the dress is moving so smooth incredible so yeah that type of content I will show you just after how to make it viral like viral and bring thousands of clients okay not just making some views because I don’t care about making some views we want to post some content which brings clients okay customers if you want to create hot let’s say like very very hot like hard okay videos content of your AI influencer I’m using another app but I won’t be able to show you guys uh here I will only show it in the AI bot community system but basically I’m using that and if you want the girl to have like some very swallowing very big bananas or putting some very big bananas let’s say in the in the rabbit hole and very hardcore things you can do it okay so I will share my best prompts how I’m doing the content only in AI Vault it’s finished let’s check it yeah I think she looks a bit different no she looks a bit I feel like she has like her cheeks are more fat I don’t know uh yeah like just put like can put some good music with that no that’s so so cool so why do some AI Frances like mine generate 20 k per month while others struggle it’s about who sees your content let me introduce you to Mark he had the near influencer project worked day and night creating content but after months nothing no sale no engagement then one tweet change everything instead of chasing likes or views on social medias he targeting high net worth men who actually spend money and his first big sale $300 overnight so the first step for that is to find these guys you learn how to attract 40 years old high income men who actually spend money on your AI influencer now the goal is not only to be viral getting some views because views doesn’t bring you actually sales okay and sales is money you can make 1 million views and generate zero okay so the goal will be to attract customers very qualified people and I’m going to show you an exact process to apply with your Instagram account if you want to only have 40 years old guys who actually have the money to spend for your influencer basically you don’t want to miss one step it’s really important otherwise you will have like to begin everything from the start so how to actually get a chance for your Instagram account to not get banned not get shadow banned get viral and mainly attract the good people okay so this process is called the warm up the first thing I want you to do is to create a new Gmail it’s really important and I want you to create a Gmail not proton not how Yahoo Gmail and I want you to create it from your phone and basically you will download Instagram and create a new account from this Gmail you don’t want to use like another one you use before for another Instagram account so everything has to be new and then just create a new account with Instagram okay and the first step I want you to do for the day one is to scroll 50 minutes okay I want you to go um on the feed page and to scroll and there’s something which which is very important if you want Instagram to understand who you are and what content you want to make so basically when you’ll be scrolling you only want to watch you don’t need to like you don’t need to comment but watch okay it’s about the watch time and only watch some sexy girls content okay awesome like off models it’s really really important okay so the main goal about like scrolling is the more you will consume this type of content and the more Instagram would show you only this type of content on your feed page how does that work okay when you create your account you will have a searching button okay and you can just type your niche right there and our niche is like oaf girls right so you can for example like Enter Sophie Rain or over like already known girl in this industry and basically you want like to go on her account I don’t want you to follow her uh like or react just watch her content okay really important and then I want you to go back right there on your phone go on the feed and scroll and I want you to only watch the same type of content some girls who are making dance and a little bit sexy or a little bit hot even if they are like some other contents which are like funny or what don’t watch it okay really important for the algorithm and you can also when you see real there will be like free dots you can click on the free dots and click on interested and then you will have this message we suggest more posts like this for 30 days so that way you will get more chance of having the specific type of content so just do it 15 minutes put a profile picture of your AI influencer and also enter name username so I will show you don’t worry some good example of actually a friend or Instagram and I will set up one so we can do the same for the username you don’t want to put like little an angel or Pinky sweet or like something which is very cringe like that you want to put a username which is based uh with the farm like a name let’s say like Cloe put like a shortened version of a family name so for example let’s say for myself I want to be called like Vanessa whoa sorry guys and then you can put adult m r t you know or something like that so people think actually the username is like just a regular name and a family name it’s like a real person from the day 2 is square for 15 minutes use the same technique okay to get a better feed with better propositions and then I want you to this time follow 5 sexy girls okay Sophie Rain or like over like um content creator in the same niche and actually I want you to follow them only five girls and then you can like some sexy reads they made not too much but you can start liking and then I don’t I want you like to look to some stories on their profile I don’t want you to react I don’t want you uh to put like an emoji to the story only look to some stories and then from the day 3 same thing score 15 minutes follow five sexy girls like some sexy Rezz and actually this time you can reply to some stories for example click on like uh the heart emoji day 4 you do exactly the same I told you right before and I want you to be to begin okay very slowly okay during the day to follow and unfollow horny guys and for example if you want to attract English speaker honey guys because you want to attract American guys because they have a lot of money you have to follow some English speaker guys and just check the profile to make sure like they are 40 years old and not like young students and broke guys how to find these guys can just go like on Sophie Ryan’s uh comments and you will find like a lot of profile so do this for example for 10 guys during the day or a little bit more day 5 do exactly the same thing follow unfollow some horny guys and then only from the day 5 you can start to post one reel per day only from the day 5 and don’t worry I will show you like what type of reel you should do it how to do some good reel that attracts good people and generate some leads and sales actually for you for the day 8 you can post some IG posts one per day and then that way you should be able to build your feed page and also from the day 5 you can start put very slowly one story per day okay it’s actually a great thing that was like the warm up from Instagram and if you don’t do this exact step you will have no chance to get viral with your AI influencer it will be dead because Instagram are very careful with like adult content type of influencer so you have to pay attention if you don’t want to get shadow banned restricted more than that if you want to attract the right people because if Instagram only show your content to so 40 years old alone guys they will like comment and follow more and because Instagram will see that the only few people they show your reels or your content to have a high engagement they will be like oh that’s really good content so I will like show it more to more people like that if you don’t do this process to make Instagram understand who you are and what type of creator you are and they show your content to some 80 years old girls 20 years old girls some feminist or even like some kids these type of people won’t interact and for Instagram because people when they actually see your content they don’t interact it means that you’re a bad creator and they won’t help you so it’s very important to do this you can do exactly the same thing for friends and friends is very powerful because it’s actually affiliate to Instagram create the friends account only from the day five of your Instagram account and from the day 5 you have to create the account from IG and that way you will have a boost because actually these two social medias are affiliate by meta so the week 1 I want you to do five interactions per day maximum so what are these type of interactions first I want you to follow five guys you know how that works you know the type of guys you have to follow if you only follow some 18 years old or 19 years old guys friends we show your content and recommend you to similar profile so try to only follow some 13 or actually 40 years old guys I want you also to post one friend per day and don’t worry I will also tell you about how to actually make good friends and then you can comment on 10 viral threads this one is really really important so let’s say that there’s a really pretty girls who made a viral threads okay with a lot of people who are commented write a comment for example let’s say a girl a girl said like yeah guys but like what are you looking for in a girl you know and there are like a lot of reply and comments and like you can put a shocking comments to try to steal some uh visibility some views so you can comment something like I know what they want they only want to see that and you put like a very provoking photo of your AI influencer so that way when people will like go in the comment section they will see your reply and they’ll be like wow who’s that crazy girl I will check her profile and only by using that it’s called sniping friends I will show you some example you can gain a lot a lot of visibility but do it only 10 times from the rig too you can do 10 interactions per day so basically you can do all of these actions I saw I showed you before and double it on the rig free you can triple it make 30 viral friend sniping a free friends per day and 15 follows unfollow and on the week 4 you can make it even more that’s how you should work on friends because if you don’t do it and you just start to do a lot you will get considered like a bot and not a real user so you will never be able to do this much interactions on your friend’s account even like in 1 year so that’s why you have to do this process otherwise there will be impossible for you to do so much things and also you will not get shadow banned or restricted actually so now I will show you some example on like how to do some Instagram reels and some example of Fred so now because you followed every single steps of the warm up I’m going to show you what type of content exactly to post if you actually want to generate some sales and to attract some customers because there’s so many air influencers who post content get viral get million of views but actually if you just post good content who get viral this is what would be happening even myself when I see a beautiful girl while I’m scrolling on TikTok or Instagram I will just scroll see a beautiful girl I will like and I will continue to scroll right so you will just get views and views don’t bring money so that’s exactly what type of content you should do and it’s so simple so first go on your Instagram accounts and go on post a real and I will show you two ways so the first way is to post a reel using face swap and the second way is to post a reel using 100% AI generated video I will show you both so first step is face swap content okay so let’s say I was just like posting this reel like that ladies and gentlemen the winner of H Q Hugo Boss Model of the Year Miss Bella Hadid if I just post this I can get some views but people will just see it and that’s all right so what we’ll do is I will add a text with a hook and a call to action so actually I will give some instructions to the 40 years old guys who will see this real so I can have more leads of customers so what I want to do is click here and you will click on other text I already prepared like a text just to show you okay now I prepared my text okay but right before I will change few things first let’s change the police and always use this one classic one okay and every time you’re posting real you have to post exactly the same settings otherwise you won’t have results okay and then I put this one okay not this one not this one not this one this one so it’s really easy to read and I don’t want to put it too big or too small so pay attention to that let’s say something like this and now what will happen is Joe I just added this text but people will have a lot of reactions some people will agree and some people will disagree okay and these guys because it’s a beautiful girl who said it they will react okay and comment the real and the more you get some comments the more Instagram will be like oh there’s a lot of comments there’s a lot of interactions so it’s a good content actually I will show it to more people and because I said old man where are you that real will help me reach the good qualified people I want to so there’s a higher chance that I will have more older men who will see this reel so that’s why you have to put a text and then you can add otherwise a call to action and a call to action you can put it at the end of the reel or you can actually put it in the comments right I will show you you don’t have to do like me and put like the call to action at the end of the video basically you can just like pin a comment send me your application in DM only if you’re over 40 years old for example to next like I told you okay send me a DM to see my secret pic only if you’re over 35 years old that’s one example of what type of real you should be doing and that way you’ll be posting your real and not only you have higher chance of getting a lot of views and being viral but also that will generate so much comments and also you will have to do nothing and you will get a lot of requests and a lot of DMS so then you just have like to answer to all of the comments and to answer like to the people who want to see a secret pic you just send them like a good photo and then you can start chatting with them to basically go on the next step selling the content and making money right but if you don’t do this and you only get some views that will bring nothing actually for your air influencer so that’s the whole difference ladies and gentlemen so for this one it’s 100% AI generated right so what we do is like try to find a trend music I just use an example I showed you before don’t forget not too small and not too big I can show you my surprise outfit for on Next Date for on Next Date by DMS and that’s basically the same thing you know I just have a great hook people want to watch it and then there’s a call to action so guys I’m not just like seeing this and shaking the profile or following but they want to say the DM you know we want like the guys to be invested in that that would be much more easier for us like to sell some content and also by doing all of the things I’m showing you you’re actually adding like so much personality to your AI influencer and that’s the best because we want the guys to fall in love you know just being beautiful is not enough oh I can instead of I can show you my surprise outfit you can say my secret outfit no so the guys will send DM hey uh tell me what’s this beautiful outfit you got for me you know oh how can I manage to be able to see that uh next outfit you know so much guys will respond that we answer that I know how it works you know and then just post it that’s all tell me in DM where you’ll take me for a date and I’ll show you what I’ll be wearing great the guys uh want to know it and it’s completely free so all of the guys want to see it they have nothing to lose it just take 2 seconds to send a DM you know so that’s what uh you should be doing ladies and gentlemen the winner of GQ Yoga Box Model of the Year Miss Bella Hadid ladies and gentlemen the winner guys I actually created a group where I’m sharing all the daily trains I’m using for all of my air influencer so you don’t have to do it and I can tell you my team is taking a lot of times to try to find each day the most performant trends so you can automate your air influencer and making sure you go viral but also like having good qualified people and generating some sales so you can also attract qualified traffic and become viral every single day with your AI influencer I will let the link in the description you should definitely check it to actually create your friends account so you want to do it from your profile on Instagram and by doing that your first friend will get a boost a massive boost so it’s really important to pay attention to your first friends and to really like take social media seriously I just did my first friends and the thing about friends is it’s not a short form content okay so it’s not about like watching some content and scrolling it’s actually about reacting to what other people are saying and sharing your opinion okay a bit like x uh Twitter before so right now I just made my first uh thread okay by following all the warm up you have to be very precise what you want to do is uh actually sharing some photos and asking open questions or just to create some debates okay so people are willing to share their opinion and everything so for example I share like a very beautiful photo of like an essay where are the singles feel like everyone for a good relationship except me and you will get a lot of guys who will actually answer oh yeah I’m I’m here if you want okay so you get a lot a lot of answer like really especially for like the first thread because you will get that that massive boost can discuss on my IG and then you just share like your Instagram because some people will not go like on your profile and click on the Instagram if there’s a good feeling like this okay people we actually see that comment and that will be the call to action because basically the main goal of Fred’s is sending the traffic you’ll get on that app on your actual Instagram you don’t want to sell content on friends the only goal direct the people to your main IG we can discuss on my IG if you have the same problem okay we can discuss on my IG if you have the same problem okay so if you’re also single just send me a DM and just by doing that guys we go crazy like think about like this opportunity how many guys have this opportunity you know especially when they see that there’s not a lot of comments because actually your friends is new so they will jump on this opportunity and you will get like lot a lot of follower that’s the type of things we want to do and don’t forget guys if you guys want every day to have the best friends okay and even like the best text and go to actions for your Instagram reels I created a group where I share daily the best trends for AI influencer to make sure that you will get viral so you don’t have to lose some times and you can automate your AI influencer look I just downloaded Freds okay and look on my feed page I have like a girl saying I want a boyfriend I want a male best friend okay and it was like yesterday literally and look at all the comments I need a female friend I want a baby girl I need a girlfriend so what you can do actually that’s why I was talking like about like doing some sniping okay on viral friends this one is not viral okay but basically when you follow all the warm up you can comment on all of these threads and you can do it like so much time if you follow exactly the warm up so I just have to say look I want confident guys it’s hard to only stay friends and just post it and look at all the people who are replying and then they will check because I have a girl’s name right they will check my profile and just follow and look I need a boyfriend age don’t mind look there are so many opportunities I want one also but older than me I’m 21 and you just continue you know and look there’s so much opportunity you know guys they just like to answer and to comment like all of these girls like friends right so it’s really easy look another one I want a boyfriend I just have to write exactly the same you want really like to try to find like some viral friends or some trends and basically to just like comment on it comment on it and you will gain so much followers even for the first month you can gain 5,000 followers only by doing this doing this at the start of your Instagram accounts and bringing the followers to your IG will bring a massive boost for the algorithm okay and you you will find like very very fast your first customers and we’ll see just after how with one customer you’ll be able to sell for hundreds and hundreds only with one client I will show you my way of doing the sets don’t worry but basically that’s how you want to work and only by applying these two social medias it’s enough to make 20 k per month with your AI influencer and I created a group where I share daily the best trends for your AI influencer so you don’t have to do this job saving you so much time and automating this job for your AI influencer making sure you’ll go viral every time you’re posting content so you definitely want to have a look I’ll leave the link of the group in the description because if you want to sell as much as possible to the same traffic you have to make sure you are squeezing all the juice from the lemon I will show you an example of an air in France I found on my feet which have like crazy traffic so I don’t know like the owner of the account um I don’t know like if you will see this video let’s just analyze so I can give you some advices on the conversion not about like the traffic or the amount of people you’re trying it’s about the conversion rate right huge AI influencer like hundreds thousand of followers like honestly like uh the guy did a great job okay with the algorithm and was very like consistent okay he put like a lot of works but you will see that it’s not because this AI influencer has a big traffic that she’s making the most of money from this traffic and I will show you why and also I will show you a very great example I made myself so you can understand and also apply it even you if you’re like the owner of uh this account so first the bio that’s really not what we want to do in AI with them or not feel like a real person first let’s check about the reels right because they make a lot of views so you can see that all the reels are very different from what I just show you before right so there’s no co to action no hook and look for 3,000 likes he has less than 200 comments for 3,000 likes that’s so so low what’s happening is a lot of guys are seeing this real and then they just continue to scroll they are not commenting and they are not following he has like huge huge amount of views but so less comments and so less DMs so you’re wasting a lot of these people and a lot of these guys and a lot of these viewers could be customers only if we from like this real so look a lot of people who are in love Germany English Spanish I don’t know like which market the owner of this account is trying like to attract but basically he’s not like focusing one market and that’s a problem because all of these people are not like one particular profile I don’t know if the owner of this account did like uh the process of warming up so he can like target particular like people but the thing is also because he’s attracting so different people also like very different like language speaker like Russian uh Germany Spanish English French people a lot of these guys are buying okay the content so how do you manage to do the sales if you have to speak multiple languages that’s the problem that’s why you should only focus on one market but if you don’t write and put some text it will be difficult to target that typical market if you don’t make some content actions like I just told you before you will get views but no customers you won’t maximize the conversion from viewers to customers if he had like more comments because he was like putting like some call to actions uh Instagram is encouraging big like interactions reels he will get even more views like 10 times more really this reel of like 50 k if he was like adding some call to action he should have at least between 7 to 800 comments and look he only has like 200 you don’t want as an influencer like as a girl on the social media to send the first DM because it’s very unnatural or you can do it if you found a reason to that’s why like I recommend to put some call to actions so you tell the guys to put a specific comment put the emoji flame if you want to receive my free gift and then the guy put it and I just have to send him a DM and it won’t be weird and then it would be easy to just discuss with this guy so yeah you have to pay attention to that also there are zero stories highlights so that’s why this AI influencer doesn’t feel like a real girl and you feel no proximity actually with this AI influencer you have to use story highlights because real users like guys uh myself and even girls they create highlights because there’s no text you feel like it’s just like an image her physique and she doesn’t have a personality and when you want to make big amounts of money in AI with them you have to understand that you’re here not to sell content and to create content but you’re here to sell relation so you want with your Instagram to create a bond with your audience so they get attached to the girl you have to create a story a personality to your influencer like what does she do in life what does she likes to eat what’s her hobby what’s her passion what does she dislike no what does she hate you have to know everything and to write like a really really good story like you feel no personality it’s just like a physical picture that’s all let’s see like you know what let’s see the story clearly he posted the story like uh today to promote to promote the link for the sales okay so you just have to click on this link and then you will go on the platform so the customers can buy the content it’s really great to daily make a story to promote actually your link it’s a huge mistake this account made why basically and I don’t worry I will show you exactly how to do it the best way okay how to promote your platform okay to make some sales you never want to make a story with a link on the story because the way the algorithm Instagram is working he hates when there are some links in the stories okay why because Instagram don’t want the users to leave Instagram page okay so he doesn’t want like the euro the users who are actually on IG leaving the app to go on another website and when you put a link like this on the story they detect it and you will make less and less views with this story that’s the thing and I don’t know like if the owner of this account will see it but I think like from the 400 k followers you have you are making very very few views compared to that with a story when you put a link on it or just try it so when you want to promote the link the way you should do it is like just use like a story okay a video and then write a text exclusive content if you want to see it DM go or DM the emoji heart so the guy you will just have to send a message and then you can for example like use many chats so every guys who like send like the flam emoji the fire emoji they will receive the link in the DMS okay and you will have like bigger views with your Instagram story or otherwise you you can say for example like exclusive content if you want to see it the link is in my bio you only want to use text Instagram is not helping you because they hate when people are leaving the app I will show you what’s the main difference when you want to optimize all the conventional rate I just made like a feed page so you know how it works um so it’s not like a warm up account or anything but like first what you want to do is for the username like I told you but real name a fake family name okay shortened version just like real girls do okay like I did in the bio I like to say first the age a lot of guys they like very young girls so I say 21 years old and basically what girls like to do is you know sharing the like a Astro sign because I like to create next door girl and I want them to be students because we will use some arguments during the sales with that notice how I didn’t say something very weird like oh I have a private garden or yeah I have a naughty secret do you want to discover me or like yeah I’m very nice but I can be like a very naughty girl if you want I don’t say that type of thing okay it’s really really weird I will show you how to actually use a good feed page to skyrocket your conversion rate and I will show you like how I did all of this content because basically you don’t want to copy paste your reference model no you have to optimize everything and I will show you how to optimize everything especially if your influencer is new you have to do it that way and you will see that even with very small amount of traffic you will find for customers very quickly this is 100% generated pictures okay so look look it looks very natural right so how did I do it basically I just took this picture and generated a 10 seconds video and then drink that 10 seconds video I just I just chose few frames okay so it looks like a perfect carousel but it was actually a video I cut multiple times that’s all okay so this one is face swap this one is face swap this one is from Pinterest okay I found it on Pinterest because you don’t only want like to show like the girl or she will looks like very narcissistic right no we just want to create a feed page on a student girl okay uh she’s not too rich she’s not rich she’s has a great personality you want to talk to her and she’s having a life she has a life of personality she likes to go to the beach she’s a bit fun she likes to make some art okay that’s what I’m talking about that’s what you want to do okay you want to show her life you want to create her life she’s not just a model and a really beautiful physical girl no she’s actually a person okay and she has a story and she’s interesting like basically you want to discover her that’s the thing this one is face swap face swap face swap and then this one is 100% AI generated okay and then like this one was on Pinterest so you know you have to create some stories so you have to tell a story so this girl as you can see she has a personality she likes doing some picnics painting it’s cool not all of the girls are like that this one face swap face swap interest and facewap this one too this one also is facewap content okay and this one is 100% AI generated this one too this one too this one too and this one is on Pinterest you have to find a logical story okay for example like I wanted this girl to be like very natural like simple things okay she likes to read she likes to go to picnic she likes to paint so of course I will not put uh a picture of her playing video games doesn’t make sense right and basically what I did for this is like the same thing I generated a video like I showed you before and I chose like few frames that’s all and you it looks like it’s a great post a great carousal even if there’s not a lot of followers look at how much you can get you feel proximity with this account just because of the feed okay and you can immediately get to known like the personality of the of this girl and if this girl looks interesting or not okay and that’s changing everything okay because basically you feel like this girl is sharing some parts of her life with you and you will also want to be part of that life I’m not posting like random pictures okay I’m sharing moments and pictures where these places or these moments could be dates if you look at this okay or you look at this or you look at this or you look at this basically when the guy he will come and he will see this he will be oh okay so if I go to a date with her like at a picnic at a coffee shop at a restaurant or like if I go to her place that’s he can project himself I only choose pictures where like the guy can imagine himself having the date and he’ll be like oh if I go like on a date with this girl she’s be looking like that and that’s changing everything you don’t want your reels to be like on this feed page because this feed page is here for the conversion okay you don’t need like to have a feed page to bring traffic okay no because to bring traffic you have to go on the reels right there you want to make some collaborations like that this is like uh the the post I showed you before and I took like few frames the guy he’s scrolling he see this he’s going right there on the page and he’ll be like wow and now he will get like interested he’ll be like wow oh let me check oh wow she’s beautiful oh I want to date her I want to go to a picnic with her she’s been looking like that wow that would be so great like really I want to do it you know and then he will like stalk a bit and you need to use the highlights but like don’t make these mistakes of making many many and a lot of highlight stories you only need 3 only need 3 having more than 3 highlights it’s useless no guys we like take the time to appreciate thousand and thousand of stories okay so you don’t need to put all of your stories into the highlights only use 3 and noticed I didn’t put the link in my bio because first it will be flagged if you don’t follow correctly the warm up and 2 putting the link in the bio you will have a very very bad conversion because a lot of guys who can get interested in that girl they will check their account and they will see oh you know like this comment only fan detected opinion rejected that’s the same thing the guy when he see like the link in the bio he’ll be like oh no she just want money okay I don’t care about her I forget about everything her personality what she told me everything I just forget the best way to do it actually so you only need three highlights one highlight to promote your link for the sales one highlights the name can be like patient my passion my hobbies uh lifestyle and a third one which is like me so some pics of the AI influencer I will show you how I do it I like to put to choose like Ariana Grande I like to choose like Doja Cat Billy Eilish you know just like all these like uh girls uh music right SZA so all of these are like Facebook content and then I just like added this uh at the end uh with Pinterest okay and I added like the the heart emoji basically that’s all that’s all for like the me that’s all you don’t need to put much more okay the guy just by seeing few like this we like be able to make like his opinion and then look all of these highlight are like Pinterest content okay easily just showing her her life she’s having a life because an air influencer right she has like a real girl she has a life she has some friends she goes out she goes to restaurants maybe like she likes animals I have to show this no one is showing like her life or his life even mine on my IG and only like just showing like his face it’s really weird okay nobody is doing that it’s time I chose some stories when you can actually sing the girl’s hand or like her hair or like some part of her body you know so it’s really important to do that for example if you want to show her like at a picnic okay or like at a forest you have to be able to see at least one part of the body of the girl okay otherwise it will look less real let’s say that okay if that story was only about like the girl with the black hat it will not feel just like as real okay you know it’s just that because like you can always see like the hand of the girl it just looks more authentic all the stories I made was very logical okay like I told you you have to know the story of your influencer mine I know she likes picnic she likes going out with her friends and she like cats like I told you before right there okay so look I just do exactly the same and look she’s like outside with some leaves on the floor and I just put like something like follow your dream just to like uh let the guys know like how’s her personality like she’s very optimistic and you don’t need like a lot of content to just show this you just have to be good at storytelling it’s all all of these are like psychological finally to promote the link you know that’s why I put like a highlights with like um a link emoji and like a chili pepper and then you just do this look you know just a link spicy people are intrigued they want to check and and you know it’s done in a way uh like the previous like any friends are like hey look I have a link in the bio go there go there I have a link in the bio you saw my wrist I have a link in the bio no by using this way especially when you’re beginner okay and you don’t have a lot of followers they feel like they discovered someone which is good and then they get like to know that girl by seeing her likes her personality what she likes what she likes to drink what she like what type of cards does she like oh wow she likes also painting that’s really cool I like painting I want to see I want to learn I never tried painting and then just like they were like they were in trained they were like oh what’s this thing oh she’s seen content and they feel like they found like a secret like something they just discovered you know it’s completely different all of these like psychological like um steps we have a great impact on the conversion okay and on the attitude and how much the guy is willing to spend and then that would be like the place where like you’ll be sharing your VIP uncov the best AI platform to sell content and another bonus if you want to make your conversion rate explodes and to be sure that some guys they will go on your platform like they just have to okay they have no choice add all of your followers to your close friends and that’s a very powerful technique there’s a secret tool I use for my influencer allows you to do is basically let’s say I have like 1 thousand 2 thousand 5,000 10,000 followers I can like pay with this app and this app will put like my 10 k followers into my close friends list and that’s very powerful so now what I recommend you to do is you have to increase okay your number of leads with the same amount of traffic is at six PM you can make a close friend story and all of your followers because of that tool will see that close friend story so imagine now okay basically and I will show it to you my account is new because I just created uh for this example but like imagine you just followed a girl not too much like followers doesn’t seem like a girl who’s trying to make some views because she has a very nice like feed page and you also discovered that she’s also sending some content and she looks great the great personality you want to talk to her okay and then you see on your feed page a close friend story and the thing is close friend story let’s say that you follow a lot of accounts okay with some stories read stories all of the people who are putting like close friend stories will be at your left left left left it would be like the first stories you can click on that’s the thing and look you’re a guy you’re alone you’re 40 years old and you see pretty girl who put you in close friend story these guys never had once a pretty girl put them on the close friend story they never had that before so they will just click on it and also they will feel special and unique they have a special relation with that girl and that’s why they will be clicking on that girl story and know like all the other girls they are also following because you’re different and they will feel a stronger connection and proximity so then you just have to click on it and to do like to post like a very erotic photo okay so not trash but like very erotic for example like your young friend says going out from the shower and then what you want to do is like don’t put the link okay inside and don’t try to say like link is on my bio or what because you only have 200 followers so people will be like what are you trying to say you have 200 followers so what you can do is like put a question yeah I just got out of the shower um I am better with or without makeup and then you will get so much guys will be answering they will say yes or no but like they will answer or they will send like a heart emoji oh you’re too beautiful you’re you’re beautiful anyways crazy crazy amount of DMS and DMS for us is or sales or future sales so your goal like I told you is to post some reels to provoke some DMs so you can get some future sales or you can use this story technique to also generate some DMs and if you do that when the guys they come back from work at six PM they’re alone they’re in the bedroom they don’t know what to do they just want like to relax you know and they see a pretty girl making a close friend story and then they answer and then the girl is actually answering to that reaction they’ll be like oh yes I said I like I did the first move and that worked like she answered me okay let’s continue you know he will feel proud and he will just give everything and then we will do the last step which will be the search and I will exactly show you how with this type of profile I generates big amounts of sales and only one customer win brings hundreds if you’re good at sales actually also I didn’t do it but like let’s check up right there so her first account you don’t want like to put the link in the bio you want to redirect on IG okay really important they are like 0 0 call to actions it’s bad like with all of this traffic you can literally like make 10 times more like qualified people views like that would be crazy and even like this influencer I just show you now like this one she could make she could like make triple like quadruple like even 10 times more like her actual income just by applying all of these devices I’m going to tell you how personally I’m doing this sale and you will understand why can make so much money so don’t forget to use this technique and to post at 6 p m 1 provoking close friends story for example your air in friends are getting out of the shower and the taste like I am pretty without makeup or do you prefer with it will generates a lot of reactions from guys and you can start chatting with them so they go on your VIP uncov to buy your content and the more DMs and chatting you do the more clients you will have so how to put your AI influencer on onlyfans guess what you just cannot meet Lisa she spent months building a stunning AI model had funds and was making bank until she got banned overnight her passive income was gone why she didn’t use the right AI platform but here’s the thing you have to use the best AI platform and verify the account of your AI influencer and I’m about to show you how you learn the best way to sell AI content legally and without breaking any platforms rule so the best platform if you don’t want to get banned because you cannot like pass the verification on onlyfans because it requires like a video of yourself it’s totally forbidden so that’s why don’t believe guys I told you again okay some gurus for showing you only fans dashboards and who are talking about AI influencer okay AI WFM it’s impossible also I don’t use Fanmail because on Fanmail there’s just like too much cases where the fans are getting frozen okay because if you manage to have like one guy who’s complaining or like who thinks that your influencer looks too fake or for example you’re using some face swap content you will just get banned you will just get your phones frozen okay that’s the thing so we tell you the best option for your AI influencer the best AI friendly platform is actually uncov but not a regular uncov account if you manage to create a VIP one you just cannot get banned there’s a very cool bonus basically you can earn like 10% of commission of all of your fans so if your fans are actually spending money on over models over air influencers you will earn 10% of all of these sales over sales AI influencer making with the same funds you have how to create it does the link I use to create a VIP account okay so I’m just telling this it’s not my iPhone link just have to click on it I would like the link under this video so you can also access it for free click on it and then you’ll arrive on this website and you have to click on become a creator wait for this connect with Google for the gender okay you can just put like your real information like we don’t care about it put your real first names okay uh your real email put your real password the only thing is for the username use a fake uh girl name my influencer name is Aubrey I will do exactly the same thing so I can say for example like Aubrey Aubrey Sweet you can use this this time like a small username it’s okay and also I am an undercover okay so I want to be a creator then you can say that you’re a content or model I’m amateur of course and then what you can do is like right now if you don’t have the Instagram account of the iron model it’s okay you can just put like one Instagram and then you’ll be able to change it later but your real information is really important because you will then use your ID so you can like withdraw the money and all of these informations and the customers will not be able to see all of these informations only the username and then choose a profile picture it will ask you I am an AI or not they will detect that you’re basically an AI okay so we don’t care you can put it and say that you’re over 18 years old of course in which currency do you wish to be paid so for myself I’ll say USD because I want to target the US market because American people have so much money okay and we it will be very easy to find very very big spiders so I just say that so yeah for the price choose something between like 5 to max like $7 okay I will put like 5 right there and then I write a very like short description okay so now you just want like to check your emails to basically verify your account do the first thing post a public um photo you can just upload like first photo and then right there it’s so well done even for like the feed page you can upload like 20 photo at the same time it’s great and they have like their own cloud so you can basically put all of the content on and it’s really similar to onlyfans like really it is such a great platform especially like you will have zero problem even for the long long terms and even like in 10 years with your AI influencer because it’s basically made for that I would say sexy and then I can create a collection then I just post it and basically you want to only post on your feed very very soft content otherwise it will be difficult to sell some photos without outfit because they will be able to say it for like $5 okay so it’ll be difficult to sell it for $40 $70 $100 that’s why you have to really set up the price put the right price on like the right content then you have to post exclusive content so we want to post a lot of exclusive content so basically what is exclusive content when the fans he will like come on the feed page he won’t be able to see the exclusive content it will be broad for him he will have to pay for the subscription to be able to unlock all of this content so the much more content you have on the feed page exclusive content and the more chance that when the fans he will arrive he will be like wow there’s like 40 20 40 photos blurred and I just have to pay $5 and I’ll be able to see all of this content yeah that’s actually worth it and he will do it but if the fans he arrives and he only see five photos he’ll be like $5 and I only see five photos have to think about it but we don’t want that we want him to be to just pay the subscription take that and look same thing it’s sexy right there it’s also the feed page but this time it’s like exclusive content and if you want all of the posts having like exactly the same descriptions the same category basically you want like to write some small descriptions so the guys really want to see like that broad content okay you have to teach him you can click on save these settings for the next post and it will apply like all of these um options for all of the posts now just wait and that’s cool to be able to do some bulk post like that it’s so much faster like I told you for the exclusive post is to only have soft photo so in bikini or lingerie okay you don’t want showing too much skin okay no because that type of content okay NSFW will be on the private cells okay that’s how you should do it okay so now that you have everything and it’s cool you just need to verify your account go on account verification check and you only need like to check your email to put like right there your bank details and you just have to put like your bank account on it and the money will directly go on your bank also right there you only need to enter your real ID okay or passport and it can take like up to 24 or 88 hours for the verification and be sure like when you do the verification so you don’t have to wait and to do it again to take a really good quality photo of your ID it’s really important so yeah we did all of this only need to check the email the bank and the identity let me do it right there you can like you can create also like promotion code if you want so I’ll do the verification myself and then I will just have to wait it’s been 48 hours so I got my account verified it’s so so cool and by the same time I was doing the warmer process I was able to find my first client so I just wanted to show you how it went and because of that I had very very little sleep I really wanted like to make good sales with this first customer and to show you like actually how it works and what you can have in terms of results so right now we are the 10th March uh it’s like uh 1 p m and I work during all the night maybe I went to sleep like uh as you can see at 5 a m this morning but I will show you how it works so I found my first customer okay so Ricky and let’s actualize so I can show you how it works yep so as you can see in my total amount I was able yesterday with this guy to make like 276 I wasn’t able I want to be honest to find another customer but I wanted like to tell you what’s really possible so yeah of course sent a free stuff he just bought like a photo for $40 send another video for like 130 and right there I said another content for $170 and he bought it I wanted to continue to sell some content but the guy was like just not answering anymore so I think maybe he finished he did all his things and like yeah but I still like write some good messages so the guy wants to come back again the goal is every customer we want them to buy like every week or every month right so that’s really cool I was able to make that amount and of course also paid my subscription so it was $5 it’s not a lot and I want to explain you how to exactly do the work chatting how chatting is working I will show you this don’t worry the subscription is not like you will not make a ton lot of money with the subscription okay it’s like with your exclusive post like right there and as you can see um we started chatting like at 4:00am and then 40 50 minutes so of course I was like on my phone on my computer if you’re scared of sending content you won’t make it and even at the end like I was continuing because maybe I could like make more money so you have to do that if you’re scared to send content and put big price you will not make money but like all the time I put building the Instagram account doing the warm up process and everything follow and unfollow it’s worth it because now I made like coupon hundred of bucks and when you’re a beginner it’s good money really so now just imagine if you have lot of customers everyday you have five guys like Ricky who’s actually buying some content from your influencer but for that you have to be good in sales that’s why I will give you like some tips I have because I cannot show you on YouTube the content I actually sell all the sentences I’m personally using what to say even if the guys doesn’t want to buy anymore so you can make that sale happen so if you want to grab the script I’m using and also the script for myself I will let that in the description of this video okay so Instagram chatting for converting on uncovip and the art of chatting is about understanding your client you need to adapt your approach to each situation to maximize earnings from your fans understand who you are interacting with to be a strong rapport and emotional proximity you’ll encounter various fan personas that require different strategies and the key mindset is to focus on building relationships not just selling content if fans wanted just adult content they would visit free adult sites and if they are here with you they are looking for connection during this emotional process that you need to engage them now that you have this mindset let me show you how to apply it step one qualification like I explained you before many time wasters exist on Instagram so your goal is to eliminate them quickly ask the following key questions to understand their situation and ensure that you ask this in order as the first two are most critical location filter out prospects from low income countries focus on users with the capacity to purchase content then the job determine the purchasing power by asking about their profession avoid directly asking about income to prevent appearing like materialists are like a gold digger so use this information later to set content prices accordingly the age prioritize targeting boomers 40 years old and plus who often have higher disposable income and could be looking for companionship if a fund meets these criteria they are more likely to convert but always cross check with all your information introduce your side hustle subtly to judge their interest for example as your air influencer you can say something like I work as a waitress or just like choose a profession but I have a small side gig to earn extra and if they ask what it is you can respond with playful suspense oh no I’m scared you will stop talking to me can I trust you I’m a bit ashamed to say the thing is otherwise to justify sending content for example to pay for studies to save for a car to afford my first vacation like I never took some holidays before a portrayal of like an innocent slightly naive girl who doesn’t fully grasp where the conversation is heading this strategy helps bring emotional evolments before introducing sexual topics and handing early sexualization if someone crosses the line too soon gently redirect and emphasize the need for trust encourage conversation about him instead the Step 2 the girlfriend experience once a fan shows potential shift to relationship building your goal is to make the fan addicted to your model to your AI influencer so learn about his passions interests and gradually steering the conversation towards intimacy using the push and pull technique make suggestive hints but quickly return to casual conversation allow him to escalate the topic naturally timing the cell don’t push for a cell if the timing isn’t right if he’s busy at work focus on active lead and return letter to the others be prompt in responses delaying for five to 10 minutes can result into losing a potential sale that’s why you have to be fast and step 3 the sales window once you identify that the fund is ready the window of opportunity opens you have a maximum of 1 hour to maximize the cell so how to proceed first personalize the chatting experience according to his preferences fetish intellectual based on what he likes and then introduce media in stages start with a soft free teaser and ask do you like this or would you like to see me more and then send the private platform link of your VIP account uncurve adjust pricing based on his profile but maintain the staged approach to gradually increased prices and then use sensory descriptions to heighten arousal oh I wish you could feel how weight I am I wish you could hear my little mounds and keep the suspense wait for me don’t come too soon let’s play a game the one who lasts longest wins and if he refuses understand his hesitation is it timing financial constraints or uncertainty then adapt accordingly I will teach you some techniques to increase sales there’s the anti selling so position yourself as indifferent to the sale to create desire example I’m not sure if I should send this I’m quite shy or are you sure I can trust you or scarcity make him feel special and that this is a unique offer just for him I don’t usually do this but I feel a special connection with you and then be sure to have a good copywriting you have to be a storyteller so not just a seller tailor messages with proper spelling punctuation and tone to make each fan feel unique labeling after a sale reinforce his confidence and masculinity avoid making him feel guilty we want to provoke the cerebral syndrome so say things like you’re really daring I admire that or wow you’re so confident you can spend that money and you know how to treat a woman it’s impressive and to handle some objections you can always respond positively using yes but statement find solutions to each objections and here’s the top mistakes to avoid never promise a meeting okay it’s forbidden to promise a real life meeting play the maybe someday game to keep hope alive without lying and then you want to avoid conflict over price avoid arguments if you try to negotiate respond with emotional disappointment not anger for example you can use Elephant Labs to create an Odeo message saying I thought we had a connection together and a connection that can be powerful and then my final advice is now you have all the tools to master chatting and convert effectively but the key is practice so don’t hesitate to apply these strategies and refine your approach through experience so like I told you I cannot like tell you everything about my script says and like show you like some sentences because I just cannot say it but if you actually want to have all the sentences I’m using van for the sale to get more money so every customers are becoming addicted I will leave my personal like sell scripts in the description so you should definitely have a check so now you have the complete blueprint you know how to create an AI model attract the right audience and sell legally without getting banned nolege or course salon won’t make you money taking action will and that’s exactly why you should take a serious look at AI Vault AI Vault isn’t just another online community or course it’s a system with implemented actions that accelerates your AI influencer business and takes all the guess work inside your get the best daily viral content trends stop wasting hours in stressful research with the best daily viral content trends you can simply copy what’s already proven to work no more guessing no more anxiety just consistent high quality traffic and wealthy customers coming to you on Instagram and friends this is the ultimate shortcut to effortless growth and unstoppable engagement you also get my pre made sales scripts and converting offers you’re struggling to close big deals and induce massive income goals it doesn’t have to be complicated with this powerful done for you sales scripts you know exactly what to say to seal the deal every time no more stress no more second guessing just proven strategies that turn conversations into cash this is the shortcut to making huge amounts with one client thoughtlessly so you make sure to make that money and you know that you are not losing or wasting some money so you know that you’re taking 100% of the money of each customer and you are not actually wasting some customers you also have some exclusive resource for your AI generating content and legal contracts to have access to ready to use AI content with the legal Protection you need for your business and in bonus the OFM Growth plan because once you hit 50 k per month with your AI influencer this is the plan to add this plan adds an additional income stream seamlessly I’ll show you the best way to hire an onlyfans model and use the same system you build with your AI influencer for her and take your commission on the total income right now you’ll learn but you can change that and it’s not only about you and me join a real support community where sales AI entrepreneurs connect share feedback and help each other scale faster no more guessing no more struggling solo just real conversations real strategies and real growth and this is where your next big breakthrough begins just imagine waking up to automated income from your AI influencer because you actually implemented the AI Vote system why the community keeps you updated with the latest strategies and tools that’s the power of AI Vote if you’re serious getting into this business you should click the link below and Jonas you don’t want to miss out what’s inside guys I keep my promises and I know this will become the biggest AI OFM Entrepreneurs community why because I’m giving you my best tools my deepest experience and my full dedication it’s not just about me it’s about you the motivated and hard working people ready to build something extraordinary from the start of this channel I made a commitment to share the best and only the best of my daily business journey so together we can grow learn and take AI or FM to the next level I truly hope this business helps you change your life like he changed mine years ago but remember everything you learn in this video is nothing compared to what’s coming next and the best is yet to come thank you for being here at the end of the video this is Nok sensei and don’t hesitate to subscribe and drop a comment if you want to support this channel and our growing community let’s build greatness together

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • DeepSeek AI: Beginner’s Guide to Affiliate Marketing Success

    DeepSeek AI: Beginner’s Guide to Affiliate Marketing Success

    The provided video excerpt, narrated by Charlie, explains a method for beginners to generate income through affiliate marketing using the AI tool DeepSeek. The video demonstrates how to leverage DeepSeek for identifying profitable niches, discovering affiliate programs, and creating SEO-optimized content like blog articles and short-form video scripts. It further covers the necessity of having a website, recommending Hostinger for hosting and its AI website builder, and emphasizes the importance of adding a personal touch to AI-generated content. Finally, the video introduces strategies for finding affiliate programs via networks and direct partnerships, as well as automating affiliate link distribution through platforms like ManyChat for short-form video engagement.

    Study Guide: Making Money with DeepSeek for Affiliate Marketing

    Key Concepts to Understand:

    • Affiliate Marketing: The process of earning a commission by promoting other people’s (or company’s) products or services.
    • Niche Marketing: Focusing on a specific, often smaller, segment of a larger market to cater to a particular audience and their needs.
    • High-Paying, Low-Competition Niches: Identifying market segments where affiliate commissions are substantial and there are fewer existing content creators or businesses.
    • DeepSeek: An AI platform used for research, content creation, and strategy development in affiliate marketing.
    • Prompt Engineering: The skill of crafting effective and specific questions or commands for AI tools like DeepSeek to obtain desired outputs.
    • Affiliate Programs: Agreements with companies or networks where you receive a commission for driving sales or leads to their products or services.
    • Affiliate Networks: Platforms that connect affiliate marketers with numerous companies offering affiliate programs (e.g., Impact Radius, PartnerStack, Commission Junction, ShareASale).
    • Direct Affiliate Programs: Affiliate programs offered directly by a company, rather than through an intermediary network.
    • Website/Blog: A platform used to host affiliate content (articles, reviews, etc.) and embed affiliate links.
    • SEO (Search Engine Optimization): Techniques used to improve the visibility of a website or piece of content in search engine results pages (SERPs).
    • Call to Action (CTA): A statement or instruction designed to encourage an immediate response from the audience (e.g., clicking an affiliate link, sending a DM).
    • Short-Form Video Content: Brief videos (e.g., TikToks, Instagram Reels, YouTube Shorts) used to promote affiliate offers.
    • Video Avatar: AI-generated digital representations of people used in videos.
    • AI Voiceover Tools: Software that generates realistic-sounding narration for videos.
    • Automation Tools: Platforms like HighLevel or ManyChat used to automatically respond to messages or comments with affiliate links.
    • Conversion Rate: The percentage of users who take a desired action (e.g., clicking an affiliate link and making a purchase) out of the total number of users exposed to the promotion.

    Quiz:

    1. Explain the core principle of affiliate marketing in your own words. What are the main benefits for someone starting this type of online business?
    2. According to the source, what is the primary role of DeepSeek in the context of affiliate marketing for beginners? Provide at least two specific examples of how it can be used.
    3. What does the video suggest are important characteristics to look for when choosing an affiliate marketing niche? Why are these characteristics beneficial?
    4. Describe the purpose of an affiliate network. Name at least two examples of affiliate networks mentioned in the source.
    5. Why does the creator emphasize the importance of having a website or blog when pursuing affiliate marketing? What role does it play in the overall strategy?
    6. What does it mean for a blog article to be “SEO optimized”? Why is SEO important for affiliate marketers?
    7. According to the video, what is the benefit of creating short-form video content in addition to having a website for affiliate marketing?
    8. Explain how automation tools like HighLevel or ManyChat can be used to streamline the affiliate marketing process on social media platforms.
    9. Why does the creator advise against solely relying on AI-generated content without adding a personal touch? What potential drawbacks are mentioned?
    10. What is the ultimate goal of providing value to the audience in affiliate marketing, as described in the source? How does offering value contribute to success?

    Answer Key:

    1. Affiliate marketing involves promoting products or services of another entity and earning a commission on any resulting sales or leads. This model is beneficial for beginners because it typically requires no upfront investment in product creation or customer service, allowing them to focus solely on marketing.
    2. DeepSeek acts as a highly intelligent assistant to help beginners with various aspects of affiliate marketing, such as identifying profitable niches with lower competition and suggesting relevant, high-paying affiliate programs within those niches. It can also be used to generate initial drafts of SEO-optimized blog content and short-form video scripts.
    3. The video suggests looking for high-paying niches that have lower competition. High-paying niches offer the potential for greater earnings per conversion, while lower competition makes it easier for newcomers to gain visibility and attract an audience without being overshadowed by established players.
    4. An affiliate network serves as a marketplace connecting affiliate marketers with a wide range of companies that offer affiliate programs. These networks simplify the process of finding and joining programs, tracking performance, and receiving payments. Examples mentioned include Impact Radius, PartnerStack, Commission Junction, and ShareASale.
    5. A website or blog provides a central platform to host in-depth, valuable content related to the chosen niche and the affiliate products being promoted. It allows for detailed product reviews, tutorials, and other forms of content that can build trust with the audience and naturally integrate affiliate links within the context.
    6. For a blog article to be “SEO optimized” means it is structured and contains relevant keywords in a way that helps it rank higher in search engine results for specific search queries. SEO is crucial for affiliate marketers as it drives organic (non-paid) traffic to their content, increasing the potential for clicks on their affiliate links.
    7. Creating short-form video content allows affiliate marketers to reach a broader audience on platforms like TikTok and Instagram, which are highly popular for discovering new products and trends. It offers a more engaging and easily digestible format for promoting affiliate offers and driving traffic to a website or a direct message automation.
    8. Automation tools like HighLevel or ManyChat can be set up to automatically send a direct message containing an affiliate link to users who comment a specific keyword on a social media post or reel. This streamlines the process of delivering the link to interested individuals without manual intervention, improving efficiency and conversion rates.
    9. Solely relying on AI-generated content can lead to generic, unoriginal material that lacks a personal connection with the audience. Because AI tools are widely accessible, content that is purely AI-generated may struggle to stand out, build trust, or offer unique value compared to content that incorporates personal experiences and insights.
    10. The ultimate goal of providing value to the audience in affiliate marketing is to build trust and establish oneself as a helpful resource. When the audience perceives genuine value in the content, they are more likely to trust the recommendations and click on affiliate links, leading to higher conversion rates and long-term success.

    Essay Format Questions:

    1. Analyze the role of AI, specifically DeepSeek, in transforming the landscape of affiliate marketing for beginners. Discuss the advantages and potential limitations of relying on AI for niche selection, content creation, and strategy development.
    2. Compare and contrast the benefits and drawbacks of using a website/blog versus solely relying on social media and short-form video content for affiliate marketing. How can these strategies be effectively integrated?
    3. Discuss the ethical considerations and best practices for affiliate marketing, particularly when using AI for content generation. How can marketers ensure transparency and maintain the trust of their audience?
    4. Evaluate the importance of niche selection in affiliate marketing success. What factors should beginners consider when choosing a niche, and how can they leverage tools like DeepSeek to identify profitable opportunities?
    5. Explore the long-term sustainability of the affiliate marketing strategies outlined in the source in the evolving digital landscape. What future trends or challenges might impact these methods, and how can affiliate marketers adapt?

    Glossary of Key Terms:

    • Affiliate Link: A unique URL provided by an affiliate program that tracks the traffic and sales generated by a specific affiliate.
    • Commission: A percentage of the sale price or a fixed fee that an affiliate marketer earns when a customer purchases a product or service through their affiliate link.
    • Cookie Duration (Cookie Lifespan): The period of time after a user clicks an affiliate link that their activity on the merchant’s website is tracked for commission purposes. If they make a purchase within this timeframe, the affiliate typically receives credit.
    • DM (Direct Message): A private message sent directly between users on social media platforms.
    • Landing Page: A specific webpage designed to receive traffic from a marketing campaign. It typically focuses on a single offer or product with a clear call to action.
    • Moe (Moat): In a business context, a sustainable competitive advantage that protects a company’s profits from being eroded by competitors. In the context of content creation, it can refer to unique value or personal branding.
    • Organic Traffic: Website visitors who arrive through unpaid search engine results, rather than through paid advertising.
    • Prompt: A specific instruction or question given to an AI model to elicit a desired response or output.
    • Return on Investment (ROI): A performance metric used to evaluate the efficiency or profitability of an investment. In affiliate marketing, it measures the profit generated from affiliate efforts relative to the time and resources invested.
    • Salesy: Content that is overly focused on selling or promoting a product, often lacking in genuine value or helpfulness.

    Briefing Document: “How to Make Money with DeepSeek – Best Side Hustle for Beginners!”

    Source: Excerpts from “01.pdf” (YouTube video transcript)

    Date: Likely 2024 (based on the mention of 2025 and beyond)

    Author/Speaker: Charlie (identifies as having multiple businesses, including affiliate marketing)

    Main Theme: This video presents a strategy for beginners to make money through affiliate marketing by leveraging the AI capabilities of DeepSeek to streamline various aspects of the business, including niche research, content creation (blog articles and short-form videos), and automation of lead generation.

    Key Ideas and Facts:

    1. The Core Strategy: AI-Powered Affiliate Marketing

    • The speaker, Charlie, introduces a method for making money online through affiliate marketing, which he claims is similar to strategies he uses to make millions annually. He emphasizes that this method is beginner-friendly and can be done from home with just a laptop.
    • The core of the strategy involves using DeepSeek, an AI platform, to:
    • Identify profitable, lower-competition affiliate marketing niches.
    • Discover high-paying affiliate programs within chosen niches.
    • Generate SEO-optimized blog content.
    • Create scripts for short-form promotional videos.
    • He asserts that those not using such AI strategies are “already way behind the competition” and that this approach will save “so much money and time.”

    2. Leveraging DeepSeek for Niche and Program Research:

    • The video demonstrates using DeepSeek’s “Deep Think R1 mode” with search enabled to find “top affiliate marketing niches to start a blog and create content in,” specifically looking for “high paying lower competition niches.”
    • The speaker highlights DeepSeek’s ability to weigh pros and cons, resulting in effective niche suggestions like “Niche online courses” and “subscription boxes.” He notes that the focus on lower competition niches makes the suggestions more niche-specific.
    • Once a niche (e.g., “eco-friendly sustainable living”) is selected, DeepSeek is used to identify “top paying affiliate programs out there in this niche,” providing information on commission rates, product types, cookie durations, reasons why a program is good, and additional tips.
    • Quote: “just basically treat deeps as a very very smart friend who can answer any question and the more specific you are with the prompt the better it is.”

    3. Building a Website with Hostinger:

    • The strategy necessitates having a website to host the affiliate content. The speaker recommends Hostinger as an “affordable but high-speed web hosting service” and provides an affiliate link and coupon code for viewers.
    • Hostinger’s business plan is highlighted for allowing up to 100 websites, offering ample storage, free SSL, and a free domain.
    • The video briefly demonstrates using Hostinger’s AI website builder to quickly create a basic website by inputting a brand name and description. Templates are also available.
    • The platform allows for easy customization, including adding blog articles.

    4. AI-Powered Blog Content Creation with DeepSeek:

    • The video showcases using DeepSeek to generate SEO-optimized blog articles. An example prompt is given: “I want to create a blog article talking about the top three most sustainable products at Patagonia make sure it’s SEO optimized and has a clear call to action to our affiliate link… make it between 500 to 600 words.”
    • DeepSeek generates a full article as requested, including a demo affiliate link.
    • The speaker emphasizes that AI-generated content should be treated as a “fantastic foundation” and that users should add their “own spin,” personal input, and experience to make it more effective.
    • The process of adding the AI-generated content to a Hostinger blog post is shown, including inserting affiliate links.

    5. Diversifying with Short-Form Video Content:

    • Recognizing that a website alone may not be sufficient in “2025 and Beyond,” the strategy includes creating short-form video content to promote affiliate offers.
    • DeepSeek is used to generate video scripts. An example prompt is: “help me create a 20 second short form video script I can film myself saying to promote the Patagonia Nano puff jacket make it have a clear call to action to DM me the word jacket for the link.”
    • The speaker demonstrates refining the script by asking DeepSeek to make it “more casual” after an initial version is deemed “a little bit too salesy.”
    • Various options for video creation are discussed: filming oneself, using AI video avatars (e.g., HeyGen), and creating faceless videos with AI voiceovers (e.g., 11 Labs, Murf AI) and AI-generated visuals (e.g., Midjourney).
    • Caution: The speaker advises that “the more AI your content is the less likely it’s going to do well,” suggesting a blend of AI assistance and personal input is crucial.

    6. Automating Lead Generation via Short-Form Video:

    • The video explains how to automate the process of sending affiliate links to users who engage with the short-form video content (e.g., by DMing a specific keyword like “jacket”).
    • Tools like HighLevel and ManyChat are recommended for this automation.
    • The speaker provides a brief demonstration of ManyChat’s “Auto DM a link from comments” template, showing how to set up a keyword trigger and the automated message containing the affiliate link.
    • He argues that this method targets users with “high intent” and can lead to high conversion rates.

    7. Importance of Affiliate Networks and Direct Programs:

    • The video briefly touches on finding affiliate programs through affiliate networks like Impact Radius, PartnerStack, Commission Junction, and ShareASale, which provide a central platform to discover various programs.
    • Direct affiliate programs, such as Teemu Affiliate and Amazon Associates, are also mentioned as accessible options for beginners.
    • The speaker advises searching for “[company/brand] affiliate program” on Google to find direct programs.

    8. Affiliate Marketing as a Business Requiring Time and Consistency:

    • The speaker emphasizes that “affiliate marketing is not a get quick Rich way of making money” and requires “time and consistency” to build a sustainable business.
    • However, he believes that AI tools like DeepSeek significantly accelerate this process.

    Conclusion:

    The video strongly advocates for using DeepSeek as a central tool to build an affiliate marketing business. It outlines a comprehensive strategy encompassing niche selection, content creation, website development, and lead generation, all significantly enhanced and streamlined by AI. The speaker encourages viewers to take action and leverage these technologies to gain a competitive edge in the affiliate marketing landscape. He also provides resources and affiliate links for the tools mentioned in the video.

    Frequently Asked Questions about Making Money with DeepSeek and Affiliate Marketing

    1. What is the core strategy for making money using DeepSeek as described in the source? The primary strategy involves leveraging DeepSeek, an AI platform, to streamline the affiliate marketing process. This includes using DeepSeek to identify profitable, lower-competition niches, discover high-paying affiliate programs within those niches, and generate various forms of content (like blog articles and short-form video scripts) to promote affiliate products. The overall goal is to efficiently create valuable content that drives traffic to affiliate links and generates commissions.

    2. How can DeepSeek help in the initial stages of setting up an affiliate marketing business? DeepSeek can assist beginners by acting as a “very very smart friend” to brainstorm and research. Specifically, it can be prompted to identify top affiliate marketing niches, focusing on high-paying and lower-competition areas. It can also research and provide information on relevant affiliate programs within a chosen niche, including details about commission rates, product types, cookie durations, and reasons why specific programs might be beneficial.

    3. Why is having a website considered important in this affiliate marketing strategy, and what tools are recommended for setting one up? A website serves as a central platform to host the blog articles and other content created to promote affiliate offers. It provides a space to offer value to the audience and strategically integrate affiliate links within the content. The source recommends Hostinger as a web hosting service due to its affordability, speed, and features like a free domain and SSL certificate. It also highlights Hostinger’s website builder, which includes AI tools to simplify the website creation process.

    4. How can DeepSeek be used to create content for an affiliate marketing website or social media? DeepSeek can generate SEO-optimized blog articles on specific topics or products, including calls to action to affiliate links. It can also create scripts for short-form videos designed to promote affiliate products, offering different styles (e.g., more salesy or more casual). While AI-generated content provides a strong foundation and saves time, the source emphasizes the importance of adding a personal touch and expertise to make the content more engaging and effective.

    5. Beyond a website, what other content formats and platforms are suggested for promoting affiliate offers? The source emphasizes the growing importance of short-form video content for platforms like Instagram and TikTok. It suggests using DeepSeek to create video scripts and exploring options like filming oneself, using AI video avatars (e.g., via HeyGen), or creating faceless videos with AI voiceovers (e.g., using Eleven Labs or haen) and AI-generated visuals (e.g., Midjourney).

    6. How can the process of sharing affiliate links via short-form video content be automated? To automate the process of distributing affiliate links to viewers who engage with short-form video content, the source recommends using platforms like HighLevel or ManyChat. These tools allow creators to set up automated direct messages (DMs) triggered by specific keywords commented on their posts or reels. This enables the automatic delivery of affiliate links to interested viewers, improving efficiency and conversion rates.

    7. What are some recommended ways to find affiliate programs to join? The source suggests exploring affiliate networks like Impact Radius, PartnerStack, Commission Junction, and ShareASale, which host a wide variety of affiliate programs across different niches. It also mentions direct affiliate programs offered by individual companies, such as the Teemu affiliate program and Amazon Associates, which are good starting points for beginners. Searching for “[Company Name] affiliate program” on Google is also recommended.

    8. What is the overall perspective on the role of AI, like DeepSeek, in the future of affiliate marketing? The source strongly advocates for integrating AI tools like DeepSeek into affiliate marketing strategies. It argues that AI can significantly speed up content creation, website building, and business strategy development, providing a competitive edge. However, it also cautions against relying solely on AI-generated content, emphasizing the value of adding a personal touch and genuine expertise. The future of successful affiliate marketing, according to the source, lies in the efficient combination of AI power with traditional marketing principles and authentic engagement.

    DeepSeek AI: Affiliate Marketing Strategy for Beginners

    The source, presented as a video transcript by Charlie, focuses on an effective way to make money online through affiliate marketing using DeepSeek, an AI platform. Charlie, who makes millions through affiliate marketing, shares his strategy for beginners, emphasizing that it can be done from home with just a laptop.

    Here’s a breakdown of the process for making money online as described in the source:

    • Finding a Niche: The first step involves using AI, specifically DeepSeek, to identify profitable affiliate marketing niches. Charlie demonstrates prompting DeepSeek to find “top affiliate marketing niches to start a blog and create content in,” specifically looking for “high paying lower competition niches”. DeepSeek’s “Deep Think R1 mode” and search capabilities help in this process by weighing pros and cons to offer relevant suggestions like niche online courses and subscription boxes. The source highlights the benefit of choosing narrower niches to reduce competition. For instance, “eco-friendly sustainable living” is presented as a promising niche with rising demand.
    • Finding Affiliate Programs: Once a niche is selected, DeepSeek can be used to find high-paying affiliate programs within that niche. The AI provides information such as commission rates, types of products, cookie durations, and reasons why a program is beneficial, along with additional tips. The source also recommends exploring affiliate networks like Impact Radius, Partner Stack, Commission Junction, and ShareASale, which offer a variety of programs within one platform. Direct affiliate programs, such as those offered by Teemu and Amazon Associates, are also mentioned as beginner-friendly options.
    • Creating a Website: The source emphasizes the importance of having a website to host the content that promotes affiliate offers. Charlie recommends using Hostinger for web hosting, citing its affordability and speed. He provides a link and a coupon code for a discount. Hostinger offers different plans, with the business plan allowing up to 100 websites and providing features like free SSL, a free domain, and WordPress AI tools. The process of creating a website using Hostinger’s website builder is shown, including using AI to generate a website based on a brand name and description, as well as using pre-made templates. Adding blog articles is also demonstrated, emphasizing that “content really is key” in affiliate marketing.
    • Creating Content with DeepSeek: The source details how to use DeepSeek to create SEO-optimized blog articles. An example prompt is given: “I want to create a blog article talking about the top three most sustainable products at Patagonia make sure it’s SEO optimized and has a clear call to action to our affiliate link…make it between 500 to 600 words”. While AI-generated content provides a fantastic foundation and saves time, the source advises adding a personal touch and not simply copying and pasting. The process of adding this content to a blog post on the Hostinger website builder is shown, including embedding affiliate links.
    • Creating Short-Form Video Content with DeepSeek: Recognizing that having just a website might not be enough in 2025 and beyond, the source explains how DeepSeek can help create short-form video scripts for platforms like Instagram and TikTok. An example prompt is provided for a 20-second video script promoting the Patagonia Nano Puff jacket with a call to action to DM a specific word for the link. The source mentions that DeepSeek can be trained on existing video scripts to align with a desired content style. It also discusses options for creating videos without personally appearing on camera, such as using video avatars (e.g., HeyGen) or AI voiceovers paired with stock footage or AI-generated images (e.g., Midjourney). However, it cautions that overly AI-generated content might perform less well, emphasizing the value of a personal touch.
    • Automating Link Delivery: To handle direct messages resulting from video call-to-actions (e.g., “DM me the word jacket”), the source recommends using automation tools like HighLevel or ManyChat. These platforms can automatically send a message containing the affiliate link to users who DM a specific keyword. This strategy is highlighted as a high-intent way to drive conversions.
    • Importance of Value and Consistency: The overarching theme is to provide value to the audience through informative content and then offer affiliate links as a helpful resource. The source stresses that affiliate marketing is not a get-rich-quick scheme and requires time and consistency to build a successful business. However, AI tools like DeepSeek can significantly speed up the process of content creation, website building, and strategy development, making it easier to compete in the online space.

    In summary, the source presents a comprehensive strategy for making money online through affiliate marketing by leveraging the capabilities of the AI platform DeepSeek for niche and program research, content creation, and pairing it with website hosting, social media promotion, and automation tools. It emphasizes the potential of AI to streamline the process while still highlighting the importance of providing value and adding a personal touch.

    Affiliate Marketing for Beginners: A Step-by-Step AI Guide

    Affiliate marketing, as described by Charlie in the sources, is a business model where you promote other people’s products or services and earn a commission when a sale is made. In this model, you act as the marketer, and you don’t need to create your own physical products or services. Your role is essentially to promote the offerings of others, and in return, you receive a percentage of the revenue generated from your promotional efforts.

    Charlie emphasizes that affiliate marketing is a simple and extremely effective business model through which individuals can potentially make a significant amount of money. The key advantage highlighted is that you only focus on the marketing aspect, leaving the creation, fulfillment, and customer service to the product or service provider.

    The source details a specific strategy for beginners to succeed in affiliate marketing, primarily by leveraging AI tools like DeepSeek. This strategy involves several key steps:

    • Finding a Profitable Niche: The first step is to identify a niche with high earning potential and lower competition. Charlie demonstrates using DeepSeek to research such niches, suggesting that it acts like a “very very smart friend” that can answer specific questions. He recommends being specific with prompts to get better results and advises against broad general niches due to higher competition. An example of a promising niche provided is “eco-friendly sustainable living”.
    • Finding Affiliate Programs: Once a niche is chosen, the next step is to find affiliate programs within that area. DeepSeek can assist in this process by providing information on commission rates, product types, cookie durations, and reasons why a program might be beneficial. The source also recommends exploring affiliate networks like Impact Radius, Partner Stack, Commission Junction, and ShareASale, which host numerous affiliate programs in one place. Additionally, it mentions direct affiliate programs offered by companies like Teemu and Amazon Associates as beginner-friendly options.
    • Creating a Website: A website is deemed important as a central platform to host the content that promotes affiliate offers. Charlie recommends Hostinger for web hosting due to its affordability and speed, providing a link and a coupon code for a discount. He highlights that even with the business plan on Hostinger, users can build up to 100 websites and access WordPress AI tools. The process of creating a website using Hostinger’s AI-powered website builder and pre-made templates is described as quick and easy. The source emphasizes that “content really is key” in affiliate marketing, necessitating the creation of blog articles.
    • Creating Content: DeepSeek is presented as a valuable tool for generating SEO-optimized blog articles. An example prompt is given to create content about sustainable Patagonia products with a clear call to action to an affiliate link. While AI can create a strong foundation and save time, Charlie advises adding a personal touch to the content to improve performance. The process of adding this content to a blog post on a Hostinger website, including embedding affiliate links, is demonstrated.
    • Creating Short-Form Video Content: Recognizing the importance of diverse content formats, the source explains how DeepSeek can help create short-form video scripts for platforms like Instagram and TikTok. Examples of prompts for video scripts promoting specific products with a call to action to DM a keyword for the affiliate link are provided. The source also discusses using AI video avatars (e.g., HeyGen) or AI voiceovers with stock footage/AI-generated images (e.g., Midjourney) for those who don’t want to appear on camera, while cautioning that overly AI-generated content might not perform as well as content with a personal touch.
    • Automating Link Delivery: To streamline the process of sending affiliate links to those who engage with video content (e.g., by DMing a specific word), the source recommends automation tools like HighLevel or ManyChat. These platforms can automatically send a message containing the affiliate link upon receiving a specific keyword, which is described as a high-intent way to drive conversions.
    • Value and Consistency: Throughout the discussion, Charlie underscores the importance of providing value to the audience through informative content before presenting affiliate offers. He also emphasizes that affiliate marketing is not a get-rich-quick scheme and requires time and consistency to build a successful business. However, AI tools can significantly accelerate the processes involved.

    In conclusion, the source portrays affiliate marketing as a viable and potentially lucrative online business model for beginners, especially when combined with the power of AI for research, content creation, and automation. It stresses the need for a strategic approach, focusing on niche selection, valuable content creation, and consistent effort to achieve success.

    DeepSeek AI for Profitable Affiliate Marketing

    The source explicitly discusses using DeepSeek AI as a crucial tool for making money online through affiliate marketing. Charlie, who makes millions through this method, presents DeepSeek as a “very very smart friend” that can assist beginners in various aspects of building an affiliate marketing business. He emphasizes that using DeepSeek can save significant time and money, positioning those who don’t use such a strategy as being “way behind the competition”.

    Here are the key ways the source details using DeepSeek AI for affiliate marketing:

    • Finding Profitable Niches: The first step involves using DeepSeek to identify top affiliate marketing niches to start a blog and create content in, specifically looking for high-paying lower competition niches. Charlie demonstrates prompting DeepSeek with specific criteria and utilizing its “Deep Think R1 mode” and search capabilities to get relevant suggestions like niche online courses and subscription boxes. The AI weighs pros and cons to provide effective suggestions, highlighting the benefit of choosing narrower niches to reduce competition. For example, “eco-friendly sustainable living” is identified as a promising niche with rising demand.
    • Identifying Affiliate Programs: Once a niche is selected, DeepSeek can be used to find high-paying affiliate programs within that niche. By prompting DeepSeek, users can obtain information about commission rates, types of products, cookie durations, and reasons why a particular program might be beneficial, along with additional tips. This helps in efficiently identifying potential affiliate partners.
    • Creating SEO-Optimized Blog Content: DeepSeek can be employed to generate SEO-optimized blog articles to promote affiliate offers on a website. Charlie provides an example prompt for creating an article about sustainable Patagonia products with a clear call to action to an affiliate link, specifying a word count and SEO optimization. While acknowledging that AI-generated content provides a “fantastic foundation” and saves time and mental energy, the source advises users to add their own personal touch and not simply copy and paste to improve performance.
    • Generating Short-Form Video Scripts: Recognizing the importance of video content, the source details how DeepSeek can be used to create short-form video scripts for platforms like Instagram and TikTok. An example prompt for a 20-second video script promoting a specific product with a call to action to DM a keyword for the affiliate link is provided. Notably, DeepSeek can be trained on existing video scripts to align with a desired content style, and the AI can also adapt its writing style based on feedback, such as making a script more casual.
    • Strategy Development: Beyond content creation, DeepSeek can assist in the overall planning and strategy development for an affiliate marketing business by helping to find the initial niche and relevant affiliate programs. Charlie suggests treating DeepSeek as a “very very smart friend” that can answer questions and provide insights to build a solid foundation for the business.

    In summary, the source positions DeepSeek AI as a powerful tool that can significantly streamline and enhance various aspects of affiliate marketing, from initial research to content creation and strategy development. However, it also emphasizes the importance of adding a personal touch to the AI-generated content for optimal results.

    Affiliate Content: Blogs and Short-Form Video Strategies

    Discussion of content creation in the context of affiliate marketing, as described by Charlie, centers around creating valuable material to attract an audience and subsequently promote affiliate offers. The sources highlight two primary forms of content: blog articles for websites and short-form video content for social media platforms.

    Blog Article Creation:

    • A website is considered a crucial platform for hosting blog articles that promote affiliate offers. Charlie recommends Hostinger for web hosting and highlights its AI-powered website builder and WordPress AI tools, although he focuses more on using DeepSeek AI for content creation.
    • DeepSeek AI is presented as a valuable tool for generating SEO-optimized blog articles. The process involves providing DeepSeek with a prompt detailing the topic, desired length, SEO requirements, and a clear call to action to an affiliate link. An example prompt is given for creating an article about sustainable Patagonia products.
    • While AI-generated content provides a “fantastic foundation” and saves time and mental energy, Charlie emphasizes the importance of adding a personal touch to the content. He suggests that content performs better when the creator chooses a niche they are interested in and have some experience with, allowing them to provide their own insights. Simply copying and pasting AI-generated articles is not recommended for optimal results.
    • The created content can then be easily added to a blog post on a website built with Hostinger, where affiliate links can be embedded. Charlie briefly demonstrates this process, highlighting the ease of use of the Hostinger platform.
    • The ultimate goal of blog content is to provide value to the audience by compiling information, lists, or opinions, and then offering the affiliate link as a helpful resource.

    Short-Form Video Content Creation:

    • Recognizing that a website alone may not be sufficient in 2025 and beyond, the source emphasizes the importance of pairing it with short-form video content for platforms like Instagram and TikTok.
    • DeepSeek AI can also be used to generate short-form video scripts. Users can provide prompts specifying the product to promote, the desired length, and a clear call to action, such as DMing a specific word for the affiliate link.
    • DeepSeek has the capability to be trained on existing video scripts to align with a desired content style and can adapt its writing based on feedback, such as making a script more casual.
    • While appearing in videos can provide a personal advantage, it is not strictly necessary. Individuals can use AI video avatars (e.g., HeyGen) or AI voiceovers (e.g., 11 Labs, haen) paired with stock footage or AI-generated images (e.g., Midjourney). However, Charlie cautions that overly AI-generated content might not perform as well as content with a personal touch.
    • To automate the process of delivering affiliate links to those who engage with video content (e.g., by DMing a specific word), automation tools like HighLevel or ManyChat are recommended. These platforms can automatically send a message containing the affiliate link upon receiving a designated keyword, which is described as a high-intent way to drive conversions.

    In both blog articles and short-form videos, the overarching principle is to provide value to the audience before presenting affiliate offers. The source underscores that consistent content creation is essential for building a successful affiliate marketing business, and AI tools like DeepSeek can significantly accelerate this process. However, it’s crucial to remember that affiliate marketing is not a get-rich-quick scheme and requires time and consistency.

    Building Affiliate Marketing Websites with Hostinger

    Based on the information provided in the source [01.pdf], building a website is presented as a crucial step for anyone looking to make money online through affiliate marketing. Charlie states that “if you want to make money online you’re going to want to have one”. He uses Hostinger as his preferred platform for hosting and building websites.

    Here’s a breakdown of website building as discussed in the source:

    • Choosing a Hosting Platform: Charlie recommends Hostinger due to its affordability and high-speed web hosting services. He provides a specific link and coupon code (“Charlie Chang”) for potential users to get a discount.
    • Selecting a Hosting Plan: Hostinger offers various plans, and for most beginners, Charlie suggests the business plan which allows building up to 100 websites, provides 200GB of storage, a free SSL certificate, and a free domain. The premium plan is also mentioned as a slightly cheaper alternative.
    • Website Building Methods: Hostinger offers two primary ways to build a website:
    • AI Website Builder: Users can input their brand name and a brief description, and the AI will automatically generate a website. This method is highlighted for its speed and ease, with Charlie creating a basic website in just 1-2 minutes using this approach.
    • Pre-made Templates: Hostinger also provides a variety of pre-designed templates that users can select and customize.
    • Customization and Editing: Regardless of the method used to create the initial website structure, users have full control over customization. They can change the color palette, modify text by simply clicking on the elements, add their logo, and upload images. Hostinger also offers AI tools to help create content directly within the platform.
    • Adding Blog Articles: Since content is key for affiliate marketing, the source explains how to add blog articles to the website. Users can navigate to the blog section, click “add new post,” and then input their content. Although Hostinger has its own AI for content creation, Charlie emphasizes using DeepSeek AI as a more advanced model for generating SEO-optimized articles. The process involves copying the content generated by DeepSeek and pasting it into the Hostinger blog editor.
    • Integrating Affiliate Links: The source explicitly shows how to embed affiliate links within blog articles on the Hostinger platform. This involves selecting the desired text, clicking the link button, pasting the affiliate URL, and saving the changes.
    • Going Live and Connecting a Domain: Once the website is built and content is added, users can click “go live” to make their site accessible to the public. They also need to connect the free domain they received with their hosting package.
    • Ease of Use: Charlie mentions that Hostinger is user-friendly, stating that “most people can learn Hostinger within one single day and they get pretty great at it”.

    In summary, the source positions building a website with a platform like Hostinger as a relatively straightforward process, especially with the availability of AI-powered tools and pre-made templates. The primary purpose of the website in the context of the source is to host blog articles that provide value to the audience and strategically incorporate affiliate links. The combination of an easy-to-build website and AI-assisted content creation is presented as a powerful strategy for beginners in affiliate marketing.

    How to Make Money with DeepSeek – Best Side Hustle for Beginners!

    The Original Text

    hey guys it’s Charlie and in today’s video I’ll teach you a really effective way to make money using deep seek and yes you can do this from home with just a laptop now if you’re new here my name is Charlie I have a bunch of businesses but one of them is affiliate marketing and this is pretty much the exact same AI strategy that I use to make millions of dollars per year there’s a lot of bad information out there but I’m going to teach you exactly what you need to know it’s going to be completely free and so yeah I hope you guys get a ton of value from this video we’ll go through how to create high converting affiliate content we’ll go through some offers that you guys can start promoting immediately how to use deep seek to actually create all this content for us scaling with pretty easy to make short form content and yeah if you’re not using this exact strategy you are already way behind the competition this is going to save you so much money and time and I really hope that you can take action so yeah just follow along I’ll have all the resources we show in this video down below in the description and let’s get started so the first thing we’re going to do is go to deep seek.com and what we’re going to do is click on start now it’s going to have you either create an account or login so here’s the main dashboard and the first thing we’re going to do with AI is use it to help us find what affiliate marketing niches we’re going to be in and just a quick intro if you don’t know what affiliate marketing is it’s when we promote other people’s products or services and we get a small commission when someone actually buys it this way you act as just the marketer you don’t need to actually make a physical product or a service you’re essentially just promoting other people and they are paying you a commission it’s a simple business model it’s extremely effective and you can absolutely make a ton of money doing just this so I wrote what are the top affiliate marketing niches to start a blog and create content in I’m looking for high paying lower competition niches what we’re going to do is turn on deep think R1 mode this might look a little bit different depending on when you are watching this video and I also turn on search we’ll go ahead and click this button right here it’s going to show us deep think actually thinking and it’s pretty cool to read how it’s thinking but we’re going to let that run for a second all right so that took a little bit of time but deep seeks thinking model is extremely effective it does a very good job at weighing the pros and cons and that’s why it takes you know up to a minute to create a list like this as you can see it’s offered some really good suggestions we can scroll through here we see things like Niche online courses subscription boxes and keep in mind since I to it to find lower competition niches that definitely makes it quite a bit harder these aren’t going to be some of the you know popular niches you see other people make content about and so yeah just basically treat deeps as a very very smart friend who can answer any question and the more specific you are with the prompt the better it is these are all somewhat Niche which is really great you don’t want to be in a really broad General Niche and that’s mostly because the competition is probably a lot higher for this video let’s go with something like eco-friendly sustainable living this is something that is on the rise in terms of demand I’m sure there are tons of affiliate programs that we can also use deep seek to find and we can go ahead and be like I like number two can you give me some of the top paying affiliate programs out there in this Niche cool so now that’s finished we can see it’s given us a bunch of different affiliate programs we can start to join immediately it tells us the commission the types of products the cookie ation why it’s great and also an additional tip which is pretty cool and so essentially what you do is you use AI like deep seek to help you plan and find the foundation for your business what affiliate programs to sign up for what your specific Niche is as well as actually use it to create content for you and I’m going to show you guys in just a bit how to do this specifically with deep seek But first you need a place to actually put the articles that you write using Ai and for that of course we’re going to need some type of website currently I have no less than 10 different websites under my businesses and I’ll show you exactly what I use to host and build them okay so if you use the link down below hostinger.com Charly Chang it’s going to take you to this exact landing page this is the company that I use to host all of my websites I love a great deal and hosting her without doubt is one of the most affordable but high-speed web hosting services that exist and so if you use my exclusive link down below you’ll get the best pricing there is I want to help you guys save some money and also if you use coupon code Charlie chain at checkout it’s going to take an additional 10% off but yeah you want to use that link down below it’s going to take you to this page and we’ll click on claim deal you’ll see that there are three different plans to choose from there’s the premium the business and the Cloud Server plan for most of you guys watching this video I think the business plan is going to be the best one it allows you to build up to 100 different websites with one single plan which is just insane you get 200 GB of storage which is plenty free SSL free domain and you also get access to their WordPress AI tools which can save you a ton of money if you want to save a little bit of money you can of course get the premium it does Miss a few of the features but I don’t think most of you will need the cloud startup plan so we’ll go ahead and choose this one yeah anyways web hosting these days is so affordable it literally doesn’t make any sense not to have a website because if you want to make money online you’re going to want to have one so we’ll choose how long we want to have the web hosting for I suggest either 24 or 48 months the longer you get to lock in the super super low rate just for this video I’ll show you guys 24 months and then of course here with coupon code you’re going to enter in char Chang that’s just my name click apply as you can see it took 10% off so yeah we’re getting 2 years of web hosting for what $86 which is just so so cheap and yes we get a free domain with this order so we’ll go ahead and click continue it’s going to have you create an account and then enter in your payment information so once you’re in your dashboard what you’re going to do is come here and click on ADD website we’re going to use the hostinger website builder which is a lot easier to use so I’m going to use AI to create this website for me I just put a brand name as well as a description and we’ll click on create a website they also have a ton of pre-made templates that you can just select if you want to go that way but just to save some time I’m going to have ai do it for me so now that’s done I can choose my color palette if I want to I think this one looks pretty solid we’ll go ahead and click continue and yes I can absolutely change anything I want here I can customize it I can change the template later on but as you can see it literally took me about 1 2 minutes to create this website all I need to do is go in and put in my logo change up the text my images and everything can be done from this website builder it’s extremely easy to edit any of the text you just click on what you want to change you can see they have tons of AI tools that can help us create content we can change our website Styles we can add pages and add to our navigation bar up here if you want to add blog articles you’ll come here to the blog section click on add new post and create a blog and then on any page we can always add a section by clicking this button right here choosing from one of the pre-made templates for example this one and if at any point you want to delete a section it’s very easy you’ll just come here and click on this trash can icon or if you want to change the order of them we can go ahead and move this down move it back up and so on and once you click on go live it’s actually going to become a live website that people can actually go to and of course you’ll want to connect your domain that you got for free with your hosting your website package now in terms of creating your blog this is the really important part because content really is keying when it comes to affiliate marketing you want to create solid content and now I’m going to show you exactly how to use deep seek to help with this so let’s go ahead and say we want to promote a brand like Patagonia this is probably one that you guys know and what we’re going to do is we’re going to have deep seek help us create really SEO optimized blog articles so what I’m going to do is come here to message deep seek and I’m going to write something out like this I want to create a blog article talking about the top three most sustainable products at Patagonia make sure it’s SEO optimized and has a clear call to action to our affiliate link so I just created a demo link here make it between 500 to 600 words we can absolutely get more specific if you want you can give it the exact three product we want it to talk about we can point in different directions you can get really creative with this just for this video though I’m just going to have it be pretty Broad and we’ll go ahead and click enter all right so it’s given us this full article on three different products or collections now of course when it comes to content you don’t want to just copy and paste an article that’s generated by AI this is a fantastic foundation it’s going to save us a lot of time it’s going to save us a lot of mental energy and coming up with you know what we say about each product and stuff like that but we do want to put our own spin on it so optimal you’ll choose a niche that you yourself are interested in one that you actually have some experience with so that you can give your own personal input cuz yeah when it comes to these like super generic articles yes you can do it it’s probably not going to perform as well as if you give it a personal touch but we’re saving so much time and I’m just going to copy and paste this article into our website for now but of course when you actually put this into practice make it your own and don’t just fully copy it so we’ll go ahead and click on this right here go back to our website to our blog section let’s click on add new post so since I do have the business plan we can absolutely use AI within hostinger to create articles for us but since this video is about how to make money using deep seek I’m trying to use the Deep seek AI model to do it it is a more advanced AI model than the one that hostinger comes with at least right now so there is some benefit to doing it outside we’ll go and click skip I’ll write it myself and of course we can change the blog header and for the content I’m going to go ahead and come here I’m going to paste what I got from deep seek of course I’m going to delete most of this stuff at the end as you can see it put that demo Link in for us you might need to change up the formatting if you copy directly for example we want this link to be here go ahead and select this right here click on this button we’ll have it go to a web address put in our affiliate link and click on Save and now if they click on this it’s going to take them to that link go ahead and do that for the rest of the article go delete this delete this as well and of course fix all the formatting we’ll want to change this picture of course you’ll probably want to insert photos in the article itself and once you’re done with this you’ll click on update website and so yeah that’s the whole website portion I’m not going to cover this too much I have a ton of other videos but how to actually build your website in a lot more detail but this is a great start it’s not that complicated I found that most people can learn hostinger within one single day and they get pretty great at it the main part though is just using deep seek or any other AI model to help you create the foundation of your article put your own personal spin on it and then put that on your website right the whole idea of the game is give your audience as much value as you can compile information compile lists compile opinions whatever it is and then give them the option to use your affiliate link because it’s pretty much a win-win for everyone now in terms of signing up for actual affiliate programs there are so many ways to do this one way I recommend looking at is affiliate networks so this is going to be things like impact radius partner stack Commission Junction share sale there are tons of them and basically what these networks do is they allow you to sign up for one account let’s say through partner stack so for example here we can see there are tons and tons of affiliate programs that we can sign up for it’s going to tell you the commission that they are paying we’re going to have a trending section we can Browse by different categories and just a very easy place to find a bunch of programs that you can join there are also tons of direct affiliate programs you can join so for example there’s the Teemu affiliate this is one that I like to show because anyone can sign up you’re not promoting a specific product but you can promote pretty much any product that is available on Teemu it’s very similar with Amazon Associates as well if you want to sell any product on Amazon you can earn a commission usually 1 to 10% of the purchase price and that is definitely something you can sign up for as well these are all great beginner places to find affiliate programs to join I’m not going to go into too much detail on this but just know that almost every single business or company out there is going to have some affiliate program if you just search up that company or brand at an affiliate program on Google the website to sign up should show up if they do have one essentially if I were a beginner with affiliate marketing that’s where I would start I’d find these affiliate networks sign up for them look through the different affiliate Partners on those platforms I use deep seek to help me find different affiliate programs within a specific Niche i’ go ahead and manually find them and then sign up and yeah that’s basically what I want to say about you know Finding affiliate programs now in 2025 and Beyond just having a website is not going to be enough what you’ll want to do is have a website to promote your affiliate offer offers but also pair that with content and you might be thinking what if I don’t want to be in videos that’s completely okay you do not need to be in videos yourself although I will say having that Personal Touch does definitely give you an advantage so if you are okay with it I’d say yes try to be in some of the videos but with AI and all these automations you absolutely do not have to the great thing is that we can use deep seek to help us create content very easily so let me show you exactly how to do that so I wrote help me create a 20 second short form video script I can film myself saying to promote the Patagonia Nano puff jacket make it have a clear call to action to DM me the word jacket for the link deep seek is quite good at creating video scripts and the best thing is that you can actually train it so if you already have a bunch of video scripts we’ve written you can load that into deep seek have it use that to train itself and give you something that’s more similar to what content you actually want we can also give it direction we can give it suggestions and it’s going to learn all that stuff and take all of it into context so in this case it gave us this script right here we don’t need to use it exactly it’s just a great way to save us some time based on what I’m seeing right now this one looks a little bit too salesy so we can absolutely tell it hey this is a bit too salesy can you make it a little bit more casual for example let’s say that this is to salesy can you make more casual cool so now it’s done you can see this one is definitely a lot more casual this is something that I think would work a lot better than the first one and now that save me a lot of time I can just literally read this for a video camera like like this edit it using something like cap cut and if you don’t want to be in the video yourself of course you don’t need to yourself say this you can create a video Avatar using something like hey Jen this is a really cool platform that allows you to use different people basically actors and you can make them say whatever you want and use that for your videos you can also do faceless ones where it’s not a person rather it’s just a voiceover there’s so many AI voiceover tools these days such as 11 Labs haen also has a voiceover tool those are just off the top of my head but are plenty of other ones that you can find you can pair that with something like mid journey to help you create images you can animate images as well using AI but I just do want to say one thing the more AI your content is the less likely it’s going to do well so while I am a big proponent of using AI in your content creation process I don’t think it should be the only thing you use because one literally anyone can do this there’s no Moe there’s no like personto person communication which I think is pretty big in the space but just know that there are these tools out there and if you really don’t want to be in videos yourself you can use AI to automate the whole video content creation process you’ll then post those to Instagram Tik Tok Pinterest whatever other social media platforms you use and that is like the whole content creation process now you might also be wondering okay I had it say DM me the word jacket and I’ll send it your way how do you actually automate this from happening because of course you don’t want to go through your Instagram DMS see everyone that has messaged a certain word and then send them a link that would take way too much time but you can automate this process with something like high level or many chat I’ll have links down below to both I use both of them and if you’re on social media you’ve probably seen other creators or influencers do this and for the longest time I was like how are they you know actually sending this thing out automated if I message them or if I comment a word well they’re using either high level or many chat it’s all done automatically and it’s pretty cool how it works for example I’m in one of my many chat accounts right now and you can see there are so many different templates we can use for example this is a popular one you can Auto DM a link from comments so you can pick a specific post or a re to have this be active on you can choose any poster reel or you can have it be your next poster reel click next you’ll enter a specific keyword so let’s say jacket in this case and then we can choose what we want to actually send the person so of course we’ put the affiliate link here and then click on next not too many people are doing this when it comes to affiliate marketing and you’ll probably see a ton of videos out there on YouTube that only talk about creating a website but there’s a lot of other stuff you can do to get clicks on your link while still maintaining a high conversion rate right because if you think about anyone that comments a certain word has high intent they might be in the process of looking for a specific jacket they might be going on a vacation soon that requires new clothes whatever it is and then they take the time to actually comment the likelihood that they convert is quite high and that makes this a very feasible strategy when it comes to highquality affiliate marketing if you piece it all together you should have a really great foundation for your affiliate marketing business again deep seek is such a great tool it’s very similar to chat GPT although it does have in my my opinion better reasoning skills right now when you pair AI with the traditional sense of affiliate marketing you’re able to create a website you’re able to create content extremely fast it’s going to save you a lot of headache it’s going to save you a lot of money and of course it’s going to save you a lot of time as well affiliate marketing is not a get quick Rich way of making money it’s just not the case yes you can make money relatively quickly but it does take time and consistency to build it into a real business but with AI these days it makes it a lot faster so if if you want to get into affiliate marketing if you want to make money online then you absolutely need to use the strategy I don’t recommend any other way you’re just going to be so behind when it comes to competing with other people that are using AI to build out their content build out their websites as well as get strategy for building their business DC can do all that for you that’s why it is such a powerful platform and hopefully you guys can actually take what we talked about in this video implement it into your own business and yeah of course you can watch this video at any time again just play from the start follow along if you already followed along and took action then I do want to say you’re amazing yeah seriously making money online is one of the best things in the world I cannot stress this enough it’s allowed me to live my dream life it’s allowed me to buy the things that I want to buy it’s allowed me to have time freedom and so if you’re watching this video you probably have some sense of Entrepreneurship within you if it is something that you’ve always wanted to do I’d say go for it take the risk make that time sacrifice right now and the future you is going to be really glad that that you did okay yeah enough pep talk I’m just really passionate about entrepreneurship I hope you guys can tell that and hopefully this video can help you with your affiliate marketing Journey again all the resources that we talked about in this video they are going to be down below if you do use those links it will help support my Channel at no additional cost to you you’ll also get a better deal on a lot of the products so I think it’s a pretty big win-win and yeah happy online business building please give this video a like if you got some value from It And subscribe if you want to see more content just like this I make a ton of videos about Personal Finance on entrepreneurship and investing all St have to help you live the most financially successful life you can have thank you so much for your time and I will see you in the next video peace

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • AI-Powered $1,000/Day: Beginner’s Free Income System

    AI-Powered $1,000/Day: Beginner’s Free Income System

    The provided video transcript outlines a method for individuals, even beginners, to potentially earn over $1,000 daily by leveraging free AI tools, specifically highlighting DeepSeek. The speaker emphasizes a simple, cost-free approach centered around using AI to generate content that promotes affiliate links for various tools, including over 400 listed in a free checklist offered to viewers who engage with the video. This strategy focuses on identifying trending content, using AI to recreate it, and distributing it across platforms to drive traffic to affiliate offers, often involving free trials and giveaways. The creator advocates for a shift towards passive, recurring income through this model, contrasting it with the burdens of traditional selling and emphasizing the simplicity and accessibility of using AI for income generation without needing technical expertise or significant upfront investment.

    Study Guide: Earning with AI and Affiliate Marketing

    Key Concepts and Topics:

    • DeepSeek: A free AI tool, presented as an alternative to ChatGPT, used for content creation.
    • Affiliate Marketing: Earning commissions by promoting other companies’ products or services through unique affiliate links.
    • Passive Income: Generating income that requires minimal ongoing effort after the initial setup.
    • Reoccurring Commissions: Earning continuous payments from customers who maintain subscriptions to promoted products or services.
    • Trending Content: Identifying popular topics and content formats to maximize reach and engagement.
    • Prompting AI: Effectively instructing AI tools to generate desired content.
    • Value Provision: Offering free resources (like trials and giveaways) to attract potential customers without direct selling.
    • Lead Generation: Attracting potential customers who show interest in the promoted products or services.
    • Sales Funnel (Mentioned): A system designed to guide potential customers through the process of learning about and purchasing a product (though the focus here is on a simpler approach).
    • Free Tools and Trials: Leveraging no-cost resources and limited-time access to paid tools to offer value and encourage sign-ups.
    • Simplicity (KISS Principle): Emphasizing a straightforward approach to online earning, avoiding overly complex strategies.
    • Content Regeneration: Using AI to create new content inspired by existing popular content.
    • Outliers (YouTube Analytics): Videos with a significantly higher initial growth rate compared to their longer-term performance, indicating potential for broad appeal.

    Quiz:

    1. What is DeepSeek, and how is it suggested to be used for earning money online in the provided text?
    2. Explain the concept of affiliate marketing as described in the source material, and what is the key benefit highlighted for the promoter?
    3. According to the text, what is the primary strategy for getting traffic to affiliate links without spending money on advertising or engaging in complex tactics?
    4. What role does identifying “trending content” play in the proposed method of earning with AI? Provide an example of a tool mentioned for finding trending topics.
    5. Describe the “secret” to making money online with AI, according to the speaker, and why is it considered important?
    6. Explain the concept of reoccurring commissions and why they are presented as a desirable form of income.
    7. How does offering free trials and participating in giveaways benefit both the potential customer and the affiliate marketer in this model?
    8. What is the speaker’s perspective on the complexity often associated with making money online, and what principle does he advocate for instead?
    9. Summarize the eight-day AI challenge mentioned in the text and how individuals can access it.
    10. How has the speaker’s personal approach to online income evolved, and what are the key differences between his past and present methods?

    Quiz Answer Key:

    1. DeepSeek is presented as a free AI tool similar to ChatGPT. It is suggested to be used for creating various forms of content (videos, blogs, social media posts) to promote affiliate links.
    2. Affiliate marketing, as described, involves earning commissions by sharing unique links to other companies’ products or services. The key benefit for the promoter is that they don’t have to handle product creation, fulfillment, or customer service.
    3. The primary strategy for getting traffic without paid ads is to find trending content and use AI (like DeepSeek) to regenerate similar content, which can then include affiliate links and attract organic views on various platforms.
    4. Identifying trending content helps affiliate marketers tap into topics that are already popular and being searched for by a large audience. Google Trends is mentioned as one free tool for discovering trending topics.
    5. The “secret” to making money online with AI is being good at prompting the AI. This involves effectively instructing the AI to regenerate content similar to what is already performing well online, leading to more views and leads.
    6. Reoccurring commissions are continuous payments earned every time a referred customer pays for a subscription-based product or service. They are desirable because they can create a stable and passive income stream over time.
    7. Offering free trials and participating in giveaways provides value to potential customers by giving them access to tools or a chance to win prizes without immediate cost. For the affiliate marketer, this can attract a larger audience and increase the likelihood of long-term paid subscriptions, leading to commissions.
    8. The speaker believes that many online earning strategies are unnecessarily complex and advocates for simplicity, following the KISS (Keep It Simple Stupid) principle. He argues that focusing on simple, easy-to-understand methods is more effective.
    9. The eight-day AI challenge is a step-by-step live series (with no editing) that demonstrates how to get started with using AI for online earning. Individuals can access the checklist and the challenge by going to shinify.com.
    10. The speaker initially made a large amount of money selling his own products but found it stressful due to overhead and customer management. He now focuses on promoting other companies’ tools with free trials, generating reoccurring and passive income with significantly less personal involvement.

    Essay Format Questions:

    1. Discuss the advantages and potential disadvantages of using a strategy focused on promoting free trials and giveaways for building a sustainable online income through affiliate marketing, as described in the source material.
    2. Analyze the role of AI, specifically tools like DeepSeek, in the content creation and distribution process outlined in the text for earning affiliate commissions.
    3. Evaluate the claim that identifying and regenerating trending content is the “real secret” to making money online with AI. What other factors might contribute to success in this model?
    4. Compare and contrast the traditional approach of selling products or courses online with the model presented in the text, which emphasizes offering free value and earning reoccurring commissions through affiliate partnerships.
    5. Based on the information provided, outline a hypothetical step-by-step plan for a beginner to start earning money online using the methods and tools discussed in the “01.pdf” excerpts.

    Glossary of Key Terms:

    • AI (Artificial Intelligence): The theory and development of computer systems able to perform tasks that normally require human intelligence, such as learning, problem-solving, and decision-making.
    • Affiliate Link: A unique URL assigned to an affiliate marketer that tracks the customers they refer to a business’s product or service.
    • Algorithm: A set of rules or instructions that a computer follows to solve a problem or perform a task, often used by social media platforms to determine which content to show users.
    • Commission: A fee or percentage of a sale paid to an affiliate marketer for successfully referring a customer.
    • Content: Information or creative material, such as videos, blog posts, images, or audio, shared online.
    • CRM (Customer Relationship Management): A system used to manage interactions with current and potential customers.
    • DeepSeek: A specific free AI tool mentioned in the text, used for generating text and other forms of content.
    • Fulfillment: The process of preparing and delivering a product or service to a customer after a sale.
    • Lead: A potential customer who has shown interest in a product or service.
    • Outlier (in Analytics): A data point that significantly deviates from other data points, often indicating exceptional performance.
    • Passive Income: Earnings derived from an endeavor in which the earner is not actively involved.
    • Prompting: The act of providing text instructions or questions to an AI model to generate a desired output.
    • Reoccurring Income: Income that is earned repeatedly over time, often from subscriptions or ongoing services.
    • Trending: Currently popular or widely discussed topics or content.
    • Trial (Free Trial): A period during which a customer can use a product or service without payment, often with the expectation that they will subscribe or purchase afterward.

    DeepSeek AI Affiliate Income: A Beginner’s Guide

    Briefing Document: Making Money Online with AI Using DeepSeek

    Date: October 26, 2023 (Based on content references) Source: Excerpts from “01.pdf” – A video transcript by Chase with Shinify

    Overview:

    This document summarizes the main themes and actionable strategies presented in a video by Chase from Shinify, focusing on how beginners can earn over $1,000 a day using the free AI tool DeepSeek. The core idea revolves around leveraging AI to create content that promotes affiliate links for various tools and services, primarily within the AI niche, without relying on paid advertising, complex funnels, or extensive technical expertise. The emphasis is on simplicity, utilizing free resources, and tapping into trending content to drive traffic and generate recurring income through affiliate commissions.

    Main Themes and Important Ideas:

    1. Simple and Free Method for Earning Online with AI:
    • The presenter emphasizes that the method described is straightforward and doesn’t require any upfront investment or advanced technical skills.
    • It avoids common complexities like paid ads, TikTok dances, or intricate marketing funnels.
    • The core tools involved are primarily free, such as DeepSeek (a free alternative to ChatGPT).
    • The goal is to create an “automated system where it works for you day and night” by promoting valuable tools that offer recurring commissions.
    1. Leveraging DeepSeek for Content Creation:
    • DeepSeek is presented as a central tool for generating content.
    • Users can prompt DeepSeek to help create various forms of content, including videos, images, blogs, and podcasts.
    • The strategy involves finding trending content and using DeepSeek to “regenerate trending content” for promotional purposes.
    • The focus is on creating “simple very very simple content” that can attract views and leads.
    1. Affiliate Marketing as the Monetization Strategy:
    • The method relies on promoting affiliate links for various tools and services.
    • The presenter provides access to a “free step-by-step checklist” containing over 400 tools with affiliate programs.
    • He showcases personal earnings as proof, including one instance of being owed “$5,799” and another where he made “$93,000 in paid commissions” in the last three months from a single tool.
    • The focus is on promoting tools with “reoccurring products reoccurring tools” to build a sustainable passive income stream.
    • The presenter highlights that almost any company, including major brands like Nike, has affiliate programs, offering diverse promotional opportunities.
    1. Capitalizing on Trending Content:
    • The key to driving traffic without paid ads is to identify and create content around trending topics.
    • Tools like Google Trends are suggested for finding popular search terms and emerging trends related to AI tools or any other niche.
    • The strategy involves finding content that is already performing well (e.g., videos with thousands of views and comments) and using AI to “regenerate that content” in a similar vein.
    • The presenter argues that platforms naturally distribute content related to trending topics, increasing visibility even for new or low-profile users.
    1. Simplicity and Avoiding Complexity:
    • The presenter repeatedly stresses the importance of simplicity (“KISS – keep it simple stupid”).
    • He criticizes the selling of complexity and encourages beginners to focus on understanding and teaching a few core technologies.
    • The 8-day live series within the checklist is designed to be a simple, step-by-step guide without editing or hidden steps.
    1. Providing Value Through Free Resources:
    • The strategy emphasizes offering free value to potential customers, such as access to the checklist, free trials of tools, and information about giveaways.
    • The presenter himself operates on a model of providing free education and resources, stating, “everything I do is 100% for free and I don’t charge you money to teach you how to do what I do why because I already make enough money and I don’t need to sell you anything.”
    • Promoting free trials and giveaways offered by companies is presented as a “win-win” situation where users get access to valuable resources and the promoter earns commissions if those users become paying customers later.
    1. Long-Term Recurring Income vs. Short-Term Gains:
    • The presenter advocates for building a system that generates recurring monthly income rather than focusing solely on immediate, one-time profits.
    • He contrasts his current lifestyle of consistent passive income with a past period of higher earnings but also higher stress and overhead from actively selling products.
    • The goal is to create a “reoccurring profit system” with multiple tools and promotions running concurrently.
    1. Democratizing Access to Technology:
    • The presenter aims to help individuals, even those who are not tech-savvy or who might be “scared of technology,” to adopt and benefit from AI tools.
    • He emphasizes that AI is making things easier and can help overcome past roadblocks and limitations.
    • By learning basic AI prompting and understanding a few tools, individuals can become qualified to help others adopt this technology and earn income in the process.

    Key Quotes:

    • “today we’re going to be talking about the most simple way to earn over $1,000 a day with AI and the best part about all of this is you don’t have to spend any money and you don’t have to be an expert.”
    • “we’re going to be using a free tool called DeepSeek if you’ve never seen it before it’s basically like a free version of Chat GPT…”
    • “…inside of this free checklist that you’re going to get when you drop a comment leave a like and subscribe you’re going to get over 400 tools that all have links that you can start promoting and you can get paid every single month by these different companies.”
    • “you don’t have to do any of the fulfillment so inside of this free checklist that you’re going to get when you drop a comment leave a like and subscribe you’re going to get over 400 tools that all have links that you can start promoting and you can get paid every single month by these different companies.”
    • “…we want to set up for you is an automated system where it works for you day and night you don’t have to worry about the customers you don’t want to have to worry about the fulfillment you don’t want to have to worry about any of that…”
    • “the real secret to making money online with AI is just being good at prompting you just have to be good at at finding content that works well and then prompt the AI to give you a good output that helps you create content that’s similar to the thing that you saw that was already working well.”
    • “AI is going to go and create that viral content for you as long as you know how to prompt it correctly.”
    • “you don’t have to be this person with you know thousands of followers or be this big Instagram or YouTube influencer you don’t need that you could literally have just a basic average Facebook profile with a few friends on it start posting content on that that’s trending that’s about something that’s blowing up right now and the algorithms will naturally want to distribute your content to people just because you are talking about something that people want to see.”
    • “the beauty of this system is that you can go out and give away free stuff right i’m not selling anything i’m just giving away free trials to things and if people choose to keep those things and they want to pay for them 30 days later then I make a commission okay and so you don’t have to go and sell your friends on anything you don’t have to go and say ‘Oh you need to buy my course or buy my program or any of that.’ All you’re doing is you’re helping people get free things…”
    • “…you want the real deal you want real reoccurring passive income that comes in every single month whether you’re out on the beach whether you’re out hanging out with your family whether you’re playing video games whatever you’re doing you want to be able to have money coming in every single month…”
    • “AI is not making things more difficult it’s making things easier…”
    • “the real winners the true uh rich and wealthy people they focus on simplicity it’s the term Kisss KISS keep it simple stupid…”

    Actionable Steps for Beginners (Implied):

    1. Access the Free Checklist: Drop a comment, like, and subscribe to the video or visit shinify.com to get access to the list of over 400 tools with affiliate programs.
    2. Explore DeepSeek: Sign up for a free account on DeepSeek and familiarize yourself with its basic functionalities (chat, deep think, search).
    3. Watch Day One of the Checklist Series: Learn how to find and sign up for affiliate programs and obtain affiliate links.
    4. Identify Trending Content: Use tools like Google Trends to discover popular topics, particularly within the AI niche or areas of interest.
    5. Research Successful Content: Look for posts, videos, etc., that have high engagement (views, comments) related to trending topics.
    6. Use DeepSeek to Regenerate Content: Prompt DeepSeek to create similar content based on the successful examples you found. This could be adapting the topic, angle, or format.
    7. Share Content with Affiliate Links: Distribute the AI-generated content on relevant platforms (Facebook, YouTube, etc.), incorporating your affiliate links.
    8. Focus on Providing Value: Emphasize the free resources, trials, and giveaways associated with the tools you promote.
    9. Build a Long-Term System: Continuously identify new trending topics and tools to promote, aiming for a diversified portfolio of recurring income streams.
    10. Embrace Simplicity: Avoid getting overwhelmed by the vast number of tools and focus on mastering a few key strategies and technologies.

    Conclusion:

    The video presents a compelling and seemingly accessible method for beginners to generate online income using the free AI tool DeepSeek and affiliate marketing. The core strategy revolves around leveraging AI to efficiently create content based on trending topics and promoting valuable, often free-to-try, tools that offer recurring affiliate commissions. The emphasis on simplicity, free resources, and providing value to others positions this approach as a potentially sustainable and less stressful alternative to traditional online business models. However, as with any income-generating opportunity, individual results may vary, and consistent effort in identifying trends and creating engaging content is likely necessary for success.

    AI Affiliate Earnings: $1000/Day with Free Tools

    Frequently Asked Questions about Earning with AI and Affiliate Marketing

    1. What is the core method for earning $1,000 a day as described? The core method involves using free AI tools, specifically DeepSeek (a free alternative to ChatGPT), in conjunction with other free resources to promote affiliate links for various tools and services. The strategy focuses on identifying trending content, using AI to regenerate similar content, and distributing it to attract clicks on affiliate links that lead to recurring subscription sales. The emphasis is on automation and not requiring paid advertising, complex funnels initially, or extensive technical skills.

    2. How does DeepSeek AI fit into this process? DeepSeek AI is used as a free content creation tool. It can help regenerate trending content ideas for various platforms (videos, blogs, social media posts, etc.) based on user prompts. This allows individuals to quickly create content relevant to popular topics without significant effort or cost. While the basic chat function is used, the “deep think” mode is mentioned as potentially providing better outputs.

    3. What is the role of affiliate marketing in this system? Affiliate marketing is the monetization strategy. Individuals sign up for affiliate programs of various tools and companies (over 400 are mentioned in a free checklist). They receive unique affiliate links for these products. By creating content around these tools and encouraging people to click on their links, they earn commissions when someone subscribes or purchases the promoted product or service. The focus is on promoting subscription-based services to generate recurring monthly income.

    4. Is prior experience or a large following required to get started? No, prior experience or a large existing online following is not required. The method is presented as beginner-friendly, with individuals of all ages (including those over 50, 60, and 70) reportedly earning money. The emphasis is on finding trending topics and using AI to create content, which can gain traction even without a significant existing audience. Starting with a basic social media profile is suggested as sufficient.

    5. How is trending content identified and utilized? Trending content can be identified using free tools like Google Trends, which allows users to see popular search terms and topics. Once a trending topic relevant to AI or other promotable tools is found, AI (like DeepSeek) is used to help regenerate content similar to what is already performing well. The idea is to tap into existing interest and search volumes to gain visibility and clicks on affiliate links. Tools that analyze YouTube for outlier videos (videos with unexpectedly high early performance) are also mentioned as resources for finding successful content ideas.

    6. What kind of products or services are typically promoted using this method? The focus is on promoting tools and services that offer affiliate programs, particularly those with recurring commissions. Examples mentioned include AI video creation tools, image editing software, writing assistants, and even broader affiliate programs like Nike and Amazon. The free checklist reportedly contains over 400 such tools across various categories. The strategy also includes promoting free trials and even giveaways offered by these companies.

    7. What is the significance of the free checklist and how can it be accessed? The free checklist contains over 400 tools with affiliate programs. It also includes an 8-day live series (available as recordings) that provides a step-by-step guide on how to implement this earning strategy. Access to the checklist is typically offered by leaving a comment, liking, and subscribing to the creator’s content. It is also mentioned that it can be accessed by visiting a specific website (shinify.com) and providing a name and email address.

    8. What is the long-term vision and mindset behind this approach to earning online? The long-term vision is to build a system that generates recurring passive income, allowing for greater financial freedom and flexibility. The mindset emphasizes simplicity (KISS principle), continuous learning and adoption of new AI technologies, and helping others by connecting them with valuable (often free) tools and resources. The goal is to move away from the stress of actively selling and towards a model where providing value leads to sustainable income through affiliate commissions on recurring subscriptions.

    AI & Affiliate Marketing: Generating Passive Income

    Making money online, according to the information in the source “01.pdf”, can be achieved through a simple method that leverages free AI tools like DeepSeek and affiliate marketing. This approach doesn’t require significant technical skills or financial investment.

    The core of this method involves the following steps:

    • Identifying Affiliate Products: The source mentions a checklist with over 400 tools that offer affiliate programs, allowing you to get paid to promote them. Importantly, it highlights that almost every company, including major brands like Nike and Amazon, has affiliate programs. These programs provide you with a unique link, and you earn a commission when people sign up or purchase through your link. The commissions can be recurring, meaning you get paid monthly as long as the customer remains a subscriber.
    • Finding Trending Content: To get visibility, the strategy focuses on finding content that is already popular or “trending” on platforms like Facebook and YouTube. Tools like Google Trends can be used to identify trending topics related to your chosen affiliate products, such as “AI tools”. Additionally, tools that analyze YouTube data can help identify “outlier” videos that have grown rapidly, indicating popular content.
    • Regenerating Content with AI: Once a trending topic or successful piece of content is identified, DeepSeek, a free AI tool similar to ChatGPT, is used to help regenerate similar content. This AI-generated content can be in various formats, such as videos, images, blog posts, or podcasts. The key to success here is effective prompting of the AI to get a relevant and engaging output.
    • Distributing Content with Affiliate Links: The generated content, containing your affiliate links, is then distributed on relevant online platforms. The source suggests starting with platforms like Facebook and YouTube, especially for reaching an older audience interested in AI tools for automation. The platforms are more likely to distribute content that aligns with trending topics.
    • Providing Value and Free Resources: A crucial aspect of this strategy is to offer value to the audience, often in the form of free trials or giveaways associated with the affiliate products. Many companies offer free trials of their tools and may even provide additional incentives like giveaways to encourage sign-ups. By promoting these free resources, you help people discover valuable tools without requiring them to make an immediate purchase. If these users later decide to subscribe to the paid version, you earn a recurring commission.
    • Building a Sustainable, Passive Income: The focus of this method is on building a system that generates recurring and passive income. By promoting subscription-based tools and focusing on providing free value, you can create a revenue stream that continues to generate income even when you are not actively working. This is presented as a contrast to business models that require constant selling and active management.

    The creator of this method emphasizes the simplicity and accessibility of this approach. They highlight that you don’t need to be a tech expert or have a large online following to get started. The key is to learn basic AI prompting and understand how to connect people with valuable, often free, resources through affiliate links. The success stories shared in the source, including individuals of various age groups earning money, aim to demonstrate the potential of this method.

    In essence, the strategy revolves around leveraging AI to create content around trending topics, which then directs people to free trials and giveaways of useful tools through affiliate links, ultimately generating recurring commission income. This model prioritizes providing value to the audience and building a long-term, passive income stream over immediate sales.

    AI-Powered Affiliate Marketing: Simple Online Income

    Based on the information in the source “01.pdf”, using AI tools is presented as a simple and free method to earn money online, particularly through affiliate marketing. The source heavily emphasizes the role of DeepSeek, described as a free alternative to ChatGPT, in this process.

    Here’s a breakdown of how AI tools are used according to the source:

    • Content Creation and Regeneration: The primary application of AI tools like DeepSeek is to regenerate content. This content can take various forms, including videos, images, blog posts, and podcasts. The strategy involves finding content that is already trending or popular on platforms like Facebook and YouTube and then using DeepSeek to create similar content. The effectiveness of this approach hinges on good AI prompting to obtain relevant and engaging outputs.
    • Identifying Trending Topics (Indirectly): While tools like Google Trends are used to find trending topics directly, AI plays an indirect role by enabling the user to quickly create content around these trends once identified. Additionally, AI can be used to analyze successful content (e.g., YouTube videos with high outlier scores) and help regenerate similar formats and themes.
    • Content Distribution (General Mention): The source mentions that AI can help in distributing content (“it’ll find the people it’ll distribute your content”), although it doesn’t provide specific details on how this occurs within the described strategy. The focus seems to be on leveraging the algorithms of platforms like Facebook and YouTube by creating content around trending topics, which these platforms are more likely to distribute.
    • Learning and Teaching: AI is also portrayed as a tool that simplifies the learning process for online money-making and can even assist in teaching others. According to the source, AI can provide instructions, suggest what to promote, and help create content for emails and videos. This makes it easier for beginners, even those who are not tech-savvy, to understand and implement the described affiliate marketing method. The emphasis is on AI making things easier rather than more complex.
    • Image Generation (Specific Example): The source provides a specific example of using AI for generating thumbnails for YouTube videos. The creator used DeepSeek to help regenerate a prompt for a thumbnail similar to a successful video they had seen, and then used another AI tool to create an image based on that prompt.

    In essence, the strategy outlined in the source leverages free AI tools like DeepSeek to efficiently create content based on proven trends, making it easier to attract an audience and promote affiliate products. The focus is on simplicity and accessibility, with AI handling much of the content creation process. The source suggests that by mastering basic AI prompting, individuals can tap into the potential of trending topics and provide value (often free resources) to others, ultimately leading to passive income through affiliate commissions.

    AI-Powered Affiliate Marketing: Earn with Trending Content

    Affiliate marketing is a key strategy discussed in the source “01.pdf” as a simple way to earn money online by getting paid to promote products. The source emphasizes that almost every company, including major brands like Nike and Amazon, has affiliate programs.

    Here’s a breakdown of affiliate marketing as described in the source:

    • How it works: Companies provide you with a unique affiliate link. When people click on your link and either sign up for a service or purchase a product, you earn a commission.
    • Types of affiliate programs: The source mentions a checklist with over 400 tools that offer affiliate programs. These tools cover various categories like video, image, and writing tools. Importantly, it also highlights that you can promote physical products from companies like Nike and Amazon. For instance, Nike’s affiliate program allows you to earn up to 15% on all valid US sales of Nike products.
    • Recurring commissions: A significant advantage of affiliate marketing, as highlighted in the source, is the potential for recurring commissions. By promoting subscription-based tools, you can get paid every single month as long as the customer you referred remains a subscriber. The creator of the method shares examples of earning recurring income from various tools.
    • The role of AI in affiliate marketing: The core of the method described in the source involves using free AI tools like DeepSeek to create content around trending topics and embedding affiliate links within that content. The AI helps in regenerating content such as videos, images, blog posts, or podcasts. The idea is to leverage trending content to attract an audience and then direct them to affiliate offers.
    • Finding affiliate products: The provided checklist of over 400 tools is presented as a resource for finding affiliate programs. The source also advises exploring affiliate programs offered by well-known brands in various niches.
    • Generating sales without being a tech expert or spending money on ads: The source stresses that this approach doesn’t require significant technical skills or financial investment in paid advertising. The focus is on finding trending content and using AI to create similar content, which platforms like Facebook and YouTube are more likely to distribute organically.
    • Providing value and free resources: A key element of the strategy is to offer value to the audience by promoting free trials and giveaways associated with affiliate products. Many companies offer free trials as an incentive for users to try their tools. By promoting these free offers, you can encourage sign-ups, and if those users later convert to paying customers, you earn a commission. The creator shares an example of a tool offering a 14-day free trial and a chance to win a trip to LA, both of which can be promoted through an affiliate link.
    • Building a passive income stream: The ultimate goal of this affiliate marketing strategy is to build an automated system that generates recurring and passive income. Once the system is set up and people are subscribing to the tools you promote, you can earn money consistently without needing to actively manage the customers or the fulfillment process. The creator contrasts this with business models that require constant active selling.
    • Simplicity and accessibility: The source emphasizes the simplicity of this affiliate marketing method, stating that it’s accessible even to beginners and those who are not tech-savvy. The key is to learn basic AI prompting and connect people with valuable resources through affiliate links.

    The creator of this method shares personal experiences of earning significant income through affiliate marketing and highlights success stories from others in their community, including individuals of various age groups. The focus is on a win-win model where you help people discover valuable (often free) tools, and in return, you earn commissions if they become paying subscribers.

    Affiliate Marketing: Leveraging Free Value Giveaways

    Based on the information in the source “01.pdf”, free value giveaways play a significant role in the affiliate marketing strategy described as a simple way to make money online.

    Here’s a breakdown of the discussion around free value giveaways:

    • Companies offer them to attract users: The source explicitly states that many companies provide free trials of their tools and may even offer additional incentives like giveaways to encourage people to try their platforms. The reasoning behind this is that they believe if people experience the value of their tool or platform, they are more likely to become paying subscribers eventually.
    • Promotion as a core strategy: A crucial aspect of the described affiliate marketing method is to promote these free trials and giveaways associated with affiliate products. The creator emphasizes that instead of directly selling products, the focus is on helping people discover and access these free resources.
    • Examples of free value: The source provides concrete examples of the types of free value being offered:
    • Free trials of tools: Companies offer free access to their software or services for a limited period, such as a 14-day free trial of a video filtering tool called Spotter.
    • Giveaways: Some companies run contests where users who sign up for a free trial or take a similar action are entered to win prizes. An example mentioned is a giveaway of a trip to Los Angeles with paid-for flight and hotel, offered by Spotter in conjunction with their 14-day free trial.
    • Win-win situation: The strategy is framed as a win-win for everyone involved:
    • The audience wins because they get access to valuable tools and the chance to win prizes for free, without any immediate obligation to purchase. They are essentially receiving a favor by being connected to these free resources.
    • The affiliate marketer (you) wins because by offering free value, they can encourage more people to click on their affiliate links and sign up for trials. If these users later decide to pay for the tool, the affiliate marketer earns a recurring commission.
    • The company wins because they gain new users and potential long-term customers without having to spend heavily on direct advertising. Giveaways, even significant ones, can be a cost-effective way for them to acquire customers compared to traditional advertising methods.
    • Shifting the sales mindset: The source suggests that this approach allows individuals to make money online without constantly feeling like they are “selling” something. Instead, they are helping people by connecting them to valuable, often free, resources. This can be a more comfortable and sustainable approach for many people.
    • Generating recurring income: The ultimate goal is to build a system where the promotion of these free resources leads to people becoming long-term paying subscribers of the affiliated tools, thus generating recurring and passive income for the affiliate marketer.

    In summary, the strategy described in the source heavily leverages the power of free value giveaways, offered by companies, as a way to attract users and drive affiliate sign-ups. By focusing on providing free value rather than direct sales, individuals can build a sustainable online income stream based on recurring commissions.

    AI-Driven Recurring Affiliate Income System

    The source “01.pdf” extensively discusses a system aimed at generating recurring income through affiliate marketing, heavily leveraging AI tools and free value giveaways. This system focuses on building a sustainable income stream over time, rather than quick, one-time profits.

    Here are the key aspects of this recurring income system as described in the source:

    • Affiliate Marketing of Recurring Subscription Tools: The foundation of this system is promoting tools that offer recurring commissions. The source provides access to a checklist of over 400 tools that have affiliate programs, allowing you to earn monthly payments as long as the referred customer remains a subscriber. This contrasts with promoting one-time purchase products where you only earn a commission once. The emphasis is on building a portfolio of different recurring income streams from various tools.
    • Leveraging Free AI Tools for Content Creation: A core component of the system is using free AI tools like DeepSeek (a free alternative to ChatGPT) to create content. This AI-generated content, such as videos, images, blog posts, and podcasts, is used to attract an audience to the affiliate links. The source stresses that this eliminates the need to spend money on content creation or be a tech expert. The key is to prompt the AI effectively to regenerate content that is likely to resonate with potential users.
    • Focusing on Trending Content: The strategy involves identifying trending topics using tools like Google Trends and then using AI to create content around these trends. By tapping into what people are already searching for, the system aims to gain organic reach on platforms like Facebook and YouTube. These platforms are more likely to distribute content related to trending topics, increasing visibility without paid advertising.
    • Promoting Free Value Giveaways: A crucial tactic within this system is to promote free trials and giveaways associated with affiliate products. Many companies offer free trials to encourage adoption of their tools. Additionally, some companies may offer special giveaways like trips or money to incentivize sign-ups through affiliate links. The strategy is to lead with value by offering something for free, making it easier to attract clicks on affiliate links. The source emphasizes that you are essentially helping people discover valuable resources for free.
    • Organic Content Distribution: The system relies on the algorithms of platforms like Facebook and YouTube to distribute the AI-generated content organically. By creating content around trending topics, the likelihood of the platform showing it to interested users increases, reducing the need for paid advertising. The source suggests that even a basic social media profile can be used to start distributing this content.
    • Automated System for Passive Income: The goal is to create an automated system where you are consistently generating leads and sign-ups for recurring subscription tools, leading to passive income. Once the system is set up and people are subscribing through your affiliate links, you earn money continuously without needing to actively manage customers or fulfillment. This provides a lifestyle with reduced overhead and the flexibility to take time off while still earning.
    • Simplicity and Accessibility: The source repeatedly emphasizes the simplicity of this system, making it accessible to beginners and those who are not tech-savvy. The focus is on learning basic AI prompting and connecting people with valuable free resources through affiliate links.

    In essence, the recurring income system described in the source is a multi-faceted approach that uses free AI tools to efficiently create content around trending topics, which is then distributed organically to attract people to free trials and giveaways of recurring subscription tools offered by companies with affiliate programs. This focus on providing free value aims to build a sustainable stream of passive, recurring income. The creator of this method contrasts this approach with models that require constant active selling or significant financial investment.

    How I Make $1,000 a Day Using DeepSeek (Even if You’re a Beginner!)

    The Original Text

    all right what’s going on everyone welcome back chase with Shinify here and today we’re going to be talking about the most simple way to earn over $1,000 a day with AI and the best part about all of this is you don’t have to spend any money and you don’t have to be an expert you don’t have to dance on TikTok you don’t have to do anything complicated or you don’t have to learn anything that requires you to be super techsavvy in fact everything in today’s video is going to be very very simple and it comes with a free step-by-step checklist and if you want access to this all you have to do is drop a comment leave a like and subscribe and I will send you access to this right now without you having to spend any money or take out your wallet or do any of that because everything I do is 100% for free and I don’t charge you money to teach you how to do what I do why because I already make enough money and I don’t need to sell you anything so don’t worry i’m not just another guy out there going and trying to pitch you on something in this video now inside of today’s video I’m going to give you a very very simple process to get started and what we’re going to be doing is we’re going to be using a free tool called DeepSeek if you’ve never seen it before it’s basically like a free version of Chat GPT and we’re going to be pairing DeepSeek with a few other free tools to help us go and get sales on tools that we can get paid to promote without having to do any of the fulfillment so inside of this free checklist that you’re going to get when you drop a comment leave a like and subscribe you’re going to get over 400 tools that all have links that you can start promoting and you can get paid every single month by these different companies and if you don’t believe me let me show you a few of these companies that are paying me every single month this is one of them you can see they actually owe me $5,799 here and if I go to my payouts you can see they pay me every single month because I use AI to send these links to people and I get paid out every single month so I can go do whatever I want and that’s what we want to set up for you is an automated system where it works for you day and night you don’t have to worry about the customers you don’t want to have to worry about the fulfillment you don’t want to have to worry about any of that because once people are paying for these products you don’t have to do anything and I’m doing this with a bunch of different companies and by the way it’s not only me we have people in our group which by the way we have people of all ages in our group people over 50 people over 60 people over 70 earning money with what we’re talking about and you can click on our daily wins inside of our group because the link to our group our free group is in the description of this video and you can go see all the different people in here look at this we have Little Rock here who said “Okay is it thousands?” No but it’s money I made putting my affiliate links in without a funnel i’m showing for two reasons one this business makes money for anyone having doubts and two don’t just put your affiliate link here and there without a funnel landing page and so we’re going to show you by the way what all of this means if you’re brand new you don’t know what a funnel is but check this out little Rock here just got started with one of these links and they’re already earning $132.81 with this system okay and so you might not earn a ton of money right out of the gate that’s one thing I want to tell you as a disclaimer this isn’t like one of those get rich overnight things this is something where you start setting up your system you start getting people to click on your links and over time it starts to compound and you’ll even see with my own payments here that when I first started with this specific tool I actually wasn’t making that much i was making $77 on my first month okay so eventually though as you build up the reoccurring income and you start to diversify passive income between different tools that’s when you really start to see the power of this because you have money coming in every single month reoccurring because what we’re doing is we’re helping people get subscriptions to reoccurring products reoccurring tools because there’s a wide openen market right now for AI tools and we can get paid out every single month look this is another tool that paid me in the last 3 months I was able to make $93,000 in paid commissions just off of this tool and look at all these other tools that I’m sending traffic to so I could go on and show you all this proof again I’m just showing you this not to brag or anything i just want you to see that it’s possible and I want you to see that this is real okay this is a live stream by the way i don’t hide anything i always tell people listen go and watch all of my live streams because what what I do is I actually put together AI challenges and you can go and follow along with these AI challenges in a live stream environment because inside of our checklist here this is an 8day live series no editing no screenshots nothing’s hidden okay so you can go see every single day for eight days straight what I do for step one what I do for step two what I do for step three and you can follow along step by step and that’s what this checklist is for is to make it very simple for you okay all right so what we’re going to be talking about again first of all is how to just get started with a basic AI product so what we’re going to do is we’re going to head over to DeepSeek and we’re going to grab a free account okay so we’re going to click on this link to get a free account you can sign in with your Gmail you can sign in with your uh any sort of email here i’ll just sign in with a random Gmail just so you can see what I’m doing and once I’m signed in it’s going to ask me for my birthday just to confirm that I’m uh allowed to use this tool and then I’ll be in okay so I’ve already done this before so there you go now I’m in now inside of DeepS very simple it has a a few different buttons here we have the chat so if we want to start a new thread new chat we can always go back to our other chats once we have one and then we have the deep think and then the search and then the attachment deepthink just gives you a better output for when you ask a question okay so uh you don’t have to use it but you can and uh we can start using this for free right now so what I can do is I can start having DeepSeek help me out with whatever I want to you know start doing and so we’re going to specifically be using DeepSeek to help us in creating content and here’s what you can do with this you can create content for whatever you want okay so whether you want to create a video whether you want to create an image whether you want to create a blog whether you want to create a a podcast we can create any type of content because by the way what we’re doing here is we’re we’re creating content and we’re not paying for anything right so you know there’s a lot of people out there that will say “Well you know you’re going to go get these links here and then you’re going to start running paid ads to these links.” No we’re not going to run any paid ads we’re not going to do any weird dances on TikTok we’re not going to do any of that all we’re going to do is we’re going to find trending content whether it’s on Facebook whether it’s on YouTube wherever we want to find the trending content and we’re going to start feeding it to our AI to this free tool here okay so check this out i’m going to click on deep think we’ll turn it off here just to get a basic response and I’m going to say I need help regenerating trending content now by the way when you go and start creating content you want to make sure you have a few things in place and so if you haven’t already go into the checklist and watch day one inside of day one I show you how to set up your affiliate links so if you don’t have your affiliate links yet to any of these products go watch day one because in there I break down step by step how to go and find a good affiliate product how to go and sign up for a free account how to grab your own link all of that so make sure you do watch day one but pretty much all the tools have links that they give you okay and they’re assigned to you so you can see this tool actually has a link right here that is assigned to me anybody who clicks on this link if I send this as a message or if I create content or whatever I’m doing to get people to click on this link it gets registered in my account here and if they turn into a customer I get a payment for that customer okay it’s a 40% uh reoccurring commission here and so getting the affiliate link it’s very simple but if you’ve never gotten an affiliate link before make sure you go watch day one because in day one I do show you how to go and pick your links and figure out which one’s right for you and you know there’s 400 tools on this list so you got to kind of figure out which ones you want to promote there’s there’s so many different things you can promote out there you can promote video tools image tools writing tools and uh I’ve said this before by the way for those of you who are new here but I’m going to say it again you don’t have to even promote online tools you could go and promote the brand Nike you could go promote Amazon products almost every company out there has an affiliate program that means they’ll give you a link and you can get paid to promote their products you could literally send your favorite shoes to somebody that are Nike shoes and you can earn a 15% commission on that and if you don’t believe me just go Google Nike affiliate program and you’ll see right here that they do a 15% affiliate look at this earn up to 15% on all valid US sales of Nike products okay so I know a lot of people like go “Well this is weird why would I go and sell other people’s products?” Because companies want you to sell their products they want people to go out and sell stuff for them and so if you can be the person that just finds good products and connects people to those products you make money on that and the best part about it is AI does all the heavy lifting ai will go and create all the content for you it’ll find the people it’ll distribute your content and it’s just an amazing thing and if you learn this you can go out and create a ton of content that goes and recommends products and you can use AI for this and you don’t have to be a tech expert you don’t have to have a supercomput you don’t have to do any of that right you don’t have to drive a Ferrari literally you just go into a simple free tool like the one you’re looking at right here and you start creating simple very very simple content and once you create that simple content you’ll be amazed how many views and how many leads you can start to get for these different products because AI is going to go and create that viral content for you as long as you know how to prompt it correctly okay and so the secret and and this is really what I want to show you today and and drive home the real secret to making money online with AI is just being good at prompting you just have to be good at at finding content that works well and then prompt the AI to give you a good output that helps you create content that’s similar to the thing that you saw that was already working well okay so if you see a post that has thousands of comments or you see a post that has thousands of views and and you know how to prompt the AI to go and regenerate that content for you well guess what now you’re getting thousands of views now you’re getting thousands of leads and if you don’t believe me again check out what I do check out what uh the people in the group do i I’m not the only example of this there’s so many people out there that are doing what I’m talking about right now and they’re getting tons and tons of views they’re getting tons and tons of leads and sales and they’re not experts by any means they just know how to go and prompt the AI so what we’re going to do is we’re going to start figuring out what topics we want to target now obviously if you’re going to be targeting AI you’re going to be or AI tools you’re going to be finding topics around AI tools now there are different tools there’s different free tools that allow you to go and find trending content and trending terms around AI and around anything that you’re looking for so Google Trends is one of them if I go to Google Trends here I can type in something like AI tools and I can click on explore and this will give me again for free here a bunch of different terms around AI tools that are popular right now so I can see Grock is a really popular term success database and so I can start diving into these topics more or I’ll show you how to do that in a second but this is how I can kind of see what people are actually looking for and what’s trending now if we can just find what’s trending what a ton of people are looking for we can use AI to help us create content around that trend and we can start grabbing people from that trend because people are looking for stuff every single day and when you find a trend that’s blowing up it’s usually easy to get views even if you don’t have a ton of followers even if you don’t have you know a bunch of money for ads or any of that these platforms want to distribute your content if you create content around things that are trending even if you aren’t somebody that’s ever really even posted online before so don’t think you have to be this person with you know thousands of followers or be this big Instagram or YouTube influencer you don’t need that you could literally have just a basic average Facebook profile with a few friends on it start posting content on that that’s trending that’s about something that’s blowing up right now and the algorithms will naturally want to distribute your content to people just because you are talking about something that people want to see and so the platforms know when something’s trending and they want to distribute content around those things because they want to keep people on the platform and so our job is to find that trending content and distribute it so what we’re going to do is we’re going to choose a topic let’s say it’s Grock here okay so we’re going to click on Grock now inside of Google Trends I can filter by the past 4 hours 7 days 30 days 90 days whatever I want and you can see Grock over time has been trending upward so it’s actually doing pretty well right now it’s not at its peak its peak was back in March 10 but it looks like it might go back up to to to um a 100 score up here again okay now I can see all the different things related to this Deep Seeks one you can see I’m making a video about DeepSeek but my point here is that you can go in here find these trending topics and now that you have a topic let’s just say it’s Grock or DeepSeek let’s say you were going to make a video about deepseek what you can do is then you can start doing research about what content is actually trending around that thing okay and I’m going to show you how to do that in a second here I have a comment right now in the live and they said “How do I get started with the checklist?” Okay so obviously like I said drop a comment leave a like and subscribe but you can go to shinify.com and you can go and grab the checklist just by entering your first name and email that’s all I ask of you and uh I do have a recommended tool after this it’s completely optional you don’t have to people always say “Oh well Chase you’re just pitching me on this or that.” You don’t have to go and get this okay you can go and do whatever you want right this is the CRM this is the automated tool I use for follow-up but it’s completely optional and again it’s just because if people want it it’s a 30-day free trial and just like I show you how to recommend tools and free trials and all the things that I’m showing you to make money I go out and I still recommend free tools and that’s the best part about this system and the beauty of this system is that you can go out and give away free stuff right i’m not selling anything i’m just giving away free trials to things and if people choose to keep those things and they want to pay for them 30 days later then I make a commission okay and so you don’t have to go and sell your friends on anything you don’t have to go and say “Oh you need to buy my course or buy my program or any of that.” All you’re doing is you’re helping people get free things and uh by the way a lot of these companies have free stuff on top of their free stuff what does that mean well when you go and grab a free trial to for example the tool I just showed you a second ago you get entered to win money uh there’s another tool let me actually show you this one if you go to the link in the description uh the tool that says spotter they’re doing another giveaway where they’re actually giving away a trip to California and let me show you what this affiliate link looks like because you can actually go and and promote this yourself so all these things that you can participate in you can also give away so you can literally enter a giveaway but then also participate in giving away the giveaway i don’t know i I don’t know if that makes sense but hopefully it does but check this out this is the link that they gave me and this link goes to a 14-day free trial to their tool and on top of the 14-day free trial they also are giving away the ability to win a trip to LA with a paid for flight paid for hotel and all you have to do is literally grab their trial you don’t even have to rebuild you don’t even have to pay for it right you could cancel the free trial before the 14 days are up you could use the tool for 14 days and then you could still win a trip okay so there’s companies that are doing this all the time because they want people to go to their tool or their company they want people to adopt their platform they they think that if if they give these incentives and people will end up signing up and paying for the tool eventually and it’s true it works right that’s how I make as much money as I do every month is literally just giving away free stuff and people can choose if they eventually want to pay for it or not okay so check this out if I go and log into this tool this tool is actually amazing what it does is it allows you to go and filter all of YouTube so what I can do here is I can go to the outliers i can click on outliers and this will show me all of the most popular videos in my space around what I what I talk about so AI and then I can actually use AI i can use DeepSeek to go and recreate this trending content and that’s what I do so I literally the other day saw this thumbnail here it says AI will retire you it has 422,000 views an outlier of 10.9x and what an outlier is is it’s basically the first seven days of growth to the video opposed to the first 6 months and then if you put those two together you can kind of see organically how well that that video does is it a video that just goes really and blows up for the first day or two and then dies off eventually or does it continually blow up over time and so if we can find something with a good outlier score we know that that’s probably going to be a video that does well for us okay and if I go to my YouTube channel check check this out i’ll go to my live and I did a similar video you can see the thumbnail is very similar and that video is doing very well right now okay I’ll give you another example the video you’re watching right now if you’re watching the live stream there was a video that I saw was doing ra well around AI and I said “Okay you know what i’m going to go and I’m going to take that video and I’m going to use AI to help me regenerate the different parts of that video that I want to create.” And so my thumbnail today guess what check this out if I go to replicate here which is my AI cloning tool it’s not mine it’s just one that I use but check this out the original thumbnail looked just like this let me see if I can go find the video but the original thumbnail looked just like this and then I had Deepseek help me regenerate a prompt for this thumbnail and I fed it to an AI tool which then cloned me and gave me my thumbnail and so inside of our AI challenge by the way we show you how to do all of this we show you how to go and create your own AI image clone we show you how to go and do the topic research we show you how to regenerate trending content not just in terms of video but any type of content whether you’re you know regenerating a Facebook post whether you’re regenerating uh you know a Tik Tok whether you’re regenerating a Instagram picture right like you can go and choose what platforms you want to target and ideally you target the platforms where your audience is okay so Tik Tok and Instagram are usually for younger people okay so if you’re looking to target a younger audience and you know let’s say you have a gaming channel those platforms are great if you’re going for an older audience YouTube and Facebook is generally a little bit better there’s more people that are older on those platforms but you usually want to choose one or two platforms okay and I recommend people starting out start on something like Facebook and YouTube just because I think it’s easier to make a sale uh you don’t need as many views there’s a lot of people on Facebook and YouTube that are looking for you know they’re looking for AI tools to help them automate what they do you know automate an online business and so this is just a massive open wide space right now for you to get into and by the way these 400 tools on this checklist are just a few this just a drop in the bucket i mean this there are so many other tools that you can go out and promote i actually built this probably about a year ago and I I would say that there’s probably four or 5 thousand of these now that you you could go out and promote and on top of this you can actually reach out to these companies and you can offer to promote these people these companies for for free right well you’re not really doing it for free because you’re still getting an affiliate link but you can even ask them and you can say “Hey listen i have people that are interested in your product would you be willing to do a free giveaway on top of this and and some of these companies will tell you yes they’ll say “Well yeah we’re actually giving away money or we’re giving away a trip to you know the Bahamas or we’re giving away a trip on a cruise.” And then you take those giveaways and you take the free tools and you create content around those things and you say “Hey listen audience or people that follow me or people that I’m friends with this company is giving away this free thing all you have to do is grab the free thing the free trial or free whatever that they’re they’re offering and you get entered to win and so everybody wins with this model i don’t think you understand that or or maybe you do but ideally we we want to create a system right where first of all we don’t have to do any heavy lifting we don’t have to you know go and do a bunch of fulfillment we don’t want to have to deal with a bunch of customers right that’s where the affiliate part comes in because the companies take care of all of it for us but on top of it we don’t want to have to uh worry about what we’re selling we want to just give away free stuff we don’t want to have to sell things to people and so what we can do is we can just give away stuff free value right so the people around us win because they’re they’re getting entered to win stuff and they’re getting all this free value but we win because if those people end up becoming long-term adopters of the things that we’re giving away we end up making money and so that’s a win-win for everybody and then the company wins as well because they get customers and they don’t really have to spend that much right if they give you something to give away and it only costs them you know a thousand bucks or 500 bucks that’s not that much for for big companies you know they’ll spend 10 or 20k on ads in a day so for you to go out and do a giveaway that lasts a month that only cost them a thousand bucks but now they have 500 new customers or 100 new customers everybody wins okay and so that’s why I want you to understand this model here because you don’t have to be the person that’s going out and selling all the time and that’s why I do this now i actually made more money by the way when I sold things but my life is better now why because I don’t have to worry about anything check this out i actually made in one month over $200,000 in fact if you put PayPal with how much I was making it was like 300 grand and I stopped selling around this point because I decided that my life was not fun i was making a lot of money but also I had all these employees i was worried about you know my customers i was worried about making sure the products were good i was worried about all this stuff all the time and now I only make let’s say maybe 50 to 100K a month which you might be saying well that’s only but I’m saying opposed to what I was making before but my overhead is virtually zero it’s reoccurring income it’s passive income i can choose to take next month off and still make just as much money and so it’s a completely different lifestyle and this is one of the things you want to be careful of when you start listening to people who say they make a lot of money they might tell you “Oh yeah I make all this money.” but in reality their life’s awful and they don’t have actual reoccurring passive income you want the real deal you want real reoccurring passive income that comes in every single month whether you’re out on the beach whether you’re out hanging out with your family whether you’re playing video games whatever you’re doing you want to be able to have money coming in every single month and the way you can do that is by what we’re talking about here it’s by learning AI it’s by learning a few different tools that by the way have free trials you don’t have to pay for them if you don’t want to you can try them out if you don’t make any money with them you can cancel the subscriptions on them but it’s to adopt technology and then it’s to take that technology and hand it to other people and say “Listen I use this tool to help me do this i use this tool to help me do that.” And then other people are going to need help with those things right think about how many people every single day manually respond to emails or they manually go and create posts on Instagram or they manually go and write things on Facebook there are so many people out there that have never even logged into an AI tool or into ChatGpt or DeepSeek or any of these tools and so all you have to do is learn a little bit about these things and then help other people adopt that technology because there’s so many people that have not adopted technology yet because they don’t understand it they’re scared of it they’re terrified and so you might be one of those people you might say “Well I’m scared of technology i’m scared of you know AI replacing me or I’m scared of not you know being the tech super genius that I need to be in order to learn these things.” And and and you don’t have to be that you know people sell complexity because they think it makes them look smart but it’s not it’s not something people who think things that are complex are smart are dumb the the real winners the true uh rich and wealthy people they focus on simplicity it’s the term Kisss KISS keep it simple stupid okay and so if you’re out there and you’re worried all day and you’re thinking I don’t know what to do i don’t know there’s so many things there’s so many tools the reason why you feel that way is because there’s so many people out there that are selling you complexity okay and so the whole idea is that you simplify what we’re what you’re doing and you just go out first of all you take the challenge right take the simple challenge it’s eight days it’s 1 hour a day you can do that you could do this in one day if you wanted to okay learn a few pieces of technology just a few you don’t have to learn all 400 tools learn a few pieces of technology once you understand it you now are qualified to go teach it other people whether it’s through a direct conversation whether it’s through you know posting in a group whether it’s through creating a video you are now qualified to go and help people with that thing because you know how it works and what form you do that in is up to you you could do it in a blog post you could do it in an email and by the way you can use AI to go and teach it for you you don’t even have to do it yourself but at the end of the day you want something that’s going to go and help people adopt this technology and you’re going to make money off of that and then on top of it you’re getting a lot of value for these people because not only are you teaching them something but you’re also connecting them to companies that have free giveaways free trials a bunch of free stuff and and and these companies are willing to frontload all this value because they’re willing to lose money on the front end to impress your people that you’re now helping right and you’re not going out and selling anything to them you’re just helping them with something for free you’re literally doing them a favor okay and that’s all you have to do is you go out every single day you help people out for free don’t have to sell anything you give them all this value and then you end up making money for it so it’s a win-win for everybody and it’s a it’s a business model that I think you’re going to start seeing more and more of in the future you don’t see a lot of it right now because people haven’t really learned it yet this is a new model that has been working really well for me i see it working well for a few other people but most people don’t really know about this yet because they haven’t adopted it yet and they don’t know that they can go out and not have to sell every day and and also you got to understand most people are so focused on making money right now this second that they would rather have $1,000 right now than $1,000 every month for the rest of their lives okay and so our job is to shift that mindset right a lot of people are probably watching this video they’re like “I need money right now.” I get that but would you rather have $1,000 right now or would you rather have $1,000 every month for the rest of your life and if it’s the latter if it’s the second thing then ideally what we need to do is set up the system for you okay okay we need to set up a reoccurring profit system for you that every single month you have different tools you have different promos you have different giveaways that you’re you’re putting on your calendar and you’re going out and you’re helping people with those things right this company’s now giving away this this company’s now giving away that you’re connecting people to those companies and you’re making money off it okay so again if you haven’t already and you want access to everything we’re talking about in today’s video make sure you drop a comment leave a like and subscribe mj Healthcare good to see you hello Chase i’m new here and love to learn awesome and I appreciate that super donation you did earlier thank you so much for that yeah so if you guys have any questions make sure you join our group um we are very active in there i’m very active in there uh you can tag me in there just doshinify in the public chat i’m almost in there every single day happy to help you out um but yeah that’s it go out and learn go out and start adopting this new technology and don’t worry about it don’t don’t don’t be scared of it okay i know a lot of people look at this stuff and they go “Oh this is so terrifying you know I I just I’ve never been good with computers.” This is the this is the opposite of what you’re thinking okay AI is not making things more difficult it’s making things easier and if you start learning it right you just learn basic prompting just going in and just typing and having me uh conversations with it you’ll learn that it’s actually making your life easier it’s telling you what to say it’s telling you what to sell it’s telling it literally gives you instructions if I say “I don’t know what to sell today i don’t know what to do.” AI is going to solve that problem for me it’s going to say “Well this is what you should do.” and I don’t know what email to send i don’t know how to sell through email i don’t know how to sell through video ai tells you how to do it okay so all these things that you thought were difficult are now becoming easier because of AI so don’t be overwhelmed by it adopt it and learn that it’s actually going to create an enhanced version of you it’s going to help eliminate all those things that you had as problems in the past okay if you can learn to adopt it that way and change your mind around it and not think about it as something that’s scary but something that’s going to actually enhance what you’re doing and who you are you’ll realize that the thing that you were struggling with before is no longer a struggle and now you have the ability to get the things done that you need to get done that you couldn’t do before because you had that roadblock okay so use AI don’t be scared of it uh hi Chase can I still begin that Discord challenge yeah we’re still doing the challenge it doesn’t end till the end of the month so there’s definitely time left to join the challenge you just go to shinify.com and you’ll get sent the checklist and then you just start going through the step-by-step videos check this out you just go 1 2 3 4 and uh there you go that’s the challenge there’s other stuff in here as well you can go through but all you have to do is just go to the link in the description shinify.com and that’s it we’ll see you inside hopefully and until next time happy moneymaking see you guys bye

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Listing Products in the Amazon Store: Global Trade Item Number (GTIN), Match Offer, Product Detail Page

    Listing Products in the Amazon Store: Global Trade Item Number (GTIN), Match Offer, Product Detail Page

    Listing products on Amazon involves two key components: the product detail page that all customers see and the individual seller offers for that product. Amazon uses a Global Trade Item Number (GTIN), like a UPC, to link seller offers to the correct product page, streamlining the buying process. Sellers can either match their offer to an existing listing or create a new listing, providing detailed product information. The ability to create new listings can be restricted based on brand registration status, and products can be listed individually or in bulk with variations grouped under a parent product for better customer experience.

    Amazon Product Listing Study Guide

    Key Concepts:

    • Product Detail Page: The central information hub for a specific product in the Amazon store, visible to customers. It contains the product title, images, bullet points (“About this item”), and a detailed description.
    • Offer: A specific seller’s listing of a product, including their price, quantity, shipping options, and handling time. Multiple offers can be associated with a single product detail page.
    • GTIN (Global Trade Item Number): A unique product identifier used worldwide to track goods. Examples include UPCs, ISBNs, EANs, and JANs. Essential for matching offers to existing product detail pages or creating new ones.
    • UPC (Universal Product Code): The most common type of GTIN used by Amazon sellers, typically found on product packaging as a barcode.
    • ISBN (International Standard Book Number): A unique numeric commercial book identifier.
    • EAN (European Article Number): A GTIN primarily used in Europe.
    • JAN (Japanese Article Number): A GTIN used in Japan.
    • GS1 (Global Standards 1): An international organization that issues GTINs. Sellers may need to purchase a GTIN from GS1 or apply for a GTIN exemption from Amazon.
    • Existing Product Listing (Matching): The process of pairing a seller’s offer with a product detail page that already exists in the Amazon catalog. Sellers primarily provide offer-specific information.
    • New Product Listing (Creation): The process of creating a brand new product detail page in the Amazon catalog. This requires providing comprehensive product information in addition to offer details.
    • Amazon Brand Registry: A program for brand owners that provides tools to protect their brand and create accurate product detail pages on Amazon.
    • Brand Enrollment: The process by which the original rights owner submits their trademark to Amazon to enroll in Brand Registry.
    • Brand Selling Application: A process that some sellers may need to complete to request approval to sell products from brands enrolled in Brand Registry.
    • Generic Product: A product without a permanent brand name or logo affixed. When listing, the brand name value is entered as “Generic.”
    • Variations (Parent/Child): Different versions of the same product (e.g., size, color) grouped together on a single product detail page. The “parent” product represents the main listing, and “child” products are the individual variations.
    • Seller Central: The web interface used by Amazon sellers to manage their listings, inventory, orders, and other aspects of their selling business.
    • Add Products Tool: A feature within Seller Central used to match, create, and edit product listings.
    • Bulk Listing (Inventory File): A method for Professional sellers to upload multiple product listings simultaneously using a spreadsheet.
    • Single Listing: Adding product listings one at a time through Seller Central.

    Short-Answer Quiz:

    1. What are the two fundamental components of every product listing in the Amazon store, and what is the primary purpose of the first component?
    2. Explain the function of a GTIN in the Amazon marketplace and provide at least two common examples of GTINs that sellers might encounter.
    3. Describe the key difference between matching an existing product listing and creating a new product listing on Amazon.
    4. Who are the three types of sellers typically authorized to create a new product detail page for a product enrolled in Amazon Brand Registry? What specific detail should they pay close attention to during creation?
    5. What is a “generic” product in the context of Amazon listings, and how should sellers handle the brand name field when creating a product detail page for such an item?
    6. Explain the concept of product variations on Amazon. What are the “parent” and “child” products, and what is the benefit of grouping variations together?
    7. What is Amazon Brand Registry, and what is its primary purpose related to product listings?
    8. Outline the two basic methods available for adding products to your Amazon inventory through Seller Central. Which sellers have access to both methods?
    9. Where can sellers typically find the GTIN for a product they want to list on Amazon? What might a seller need to do if a product lacks a GTIN?
    10. Describe the purpose of the ‘Add Products’ tool in Seller Central. Where can sellers find more in-depth information and step-by-step instructions on listing products?

    Answer Key:

    1. The two basic parts of every Amazon listing are a product detail page and the offers paired with it. The primary purpose of the product detail page is to provide customers with comprehensive information about a specific product to facilitate their purchase decision.
    2. A GTIN serves as a unique identifier for products that are bought, sold, stored, and shipped worldwide, enabling Amazon to correctly pair a seller’s offer with the corresponding product detail page. Common examples of GTINs include UPCs (often found on retail packaging) and ISBNs (used for books).
    3. When matching an existing product listing, sellers are simply associating their offer (price, quantity, etc.) with a product detail page that already exists. When creating a new product listing, sellers provide all the product information necessary for Amazon to generate a brand new product detail page in its catalog.
    4. The three types of sellers who can typically create a new product detail page for a Brand Registry product are the original rights owner who enrolled the brand, other sellers verified as internal to the brand, and resellers authorized by the brand. These sellers should ensure they enter the brand’s name exactly as it appears on the trademark submitted to Brand Registry, paying close attention to letters, special characters, capitalization, and spacing.
    5. A generic product is one that does not have a permanent brand name or logo affixed to it. When creating a product detail page for a generic item, the product owner should use ‘Generic’ as the brand-name value during the listing process.
    6. Product variations refer to different attributes of the same product, such as size, color, or pattern. The “parent” product is the main listing that groups all the variations, while “child” products are the individual variations themselves. Grouping variations on a single detail page makes it easier for customers to compare different versions of an item.
    7. Amazon Brand Registry is a program designed for brand owners to help them protect their intellectual property and create authoritative and accurate product detail pages for their branded products on Amazon.
    8. The two basic methods for adding products to Amazon inventory are listing items one at a time through the ‘Add Products’ tool and listing in bulk using an inventory file. Professional sellers have access to both methods, while all sellers can list items one at a time.
    9. A product’s GTIN can often be found on its packaging, typically above or below the product’s barcode. If a product lacks a GTIN, a seller might need to purchase one from GS1 or apply for a GTIN exemption from Amazon.
    10. The ‘Add Products’ tool in Seller Central is used by sellers to match their offers to existing listings, create new product listings, and edit existing listings. More in-depth information and step-by-step instructions for listing products can be found in the ‘List products’ course within Amazon’s Seller University.

    Essay Format Questions:

    1. Discuss the importance of the product detail page in the Amazon marketplace. Analyze the key elements of an effective product detail page and explain how they contribute to the customer experience and a seller’s success.
    2. Compare and contrast the process of matching an existing product listing with the process of creating a new product listing on Amazon. Under what circumstances would a seller typically choose one method over the other, and what are the key considerations for each?
    3. Explain the role and significance of GTINs in the Amazon ecosystem. Discuss the different types of GTINs mentioned in the source material and the implications for sellers who need to obtain or are exempt from using them.
    4. Analyze the benefits and requirements associated with Amazon Brand Registry for brand owners. How does Brand Registry impact the creation and management of product detail pages, and what advantages does it offer to enrolled brands and their authorized sellers?
    5. Describe the concept of product variations on Amazon and explain how the parent-child relationship structure is used to organize these listings. Discuss the advantages of this system for both customers and sellers, and outline the process of listing products with variations.

    Glossary of Key Terms:

    • Amazon Brand Registry: A program that helps brand owners protect their registered trademarks on Amazon and provides them with tools to create an accurate and trusted experience for customers.
    • Bulk Listing: The process of uploading multiple product listings to Amazon simultaneously using a spreadsheet or inventory file.
    • Child Product: A specific variation of a product (e.g., a blue shirt in size small) that is grouped under a parent product listing.
    • EAN (European Article Number): A 13-digit GTIN primarily used in Europe.
    • Existing Product Listing: Adding your offer to a product detail page that already exists in the Amazon catalog.
    • Generic Product: A product that does not have a permanent brand name or logo affixed to it.
    • Global Standards 1 (GS1): An international non-profit organization that develops and maintains global standards for business communication, including the issuance of GTINs.
    • Global Trade Item Number (GTIN): A unique numeric identifier for trade items, used worldwide.
    • ISBN (International Standard Book Number): A unique 13-digit number that identifies books and book-like products.
    • JAN (Japanese Article Number): An 8 or 13-digit GTIN used in Japan.
    • Matching: The process of associating a seller’s offer with an existing product detail page on Amazon.
    • New Product Listing: Creating a brand new product detail page for an item that is not yet in the Amazon catalog.
    • Offer: A seller’s specific listing of a product, including price, availability, shipping details, and other seller-specific information.
    • Parent Product: The main listing that groups together different variations (child products) of the same product on a single product detail page.
    • Product Detail Page: The page on Amazon that displays all the information about a specific product, including title, images, description, and customer reviews.
    • Seller Central: The web interface that Amazon provides to sellers for managing their accounts, listings, orders, and other aspects of their Amazon business.
    • Single Listing: Adding product listings to Amazon one at a time through the Seller Central interface.
    • UPC (Universal Product Code): A 12-digit GTIN widely used in North America and other regions, typically represented by a barcode.
    • Variations: Different versions of the same product that vary by attributes such as size, color, or style.

    Briefing Document: Amazon Product Listing Process

    Executive Summary:

    This document provides a summary of the fundamental aspects of listing products for sale on Amazon, as outlined in the provided source. The core of the Amazon listing process revolves around the concept of a unified product detail page and individual offers from sellers. The document emphasizes the importance of Global Trade Item Numbers (GTINs) for matching offers to the correct product pages and details the two primary methods for listing: matching an existing listing and creating a new one. It also addresses considerations for branded and generic products, as well as the handling of product variations and bulk listing options.

    Main Themes and Important Ideas:

    1. The Two Pillars of an Amazon Listing:

    Every product listing on Amazon comprises two essential elements:

    • Product Detail Page: This is the central information hub for a specific product, visible to all customers. It includes:
    • Product name or title
    • Images
    • “About this item” bullet points
    • Product description
    • The source highlights that “Every product for sale in the Amazon store has its own product detail page. Whether it’s sold by one or multiple sellers, a product’s information is housed in one place. We combine listings in this way to make it easier for customers to find, compare, and purchase products.”
    • Seller Offers: These are the individual listings from sellers offering a particular product. They include pricing, quantity, shipping information, and handling times. Amazon often features a primary offer based on factors like price and availability, but all offers are accessible to customers.

    2. The Crucial Role of Product Identifiers (GTINs):

    • Amazon uses Global Trade Item Numbers (GTINs) to link seller offers to the correct product detail page. The source states, “The primary tool we use to a pair a seller’s offer with the correct product detail page is a product ID, also called a Global Trade Item Number, or GTIN.”
    • GTINs are globally recognized identifiers for products and are commonly found on product packaging, often above or below the barcode.
    • Common GTIN types include UPC, ISBN, EAN, and JAN.
    • In some instances, sellers may need to purchase a GTIN from GS1 or apply for a GTIN exemption from Amazon.

    3. Two Basic Types of Product Listings:

    Sellers can list products in two fundamental ways:

    • Matching an Existing Product Listing: This involves pairing a seller’s offer (price, quantity, shipping details, etc.) with an already existing product detail page. In this case, the seller does not provide product information. The source explains, “When you match an existing product listing, you aren’t providing product information, but are simply pairing your offer with an existing product detail page.”
    • Creating a New Product Listing: This requires the seller to provide complete product information, which Amazon uses to create a new product detail page. Simultaneously, the seller also provides their specific offer details. The source clarifies, “When you create a new product listing, you provide full product information, which we use to create a new product detail page. You also provide information for your specific offer.”

    4. Considerations for Branded Products:

    • For brands enrolled in Amazon Brand Registry, creating a new product detail page is restricted to:
    • The original rights owner who enrolled the brand.
    • Sellers verified as internal to the brand.
    • Resellers authorized by the brand.
    • These authorized sellers must ensure the brand name entered during listing exactly matches the trademark information in Brand Registry. The document emphasizes, “When these sellers create a new product detail page, they should make sure they enter the brand’s name exactly as it appears on the trademark submitted to Brand Registry during the enrollment process.”
    • Other sellers wishing to sell branded products enrolled in Brand Registry typically need to match their offers to the existing product detail page and may be required to complete a brand selling application for approval.
    • For brands not enrolled in Brand Registry, the product owner can create a product detail page after receiving approval for their unregistered brand name from Amazon. Other sellers can then match offers to these pages.

    5. Listing Generic Products:

    • For products that are generic (without a permanent brand name or logo), the product owner can create a product detail page using “Generic” as the brand name during the listing process.
    • Once the page is created, other sellers can match their offers to it.

    6. Product Variations:

    • Products that come in different attributes like size, color, or style are considered variations.
    • Instead of creating separate product detail pages for each variation, Amazon groups them together on a single page under a parent product, with individual variations listed as child products.
    • Sellers can both match offers to existing listings with variations and create new listings with variations. The source states, “At Amazon, instead of giving each variation its own product detail page…we put all variations on a single page and group them using one main product. We call this main product the “parent” and variations the “child” products.”

    7. Methods for Adding Inventory:

    Sellers have two primary methods for adding items to their inventory in Seller Central:

    • One at a Time: All sellers can use this method, matching or creating individual listings using a single product ID.
    • In Bulk: Professional sellers can use inventory files (spreadsheets) to upload multiple listings simultaneously. This allows for efficient management and editing of listings. The document notes, “Professional sellers can also add items to their inventory in bulk using an inventory file. By entering product and offer information in a spreadsheet, you can upload multiple listings at once.”

    8. Selling Applications:

    • In certain cases, Amazon requires sellers to complete a selling application before they can create or match offers for specific products or categories.
    • Sellers will be prompted to complete these applications during the listing process if necessary.

    9. Seller Central and Further Resources:

    • The primary tool for managing product listings (matching, creating, and editing) is the “Add Products” tool in Seller Central.
    • The source recommends reviewing the “List products” course in Seller University for more detailed information and step-by-step instructions.

    This briefing document provides a foundational understanding of the Amazon product listing process as described in the provided excerpt. Sellers should consult Seller Central and Seller University for comprehensive guidance and the latest requirements.

    Amazon Product Listing: An Overview

    Frequently Asked Questions About Listing Products on Amazon

    1. What are the fundamental components of an Amazon product listing? Every product listing on Amazon consists of two key parts: a product detail page and the associated offers from sellers. The product detail page provides comprehensive information about the item itself, including the title, images, bullet points outlining key features (“About this item”), and a detailed product description. This page is universal for a specific product, regardless of how many sellers offer it. The offers, on the other hand, are specific to each seller and include details like price, availability, shipping information, and any seller-specific terms. Amazon often highlights a primary offer based on factors such as price and shipping options.

    2. How does Amazon ensure the correct seller offer is linked to the right product detail page? Amazon primarily uses a product ID, also known as a Global Trade Item Number (GTIN), to connect a seller’s offer with the corresponding product detail page. GTINs, such as UPCs, ISBNs, EANs, and JANs, are globally recognized identifiers for products. Sellers typically need to provide this number when listing a product, either to match their offer to an existing detail page or to create a new one. In situations where a GTIN is unavailable, sellers might need to purchase one from GS1 or apply for a GTIN exemption from Amazon.

    3. What are the differences between matching an existing product listing and creating a new one? When matching an existing product listing, a seller is essentially attaching their offer (price, quantity, shipping details, etc.) to a product detail page that already exists on Amazon. In this case, the seller does not provide product-specific information like title or description. Conversely, creating a new product listing involves providing all the necessary product information, which Amazon uses to generate a brand new product detail page. The ability to create a new listing often depends on the seller’s relationship with the product and brand.

    4. How does Amazon handle product listings for branded items, especially those enrolled in Amazon Brand Registry? For products belonging to brands enrolled in Amazon Brand Registry, the creation of a new product detail page is typically restricted to the original rights owner (who enrolled the brand), sellers verified as internal to the brand, and resellers specifically authorized by the brand. These authorized sellers must ensure that the brand name entered during listing exactly matches the trademark information provided during Brand Registry enrollment. Other sellers can then match their offers to these existing branded product detail pages, though they may need to undergo a brand selling application for approval. For brands not in Brand Registry, the product owner can usually create the detail page after obtaining approval for their unregistered brand name from Amazon.

    5. What about listing products that don’t have a registered brand or are considered generic? If a product is generic, meaning it lacks a permanent brand name or logo, the product owner can create a product detail page by using ‘Generic’ as the brand name during the listing process. Once this page is created, other sellers are free to match their offers to it. In some instances, regardless of brand status, Amazon may require sellers to complete a selling application before they can list or offer certain products or within specific categories.

    6. How are product variations (e.g., different sizes or colors) managed on Amazon listings? Instead of creating separate product detail pages for each variation of an item, Amazon groups them together on a single page. This is achieved using a parent-child relationship. The “parent” product represents the main product, while the “child” products are the different variations (e.g., a shirt in blue small, blue large, yellow small, yellow large). All variations are displayed on one product detail page to help customers easily compare and choose the desired option. Sellers can both match offers to and create new listings that include variations.

    7. What are the different methods sellers can use to add products to their Amazon inventory in Seller Central? Amazon provides two primary methods for adding product listings in Seller Central. All sellers can list items one at a time, using a single product ID to match or create an individual listing through the ‘Add Products’ tool. Professional sellers have an additional option to add items in bulk by using an inventory file (spreadsheet). This allows them to upload multiple listings simultaneously and make quick edits to existing listings before re-uploading.

    8. Where can sellers find more detailed information and step-by-step guidance on listing products on Amazon? Sellers looking for more in-depth information, including details about product detail pages, product IDs, and step-by-step instructions for creating listings and adding offers, can refer to the comprehensive ‘List products’ course available in Amazon’s Seller University. The ‘Add Products’ tool within Seller Central is also the central point for initiating the process of matching, creating, and editing product listings.

    Listing Products on Amazon: A Seller’s Guide

    Sellers on Amazon list millions of products annually, including items purchased in bulk for resale and branded or generic products they own. Regardless of inventory size or type, a listing option can be found in Seller Central.

    Every product listing consists of two main parts: a product detail page and the offers paired with it.

    • Product Detail Page: This is what customers see when they select an individual item. It includes:
    • A product name or title.
    • Images.
    • ‘About this item’ bullets.
    • A product description. Every product for sale on Amazon has its own product detail page, consolidating information even if sold by multiple sellers to facilitate comparison and purchase.
    • Offers: Each product detail page is paired with every seller’s offer for that item. Amazon often highlights an offer based on price, availability, and the customer’s shipping address, but all offers are available for review.

    The primary tool used to link a seller’s offer with the correct product detail page is a product ID, also known as a Global Trade Item Number (GTIN).

    • GTINs are used globally to uniquely identify and track goods.
    • Whether matching an existing listing or adding a new product, a GTIN is usually required and can often be found on packaging near the barcode.
    • Common GTINs used by Amazon sellers include UPC, ISBN, EAN, or JAN.
    • In some cases, sellers may need to purchase a GTIN from Global Standards 1 (GS1) or apply for a GTIN exemption from Amazon.

    Once a product ID is obtained, sellers can begin listing on Amazon. There are two basic types of product listings: existing and new.

    • Matching an Existing Product Listing: In this case, sellers don’t provide product information but simply pair their offer with an existing product detail page. They will provide pricing and quantity information, as well as details about sales, handling times, and shipping.
    • Creating a New Product Listing: Here, sellers provide full product information, which Amazon uses to create a new product detail page. Sellers also provide information for their specific offer. The ability to create a new product detail page depends on the seller’s relationship with the product.

    Brand Considerations for Creating New Product Detail Pages:

    • Brands Enrolled in Amazon Brand Registry: Only the original rights owner, sellers verified as internal to the brand, and resellers authorized by the brand can create a new product detail page. These sellers must enter the brand name exactly as it appears on the trademark submitted to Brand Registry to ensure successful association. Other sellers can match offers after the product is listed and may need to complete a brand selling application for approval.
    • Brands Not Enrolled in Brand Registry: The product owner can create a product detail page after securing approval for their unregistered brand name from Amazon. Once approved, they can create additional detail pages for other products of their brand, and other sellers can match offers.
    • Generic Products: For products without a permanent brand name or logo, the product owner can create a product detail page using ‘Generic’ as the brand name during listing. Other sellers can then match offers.
    • Selling Applications: In some instances, sellers must complete a selling application for a product or category before creating or matching offers. They will be prompted to do so during the listing process.

    Products can also come in variations, such as different sizes, colors, patterns, styles, amounts, or flavors. Instead of separate product detail pages, Amazon groups all variations (child products) under a single main product (parent) on one page to facilitate customer comparison. Sellers can both match and create product listings with variations.

    There are two basic processes for adding items to inventory in Seller Central:

    • One at a Time: All sellers can use a single product ID to match or create an individual listing using the ‘Add Products’ tool.
    • In Bulk: Professional sellers can upload multiple listings at once by entering product and offer information into a spreadsheet (inventory file) and uploading it to Seller Central. This method also allows for quick edits and re-uploads.

    The ‘Add Products’ tool in Seller Central is used for matching, creating, or editing listings. For further information on product detail pages, product IDs, and step-by-step instructions for creating listings and adding offers, sellers can refer to the ‘List products’ course in Seller University.

    Amazon Product Detail Pages: Creation and Management

    A product detail page is what customers see on Amazon when they select an individual item. It serves as a central location for all the information about a specific product for sale on the Amazon store. Even if a product is sold by multiple sellers, its information is consolidated onto a single product detail page. This is done to make it easier for customers to find, compare, and purchase products.

    According to the sources, a product detail page includes several key elements:

    • A product name or title.
    • Images of the product.
    • ‘About this item’ bullets that highlight key features or benefits.
    • A comprehensive product description.

    Each product detail page is paired with every seller’s offer for that specific item. While Amazon may feature a particular offer based on factors like price, availability, and the customer’s shipping address, all offers are accessible for review.

    Sellers interact with product detail pages in two primary ways when listing products: matching an existing product listing or creating a new product listing.

    • When matching an existing listing, the seller doesn’t provide product information but instead links their specific offer (including pricing, quantity, sales details, handling times, and shipping information) to a product detail page that already exists on Amazon. This process relies on a product ID, also known as a Global Trade Item Number (GTIN). Common GTINs include UPC, ISBN, EAN, and JAN, and they help Amazon pair a seller’s offer with the correct product detail page. In some cases, sellers might need to purchase a GTIN from GS1 or apply for a GTIN exemption from Amazon.
    • When creating a new product listing, the seller provides full product information, which Amazon uses to generate a brand new product detail page. The seller also provides their offer details. However, the ability to create a new product detail page depends on the seller’s relationship with the product.

    The sources highlight important brand considerations when creating new product detail pages:

    • For brands enrolled in Amazon Brand Registry, only the original rights owner, sellers verified as internal to the brand, and resellers authorized by the brand can create a new product detail page. These sellers must ensure that the brand name they enter exactly matches the trademark submitted to Brand Registry to ensure proper association. Other sellers can match offers after the page is created and may need to complete a brand selling application for approval.
    • For brands not enrolled in Brand Registry, the product owner can create a product detail page after receiving approval from Amazon for their unregistered brand name. Once approved, they can create detail pages for other products of their brand, and other sellers can match offers.
    • For generic products (those without a permanent brand name or logo), the product owner can create a product detail page by using ‘Generic’ as the brand name during the listing process. Subsequently, other sellers can match their offers to this page.
    • In certain instances, sellers might be required to complete a selling application for a specific product or category before they are allowed to create or match offers. They will be prompted to do so during the listing process.

    The sources also mention that products can have variations (e.g., different sizes, colors). Instead of separate detail pages, these variations (child products) are grouped under a single main product (parent) on one product detail page, making it easier for customers to compare different versions of the same item. Sellers can both match and create listings with variations.

    The ‘Add Products‘ tool in Seller Central is the primary interface for managing listings, whether matching, creating, or editing them. Professional sellers also have the option to add and manage listings in bulk using an inventory file.

    For more in-depth information and step-by-step guidance on product detail pages and listing products, sellers can refer to the ‘List products’ course available in Seller University.

    Amazon Seller Central: Product Listing and Inventory Management

    Based on the sources, Seller Central is a key platform for sellers on Amazon. It appears to be the central hub where sellers manage their product listings and inventory.

    Here’s a breakdown of how Seller Central is discussed in the provided excerpts:

    • Listing Options: Regardless of the size or type of a seller’s inventory (whether purchased for resale or branded/generic products they own), Seller Central provides listing options for them. This suggests that Seller Central is designed to accommodate a wide range of sellers and products.
    • ‘Add Products’ Tool: Sellers use the ‘Add Products’ tool within Seller Central for various listing-related activities. These activities include:
    • Matching a seller’s offer to an existing product detail page.
    • Creating a new product listing and thus a new product detail page.
    • Editing existing listings.
    • Bulk Listing: Professional sellers have the capability to add multiple product listings at once in Seller Central by uploading an inventory file (spreadsheet) containing product and offer information. This feature streamlines the listing process for sellers with a large number of products.
    • Inventory Management: Seller Central facilitates efficient management of inventory as sellers can make quick edits to their inventory file and then re-upload it to Seller Central to reflect changes in their listings.

    In summary, the sources indicate that Seller Central is the primary interface where sellers on Amazon can manage their product listings, whether adding new products one at a time or in bulk, matching offers to existing product pages, or editing their current listings. The ‘Add Products’ tool is a central feature within Seller Central that supports these various listing activities. Professional sellers also benefit from the bulk listing capabilities available through Seller Central.

    Amazon Product IDs (GTINs): An Overview

    Based on the sources, a Product ID, also known as a Global Trade Item Number (GTIN), is the primary tool used by Amazon to pair a seller’s offer with the correct product detail page.

    Here’s a more detailed discussion of Product IDs (GTINs) based on the provided source:

    • Purpose and Importance: GTINs serve as unique identifiers for products on a global scale. They are used worldwide to uniquely identify and track goods throughout the process of being bought, sold, stored, and shipped. On Amazon, a GTIN is generally required whether a seller is matching their offer to an existing product listing or adding a new product to the Amazon catalog. Having the correct GTIN is crucial for ensuring that your offer is associated with the right product detail page that customers see.
    • Location: Sellers can often find the GTIN on the product’s packaging, typically above or below the product’s barcode.
    • Common Types of GTINs: The most common GTIN used by Amazon sellers is the UPC (Universal Product Code). However, you might also encounter other types of GTINs on your product, such as ISBN (International Standard Book Number), EAN (European Article Number), or JAN (Japanese Article Number).
    • Obtaining a GTIN: In some situations, sellers may need to take specific steps to obtain a GTIN:
    • Purchasing from GS1: For some products, sellers might need to purchase a GTIN from Global Standards 1 (GS1), which is an international organization.
    • Applying for a GTIN Exemption from Amazon: In other specific cases, sellers might be eligible to apply for a GTIN exemption directly from Amazon. The source does not specify the criteria for these exemptions.
    • Listing Process: Once a seller has obtained the product ID, they are ready to begin the process of listing their product on Amazon. When using the ‘Add Products’ tool in Seller Central, a product ID will be necessary to either match an existing listing or create a new one.
    • Further Information: For sellers looking to learn more details about product detail pages and product IDs, or to get step-by-step guidance on listing products, Amazon recommends reviewing the ‘List products’ course available in Seller University.

    In summary, the Product ID (GTIN) is a fundamental element in the Amazon listing process. It ensures accurate matching of offers to product detail pages, leverages a global standard for product identification, and is typically required when adding products to the Amazon store, either by matching an existing listing or creating a new one. Sellers should be prepared to either locate the GTIN on their product packaging, purchase one if necessary, or explore the possibility of a GTIN exemption from Amazon.

    Amazon Product Listing Types and Processes

    Based on the sources, there are two basic types of product listings on Amazon: existing and new. Additionally, listings can involve variations of a product. Here’s a more detailed discussion of these listing types:

    1. Matching an Existing Product Listing:

    • When you choose this option, you are not providing new product information.
    • Instead, you are pairing your specific offer (including pricing, quantity, sales details, handling times, and shipping information) with a product detail page that already exists on Amazon.
    • This process relies on having the correct product ID (GTIN) to ensure your offer is linked to the right product.
    • You will need to provide details specific to your offer.
    • In some cases, even when matching an existing listing, your relationship with the product or brand might affect your ability to do so, potentially requiring a brand selling application.

    2. Creating a New Product Listing:

    • When you create a new product listing, you are providing full product information.
    • Amazon uses this information (including product name, images, ‘About this item’ bullets, and a product description) to generate a brand new product detail page.
    • You also provide the details for your specific offer.
    • Your ability to create a new product detail page depends on your relationship with the product being listed.
    • For brands enrolled in Amazon Brand Registry, only the original rights owner, sellers verified as internal to the brand, and authorized resellers can create a new product detail page, ensuring the brand name matches the trademark in Brand Registry.
    • For brands not enrolled in Brand Registry, the product owner can create a new page after receiving approval for their unregistered brand name from Amazon.
    • For generic products (without a permanent brand name or logo), the product owner can create a new page by using ‘Generic’ as the brand name.
    • In some instances, a selling application might be required before you can create a new product detail page for a specific product or category.

    3. Listings with Variations:

    • Products can have variations if they are available in different sizes, colors, patterns, styles, amounts, or flavors.
    • Instead of separate product detail pages for each variation, Amazon groups all variations (child products) under a single main product (parent) on one product detail page.
    • This makes it easier for customers to compare different versions of the same item.
    • Sellers can both match and create product listings with variations as a normal part of the listing process.

    Methods for Adding Listings in Seller Central:

    • One at a time: All sellers can use the ‘Add Products’ tool in Seller Central to match or create individual listings using a single product ID.
    • In bulk: Professional sellers have the option to add multiple listings at once by using an inventory file (spreadsheet) and uploading it to Seller Central. This allows for efficient management of a large inventory.

    In summary, when listing products on Amazon through Seller Central, you will either match your offer to an existing product detail page using a GTIN, or you will create a new product detail page by providing comprehensive product information, with your ability to do so often tied to your relationship with the product or brand. Both types of listings can also include variations of a product, all managed within a single product detail page. You can manage these listings one at a time or in bulk, depending on your seller type. The ‘Add Products’ tool in Seller Central is your primary interface for all these listing activities.

    Intro to listing products

    The Original Text

    Sellers list millions of products each year in the Amazon store. Some list items they’ve purchased in bulk in order to resell. Others list branded or generic products that they own. Whether your inventory is large or small, unique or part of an established line, you can find a listing option in Seller Central. There are two basic parts to every listing: a product detail page and the offers paired with it. A product detail page is what customers see when they select an individual item in the Amazon store. The page includes a product name or title, images, ‘About this item’ bullets, and a product description. Every product for sale in the Amazon store has its own product detail page. Whether it’s sold by one or multiple sellers, a product’s information is housed in one place. We combine listings in this way to make it easier for customers to find, compare, and purchase products. Each product detail page is also paired with every seller’s offer for that item. We often feature an offer based on price, availability, and the customer’s shipping address, but all others are also available for review. The primary tool we use to a pair a seller’s offer with the correct product detail page is a product ID, also called a Global Trade Item Number, or GTIN. GTINs are used around the world to uniquely identify and track goods that are bought, sold, stored, and shipped. Whether you’re matching your offer to an existing listing or adding a new product to the Amazon catalog, you’ll probably need this number. It can often be found on packaging above or below the product’s barcode. The most common GTIN used by Amazon sellers is a UPC, but you might also find an ISBN, EAN, or JAN on your product. In some cases, you might need to purchase a GTIN for a product from an international organization called Global Standards 1, or GS1 for short. In other cases, you might need to apply for a GTIN exemption from Amazon. Once you have a product ID, you’re ready to start listing in the Amazon store. There are two basic types of product listings: existing and new. When you match an existing product listing, you aren’t providing product information, but are simply pairing your offer with an existing product detail page. You’ll provide pricing and quantity information, and can enter information about sales, handling times, and shipping. When you create a new product listing, you provide full product information, which we use to create a new product detail page. You also provide information for your specific offer. Your ability to create a new product detail page depends on your relationship with the product being listed. In some cases, your relationship with a product may also impact your ability to match an offer. If a product is part of a brand enrolled in Amazon Brand Registry, only three types of sellers can create its product detail page: the original rights owner who enrolled the brand, other sellers verified as internal to the brand, and resellers authorized by the brand. When these sellers create a new product detail page, they should make sure they enter the brand’s name exactly as it appears on the trademark submitted to Brand Registry during the enrollment process. It should have the same letters and special characters, as well as the same capitalization and spacing. That helps ensure that the product is successfully associated with the brand in the Amazon catalog. After the product is listed, other sellers can then match offers to the product detail page. They may be prompted to complete a brand selling application first in order to request approval for the registered brand. If a product is part of a brand not enrolled in Brand Registry, the product owner can create a product detail page for it after they secure approval for their unregistered brand name, which Amazon will prompt them to do. If an exception is granted, they can create their product detail page, and they can create additional detail pages for other products that are part of their brand. Other sellers are able to match offers to these pages. Finally, if a product is generic, meaning it doesn’t have a permanent brand name or logo affixed, its product detail page can be created by the product owner using ‘Generic’ as a brand-name value during the listing process. After the page is created, other sellers can match offers. Note that, in some cases, sellers are required to complete a selling application for a product or category before they can create or match offers to a product detail page. If that’s necessary, you’ll be prompted to complete that application during the listing process. Both new and existing products can also come in variations. Products have variations if they’re available in different sizes, colors, or patterns, or have various styles, amounts, or flavors. For example, a shirt might come in two colors, blue and yellow. It might also come in two sizes, small and large. That would be four variations total, one for each color-and-size pairing. At Amazon, instead of giving each variation its own product detail page, which would make it difficult for customers to compare versions of an item, we put all variations on a single page and group them using one main product. We call this main product the “parent” and variations the “child” products. You can both match and create product listings with variations as a normal part of the listing process. Whether you’re matching or creating product listings, there are two basic processes for adding items to your inventory in Seller Central: one at a time or in bulk. All sellers can list items one at a time. That means you’ll use a single product ID to match or create an individual listing. Professional sellers can also add items to their inventory in bulk using an inventory file. By entering product and offer information in a spreadsheet, you can upload multiple listings at once. You can also make quick edits to your file when listings need to change, and re-upload to Seller Central with a few quick clicks. You’ll use the ‘Add Products’ tool in Seller Central each time you want to match, create, or edit a listing. To learn more about product detail pages and product IDs, or to get step-by-step instructions for creating listings and adding offers to products in the Amazon store, review the full list of modules in our ‘List products’ course in Seller University.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Law, Gospel, and the Lutheran Study Bible

    Law, Gospel, and the Lutheran Study Bible

    The provided text is an excerpt from The Lutheran Study Bible, specifically focusing on Genesis and Exodus. It offers detailed commentary and explanations of various passages, exploring theological interpretations within a Lutheran framework. The excerpt includes extensive notes on the meaning of words, phrases, and historical context. It also incorporates Luther’s own writings and perspectives on biblical passages. Furthermore, the text examines different scholarly viewpoints on biblical authorship and interpretation, contrasting traditional and more modern approaches.

    Understanding Biblical Scripture and the Book of Genesis

    Short-Answer Quiz

    1. What does the abbreviation “AD” stand for and what does it indicate?
    2. Explain the difference between the two possible meanings of a transliterated word in this Bible.
    3. What is the significance of the entry for “Scripture, Holy” in the topical index?
    4. According to Genesis 1:26, in whose image was man created?
    5. What is the forbidden fruit in Genesis 2-3 and what happens after Adam and Eve eat it?
    6. In Genesis 5, who is described as walking with God and what is his ultimate fate?
    7. What is the duration of God’s patience with humanity before deciding to flood the earth in Genesis 6?
    8. What promise does God make to Abraham in Genesis 15 and what is its significance?
    9. Describe the nature of the covenant between God and Abraham and its conditions.
    10. What is the significance of the story of Jacob and Esau in the context of the chosen lineage?

    Answer Key

    1. AD stands for anno Domini, Latin for “in the year of the Lord.” It indicates the number of years that have passed since the traditional year of Jesus Christ’s birth.
    2. A transliterated word can represent either the specific form found in the original Hebrew or Aramaic text or a more common English usage of the term. For example, “Baal” could refer to a specific deity or be used as a general term for any god.
    3. The entry for “Scripture, Holy” in the topical index provides a list of relevant scriptural passages that discuss the importance and nature of the Bible itself.
    4. Genesis 1:26 states that man was created in the image of God. This implies that humans possess qualities reflecting the divine nature, such as reason, creativity, and moral capacity.
    5. The forbidden fruit in Genesis 2-3 is from the Tree of the Knowledge of Good and Evil. After eating it, Adam and Eve gain awareness of their nakedness, experience shame, and are expelled from the Garden of Eden.
    6. In Genesis 5, Enoch is described as walking with God. He is taken by God without experiencing death, signifying his righteous life and favor in God’s eyes.
    7. God’s patience in Genesis 6 lasts for 120 years before he decides to flood the earth due to the wickedness and corruption of humanity.
    8. God promises Abraham in Genesis 15 that his descendants will be as numerous as the stars. This signifies God’s blessing on Abraham and the future establishment of a great nation through his lineage.
    9. The covenant between God and Abraham in Genesis is an unconditional promise of land, descendants, and blessings. While circumcision is given as a sign of the covenant, it does not affect God’s commitment to fulfilling his promise.
    10. The story of Jacob and Esau in Genesis highlights the theme of divine election and the unexpected ways God works. Despite Esau being the elder twin and natural heir, God chooses Jacob to carry on the lineage, demonstrating that God’s choice is not based on human merit or societal norms.

    Essay Questions

    1. Analyze the role of dreams and visions in the Book of Genesis, exploring their significance in revealing God’s will and guiding the actions of key figures like Abraham, Jacob, and Joseph.
    2. Discuss the theme of family relationships in Genesis, examining the complexities of sibling rivalry, parental favoritism, and the consequences of deception and betrayal within families.
    3. Explore the concept of sin and its consequences in Genesis, analyzing how the actions of Adam and Eve set in motion a pattern of disobedience and suffering for humanity. How do subsequent generations grapple with sin and its impact?
    4. Analyze the significance of covenants in Genesis, focusing on the covenant between God and Abraham. How does this covenant shape the narrative and establish a foundation for future relationships between God and his chosen people?
    5. Discuss the portrayal of women in Genesis, examining the roles and experiences of figures like Eve, Sarah, Rebekah, Rachel, and Leah. How do their stories reflect the social and cultural context of the patriarchal society depicted in the text?

    Glossary of Key Terms

    AD (anno Domini): A Latin phrase meaning “in the year of the Lord,” used to indicate the number of years that have passed since the traditional year of Jesus Christ’s birth.

    Aramaic: A Northwest Semitic language closely related to Hebrew, used in some parts of the Old Testament.

    BC (before Christ): Used to indicate the number of years before the traditional year of Jesus Christ’s birth.

    Covenant: A solemn agreement between God and humanity, often involving promises and obligations on both sides.

    Genesis: The first book of the Bible, narrating the creation of the world and the early history of humanity.

    Hebrew: The ancient language of the Israelites, in which most of the Old Testament was written.

    Holy Scripture: Refers to the Bible, considered to be the inspired word of God.

    Patriarch: A male head of a family or tribe, particularly those featured in Genesis, such as Abraham, Isaac, and Jacob.

    Redemption: The act of delivering from sin and its consequences, a central theme throughout the Bible.

    Sin: Any act that goes against the will of God, leading to separation from him and spiritual death.

    Topical Index: A list of subjects and concepts found in a book, along with references to the relevant pages or passages.

    Transliteration: The process of representing the letters or sounds of one language using the alphabet of another language.

    Briefing Doc: Excerpts from “The Lutheran Study Bible”

    Main Themes:

    • The Primacy of Scripture: The Lutheran Study Bible (LSB), as reflected in the opening quote by Martin Luther, emphasizes the absolute authority of Holy Scripture. It is presented as the sole infallible source of Christian doctrine and practice.
    • Understanding the Text: The LSB provides a robust system for navigating and interpreting the Bible. It includes detailed cross-referencing, transliteration guides for Hebrew, Aramaic, and Greek, and extensive notes that explain historical context, theological nuances, and key concepts.
    • God’s Covenant with Humanity: The excerpts demonstrate the recurring theme of God establishing and reaffirming his covenant with individuals (e.g., Abram) and with all of humanity. This covenant is marked by promises of blessing, land, and descendants, but also demands faithfulness and obedience.
    • Human Sin and Divine Grace: The excerpts illustrate the tension between human sinfulness (e.g., the Fall, the sins of Sodom and Gomorrah, the Golden Calf incident) and God’s enduring grace and mercy. This theme lays the groundwork for understanding the need for a savior.

    Most Important Ideas or Facts:

    • Genesis as Foundation: The selected passages highlight the foundational importance of Genesis in understanding God’s plan for creation and redemption. Key events like creation, the fall, the flood, and the establishment of covenants with Abraham and his descendants are covered.
    • Importance of Family Lines: The genealogical accounts in Genesis (e.g., Genesis 5) are given significant attention, emphasizing the importance of lineage in the unfolding of God’s plan. The line of Seth is particularly highlighted as leading to Noah and eventually to Abraham.
    • Interpretation through a Christological Lens: The notes and cross-references consistently point towards Christ. For instance, the concept of the scapegoat in Leviticus is linked to Jesus Christ’s sacrifice, and the promised offspring of Abraham in Genesis 15 is connected to the coming Messiah.
    • Emphasis on Justification by Faith: The note on Genesis 15:6 highlights the theological concept of justification by faith, a central tenet of Lutheran theology. Abraham’s belief in God’s promise is “counted to him as righteousness,” demonstrating that salvation is received through faith, not works.

    Key Quotes:

    • “Holy Scripture—and no other book on earth.” – Martin Luther This quote encapsulates the LSB’s position on the supremacy and sufficiency of the Bible.
    • “And he believed the Lord, and he counted it to him as righteousness.” – Genesis 15:6 This verse is used to illustrate the doctrine of justification by faith, a cornerstone of Lutheran theology.

    Overall Impression:

    The excerpts from the LSB demonstrate its commitment to providing a comprehensive resource for studying and understanding the Bible from a Lutheran perspective. The emphasis on Scripture’s authority, detailed explanatory notes, and Christocentric interpretation aim to equip readers to engage deeply with the text and apply its teachings to their lives.

    The Lutheran Study Bible: Genesis and Key Themes

    What is the significance of Holy Scripture in the Lutheran tradition?

    Holy Scripture holds paramount importance in the Lutheran tradition, as it is considered the sole source of divine revelation and the ultimate authority for Christian faith and life. Martin Luther emphatically stated that Holy Scripture stands above all other books on earth. It is through Scripture that God reveals His will and plan for humanity, and it is through the study of Scripture that believers come to know and understand God’s grace and salvation.

    What is the purpose of the book “The Lutheran Study Bible”?

    “The Lutheran Study Bible” serves as a comprehensive resource for understanding and interpreting the Bible from a Lutheran perspective. It aims to provide readers with a deeper understanding of the text through detailed annotations, explanations, and doctrinal insights that reflect the teachings of the Lutheran Church. The book’s purpose is to aid individuals in their personal study and reflection on God’s Word, ultimately fostering spiritual growth and strengthening their faith.

    What is the significance of the abbreviations and transliterations used in the “The Lutheran Study Bible”?

    The abbreviations and transliterations used in “The Lutheran Study Bible” serve as a guide for navigating the text and understanding the original languages of the Bible. Abbreviations such as “Gn” for Genesis and “Ex” for Exodus help readers locate specific books within the Bible. Transliterations, such as those provided for Hebrew and Greek letters, assist readers in understanding the pronunciation and original forms of biblical names and terms, enhancing their comprehension of the text.

    What key themes are explored in the excerpts from Genesis provided in the source?

    The excerpts from Genesis explore several key themes, including God’s covenant with humanity, the consequences of sin, and the importance of family and lineage. Genesis 15 highlights God’s covenant with Abram, promising him numerous descendants and a land of inheritance, emphasizing God’s faithfulness and the enduring nature of His promises. Genesis 3 depicts the Fall of humanity, illustrating the consequences of sin and the introduction of suffering into the world. The subsequent chapters trace the lineage of Adam and Noah, highlighting the importance of family and the continuity of God’s plan for redemption through chosen individuals.

    What is the story of Abraham’s intercession for Sodom in Genesis 18?

    Genesis 18 recounts Abraham’s bold intercession for the wicked city of Sodom. Aware of God’s impending judgment, Abraham pleads for mercy, questioning God’s justice if even a small number of righteous individuals reside within the city. Through a series of negotiations, Abraham persuades God to spare Sodom if even ten righteous people can be found. This story demonstrates Abraham’s deep faith, his concern for justice, and his willingness to intercede on behalf of others.

    What is the significance of Jacob’s blessing on Joseph and his sons in Genesis 48?

    In Genesis 48, Jacob, nearing the end of his life, blesses Joseph and his two sons, Ephraim and Manasseh. This blessing carries significant weight as it determines the future inheritance and leadership within the family. Jacob’s decision to place his right hand on Ephraim, the younger son, instead of Manasseh, signifies the elevation of Ephraim’s lineage and foreshadows the prominent role Ephraim’s tribe will play in the future of Israel.

    What is the purpose of Jacob’s final blessings upon his sons in Genesis 49?

    Jacob’s final blessings upon his sons in Genesis 49 serve as prophetic pronouncements, foretelling the destinies and characteristics of the twelve tribes of Israel. Each son receives a unique blessing, highlighting their strengths, weaknesses, and future roles within the nation. These blessings provide insights into the tribal divisions, territorial allocations, and future triumphs and struggles of the Israelites.

    What is the significance of the account of Joseph’s reconciliation with his brothers in Genesis 50?

    Genesis 50 concludes with a powerful account of Joseph’s reconciliation with his brothers, who had sold him into slavery years earlier. Following their father’s death, Joseph’s brothers fear retribution, but Joseph reassures them, emphasizing that God had orchestrated the events for good. This act of forgiveness and reconciliation demonstrates Joseph’s remarkable character, his unwavering faith in God’s providence, and the transformative power of God’s grace to heal past wounds and bring about unity.

    Shalom: God’s Peace and Blessing

    Jesus said to his disciples, “Peace be with you” (John 20:19 [1]). The Lutheran Study Bible defines the Hebrew word for peace, shalom, as a “state of wholeness and unity” that can include reconciliation and is most often a blessing from God (Numbers 6:26; 25:12 [2]). Blessing, starting with creation (Genesis 1:22, 28), includes the Noahic (Genesis 9:1) and Abrahamic covenants (Genesis 12:1-3) and culminates in the cross of Jesus Christ (Ephesians 2:5-8 [3]). The Gospel proclaims shalom as a holistic blessing [3]. Jesus blesses His people, like the children in Mark 10:16 or the disciples at the ascension [4]. While the curse brings death, the blessed will enjoy life and entry into the kingdom of God [4]. Paul’s view of blessing is found in Galatians 3:8, where he quotes Genesis 12:3b, “All nations shall be blessed in you” [5]. For Paul, the fulfillment of the blessing promised to Abraham is seen in God’s redeeming act in Christ [5]. The peace that Jesus gives is a blessing that comes from God. It is a state of wholeness and unity that is only possible through reconciliation with God through Christ.

    The Lutheran Study Bible: Design and Development

    The Lutheran Study Bible (TLSB) was created with input from around 600 laypeople, church workers, and scholars from Lutheran churches around the world [1]. The editors give thanks to God for each person’s service in the development of the TLSB [1]. The TLSB was developed with six goals in mind:

    • Present justification by grace alone, through faith alone, in Christ alone, as the chief teaching of Scripture (Luke 24:44–47; John 5:39) [2]
    • Properly distinguish and apply Law and Gospel (reading the Bible as a book about justification; John 1:17; Galatians 3:21–22) [2]
    • Emphasize God’s work through the means of grace (Matthew 26:26–29; John 3:5; 20:22–23; Romans 10:17) [3]
    • Function from a “Scripture alone” point of view and present a “Scripture interprets Scripture” approach to using the Bible (Psalm 119; 1 Timothy 6:3; 2 Timothy 3:16–17) [3]
    • Equip the laity for works of service, with a particular focus on evangelism in their various vocations/callings in life (Psalm 145:4–13; Ephesians 2) [3]
    • Present a uniquely Lutheran study Bible that features genuinely Lutheran notes and comments throughout, references to the Lutheran Confessions where appropriate, focus on the Small Catechism for helps and explanations, citations from Luther throughout, and materials to aid daily devotion and prayer [4]

    The TLSB includes numerous articles that draw together important historical and doctrinal themes in Scripture [5]. For example, there are articles about “The Time Between the Testaments and the Apocrypha” [6], and “Humor and Comedy in the Bible” [7].

    The TLSB also includes a cross-reference system based on one developed by Bible scholars from Oxford and Cambridge universities [8]. The cross-reference system was supplemented with the Luther Bible tradition, providing an additional 10,000 cross-references [9]. The footnotes in the TLSB were adapted from the English Standard Version (ESV), and several kinds of footnotes are provided to assist the reader [10]. The editors wanted to create a resource that could offer help to a broad readership, from confirmation students to pastors [4].

    The TLSB [11] uses the English Standard Version, which is adapted from the Revised Standard Version of the Bible [12]. The ESV is a “‘word-for-word’ translation” that retains theological terminology because of its central importance for Christian doctrine [13].

    The development team sought input from those who would use the study Bible on a regular basis [14]. Over 400 laypeople and church workers were invited to read portions of the ESV and to submit questions about the readings [14]. The development team studied the nearly 1,500 questions and prepared notes to answer the kinds of questions people asked [14].

    Concordia Publishing House (CPH) [12, 15] holds the copyright for the TLSB and most of the material within it, including introductions, notes, maps, illustrations, and artwork [12].

    The goal of the TLSB is to lead readers to meditate with joy on God’s life-giving Word [16]. In the previous turn of our conversation, the definition of the Hebrew word for peace, shalom, was taken from the “Key Terms and Phrases in the Books of Moses” section of the TLSB [17, 18].

    Interpreting Scripture: A Lutheran Approach

    The Lutheran Study Bible (TLSB) encourages readers to begin their Bible reading with prayer [1]. A suggested prayer includes petitions for the Lord to speak, show His ways, and give life according to His Word [1, 2]. The TLSB presents the Bible as God’s answer to essential questions about life, death, and eternal life [3]. Reading the Bible, especially challenging passages, can leave people feeling challenged and confused [4]. The first recorded example of public Bible reading is found in Exodus 24 [4]. After God rescued the Israelites from Egypt, He spoke laws and promises to Moses, which Moses wrote down and read to the people [4]. This first example of Bible reading includes challenging content, such as throwing blood on people [5]. The TLSB encourages readers to interpret challenging passages in light of the overall message of Scripture, which points to forgiveness, life, and salvation through Jesus Christ [5]. The Bible is a book about the Father’s gift of salvation through Jesus Christ [6].

    The TLSB emphasizes a few important points about Bible reading:

    • The Bible should not be read literally in every instance. For example, the account of Moses throwing the blood of sacrifices on the people should not be interpreted as a command for modern-day Christians to sacrifice animals or throw blood on each other [7].
    • The Holy Spirit opens Scripture to us through faith. While reason, grammar, and history have their place, reason alone is not enough to understand Scripture [8]. Our own reason is distorted by sin, which is why people can read the same passage and arrive at different interpretations [8]. The Holy Spirit works through the means of grace to illuminate hearts so that people can understand Scripture [9].
    • Christians should not interpret Scripture in isolation. Scripture is the basis for Christian unity [10]. The Holy Spirit created the Church through the Word, and Christians are called to serve in the congregation of the faithful [9]. God’s people meditate on and interpret Scripture together [9].
    • Creeds and confessions are a helpful resource for interpreting Scripture. The length and complexity of Scripture, coupled with false teaching, threatened the unity of the faithful [10]. For these reasons, Christians prepared short confessions of faith to summarize the main teachings of Scripture [10]. The creeds and confessions are a written record of how God’s people faithfully interpret Scripture [11].

    The TLSB offers a two-year Bible reading plan that guides readers through the entire Bible. The plan includes a daily reading schedule and suggests supplementing readings with a psalm [12, 13].

    The Holy Spirit and Scripture

    The Holy Spirit opens Scripture to us through faith [1]. Though reason, grammar, and history play a role in understanding Scripture, they are not enough on their own because reason cannot grasp spiritual truths [1]. Human reason is distorted by sin, which is why people interpret the same passage in different ways [1].

    The Holy Spirit creates faith in a person’s heart so that they can believe in Jesus and understand Scripture [2]. This happens when God speaks to people and interacts with them through His Word, Holy Baptism, and the Lord’s Supper [2]. These are called God’s means of grace, and they are administered by the Church [2]. Through these means, people come to know, trust, and belong to God [2]. The Lutheran Study Bible (TLSB) emphasizes the importance of the means of grace, as discussed in our previous conversation.

    The Holy Spirit calls people to faith and to serve in the congregation of the faithful [3]. The Holy Spirit works through the Church to spread the Word [4]. This includes preparing and distributing Bibles [4]. Christians should meditate on Scripture together and interpret it in view of Scripture, not in isolation from other believers [3].

    The Holy Spirit gives His chosen writers the thoughts they express and the words they write (verbal inspiration), making the Bible God’s Word and truth, without error (inerrancy) [5]. People have questioned the Bible’s inerrancy because humans wrote it, but God cannot lie [5]. Because the Holy Spirit worked through the writers, Scripture is God’s infallible and reliable Word [5].

    The second article of the Apostles’ Creed states, “I believe in the Holy Spirit, the holy Christian church, the communion of saints, the forgiveness of sins, the resurrection of the body, and the life everlasting. Amen” [6].

    The Holy Spirit calls, gathers, enlightens, and sanctifies the Christian church on earth and keeps it with Jesus Christ in the one true faith [6].

    Law and Gospel in the Lutheran Tradition

    The Lutheran Study Bible (TLSB) presents Law and Gospel as the two basic ways God interacts with humanity. Recognizing the distinction between Law and Gospel is essential for correctly interpreting and applying Scripture [1]. The concept of Law and Gospel was central to the Reformation, as discussed in our previous conversation about the TLSB. Martin Luther wrote the first treatise on the topic, but the distinction has always been present in Scripture and the writings of theologians throughout Christian history [2].

    The Law

    • The Law is God’s Word of command that reveals His will and shows what is right [3].
    • The Law accuses us of sin and reveals our inability to save ourselves. The Law includes commands for behavior, threats for disobedience, and punishments for sin [4, 5].
    • The Law cannot save sinners but drives us to Christ by revealing our need for a Savior [5].
    • The ceremonial and civil laws given to the Israelites in the Old Testament no longer apply to Christians, but they are still important because they teach about God’s holiness and mercy [1, 6].

    The Gospel

    • The Gospel is the good news of God’s forgiveness, life, and salvation in Jesus Christ [4].
    • The Gospel is revealed in both the Old and New Testaments [4].
    • The Gospel is the central message of Scripture, and the Law serves to illuminate it [5].
    • The Gospel is received through faith [7].

    The relationship between Law and Gospel is illustrated in Exodus 24, when God spoke to Moses and gave him laws for the Israelites to obey. This is an example of the Law. The people also received God’s promise of mercy and were cleansed through sacrifices, which pointed forward to Christ’s sacrifice on the cross [8]. This foreshadowing of Christ’s sacrifice is an example of the Gospel.

    The Holy Spirit uses the Law and Gospel to create and sustain faith. The Holy Spirit convicts people of their sin through the Law and comforts them with the Gospel [9]. Only he is an orthodox teacher who presents all articles of faith in accordance with Scripture, and rightly distinguishes between Law and Gospel [10].

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Blogs of My Friend Raffaello Palandri

    Blogs of My Friend Raffaello Palandri

    Discover the Profound Writings of Raffaello Palandri: Philosophy, Insight, and the Wisdom of Buddha

    If you’re someone who values deep thought, timeless wisdom, and a critical lens on both present and past affairs, then you’re in for a real intellectual treat. I’m excited to introduce you to the powerful and thought-provoking blog writings of my friend Raffaello Palandri—a voice that bridges the ancient teachings of Buddha’s philosophy with the pressing complexities of our modern world.

    Raffaello’s work doesn’t just skim the surface. Each piece invites you into a contemplative space where Eastern philosophy meets Western analysis, where calm introspection coexists with bold critique. His writing is rich in intellectual depth, historical context, and contemporary relevance—ideal for readers who enjoy peeling back the layers of meaning in both spiritual and societal matters.

    Whether he’s dissecting current events, exploring human consciousness, or reflecting on the timeless principles of mindfulness and compassion, Raffaello writes with the rare ability to make complex ideas accessible—without ever watering them down.

    If you’re ready for content that challenges your thinking, nurtures your inner world, and expands your understanding of global and philosophical issues, Raffaello Palandri’s blog is a must-read.

    Raffaello Palandri’s Blog

    Self-compassion

    Hold yourself with compassion, yet walk unflinchingly toward what must be done, for kindness without resolve is indulgence, and resolve without kindness is tyranny.

    01
    Self-compassion

    A Comparative and Contemplative Inquiry into Vajrayāna Buddhism

    My path into Buddhism has been anything but conventional—shaped not by cultural inheritance or existential crisis, but by a relentless intellectual curiosity, a thirst for knowledge, and an ever-deepening aspiration toward the cultivation of wisdom.

    01
    Path into Buddhism

    The Crisis of Modern Identity

    In the annals of intellectual history, identity has always been a dynamic construct, shaped, dismantled, and reconstituted across epochs by theological doctrines, socio-political structures, philosophical paradigms, and technological shifts. Identity is no longer a moral question. It is a subscription plan. The late-capitalist subject is a ghost in the machine—overworked, overstimulated, overmedicated, and underfulfilled. Under consumerism, the soul is not lost. It is simply deemed irrelevant. Their obsession with “individual freedom” is a grotesque parody of true autonomy.

    What they desire is not liberty for all, but unchecked dominion for the few. They detest plurality, fear nuance, and revere hierarchy—not because it is just, but because it flatters their fragility. Anything different is a threat. Anyone dissenting is an enemy. To live well is to live rationally, following nature and reason, not market fluctuations.

    We must become citizens of Earth, not clients of empires. We must cultivate wisdom, not wealth. And we must remember that the most radical act in an age of commodified identity is to simply be—authentically, compassionately, and in quiet rebellion. To resist this is not to retreat into isolation. It is to rise in solidarity with the thinkers, seekers, creators, and caretakers who refuse to sell their souls to systems that would reduce them to metrics.

    01
    The Crisis of Modern Identity in an Age of Hyperindividualism

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Al-Riyadh Newspaper, April 10, 2025: Discoveries of Oil & Natural Gas, Vision 2030, Economic Goals, UN & Singapore

    Al-Riyadh Newspaper, April 10, 2025: Discoveries of Oil & Natural Gas, Vision 2030, Economic Goals, UN & Singapore

    Saudi Arabia has recently announced significant discoveries of oil and natural gas in the Eastern Province and Empty Quarter, reinforcing its position as a key energy provider aligned with Vision 2030’s economic diversification goals. The Kingdom is also seeing advancements in its infrastructure, with the completion of a major highway bridge in Taif and infrastructure work on numerous Riyadh. Furthermore, Saudi Arabia actively participated in an international space symposium and discussed geospatial information management with the UN and Singapore. Cultural and heritage efforts include a new book on Vision 2030, the acquisition of rare Qur’ans, and a study revealing the Arabian Peninsula’s past as a green oasis. Internationally, the King Salman Humanitarian Aid and Relief Centre continues its work in Yemen, while Saudi Aramco has signed an agreement for a major petrochemical project. The Kingdom’s engagement extends to the arts with the “Riyadh Art Week” and support for cinematic projects.

    A Study Guide

    Quiz

    1. What were the two main categories of natural resource discoveries announced in the provided text, and in which regions of Saudi Arabia were they primarily located?
    2. According to the excerpts, what is the overarching vision that guides Saudi Arabia’s current development, and how does the discovery of new oil and gas reserves fit into this vision?
    3. The text mentions a significant environmental study. What was the primary method used in this study, approximately how many researchers were involved, and what was one of the key findings about the Arabian Peninsula’s ancient environment?
    4. Several high-level diplomatic activities are mentioned. Identify one instance of a Saudi leader receiving a foreign dignitary and briefly describe the focus of their discussion.
    5. What is the name of the annual cultural festival mentioned in the text that recently launched its first edition in Riyadh, and what is its stated aim?
    6. The text highlights advancements in Saudi Arabia’s healthcare sector. Describe one specific achievement or development mentioned within the Dr. Sulaiman Al Habib Hospital.
    7. What initiative has the Saudi Authority for Data and Artificial Intelligence (“SDAIA”) undertaken to empower women in the field of AI, and what is the target number of beneficiaries for one of their programs?
    8. The city of Al Khobar is mentioned in the context of digital transformation. What significant progress did it achieve in a global index, and what does this reflect about the Kingdom’s broader goals?
    9. The text discusses the global oil market and the impact of international trade relations. Briefly explain one factor that contributed to the pressure on oil prices as mentioned in the excerpts.
    10. What is the primary function of the “Nafaqa Fund” (نفقة صندوق) under the Saudi Ministry of Justice, and what is one of its reported achievements in 2024?

    Quiz Answer Key

    1. The two main categories of natural resource discoveries were new oil discoveries and new natural gas discoveries. These discoveries were primarily located in the Eastern Province and the Empty Quarter (الربع الخالي) of Saudi Arabia.
    2. The overarching vision is Vision 2030, which aims for economic diversification. The new oil and gas discoveries are seen not as an end goal, but as a starting point to fuel this diversification and strengthen Saudi Arabia’s position in the global energy market during the transition.
    3. The primary method used in the environmental study was the analysis of 22 cave formations known scientifically as “stalagmites” (الهوابط) extracted from seven cave entrances near the As-Sulb Plateau, northeast of Riyadh. One key finding was that the Arabian Peninsula was once a green and fertile environment with multiple wet phases, contrary to its current arid nature.
    4. Crown Prince Mohammed bin Salman received telephone calls from French President Emmanuel Macron and British Prime Minister. The discussions focused on reviewing the friendly relations and joint cooperation between the two countries, ways to develop them to serve common interests, and exchanging views on regional and international issues and efforts to achieve stability.
    5. The annual cultural festival is “Al Haraki Cultural Week” (أسبوع الثقافي الحراكي) in Riyadh. Its stated aim is to celebrate contemporary Saudi art, open horizons for artistic exchange with the global scene, and explore concepts of transformation, renewal, and diverse identities within art.
    6. Dr. Sulaiman Al Habib Hospital has achieved significant success in diagnosing and treating structural heart diseases without the need for open-heart surgery. This includes performing numerous mitral valve repair (Mitral Valve Clip) and transcatheter aortic valve implantation (TAVI) procedures, as well as closing congenital defects like PDA, ASD, and VSD using catheterization.
    7. The Saudi Authority for Data and Artificial Intelligence (“SDAIA”) launched the “Elevate” program in cooperation with Google Cloud, which aims to empower more than 25,000 women in the fields of AI and technology through specialized training camps and programs.
    8. Al Khobar advanced 38 places to rank 61st globally in the IMD Smart City Index for 2025. This reflects the ambitious vision of the Saudi leadership to make the Kingdom’s cities models of urban smartness, innovation, and efficiency in line with Vision 2030.
    9. One factor contributing to the pressure on oil prices was the announcement by US President Donald Trump of potential additional tariffs on most imports from China. This raised fears of a global trade war, which could negatively impact global economic growth and, consequently, the demand for fuel.
    10. The primary function of the “Nafaqa Fund” (نفقة صندوق) is to ensure the regular disbursement of monthly alimony payments to eligible beneficiaries without delay. In 2024, the fund reportedly disbursed more than 78 million riyals to over 23,000 beneficiaries.

    Essay Format Questions

    1. Analyze the interconnectedness of Saudi Arabia’s Vision 2030, the recent discoveries of oil and gas, and the Kingdom’s commitment to environmental sustainability as presented in the excerpts. How do these elements support or potentially challenge one another?
    2. Discuss the significance of the archaeological and environmental study highlighted in the text regarding the Arabian Peninsula’s past. What implications might these findings have for understanding regional history, biodiversity, and the impact of climate change?
    3. Evaluate the role of international partnerships and diplomatic engagements in advancing Saudi Arabia’s economic and cultural objectives, drawing on specific examples from the provided text.
    4. Critically assess the advancements in technology and innovation showcased in the excerpts, including developments in artificial intelligence, smart cities, and healthcare. What are the potential benefits and challenges associated with these advancements for Saudi Arabia’s future?
    5. Examine the factors influencing the global oil market as described in the text, including geopolitical tensions and trade policies. How might these factors impact Saudi Arabia’s energy sector and its broader economic strategies?

    Glossary of Key Terms

    • روؤية 2030 (Ru’yah 2030 / Vision 2030): The Kingdom of Saudi Arabia’s ambitious long-term plan for economic and social reform, aiming to diversify the economy away from oil, develop public service sectors, and create a vibrant society.
    • الربع الخالي (Ar-Rub’ al-Khali / The Empty Quarter): A vast desert region in the southeastern part of the Arabian Peninsula, encompassing parts of Saudi Arabia, Oman, the UAE, and Yemen.
    • الهوابط (Al-Hawabit / Stalagmites): Upward-growing mounds of mineral deposits that accumulate on the floor of caves from dripping water containing dissolved calcium carbonate.
    • واس (WAS / Saudi Press Agency): The official news agency of the Kingdom of Saudi Arabia.
    • الذكاء الاصطناعي (Adh-Dhaka’ Al-Istina’i / Artificial Intelligence – AI): The simulation of human intelligence processes by machines, especially computer systems.
    • التحول الرقمي (At-Tahawwul Ar-Raqami / Digital Transformation): The use of digital technologies to radically improve performance and reach of enterprises.
    • مؤشر المدن الذكية (Mu’ashir Al-Mudun Adh-Dhakiya / Smart City Index): A ranking that assesses and compares the progress and development of smart cities globally.
    • أوبك + (OPEC+): An alliance of 23 of the world’s major oil-exporting countries, comprising the 13 OPEC members and 10 non-OPEC oil-producing countries.
    • صندوق النفقة ( صندوق النفقة Sunduq An-Nafaqa / The النفقة Fund): A fund established by the Saudi Ministry of Justice to ensure the timely payment of alimony to divorced women and their children.
    • الحياة الفطرية (Al-Hayat Al-Fitriya / Wildlife): The native fauna and flora of a region, especially those that have not been domesticated or cultivated.

    Detailed Briefing Document: Analysis

    This briefing document summarizes the main themes, important ideas, and key facts presented in the provided news excerpts. Quotes from the original sources are included to illustrate the points. The sources cover a diverse range of topics, primarily focusing on Saudi Arabia and the wider Middle East.

    Main Themes and Key Ideas:

    1. Economic Diversification and Growth in Saudi Arabia (Vision 2030):

    • New Hydrocarbon Discoveries: A significant theme revolves around the announcement of new oil and gas discoveries in Saudi Arabia, particularly in the Eastern Province and the Empty Quarter.
    • “فبالأمس جرى الإعلان عن ثمانية اكتشافات جديدة للزيت وستة اكتشافات جديدة للغاز الطبيعي في المنطقة الشرقية والربع الخالي، لتعود بذلك المملكة إلى الواجهة كمصدر متجدد للطاقة، وكقلب نابض لسوق النفط العالمي، مرتكزة على رؤية 2030 التي لم تجعل من النفط غاية؛ وإنما نقطة انطلاق نحو تنويع الاقتصاد.”
    • These discoveries are seen as bolstering the Kingdom’s position as a key energy provider while aligning with Vision 2030’s goal of economic diversification.
    • Specific details are provided regarding the flow rates of natural gas and condensate from newly discovered wells in the Eastern Province (Al-Ghazlan, Aram, Al-Mahawaz) and the Empty Quarter (Marzuq).
    • Focus Beyond Oil: Vision 2030 is highlighted as a roadmap for diversifying the economy, with oil serving as a starting point rather than the ultimate goal.
    • “…رؤية 2030 التي لم تجعل من النفط غاية؛ وإنما نقطة انطلاق نحو تنويع الاقتصاد…”
    • Environmental Responsibility and Cultural Heritage: The new discoveries are linked to the need to preserve the Kingdom’s material, environmental, cultural, and historical treasures.
    • “ولعل في هذه الاكتشافات يلهمنا جميعًا بأن نعمل على ترسيخ مسؤوليتنا في الحفاظ عليها جميعًا والحفاظ على كنوزنا المادية والتاريخية والثقافية وحسن استثمارها ورعايتها، وأن نكون كمواطنين في قلب المسؤولية وعيًا وإنتاجًا وعطاء وارتباطًا.”
    • Technological Advancement and Smart Cities: The progress of Al-Khobar in the Smart Cities Index is noted as a reflection of the Kingdom’s advancements in digital transformation and innovation.
    • “…عن تقدم مدينة الخبر في عالميًا 61 المركز لتحتل مركزًا 38 مؤشر المدن الذكية لعام 2025.”
    • This achievement aligns with the leadership’s vision of making Saudi cities “smart, innovative, and efficient.”
    • Industrial Growth: The issuance of new industrial licenses and the commencement of production in numerous factories in January 2025 indicate industrial sector growth.
    • “أصدرت وزارة الصناعة والثروة المعدنية 63 ترخيصًا صناعيًا جديدًا خلال شهر يناير الماضي 2025، فيما بدأت 103 مصانع جديدة الإنتاج خلال الشهر نفسه…”
    • Investment in Education: The importance of investing in education to meet the goals of Vision 2030 is emphasized.
    • “…أن يكون لدينا مخرجات تعليمية تواكب رؤية المملكة 2030م، ويكون المواطن السعودي منافسًا عالميًا، والمواطنة…”
    • Space Technology Development: Efforts to unify technical standards in the space sector and foster international cooperation are underway, aligning with Vision 2030.
    • “وتهدف الجلسة الفضائية إلى مناقشة توحيد المعايير الفنية وتوفير منصة دولية فاعلة للحوار ومناقشة التحديات المرتبطة بتوسيع نطاق استخدام التقنيات، بالإضافة إلى دعم الاستثمار وتعزيز منظومة متكاملة وتطوير التقدم التقني في هذا المجال الحيوي…”

    2. Regional Geopolitics and International Relations:

    • Lebanon-Greece Relations: The Lebanese President received the Greek Defense Minister, discussing the strengthening of bilateral relations in various fields.
    • The Lebanese President stated that “Lebanese-Greek relations are rooted in history and cooperation between the two countries exists in more than one field.”
    • Crown Prince’s Diplomatic Engagement: The Crown Prince received phone calls from the French President and the British Prime Minister, discussing bilateral cooperation and regional/international issues.
    • Syrian Diplomatic Reshuffle: Syria announced a “restructuring” of its embassies and the recall of its ambassadors from Russia and Saudi Arabia, following “directives from President Bashar al-Assad.”
    • Lebanon-Israel Tensions: The Lebanese President highlighted that Israeli attacks violate UN Resolution 1701 and stressed that the future of Hezbollah’s weapons is contingent on Israel’s withdrawal and cessation of aggression.
    • The President stated that “Israeli aggressions violate Resolution 1701.”
    • Yemen Humanitarian Efforts: The Saudi Program for the Development and Reconstruction of Yemen continues to provide aid through mobile medical clinics, reaching thousands of beneficiaries.
    • Pakistan Bilateral Discussions: The Saudi Foreign Minister met with the Deputy Prime Minister and Foreign Minister of Pakistan to discuss bilateral relations and cooperation.

    3. Humanitarian Crises and Aid:

    • South Sudan Humanitarian Crisis: The reduction of US aid is reported to be exacerbating the humanitarian situation in South Sudan, leading to the closure of health centers and the deaths of children.
    • “…the reduction of American aid…closed most of the state’s health centers…”
    • An international NGO reported the deaths of at least five South Sudanese youths while seeking life-saving care.
    • Ukraine Conflict Casualties: The UN estimates that around 13,000 civilians have been killed since the beginning of the war in Ukraine.
    • “…the United Nations estimates that around 13,000 civilians have been killed since the beginning of the war in Ukraine.”

    4. Cultural and Social Developments in Saudi Arabia:

    • Flourishing Arts and Culture Scene: The launch of the “Heraak Cultural Week” in Riyadh signifies the Kingdom’s dynamic arts scene and its growing position as a leading artistic destination.
    • “…reflects the quality leap in art that the Kingdom is witnessing, and its growing position as a leading artistic destination at the regional level…”
    • “Ard Al-Million” Program: The return of the “Ard Al-Million” (Land of the Million) reality competition show highlights the entertainment and media landscape.
    • King Abdulaziz Public Library’s Rare Manuscripts: The library holds a significant collection of rare and valuable Qur’anic manuscripts, showcasing Islamic art and calligraphy.
    • “Fan Al-Mamlaka” Exhibition: The “Fan Al-Mamlaka” (Art of the Kingdom) exhibition continues its tour, showcasing contemporary Saudi art and reflecting the Kingdom’s cultural identity.
    • King Salman Global Academy for the Arabic Language: The academy launched a “Muserra’a” (accelerator) for Arabic language innovations, aiming to expand the impact of the Arabic language and support entrepreneurs in this field.

    5. Economic Trends and Global Markets:

    • Impact of US Economic Policies: Concerns are raised about the potential for a US economic slowdown or recession due to rising interest rates, inflation, and potential tax hikes.
    • “…the American economy has recently witnessed a noticeable rise in interest rates, which has led to an increase in the cost of borrowing and a significant decline in investments.”
    • US-China Trade Tensions: The escalating trade war between the US and China is highlighted as a major factor putting downward pressure on oil prices and threatening global economic growth.
    • “Donald Trump’s announcement of imposing sweeping customs duties on most imports raised fears of a global trade war…”
    • Oil Price Volatility: Oil prices have been under pressure due to trade tensions and increased OPEC+ production. Analysts predict potential further declines.
    • “Oil prices are under pressure this year due to US customs duties.”
    • Saudi Consumer Behavior: Saudi consumer behavior is evolving, influenced by socio-economic and technological factors, particularly with the implementation of Vision 2030. There is a growing demand for quality, value, and personalized experiences.
    • Artificial Intelligence Advancement: Saudi Arabia is recognized as a leading nation in AI, particularly in empowering women in the field.
    • “The Kingdom of Saudi Arabia has witnessed remarkable development in the field of artificial intelligence…”
    • The Kingdom achieved the top global ranking in enabling women in AI.
    • Ministry of Justice’s النفقة (Alimony) Fund: The fund has been successful in disbursing monthly alimony payments to beneficiaries without delay, contributing to family stability.

    6. Sports and Entertainment:

    • Saudi Pro League Development: The Saudi Pro League is now ranked among the top ten strongest leagues globally, attracting international stars and witnessing significant development in infrastructure and talent.
    • Upcoming Football Matches: Previews of key football matches in the Saudi league are provided, highlighting team standings and player expectations.
    • Saudi Arabia’s Growing Role in Global Sports: The Kingdom is preparing to host major international sporting events, solidifying its position on the global sports map.

    7. Environmental Conservation:

    • Ancient Green Saudi Arabia: A recent scientific study by the Heritage Authority indicates that Saudi Arabia was once a green and fertile land millions of years ago, contrary to its current arid nature.
    • “…the Kingdom was a green oasis millions of years ago…”
    • Wildlife Conservation Efforts: The Kingdom is committed to protecting its wildlife, with programs focused on the Arabian oryx and other endangered species.
    • “…the preservation of wildlife is among the national priorities…”
    • Sustainable Tourism: The “Jannoumah Ritz-Carlton Reserve” on the Red Sea is highlighted for its commitment to sustainability and unique natural beauty.

    Key Quotes:

    • (On Vision 2030 and Economic Diversification): “رؤية 2030 التي لم تجعل من النفط غاية؛ وإنما نقطة انطلاق نحو تنويع الاقتصاد.”
    • (On new oil and gas discoveries): “فبالأمس جرى الإعلان عن ثمانية اكتشافات جديدة للزيت وستة اكتشافات جديدة للغاز الطبيعي في المنطقة الشرقية والربع الخالي، لتعود بذلك المملكة إلى الواجهة كمصدر متجدد للطاقة…”
    • (Lebanese President on relations with Greece): “العلاقات اللبنانية – اليونانية متجذرة في التاريخ والتعاون بين البلدين قائم في أكثر من مجال.”
    • (Al-Khobar’s progress in Smart Cities Index): “…تقدم مدينة الخبر في عالميًا 61 المركز لتحتل مركزًا 38 مؤشر المدن الذكية لعام 2025.”
    • (On South Sudan humanitarian crisis): “منظمة غير حكومية دولية الأربعاء بوفاة أطفال في جنوب السودان مصابين بالكوليرا أثناء محاولة في طويلة لمسافات سيرهم لعيادات بعيدة بعدما أغلقت معظم المراكز الصحية الدولة وتعاني الأمريكية. المساعدات خفض إثر السودان…”
    • (UN on Ukraine civilian deaths): “…الأمم المتحدة تقدر أن نحو 13 ألف مدني فليتشر لمجلس الأمن إن الأمم المتحدة تقدر أن نحو 13 ألف مدني قتلوا…بأوكرانيا.”
    • (On Heraak Cultural Week): “…تعكس نوعية خطوة في الرياض”، فن متسارع تشهده المملكة، ومكانتها المتنامية كوجهة فنية رائدة على مستوى المنطقة…”
    • (Ancient Saudi Arabia): “…أن المملكة كانت واحة خضراء قبل ملايين السنين…”
    • (Saudi Pro League strength): “…أصبح السعودي الدوري اليوم ضمن العشرة الدوريات الأقوى في العالم حسب تصنيف الاتحاد الدولي للتاريخ والإحصاء…”

    Implications and Considerations:

    • The continued hydrocarbon discoveries provide a strong foundation for the Saudi economy in the near term but reinforce the need for successful diversification efforts as outlined in Vision 2030.
    • Regional geopolitical tensions remain a significant factor influencing stability and international relations in the Middle East.
    • Humanitarian crises in South Sudan and Ukraine highlight the urgent need for international aid and diplomatic solutions.
    • Saudi Arabia’s growing cultural and sports sectors reflect its broader development and engagement on the global stage.
    • Global economic uncertainties, particularly related to US policies and trade disputes, could have implications for energy markets and the Saudi economy.

    This briefing provides a snapshot of the key developments and themes covered in the provided sources. Further analysis of individual articles may be required for a deeper understanding of specific issues.

    Saudi Arabia: Recent Discoveries and Vision 2030 Initiatives

    Frequently Asked Questions

    1. What are the recent significant discoveries announced in Saudi Arabia, and what do they signify for the Kingdom? Saudi Arabia has recently announced 14 new oil discoveries and six new natural gas discoveries in the Eastern Province and the Empty Quarter. These discoveries underscore the Kingdom’s position as a vital and renewable energy source, reinforcing its role in the global oil market. They are also seen as a launchpad for economic diversification in line with Vision 2030, which aims to move beyond oil as the sole economic driver.
    2. How is Saudi Arabia balancing its energy resources with environmental responsibility, as suggested by the recent discoveries? The recent discoveries inspire a collective responsibility to preserve the Kingdom’s material, historical, and cultural treasures, including its natural environment. Saudi Arabia emphasizes the importance of investing in and sustainably managing these resources. Vision 2030 signifies a move towards redefining the nation’s role, focusing on environmental stewardship and the interconnectedness between the environment and global well-being, aiming to present a unique and pioneering model of integration.
    3. What efforts are being made in Saudi Arabia to explore and document its natural and historical environment? A recent scientific study, involving 30 researchers from 27 local and international entities, meticulously analyzed cave formations (“speleothems”) in seven caves near the Al-Riyadh region. This study revealed a detailed record of the region’s ancient climate over the past 220,000 years, indicating that the Arabian Peninsula was once a green and fertile land with multiple wet periods, facilitating animal and human migrations between Africa and Asia. This highlights the Kingdom’s commitment to uncovering its natural history and ecological richness.
    4. How is Saudi Arabia leveraging technological advancements to enhance urban living and economic growth? The city of Al-Khobar has made significant progress in the global Smart Cities Index, advancing 38 places to rank 61st worldwide. This reflects Saudi Arabia’s notable advancements in digital transformation and innovation. This progress is attributed to the ambitious vision of the leadership to develop Saudi cities into smart and sustainable models, leveraging advanced technologies like artificial intelligence and the Internet of Things to enhance their competitiveness and attract talent and investments, aligning with the goals of Vision 2030.
    5. What initiatives are underway to promote the Arabic language and its global impact? The King Salman Global Academy for the Arabic Language has launched a fast-track accelerator program for Arabic language innovations, involving 15 participating companies. This initiative aims to expand the influence of the Arabic language beyond traditional frameworks, support entrepreneurs and innovative businesses in this field, and contribute to building an integrated ecosystem for Arabic language-based solutions and applications. This aligns with the Academy’s strategic directions to enhance the global standing and usage of the Arabic language.
    6. What advancements are being made in healthcare within Saudi Arabia, particularly in specialized medical fields? Dr. Sulaiman Al Habib Hospital in Al Takhassusi has achieved significant milestones in the diagnosis and treatment of structural heart diseases without the need for open-heart surgery. This includes advanced procedures like MitraClip for mitral valve repair and TAVI (Transcatheter Aortic Valve Implantation), as well as the closure of congenital heart defects using catheterization. These achievements, under the supervision of specialized medical teams, enhance the quality of cardiac care provided by the hospital.
    7. How is Saudi Arabia demonstrating its commitment to international humanitarian aid and development? Saudi Arabia, through the King Salman Humanitarian Aid and Relief Centre, is a leading global force in humanitarian work. Recent examples include providing medical aid to displaced people in Yemen through mobile clinics, addressing various health needs and nutritional support. Additionally, the Saudi Program for the Development and Reconstruction of Yemen is undertaking 264 developmental projects across eight vital sectors in 16 Yemeni governorates, demonstrating a comprehensive approach to supporting socio-economic stability in the region.
    8. What are the key themes and objectives of Saudi Arabia’s Vision 2030, as illustrated by the various developments and initiatives mentioned in the sources? Vision 2030 is a comprehensive blueprint for Saudi Arabia’s future, aiming for economic diversification beyond oil, enhanced quality of life, and a prominent global role. Key themes include:
    • Economic Diversification: Investing in non-oil sectors, such as technology, tourism, and manufacturing, as seen in the smart city initiatives and industrial advancements.
    • Sustainable Development: Emphasizing environmental responsibility alongside economic growth, as highlighted by the focus on preserving natural resources and understanding the Kingdom’s environmental history.
    • Technological Advancement: Embracing digital transformation, artificial intelligence, and other modern technologies to improve urban living, drive innovation, and enhance global competitiveness.
    • Cultural Enrichment: Promoting and preserving the Arabic language and the Kingdom’s cultural heritage while fostering artistic expression and international cultural exchange.
    • Healthcare Excellence: Developing advanced medical capabilities and improving the quality of healthcare services for citizens.
    • Global Leadership: Maintaining a strong position in the energy market while expanding its role in international humanitarian aid and fostering positive global relationships.

    Saudi Arabia: New Oil and Gas Discoveries

    The sources discuss oil and gas discoveries in Saudi Arabia. According to a statement by Prince Abdulaziz bin Salman bin Abdulaziz, the Minister of Energy, Saudi Aramco has discovered 14 new oil and natural gas fields and reservoirs in the Eastern Region during the current quarter.

    These discoveries include six new oil fields and eight new natural gas reservoirs. Prince Abdulaziz bin Salman raised congratulations to the Custodian of the Two Holy Mosques, King Salman bin Abdulaziz Al Saud, and His Royal Highness Prince Mohammed bin Salman bin Abdulaziz, the Crown Prince and Prime Minister, for these achievements. He also prayed for continued security and the advancement of the Kingdom.

    The Minister of Energy stated that these discoveries reflect the Kingdom’s dedication to developing its natural resources and enhancing global energy security.

    Furthermore, an article by Abdulaziz bin Salman mentions the Kingdom’s pioneering position in the energy sector globally, reinforced by discoveries. While this article doesn’t detail specific new discoveries, it highlights the importance of such finds in maintaining Saudi Arabia’s leading role in the energy market.

    Saudi Arabia’s Vision 2030: Goals and Key Themes

    Drawing on the information in the sources, Vision 2030 encompasses a broad range of ambitious goals for the Kingdom of Saudi Arabia. Several sources highlight the alignment of specific initiatives and achievements with the overarching objectives of this vision.

    One of the primary goals of Vision 2030 is economic diversification. Instead of solely relying on oil, the Kingdom aims to develop other sectors to create a more sustainable and resilient economy. The recent discoveries of new oil and natural gas fields and reservoirs, while significant, are viewed as resources that will support this diversification and meet future energy demands while the Kingdom pursues broader economic goals.

    Vision 2030 also emphasizes comprehensive development and reshaping various aspects of the Kingdom. This includes urban development, as seen in the infrastructure projects in Riyadh and the ambition to transform Saudi cities into leading smart and livable models. The focus extends to environmental integration, aiming to present a pioneering model in the relationship between the environment, history, and the world.

    Enhancing global competitiveness and the Kingdom’s international standing is another key aspect of Vision 2030. This is evident in Saudi Arabia’s efforts in the energy sector, its growing role in the digital space, and its increasing prominence in the arts and culture. The progress in Artificial Intelligence and the empowerment of women in this field are also aligned with the vision’s objectives to leverage modern technologies for economic and social advancement.

    Improving the quality of life for citizens and residents is a central theme of Vision 2030. Initiatives such as enhancing municipal services, developing the road network, and improving civil affairs services contribute to this goal. The “Quality of Life program” is explicitly mentioned as one of the programs within the framework of Vision 2030.

    Furthermore, Vision 2030 has a strong focus on human capital development. This includes ensuring that educational outcomes align with the vision’s requirements, making Saudi citizens globally competitive. Investing in and empowering Saudi talent across various sectors, including technology and the arts, is crucial for achieving the vision’s long-term objectives.

    The industrial sector is also a key focus, with Vision 2030 aiming for a rapid industrial transformation to increase the sector’s contribution to the national economy. This involves expanding the number of factories and investing in modern technologies to enhance productivity and competitiveness.

    Finally, the sports sector is also undergoing significant development in line with Vision 2030, with the Kingdom aiming to become a leader in the region and a host for major international events.

    In essence, Vision 2030 is a comprehensive blueprint for Saudi Arabia’s future, encompassing economic diversification, comprehensive development, enhanced global standing, improved quality of life, human capital development, industrial advancement, and sports development.

    Saudi Arabia: Vision 2030 and Sustainable Economic Growth

    Drawing on the sources, a discussion of economic growth sustainability in the context of Saudi Arabia reveals several key aspects driven by Vision 2030.

    Economic Diversification: A central theme in achieving economic growth sustainability for Saudi Arabia is the goal of economic diversification. Vision 2030 does not view oil as the ultimate aim but rather as a starting point for moving towards a more diverse economy. This implies a long-term perspective where the Kingdom aims to reduce its reliance on a single resource and build a broader base for economic activity.

    Comprehensive and Sustainable Development: The sources suggest that economic growth is envisioned as part of a comprehensive development that reshapes various aspects of the Kingdom. This includes integrating environmental considerations, historical preservation, and global interconnectedness. The focus on preserving natural heritage through the establishment of natural reserves indicates an awareness of the importance of environmental sustainability alongside economic progress. Furthermore, projects like the development of road networks prioritize quality and safety while aiming for long-term efficiency and reduced fatalities, aligning with sustainable infrastructure development.

    Investment in Human Capital and Innovation: Sustainable economic growth requires investment in people and innovation. The sources highlight efforts to have educational outcomes that align with Vision 2030, aiming to create a globally competitive Saudi workforce. The development of the digital infrastructure and the embrace of modern technologies like Artificial Intelligence are seen as crucial for long-term economic and social development. The establishment of initiatives to empower women in technology, particularly in AI, further supports the development of a diverse and skilled workforce for a sustainable future.

    Industrial Transformation: The Kingdom is actively pursuing a rapid industrial transformation to increase the industrial sector’s contribution to the national economy. The goal to increase the number of factories and invest in modern technologies to enhance productivity and competitiveness points towards building a more robust and diversified economic base for the future. Events like the “Industrial Transformation Exhibition 2025” signify this strategic direction.

    Leveraging Natural Resources for Transition: While aiming for diversification, the recent discoveries of new oil and natural gas fields are still significant. These discoveries can be seen as resources that will support the diversification efforts and meet energy demands during the transition to a more varied economy.

    In summary, the sources indicate that Saudi Arabia’s approach to economic growth sustainability, guided by Vision 2030, involves a multi-faceted strategy encompassing economic diversification, environmentally conscious development, investment in human capital and technological advancement, and a focus on industrial expansion. The strategic use of existing natural resources is also part of this plan to facilitate a smooth transition towards a more sustainable economic future.

    Global and Middle East Affairs: Key Developments

    Based on the sources, several regional and global issues are discussed:

    Regional Issues (Middle East):

    • The sources mention developments in Lebanon, with reports of an Israeli withdrawal from southern areas and a statement from a senior Hezbollah official indicating the group’s readiness to discuss its weapons with President Joseph Aoun if Israel withdraws from Lebanon. This comes at a time of increasing calls for Hezbollah to disarm and highlights the potential for discussions on this sensitive issue, something considered unimaginable just two years prior. The situation is further complicated by the impact of Israeli strikes against Hezbollah, which is backed by Iran, in a devastating conflict reportedly linked to the war in the Gaza Strip.
    • The Saudi Minister of Foreign Affairs and the US Secretary of State discussed recent developments in Gaza, Sudan, and Yemen. This indicates ongoing concern and diplomatic engagement regarding these protracted conflicts in the region.
    • Syria is also featured, with the Syrian Foreign Ministry announcing a “restructuring” of its embassies and diplomatic missions abroad and requesting the return of its ambassadors, including those from Russia and the Kingdom. This suggests significant shifts in Syria’s diplomatic posture.
    • In Lebanon, President Joseph Aoun received congratulations and well wishes from the Greek Minister of National Defence following his election. The Greek official conveyed the Greek Prime Minister’s regards and his country’s readiness to provide necessary support to the Lebanese military, emphasizing the utilization of Greek expertise.
    • There are reports of upcoming US-Iranian talks in Oman that will address the long-standing dispute over Tehran’s nuclear program, although Iranian officials express skepticism about the possibility of progress. The backdrop to these talks includes years of stringent sanctions against Iran and concerns about potential US military action.

    Global Issues:

    • The Saudi Minister of Energy, Prince Abdulaziz bin Salman, highlighted that the recent oil and gas discoveries in the Kingdom reflect Saudi Arabia’s commitment to “developing its natural resources and enhancing global energy security“. This positions Saudi Arabia as a key player in the global energy market.
    • The sources touch upon the US economy, with an expert analysis detailing concerns about a recent significant rise in US interest rates, leading to increased borrowing costs and a decline in investments. The US economy is also reportedly suffering from rampant inflation, negatively impacting consumer purchasing power and potentially exacerbating financial burdens. Furthermore, the potential for increased taxes could further complicate the economic situation, and these factors collectively strongly suggest the possibility of an impending “economic recession” affecting both the American and global economies. The analysis notes that historical financial crises, banking collapses, and changes in demand, as well as global events like trade wars, can significantly impact the economy and potentially accelerate a move towards recession.
    • The article also discusses US trade policies, noting a “bold” move by the United States to impose new customs tariffs on most countries in the world, including major trading partners and allies, in an effort to rebalance fair trade. However, these protectionist measures are described as “undesirable” for the global economy and are expected to cause a decline in global economic performance and potentially trigger trade wars. The article references the global financial crisis of November 2008 as a time when G20 countries met to discuss similar global economic challenges.
    • Oil prices are reported to have fallen for the fifth consecutive day to their lowest levels since February 2021 due to looming demand concerns and the escalating “trade war of tariffs” between the United States and China. The US central bank’s previous week’s raising of customs duties is expected to slow global economic growth and potentially lower oil prices due to reduced global demand. There are also mentions of the US threatening to disrupt Russian oil buyers, including China and India, with similar customs duties if Tehran does not reach an agreement with the White House.
    • International cooperation is evident in the field of space and technology, as highlighted by the participation of Saudi Arabia’s Communications and Space Corporation in a high-level global discussion at the Space Symposium in Colorado, alongside major international companies and experts. This aligns with Vision 2030’s goal of enhancing the role of modern technologies in economic and social development.
    • Another area of international collaboration is in geospatial information management. The General Authority for Survey and Geospatial Information (GEOSPATIAL) of Saudi Arabia and the Singapore Land Authority (SLA) launched the achievements of their joint cooperation project. This collaboration involves developing geospatial infrastructure, exchanging experiences, and aligning with international best practices. GEOSPATIAL also participated in the United Nations Committee of Experts on Global Geospatial Information Management and shared its experiences in developing the geospatial ecosystem. This international cooperation was recognized when GEOSPATIAL received an award for excellence in developing the national geospatial ecosystem from a Singaporean government agency. King Abdulaziz University also showcased research papers at an international conference organized by the International Society for Photogrammetry and Remote Sensing (ISPRS) in Dubai, highlighting Saudi Arabia’s participation in international scientific forums.
    • The Saudi Food and Drug Authority participated in the third edition of the World Local Production Forum (WLPF) in Abu Dhabi, focusing on enhancing local production to achieve health equity and health security. This global forum underscores the importance of international collaboration in the pharmaceutical and food sectors.
    • The development of road networks in Saudi Arabia aims to reach the sixth ranking in the global road quality index by 2030 and reduce road fatalities, aligning with the standards of the International Road Assessment Programme (IRAP), indicating the adoption of international safety benchmarks.
    • International cultural exchange is discussed in the context of Saudi film director Abdullah Al-Muhaisen’s participation in the Hong Kong International Film Festival, highlighting the role of cinema as a bridge between cultures.
    • The increasing quality and professionalism of Saudi sports are attracting international investments in the sector. The presence of international professional players in the Saudi league, such as Cristiano Ronaldo and Karim Benzema, underscores the global dimension of the sport.
    • Saudi Arabia’s commitment to preserving its natural heritage involves cooperation with international and local organizations to protect endangered species, reflecting a global trend in environmental conservation.
    • While not explicitly tied to governmental or economic issues, the statistic that suicide represents the second leading cause of death among Western youth in 2020 points to a significant global social challenge.
    • The sources also briefly mention the COVID-19 crisis as a past global challenge that the Saudi economy navigated with strength and wisdom.

    Saudi Arabia’s Environmental and Natural History: A Legacy of Green

    Based on the sources, a discussion of environmental and natural history in Saudi Arabia reveals several significant aspects:

    Saudi Arabia’s Rich Environmental and Natural History:

    • Saudi Arabia is described as a land rich in its civilizations and diverse in its geography, encompassing plains, mountains, seas, vast deserts, and golden sand dunes. This geographical diversity contributes to a varied natural history.
    • A scientific article published in “Nature” by the Heritage Commission, titled “Frequent Wet Periods in the Arabian Peninsula over the Last 8 Million Years,” highlights that Saudi Arabia was a green oasis eight million years ago. This study, conducted in collaboration with local and international entities under the “Green Arabia” project, aims to explore the natural and environmental history of the region.
    • The “Green Arabia” project seeks to uncover the natural and environmental history of the Arabian Peninsula, document its scientific, natural, and cultural heritage, and reveal the pioneering environmental dimensions. It aims to enhance our understanding of climatic changes and their impact on the region’s geography and environment throughout the ages.
    • The study involved researchers from 27 local and international institutions, including the Geological Survey Authority, the Heritage Commission, King Saud University, and international universities and research centers from Germany, Italy, Britain, the United States, and Australia.
    • Researchers used various scientific methods, including detailed analysis of chemical deposits in caves and the analysis of oxygen and carbon isotopes, to determine rainfall rates and vegetation cover over time, helping to uncover wet periods and their fluctuations over millions of years.
    • Analysis of calcium carbonate deposits and the use of Uranium-Thorium (U-Th) and Uranium-Lead (U-Pb) dating techniques helped precisely determine the age of these formations, revealing several wet phases characterized by abundant rainfall, the oldest dating back to the late Miocene epoch, around 8 million years ago, extending through the Pliocene, about 3 million years ago. These wet periods contrast with the current desert environment.
    • These findings are part of the outputs of the “Green Arabia” project, emphasizing the commitment of the Heritage Commission to supporting scientific research and expanding international cooperation in this field.

    Conservation Efforts and Protection of Natural Heritage:

    • Saudi Arabia is committed to developing its natural resources.
    • The Kingdom has established several natural reserves to protect its unique wildlife, such as the Arabian Oryx and the Sand Gazelle, as well as rare plant species. These reserves include the King Salman Reserve, the King Abdulaziz Reserve, the Prince Mohammed bin Salman Reserve, and the King Khalid Reserve.
    • These reserves serve as safe havens for wildlife, providing an optimal environment for breeding and growth, thus contributing to the balance of the ecological system.
    • The Kingdom continuously strives to enhance efforts to protect wildlife through public awareness programs on the importance of environmental preservation.
    • The government collaborates with international and local organizations to protect endangered species from extinction by reintroducing them to their natural habitats and providing suitable conditions for their growth. These efforts reflect the Kingdom’s commitment to protecting its natural heritage.
    • The Arabian Gazelle holds cultural significance, symbolizing beauty, heritage, and freedom. A poem by Prince Khalid Al-Faisal Al Saud expresses this deep connection between humans and nature, highlighting the beauty of the gazelle and the necessity of its preservation. This reflects the connection of Saudi poets with nature and emphasizes the importance of protecting these unique resources.
    • The interest of poets and rulers in protecting the environment reflects a national commitment to safeguarding the environment, making wildlife a symbol of pride and a distinct national identity.
    • The Prince Mohammed bin Salman Royal Reserve celebrated the birth of its first sand gazelle.
    • The “Aja and Salma” area is mentioned as having a unique environmental diversity.

    Ecological Balance and Biodiversity:

    • Migratory birds, such as quail, are seasonal visitors to the northern regions of the Kingdom. Experts in the environmental field confirm that the continuation of these seasonal migrations influences the stability and balance of natural ecosystems.
    • These migrations enrich the environmental and cultural experience of the region’s inhabitants and nature enthusiasts, creating a beautiful natural spectacle.
    • Migratory birds contribute essential ecological services, such as seed dispersal, limiting insect reproduction, and stimulating biodiversity.

    In summary, the sources emphasize Saudi Arabia’s long history of environmental richness, its current commitment to understanding its natural past through scientific studies like the “Green Arabia” project, and its active efforts in establishing natural reserves and implementing conservation programs to protect its diverse flora and fauna for future generations. The cultural significance of nature, as seen in poetry, further underscores the importance of preserving Saudi Arabia’s unique natural heritage.

    Main Headings

    • خادم الحرمين يتلقى رسالة من رئيس ليبيري Custodian of the Two Holy Mosques receives a message from the President of Liberia
    • ولي العهد يتلقى اتصالين من الرئيس الفرنسي ورئيس الوزراء البريطاني The Crown Prince receives two calls from the French President and the British Prime Minister.
    • 14 اكتشافاً نفطياً تعزز استدامة النمو الاقتصادي في المملكة oil discoveries enhance the sustainability of economic growth in the Kingdom.
    • عبدالعزيز بن سلمان: الاكتشافات إضافة ترسخ ً المكانة الريادية للمملكة في قطاع الطاقة عالميا Abdulaziz bin Salman: The discoveries are an addition that consolidates the Kingdom’s leading position in the global energy sector.
    • المملكة واحة خضراء قبل ثمانية ملايين سنة The Kingdom was a green oasis eight million years ago.
    • وزير الخارجية ونظيره الأميركي يبحثان المستجدات في غزة والسودان واليمن The Secretary of State and his American counterpart discuss developments in Gaza, Sudan, and Yemen.
    • ســلاح «حـزب اللـه» مقـابـل انسحـاب الاحتـلال Hezbollah’s weapons in exchange for the occupation’s withdrawal

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Five Steps to Lose Permanent Belly Fat

    Five Steps to Lose Permanent Belly Fat

    This video outlines a five-step approach to losing belly fat permanently, emphasizing that most people fail because they don’t address all aspects. It argues against diets, promoting sustainable lifestyle changes based on understanding metabolism, cellular perception, and hormonal influences, particularly insulin’s role. The video stresses that calorie counting is an oversimplification, highlighting how the body adapts energy expenditure. It also details how carbohydrates significantly impact insulin, advocating for a reduction in their intake. Furthermore, it explains that exercise is crucial but primarily for improving insulin sensitivity and brain function, not just burning calories, and that stress management through techniques like breathing and mindfulness is vital due to cortisol’s effect on fat storage. Finally, it champions a holistic lifestyle addressing chemical, structural, and emotional well-being for overall health and sustainable fat loss.

    Study Guide: Understanding Belly Fat Loss

    Quiz

    Answer the following questions in 2-3 sentences each.

    1. Why does the source argue that “dieting” is a flawed approach to long-term belly fat loss?
    2. According to the source, what is a more accurate understanding of “calories out” beyond just exercise?
    3. How does the body’s “perception of lack” relate to basal metabolic rate when attempting to lose weight through exercise?
    4. What role does insulin play in fat storage and fat burning in the body?
    5. Why does the source identify carbohydrates as the primary food group to reduce when trying to lower insulin levels?
    6. How does the insulin response differ when consuming a meal high in carbohydrates compared to a meal low in carbohydrates?
    7. Explain how exercise can improve insulin sensitivity, according to the information provided.
    8. Why are crunches considered ineffective for reducing belly fat, based on the source material?
    9. According to the source, what is the primary reason why exercise is considered necessary for overall health and belly fat loss (hint: it’s not just about burning calories)?
    10. How does chronic stress contribute to increased belly fat accumulation, according to the information presented?

    Quiz Answer Key

    1. The source states that diets are temporary, leading individuals to revert to old habits after completion, which were the initial cause of the problem. Sustainable changes should form a lifestyle, not a temporary restriction.
    2. “Calories out” is not solely determined by exercise but also includes the basal metabolic rate (BMR), which is the energy the body uses at rest. Increases in exercise can sometimes lead to a decrease in BMR.
    3. When the body perceives a lack of energy due to increased expenditure (like exercise without dietary changes), it can lower the basal metabolic rate to conserve energy, thus hindering further fat loss.
    4. Insulin is an anabolic hormone that promotes the storage of glucose as glycogen and fat, and it inhibits fat burning. High levels of insulin can prevent access to stored fat, leading to a sense of “lack” and increased hunger.
    5. Carbohydrates trigger a significantly higher insulin response compared to fats and proteins. Since the goal is to reduce insulin levels to promote fat burning, reducing carbohydrate intake is the most direct approach.
    6. A high-carbohydrate meal causes a rapid spike in blood glucose and a subsequent large insulin surge, which eventually leads to a drop in blood sugar and potentially renewed hunger. A low-carbohydrate meal results in a gentler rise in both blood glucose and insulin.
    7. During exercise, working muscles can absorb glucose from the bloodstream without needing as much insulin. This increased glucose uptake by muscles helps to reduce the overall insulin demand and improve insulin sensitivity over time.
    8. Crunches target a small muscle group and do not directly impact the liver or create a systemic hormonal change necessary for burning visceral belly fat. Fat loss is not localized to the area being exercised.
    9. Exercise is crucial because movement drives brain function, which in turn manages the body’s resources, reduces stress levels, and facilitates cellular communication. It’s not primarily for calorie burning in the context of belly fat loss.
    10. Chronic stress leads to the release of cortisol, a stress hormone that increases blood glucose and promotes cravings for sugary and fatty “comfort foods.” Elevated cortisol levels also specifically encourage the accumulation of fat around the torso.

    Essay Format Questions

    1. Discuss the limitations of the “calories in, calories out” model for weight loss as presented in the source. Explain the roles of metabolism, cellular perception, and hormones in a more nuanced understanding of energy balance.
    2. Elaborate on the relationship between insulin, carbohydrate intake, and belly fat accumulation. Explain why the source advocates for reducing carbohydrate consumption as a primary strategy for long-term fat loss.
    3. Compare and contrast the roles of diet and exercise in achieving sustainable belly fat loss, according to the source. What are the key mechanisms through which each contributes (and doesn’t contribute), and what does the source suggest about their relative importance?
    4. Analyze the impact of stress on hormonal balance and its specific connection to the accumulation of belly fat. Discuss the source’s recommendations for reconditioning the nervous system to better manage stress.
    5. Explain the concept of a “holistic lifestyle” as described in the source, including the Triad of Health. Discuss why addressing chemical, structural, and emotional aspects is crucial for achieving optimal health and sustainable belly fat loss.

    Glossary of Key Terms

    • Basal Metabolic Rate (BMR): The amount of energy (calories) your body burns at rest to maintain basic life functions.
    • Insulin: A hormone produced by the pancreas that helps glucose (sugar) from the bloodstream enter cells for energy or storage.
    • Anabolic: A metabolic process that builds up or synthesizes complex molecules from simpler ones; insulin has anabolic effects like promoting tissue growth and fat storage.
    • Catabolic: A metabolic process that breaks down complex molecules into simpler ones to release energy.
    • Insulin Resistance: A condition in which cells become less responsive to insulin, leading to elevated blood glucose levels and increased insulin production.
    • Glycogen: The stored form of glucose in the liver and muscles, which can be broken down to release energy when needed.
    • Thermodynamics (Law of): A fundamental principle of physics stating that energy cannot be created or destroyed, only transformed or transferred. In the context of weight, it relates to the balance of energy intake and expenditure.
    • Homeostasis: The body’s ability to maintain a stable internal environment despite external changes.
    • Cortisol: A stress hormone released by the adrenal glands that increases blood glucose, can promote fat storage (especially in the abdominal area), and influence cravings.
    • Holistic: Characterized by the treatment of the whole person, taking into account mental and social factors, rather than just the physical symptoms of a condition.

    Briefing Document: “You Won’t Lose Belly Fat Until You Do This…”

    Executive Summary:

    This document summarizes the main themes and important ideas presented in the video transcript “You Won’t Lose Belly Fat Until You Do This…”. The speaker argues against the concept of short-term diets and emphasizes the need for a sustainable lifestyle change to achieve lasting belly fat loss. The video outlines five crucial steps: understanding the underlying issues (beyond “calories in, calories out”), managing insulin levels through dietary changes (primarily reducing carbohydrates), incorporating the right kind of exercise (prioritizing aerobic and resistance training over calorie burning), managing stress effectively, and developing a holistic lifestyle addressing chemical, structural, and emotional aspects of health. The speaker stresses the importance of individual variability and cautions against comparing personal results to others.

    Key Themes and Important Ideas:

    1. The Myth of Dieting and the Importance of Lifestyle Change:

    • The speaker strongly discourages “diets” as temporary fixes, arguing that they inevitably lead to reverting to old habits and regaining lost weight.
    • True and lasting belly fat loss requires adopting a sustainable “lifestyle” that can be maintained long-term.
    • Quote: “so never ever do a diet again whatever changes you make they should be forming a lifestyle something that you can maintain for the rest of your life”

    2. Rethinking “Calories In, Calories Out” and Focusing on Metabolism and Hormones:

    • The traditional understanding of weight loss solely based on “calories in versus calories out” is presented as overly simplistic and misleading.
    • The speaker emphasizes the role of “metabolism,” “cellular perception,” and “hormones” in how the body uses and stores energy.
    • Increasing exercise without considering the body’s adaptive mechanisms, such as a decrease in basal metabolic rate, is deemed illogical.
    • Quote: “would it be possible that the calories out stays constant but when we increase the exercise by 500 would it be possible that we decrease the basal metabolic rate by 500. not only is it possible but it is absolutely necessary and inevitable and it happens every time because otherwise you would disappear”
    • Hormones, particularly insulin, play a crucial role in fat storage and release. High insulin levels can hinder access to stored fat, leading to a “sense of lack” and increased hunger despite ample energy reserves.

    3. The Critical Role of Insulin Management Through Carbohydrate Reduction:

    • Insulin is identified as a key hormone influencing fat storage and burning.
    • Different macronutrients have varying effects on insulin levels: fat triggers a minimal response, protein a moderate response, and carbohydrates a significantly larger response.
    • The speaker strongly recommends reducing carbohydrate intake as the primary dietary strategy to lower insulin levels.
    • High-carbohydrate diets lead to blood glucose spikes and subsequent insulin surges, which can contribute to insulin resistance over time.
    • Time-restricted eating (intermittent fasting), especially when combined with a lower-carbohydrate diet, allows insulin levels to return to baseline, aiding in reversing escalating insulin levels.
    • While supplements like apple cider vinegar, lemon, and cinnamon may offer some benefits, they are considered less impactful than dietary changes and time-restricted eating.
    • Quote: “if carbohydrates stimulate this much insulin and we want to reduce insulin that’s the first thing we want to change”
    • Quote: “the difference between throwing gasoline on a fire or throwing a Log on the Fire. the gasoline is going to expel all its energy all at once whereas the log is going to take much much longer it’s going to deliver its heat over a longer period of time much more gentle and then the insulin is going to rise and it’s going to Peak at a much lower level than before”

    4. The Importance of Exercise Beyond Calorie Burning:

    • While exercise is deemed “absolutely necessary,” its primary benefit for fat loss is not solely due to calorie expenditure.
    • Movement stimulates the brain, which plays a vital role in managing bodily functions and resources.
    • Working muscles can absorb glucose from the bloodstream without requiring significant insulin, thus improving insulin sensitivity.
    • Resistance training helps build and maintain muscle mass, increasing basal metabolic rate and growth hormone (a fat-burning hormone).
    • Aerobic exercise, performed below the level of “huffing and puffing,” primarily burns fat as fuel.
    • High-intensity exercise, while not entirely discouraged, should be shorter in duration due to the shift towards carbohydrate burning and the potential for increased cortisol release.
    • Crunches are ineffective for belly fat loss as they do not directly target fat stores in that area.
    • Quote: “exercise turns out to be absolutely necessary but not for the reason people think exercise can be helpful but it the reason is that movement drives the brain”

    5. The Underestimated Impact of Stress on Belly Fat:

    • Stress, beyond just an emotion, triggers physiological responses, including the release of cortisol.
    • Cortisol increases blood glucose levels and can lead to increased cravings for sugary and fatty “comfort foods.”
    • Chronic stress and elevated cortisol levels are particularly linked to increased fat storage around the torso (belly fat).
    • Managing stress involves reconditioning the nervous system rather than just avoiding stressful situations.
    • Effective stress management techniques include breathing exercises, mindfulness, meditation, regular exercise, and ensuring good quality sleep.
    • Quote: “even though stress is bad for weight loss as well it is even worse for belly fat because cortisol will selectively put fat onto the Torso everywhere from The Hip To The Head”
    • Quote: “stress and glucocorticoids meaning hormones that affect blood sugar like cortisol which we just talked about they act to control our Behavior both in terms of food intake and energy expenditure”

    6. Developing a Holistic Lifestyle: The Triad of Health:

    • Achieving optimal health and lasting belly fat loss requires addressing all aspects of well-being, represented by the “Triad of Health”: chemical, structural (mechanical), and emotional (stress).
    • Chemical: Focus on nutrient-rich foods and avoid toxins that interfere with biochemistry.
    • Structural: Incorporate regular movement and maintain good posture, avoiding sedentary behavior.
    • Emotional: Cultivate positive feelings and effectively manage negative emotions and stress.
    • A holistic approach, addressing all three legs of the “table,” significantly improves the chances of achieving and maintaining health and well-being.
    • Positive outcomes beyond just fat loss, such as improved focus, mood, and happiness, are a natural consequence of a holistic lifestyle.
    • Quote: “holistic simply means that we look at the whole body we look at the whole picture we look at all the different aspects that influence the body”
    • Quote: “the body needs a holistic lifestyle there’s three legs to the table if you do them all then your chances of getting healthy not just losing belly fat but developing Optimal Health is going to be so much better”

    7. Individual Variability and Avoiding Comparisons:

    • Individuals have a wide range of genetics and varying levels of insulin sensitivity.
    • Responses to dietary and lifestyle changes can differ significantly between people.
    • It is crucial to focus on personal progress and avoid comparing one’s results to others.
    • Judging others based on their weight loss journey is inappropriate due to these inherent individual differences.
    • Quote: “we have a wide spectrum of genetics that there is an insulin sensitive population and there’s an insulin resistant population and this is a Continuum so if someone is relatively fortunate genetically they may just be able to change one thing but this person is nothing like this person over here you cannot compare these two people and assume that they’re going to have any similarity in their results so you have to do this for you”

    Conclusion:

    The video advocates for a comprehensive and sustainable approach to losing belly fat, moving beyond the limitations of traditional dieting and the simplistic “calories in, calories out” model. By understanding the crucial role of insulin, prioritizing carbohydrate reduction, incorporating appropriate exercise, effectively managing stress, and embracing a holistic lifestyle, individuals can achieve lasting results and improve their overall health and well-being. The speaker emphasizes the importance of personalized approaches and discourages comparisons due to inherent individual variability.

    Belly Fat Loss: A Holistic Lifestyle Approach

    Frequently Asked Questions About Losing Belly Fat and Achieving Optimal Health

    1. Why are traditional “diets” often ineffective for long-term belly fat loss? The concept of a diet implies a temporary change with an eventual return to old habits. If the initial habits caused the problem (belly fat), reverting to them after the diet will likely lead to regaining the lost fat. Sustainable belly fat loss requires adopting a lifestyle that incorporates healthy habits maintainable in the long run, rather than a short-term restrictive diet.

    2. The “calories in, calories out” model is frequently cited for weight loss. Why does the source argue it’s an oversimplification, especially regarding long-term belly fat loss? While the law of thermodynamics is valid, the “calories in, calories out” model often fails to account for the body’s adaptive mechanisms. Increasing exercise significantly doesn’t always lead to the predicted weight loss because the body can lower its basal metabolic rate (the energy your body uses at rest) in response to perceived energy deficits. Furthermore, hormones, influenced by food choices, play a crucial role in fat storage and release, affecting hunger and metabolism in ways that simple calorie counting doesn’t capture.

    3. How do different macronutrients (fats, proteins, carbohydrates) affect insulin levels, and why is insulin important in the context of belly fat loss? Carbohydrates trigger a significantly higher insulin response compared to proteins and fats. Insulin is a vital anabolic hormone responsible for moving glucose from the bloodstream into cells for energy or storage. However, chronically high insulin levels (often driven by frequent consumption of high-carbohydrate foods) can lead to insulin resistance, where cells become less responsive to insulin. This can result in increased fat storage, prevent the body from accessing stored fat for energy (leading to a sense of “lack” and increased hunger), and reduce the basal metabolic rate, hindering belly fat loss.

    4. What is the role of intermittent fasting or time-restricted eating in reducing insulin levels and promoting fat loss? Time-restricted eating, especially when combined with a lower-carbohydrate intake, allows insulin levels to return to baseline between eating windows. By extending the periods without food, particularly overnight, the body gets a chance to lower overall insulin levels. This can help reverse insulin resistance over time, allowing the body to access stored fat more easily for energy and promoting belly fat loss.

    5. While exercise is often recommended for weight loss, the source suggests it’s not the primary mechanism for burning belly fat. What is the main benefit of exercise in this context? While exercise does burn some calories, its primary benefit for belly fat loss, according to the source, lies in its ability to improve insulin sensitivity. When muscles contract during exercise, they can absorb glucose from the bloodstream with less need for insulin. This helps to lower the overall insulin demand and can improve how the body handles carbohydrates. Resistance training also helps build muscle mass, which is more metabolically active and can slightly increase basal metabolic rate, and it can boost fat-burning hormones like growth hormone.

    6. Why are exercises like crunches considered ineffective for losing belly fat, and what types of exercise are recommended instead? Crunches target a small abdominal muscle group and do not directly address the underlying hormonal and metabolic factors contributing to belly fat accumulation, particularly in the liver. The idea that you can spot-reduce fat from one area of the body through localized exercise is a misconception. Instead, the source recommends a combination of aerobic exercise (sustained activity like walking or biking done at a conversational pace to primarily burn fat) and resistance training (lifting weights to build muscle and improve metabolism).

    7. The source emphasizes the crucial role of stress management in losing belly fat. How does stress contribute to belly fat accumulation, and what are some suggested strategies for managing it? Stress triggers the release of cortisol, a hormone that increases blood glucose and can promote cravings for sugary and fatty “comfort foods.” Chronically elevated cortisol levels are particularly linked to increased fat storage around the torso (belly fat). The source recommends reconditioning the nervous system through practices like regular breathing exercises (to balance the stress response), mindfulness (paying attention to feelings and consciously shifting focus), meditation (calming the mind), regular exercise (to improve brain function and stress control), and prioritizing good quality and sufficient sleep (as poor sleep elevates cortisol).

    8. What does the source mean by adopting a “holistic lifestyle,” and why is it important for achieving sustainable health and belly fat loss? A holistic lifestyle considers all interconnected aspects of health, described as the “Triad of Health”: chemical (nutrition, toxins), structural/mechanical (movement, posture, sedentary behavior), and emotional/stress. Addressing all three areas is crucial for optimal health and sustainable belly fat loss. Focusing on only one aspect, like diet or exercise, often yields limited long-term results. A holistic approach involves nourishing the body with proper nutrients, avoiding toxins, engaging in regular movement and maintaining good posture, and effectively managing emotional well-being and stress. When these areas are in balance, overall health improves, making belly fat loss a natural consequence.

    Five Steps to Lose Belly Fat

    To lose belly fat effectively and for good, the source “01.pdf” outlines five key steps that need to be followed. Most people typically only adhere to one or two of these steps, which may explain why they often fail to achieve their goals.

    The first step is to understand the key issues involved and avoid common myths and misconceptions. This includes recognizing that:

    • “Diets” are ineffective in the long run because they are temporary and don’t lead to sustainable lifestyle changes. Any changes you make should be part of a long-term, maintainable lifestyle.
    • The law of thermodynamics is often misquoted as simply “calories in versus calories out”. The reality is more complex and revolves around metabolism, cellular energy perception, and the influence of hormones on hunger and eating behavior. While calorie balance is a factor, the body adapts, and increasing exercise might lead to a decrease in basal metabolic rate.
    • It’s crucial to avoid comparing yourself to others as genetic predispositions, particularly regarding insulin sensitivity, vary significantly. What works for one person may not work for another.

    The second step focuses on understanding insulin and how to reduce it. Key points here include:

    • Insulin is a vital anabolic hormone necessary for taking glucose from the blood into cells and for building and storing tissue. However, high levels of insulin promote fat storage and prevent fat burning, leading to a sense of “lack” and increased hunger.
    • Different types of food trigger different insulin responses. Fat triggers a minimal insulin response, protein triggers a slight to moderate response, and carbohydrates elicit a significantly larger insulin response. Therefore, to reduce insulin levels, the first dietary change should be to cut back on carbohydrates.
    • The standard guidelines recommending a low-fat, high-carbohydrate diet can lead to blood glucose and insulin spikes, potentially driving up insulin levels over time, especially with frequent meals.

    The third step involves incorporating intermittent fasting or time-restricted eating. This approach, especially when combined with a lower carbohydrate intake, offers benefits such as:

    • Preventing the continuous elevation of insulin levels caused by frequent, high-carbohydrate meals. By allowing insulin to return to baseline between eating periods, you can help reverse escalating insulin levels.
    • Promoting stable energy levels and reducing the need for frequent eating.

    The fourth step emphasizes the critical role of managing stress.

    • Stress triggers the release of cortisol, a hormone that increases blood glucose levels to provide quick energy for a perceived threat. Chronic stress leads to elevated cortisol, which can increase cravings for sugary and fatty “comfort foods” and promote fat storage, particularly around the torso (belly fat).
    • Managing stress is crucial for losing belly fat and overall weight loss. Unlike general weight loss, stress has a more pronounced effect on abdominal fat accumulation.
    • Instead of just avoiding stress, the focus should be on reconditioning your nervous system to have a healthier response to stress. Techniques for this include breathing exercises, mindfulness, meditation, regular exercise, and ensuring good quality and quantity of sleep. These practices help balance the nervous system and lower baseline cortisol levels.

    The fifth and final step is to develop a holistic lifestyle. This means looking at the whole body and all the interconnected aspects that influence health, represented by the Triad of Health: chemical, structural/mechanical, and emotional/stress.

    • Chemical: Focus on consuming nutrient-rich foods and avoiding toxic substances.
    • Structural/Mechanical: Prioritize regular movement, good posture, and avoid a sedentary lifestyle.
    • Emotional/Stress: Cultivate positive emotions and effectively manage stress.

    The source emphasizes that while exercise is necessary, it is not the primary mechanism for burning belly fat. Its benefits include driving brain function and improving insulin sensitivity by allowing working muscles to absorb glucose without needing as much insulin. Crunches are ineffective for directly burning belly fat as there is no direct pathway between abdominal muscles and fat cells. Resistance training is beneficial for building muscle mass, which increases basal metabolic rate and growth hormone (a fat-burning hormone). Aerobic exercise (like walking and biking at a sustainable pace) primarily burns fat, while high-intensity exercise tends to burn more glucose and can increase cortisol levels if not kept short.

    In conclusion, losing belly fat effectively requires a comprehensive approach that goes beyond just dieting or exercising. It involves understanding the underlying hormonal and metabolic processes, particularly the role of insulin and stress, and adopting a sustainable, holistic lifestyle that addresses chemical, structural, and emotional well-being. Focusing on reducing carbohydrate intake, incorporating time-restricted eating, managing stress effectively, and engaging in appropriate exercise are all crucial components of this process.

    Metabolism: The Key to Belly Fat Loss

    The source “01.pdf” emphasizes that understanding metabolism is a crucial first step in losing belly fat for good. The common understanding of weight loss as simply “calories in versus calories out” is presented as a misquote of the law of thermodynamics. According to the source, what it really comes down to is metabolism, how your body uses energy, cellular energy perception (how your cells perceive their environment and adapt), and the influence of hormones on hunger and eating behavior.

    Here’s a breakdown of how the source discusses metabolism:

    • Metabolism vs. Calories In/Calories Out: The source argues that the simplistic view of calories in versus calories out doesn’t fully explain weight management. While calorie balance is a factor, the body adapts, and other components are at play.
    • Components of Calories Out: The source breaks down “calories out” into exercise and basal metabolic rate (BMR). BMR is the energy your cells use at rest for basic functions.
    • Metabolic Adaptation: The source highlights that when you increase exercise, your body may decrease its basal metabolic rate. This is a survival mechanism due to the cellular perception of “lack” when energy expenditure increases without a corresponding increase in intake. The body tries to conserve energy by reducing the energy used at rest. This adaptation explains why simply increasing exercise might not lead to the expected continuous weight loss.
    • Hormonal Influence on Metabolism: The source explains that different types of food trigger different hormonal responses, which in turn affect metabolism and fat storage. For example, high levels of insulin (triggered significantly by carbohydrate intake) promote fat storage and prevent fat burning, potentially leading to a continued feeling of “lack” despite stored energy.
    • Basal Metabolic Rate and Muscle Mass: The source mentions that resistance training can help increase or maintain muscle mass, and muscles are more metabolically active, thus potentially increasing the basal metabolic rate.
    • Stress and Metabolism: Chronic stress leads to elevated cortisol, which can increase cravings for sugary and fatty foods and promote fat storage, particularly around the torso. This indicates a link between stress hormones and metabolic processes related to fat storage.
    • Holistic Lifestyle: The source emphasizes that metabolism is influenced by the “chemical” aspect of the Triad of Health, which includes the nutrients we consume and the toxins we avoid. This suggests that the quality of our diet impacts our metabolic processes.

    In summary, the source presents metabolism as a dynamic and adaptable process influenced by energy expenditure, cellular perception, and hormonal responses to food and stress. It moves beyond a simple calorie counting model to emphasize the complexity of how the body uses and stores energy. Understanding these nuances is presented as the foundational step for effective and sustainable belly fat loss.

    Understanding and Reducing Insulin: Food’s Impact

    The source “01.pdf” discusses insulin and its relationship with food in detail, particularly in the second step, which focuses on understanding insulin and how to reduce it.

    According to the source, insulin is a vital anabolic hormone that is absolutely necessary for taking glucose from the blood into the cells. Without insulin, glucose from food cannot be utilized by the body’s cells. Insulin is also anabolic, meaning it helps to build up and store tissue, including fat.

    However, high levels of insulin can be problematic. Because insulin promotes fat storage and prevents fat burning, elevated insulin levels can hinder the body’s ability to access stored fat, leading to a sense of “lack” and increased hunger. The source notes that how hungry someone gets with high insulin depends on their position on the insulin sensitivity to insulin resistance spectrum. Insulin resistant individuals are likely to feel much hungrier after expending energy compared to insulin-sensitive individuals. High levels of insulin can also reduce the basal metabolic rate.

    The source clearly outlines how different types of food trigger different insulin responses:

    • Fat triggers a tiny, barely measurable amount of insulin.
    • Protein causes a slight to moderate increase in insulin.
    • Carbohydrates elicit a significantly larger insulin response compared to both fat and protein.

    Given these differences, the source points out that if the goal is to reduce insulin levels, the first dietary change should be to cut back on carbohydrates. This is presented as a straightforward conclusion based on how each macronutrient affects insulin.

    The source contrasts the insulin response to meals high in carbohydrates versus those low in carbohydrates:

    • High-carbohydrate meals lead to a rapid spike in blood glucose, followed by a corresponding surge in insulin levels. While insulin helps to bring blood glucose down, it tends to remain elevated for a period. Frequent consumption of high-carbohydrate meals can prevent insulin levels from returning to baseline, driving them higher over time. This is likened to continuously “topping off” blood sugar before insulin from the previous meal has fully receded.
    • Low-carbohydrate meals result in a much gentler and more gradual increase in blood glucose, leading to a lower and more controlled insulin response. This allows insulin levels to return to their baseline more readily between meals.

    The source also discusses how intermittent fasting or time-restricted eating, especially when combined with a lower carbohydrate intake, helps in reversing escalating insulin levels. By extending the periods between eating, particularly allowing for a longer overnight fast, insulin has the opportunity to fall to a lower baseline.

    Finally, the source touches on the role of exercise in improving insulin sensitivity. During exercise, working muscles can absorb glucose from the bloodstream without needing as much insulin. This reduces the overall insulin demand to manage carbohydrate intake. However, the source emphasizes that dietary changes, particularly reducing carbohydrate intake and incorporating intermittent fasting, are the primary mechanisms for addressing insulin resistance, especially in the liver.

    Stress Management for Belly Fat Loss

    The source “01.pdf” dedicates a significant portion to discussing the critical role of managing stress levels in losing belly fat effectively. It emphasizes that this aspect is often overlooked in discussions about weight loss, which tend to focus primarily on diet and exercise.

    According to the source, when a person perceives a threat, their nervous system reacts, even if they were at rest and primarily burning fat. This reaction involves the release of cortisol, a stress hormone. The primary function of cortisol in this context is to increase blood glucose levels, providing a faster fuel source for the anticipated need to run, fight, or flee.

    However, if this stress response becomes a default baseline due to chronic stress, it leads to several detrimental effects:

    • Increased Cravings: The body, trying to obtain more glucose, signals cravings for sugary foods.
    • Increased Fat Storage: Elevated cortisol levels, coupled with increased cravings and potentially higher insulin levels, promote fat storage.
    • Selective Belly Fat Accumulation: Notably, cortisol has a greater impact on belly fat accumulation compared to overall weight gain, selectively depositing fat around the torso.

    The source argues against the common approach of simply avoiding or distracting oneself from stress. Instead, it advocates for reconditioning the nervous system to have a healthier response to stressors. The stress itself is not in the external events but in our body’s reaction to them, and this reaction can be changed.

    The source outlines several techniques for reconditioning the nervous system and managing stress:

    • Breathing Exercises: Regular breathing exercises help to balance the stress response. Inhaling activates the “fight or flight” (sympathetic) response, while exhaling activates the “feed and breathe” (parasympathetic) or calming response. Consistent practice trains the nervous system towards a more balanced state.
    • Mindfulness: Paying attention to how you feel in everyday situations, like driving, allows you to become aware of your stress levels and consciously try to shift your focus and response.
    • Meditation: Stilling and calming the mind through meditation helps to reduce the constant activity of the mind that can contribute to stress. Guided meditations can be helpful for beginners.
    • Exercise: Physical activity fires up the brain, which, in turn, improves its ability to manage stress.
    • Sleep: Getting good quality and sufficient sleep is crucial. Poor sleep the night before can lead to higher cortisol levels and increased insulin resistance the following morning. The source notes that the other stress-management techniques listed can also contribute to better sleep by calming the nervous system.

    Furthermore, the source emphasizes that managing stress is a fundamental component of a holistic lifestyle, which includes the emotional/stress aspect in addition to the chemical and structural/mechanical aspects of health. Addressing all three legs of this “Triad of Health” is essential for overall well-being and effective belly fat loss.

    In conclusion, the source “01.pdf” posits that effectively managing stress is a crucial and often underestimated step in losing belly fat. It involves understanding the hormonal impact of stress, particularly the role of cortisol, and actively working to recondition the nervous system through various techniques to foster a healthier and more balanced response to life’s challenges.

    The Holistic Triad: Keys to Optimal Health

    The source “01.pdf” emphasizes the importance of developing a holistic lifestyle as the fifth and final step to losing belly fat for good and achieving optimal health. A holistic approach means looking at the whole body and considering all the different aspects that influence it. The source explains this concept using the analogy of the Triad of Health, which has three equally important legs: the chemical aspect, the structural or mechanical aspect, and the emotional or stress aspect.

    Here’s a breakdown of each aspect according to the source:

    • Chemical Aspect: This relates to what we put into our bodies. It includes nutrients that build us up, which we need to learn about and consume regularly. It also involves understanding and avoiding things that are toxic and interfere with our body’s biochemistry. This connects to the earlier discussion about how different foods affect hormones like insulin.
    • Structural or Mechanical Aspect: This concerns how our bodies move and are positioned. Positive aspects include movement and good posture, which help the body maintain proper signals for the nervous system and support healthy movement. Conversely, a sedentary lifestyle and poor posture can interfere with these mechanical signals. The source’s discussion of exercise, emphasizing aerobic activity and resistance training for maintaining muscle mass and metabolic rate, falls under this category.
    • Emotional or Stress Aspect: This leg of the triad acknowledges the significant impact of our emotional well-being and stress levels on our overall health. The source highlights that there are things that make us feel good and things that make us feel bad, and both are crucial to consider. This directly relates to the detailed discussion in step four about managing stress levels by reconditioning the nervous system through techniques like breathing exercises, mindfulness, meditation, exercise, and ensuring good sleep. The source emphasizes that the body’s response to stress, particularly the release of cortisol, can negatively impact fat storage, especially around the torso.

    The source argues that often, people focus on just one or two of these aspects, such as diet (chemical) or exercise (structural), while neglecting the others. However, for true and lasting health, all three legs of the Triad of Health need to be addressed. By incorporating improvements in all these areas, individuals have a much greater chance of becoming healthy, not just losing belly fat, but achieving Optimal Health.

    Furthermore, the source notes that the more you incorporate all aspects of a holistic lifestyle, the more you will notice improvements in various areas beyond physical health, such as focus, mood, and happiness, because everything in the body is interconnected. Achieving a state of happiness and feeling good is presented as a natural outcome of embracing a holistic approach to health.

    https://www.youtube.com/watch?v=UQgYcF9O3TQ
    You Won’t Lose Belly Fat Until You Do This…
    LOSE FAT in 7 days (belly, waist & abs) | 5 minute Home Workout
    5 Minute Belly Fat Workout! Burn Fat Fast At Home
    LOSE BELLY FAT IN 7 DAYS Challenge | Lose Belly Fat In 1 Week At Home | Cult Fit | CureFit
    7 DAY CHALLENGE 7 MINUTE WORKOUT TO LOSE BELLY FAT – HOME WORKOUT TO LOSE INCHES Lucy Wyndham-Read
    10 Min Morning Routine to Burn Belly Fat | No Jumping
    20 min Fat Burning Workout for TOTAL BEGINNERS (Achievable, No Equipment)
    30 minute fat burning home workout for beginners. Achievable, low impact results.
    INTENSE LOWER ABS FAT LOSS in 7 Days | 6 minute Home Workout

    The Original Text

    Hello Health Champions today we’re going to talk about the five steps you must follow if you really want to lose belly fat for good now most people will do maybe one or two of these steps but hardly anyone will do all five and that is probably why so many people fail but at the end of today’s video it would be crystal clear to you how to lose that belly fat for good the first step is to understand all of the key issues involved and not fall for all of the myths and misconceptions that are floating around so first of all the very idea of a diet is ridiculous because the idea of a diet is that you do something for a period of time and you feel like you can really beat yourself up if it’s for a limited time but then you think after the diet you’re gonna go do something else which means you’re going to go back to doing all those things that created the problem in the first place so never ever do a diet again whatever changes you make they should be forming a lifestyle something that you can maintain for the rest of your life next we need to understand the law of thermodynamics and this is often quoted as being about calories in and calories out but it turns out it’s not about calories and calories out not the way people think and not the way they quote it what it really comes down to is metabolism how your body uses energy perception at the cellular level how your cells perceive your environment and adapt to it how your hormones are influenced by the food you eat and how those hormones affect your behavior and your hunger which influences how much you eat what we hear all the time is that it is all about calories in versus calories out and we’re talking about calories in being how much food we eat and calories out being how much we burn in terms of exercise and they’re saying if calories in is less than calories out then that always results in weight loss we lose weight and then they do the math and they say that if you’re eating 2 000 calories and you’re maintaining a steady weight of 200 pounds then if you increase your exercise you either decrease your calories in or you increase your calories out so in this example we’ll just say that you increase your exercise by 500 calories per day so that’s what a reasonably fit person can do in about one hour of exercise seven days a week 3 500 calories that’s one pound of fat loss per week and then we do the math on that so we lose one pound per week and we keep this up now for four years four years is a little over 200 weeks but we’ll round that off to 200 and then we do the math so we lose one pound a week for 200 weeks and now we have lost 200 pounds and you weigh exactly zero so congratulations you have completely disappeared so we all know how absurd that is because we know somewhere along the line we might lose a few pounds in the beginning but somewhere along the line something’s going to change because you could still eat 2 000 calories and exercise and not disappear so does that violate the law of thermodynamics no we just have to realize that some of these components have sub parts so if we take calories out for example then we do calories out and we break that down and we realize that calories out equals your exercise plus your basal metabolic rate so your total expenditure of energy is your basal metabolic rate which is how much energy your cells use at rest all of your tissues all your organs your brain your liver your kidneys they have a certain Baseline activity and that’s the BMR then the movement the physical activity that you do we add on top of it and that’s the total of calories out so would it be possible that the calories out stays constant but when we increase the exercise by 500 would it be possible that we decrease the basal metabolic rate by 500. not only is it possible but it is absolutely necessary and inevitable and it happens every time because otherwise you would disappear and since you don’t we know that something’s got to give and this is exactly what happens so that explains about the metabolism why that can change and why it has to change and perception feeds into that because you have a cellular perception your body is really intelligent so if you eat the same but you start spending more energy and you start losing a few pounds now at some point along that Journey your cells your the sum total of your cells called your body and your homeostasis is going to have the perception of lack they’re going to say I’m really worried I used to eat this much and stay stable but now you’re using more energy it has to come from somewhere so it experiences lack and that is where we change we reduce our basal metabolic rate so I’m sure you can see how completely illogical it is to think that we could increase exercise by 500 and nothing else would change that all the other variables would just keep on doing whatever they’ve been doing and then some people might say well I don’t think my body should experience lack because I have so much energy stored I have several hundred thousand calories of energy stored I have a veritable fortune in energy why is my body still experiencing lack and now we’re getting into the hormones because different types of foods will trigger and stimulate different types of hormones and some of these hormones are going to have more more of a tendency to store fat and prevent the release of fat and if we have a lot of those hormones then our body will still experience lack because this Fortune of energy is hidden and if we can’t see it we will still experience lack so these types of food will contribute to that sense of lack and we also need to understand never ever to compare ourselves to someone else and say they did this they get those results then I should get those same results or the other way around someone is going to leave a comment on this video and say no this is not how it works it’s all about calories and calories out because I just increased my exercise or I just cut my sugar out or decrease my calories I just did one thing and I got tremendous results and then that person will assume that it’s going to work that way for everyone else and because it worked for them then he is going to call everyone else lazy and gluttonous but we have to understand that we have a wide spectrum of genetics that there is an insulin sensitive population and there’s an insulin resistant population and this is a Continuum so if someone is relatively fortunate genetically they may just be able to change one thing but this person is nothing like this person over here you cannot compare these two people and assume that they’re going to have any similarity in their results so you have to do this for you and don’t get discouraged or don’t judge other people because they don’t get your results and when we talk about food affecting hormones there is one hormone in particular that we’re talking about and that’s insulin so we have to understand what insulin does and how to reduce it so we hear so much about insulin and insulin resistance that sometimes people wonder well why is there such a thing at all if it’s creating all these problems but we absolutely have to have it it’s a necessary vital hormone and if you can’t make that hormone which happens in some people then they’re called type 1 diabetics and even just a hundred years ago before they knew how to manufacture insulin type 1 diabetics typically died very very quickly so if you don’t have insulin you cannot take the glucose from the blood into the cell so you eat food it gets into the blood but it does you no good whatsoever until it gets into the cell that’s what insulin does but it needs to be in Balance next we need to understand that insulin is an anabolic hormone anabolic means to build up and to store to create more tissue catabolic is the opposite that means to break down or reduce so insulin is necessary even for that reason it’s anabolic so it helps us build tissue it helps us store fat but if we get too much fat storage if we get too much insulin then that’s a problem and if we have high levels of insulin now because it is fat storing and because it prevents fat burning then we also can’t get to these fat stores and that’s where that lack comes from and therefore high levels of insulin will also make you more hungry because if you experience lack because you can’t see the stored energy but at the same time you’re trying to use more energy now your body is desperately going to try to make you eat more to increase your your calories in and how hungry you get is going to depend a lot on where you are on this insulin sensitive insulin resistant Spectrum so the person on the insulin sensitive side is relatively willing to spend energy whereas the insulin resistant person refuses their body refuses to use energy so the insulin resistant person is probably going to be 10 times more hungry after spending the same amount of energy that an insulin sensitive person would be and therefore high levels of insulin will also reduce your basal metabolic rate by the same amount that your insulin resistance and here is how food triggers insulin so if you eat fat it’s going to trigger a tiny tiny tiny barely measurable amount of insulin if you eat protein it’s gonna increase to a moderate slight to moderate amounts but if you eat carbohydrate it’s going to be many many times more of a response than either protein or fat so here’s a question for you if this is how the different foods stimulate insulin and you’re trying to reduce insulin which one would be the first food that you want to cut back on would it be fat protein or carbohydrate and the answer of course is carbohydrate it is such a no-brainer if carbohydrates stimulate this much insulin and we want to reduce insulin that’s the first thing we want to change but this still seems to be a mystery because the standard guidelines the mainstream guidelines still tell us to eat low-fat and to eat a diet rich in car carbohydrates with lots of grain so let me show you in picture form what this would look like if you eat food with lots of carbohydrates then you’re going to get a blood glucose Spike and then of course insulin is going to respond in kind so we get an increase it’s going to be delayed a little bit because it takes a while before the body sort of recognize it that there’s a bunch of carbohydrates but then it rises in parallel and then by the time the carbohydrates Peak and the insulin Peaks it’s going to push those carbs down but insulin is going to remain behind a little bit it’s going to lag behind a little bit now contrast that with eating a meal with low in carbohydrates that would look something like this so it’s the difference between throwing gasoline on a fire or throwing a Log on the Fire the gasoline is going to expel all its energy all at once whereas the log is going to take much much longer it’s going to deliver its heat over a longer period of time much more gentle and then the insulin is going to rise and it’s going to Peak at a much lower level than before so we don’t get the blood sugar spikes we don’t get the insulin spikes but then there’s something called intermittent fasting or time restricted eating as well so how does that look in picture form well if you eat something and you’re eating High carbohydrate then just like before we get the spike and then we get the insulin response and it’s going to lag behind the little bit but what happens when you get high blood sugars and they come down quickly now you get hungry again and you learn to eat very frequent meals so you top off your blood sugar several times a day like this and now here’s what happens realize that this insulin was lagging behind and by the time that insulin is ready to come down we already have a new blood sugar Spike so this is not going to keep going down it’s going to increase to a higher level and then as it starts to taper off now we got another blood sugar Spike and another and another and this is how high carb and frequent meals are going to drive up that insulin level and if this happened for a day or two during a party or in the summer when food was plentiful then we’re going to cover from this during a time when there is less food but if there is always a feast now this level never comes down and over the years we never give the body a chance to balance out and we drive this higher and higher so we’re time restricted eating comes in then is if we eat this low carbohydrates this high fat high protein or more protein and fat than we used to then we’re going to get a much lower Spike like we said but there’s another benefit and that is with stable energy and energy that lasts much longer we don’t have to eat so often we still have plenty of energy circulating so we can eat again much later and then we can also maybe skip some meals after dinner and we won’t eat maybe so early in the morning so we get a longer continuous period of fasting so the insulin is going to come stay stable and then it goes up and then it comes back down and because the insulin was allowed to go back to Baseline before we ate again now we’re starting from a lower level and now we have that extended fasting and now during the night and until we eat again insulin is allowed to fall even further and this is how we reverse that escalating insulin level and I’m sure you’ve also seen articles and I’ve even talked about how you can use apple cider vinegar and lemon and cinnamon and different herbal compounds and different things and these are little tricks to add at the end so first you reduce the carbs then you do some time restricted eating and these are going to account for 95 of your results so they’ve done some research and they’ve shown that all things being equal these will still yield some benefit but it doesn’t mean that that they’re as important as the top ones we talked about and it doesn’t mean that you rely on these alone they’re a super easy smart thing to add in conjunction with changing your lifestyle now let’s talk about exercise because exercise can absolutely help but not for the reasons that people usually think they typically think about burning calories this silly notion that if I eat a cookie then I have to exercise so many minutes to burn off the cookie that is not how the body operates just forget about that like we talked about on the first slide there those are the variables that we have to keep in mind exercise turns out to be absolutely necessary but not for the reason people think exercise can be helpful but it the reason is that movement drives the brain the brain controls everything about you every cell in your body depends on the brain’s ability to link the cells together in a communication Network and the Brain can manage resources in the body the brain can reduce and manage stress levels in the body and usually when we hear about weight loss and belly fat they will tell us that exercise is the first thing it’s the primary mechanism it’s the most important thing that we can do and that is also false so yes we want to do it it is necessary but it’s not going to be the primary way that we’re going to burn belly fat or lose weight and here’s how that can work let’s say that you eat some food and let’s call that 100 grams of carbohydrate then that carbohydrate is going to turn into blood sugar it’s going to get into of the bloodstream relatively quickly and then we need insulin to assist that glucose into the tissues and it’s going to get into every tissue in the body but we’re going to focus on primarily two just for our discussion here so on the one hand a lot of glucose is going to get into the muscle tissue and after a meal the muscles will actually absorb most of the glucose they have a large Reservoir and the other tissue is the liver so the liver stores carbohydrate in the form of glycogen and muscles can also store carbohydrates and here’s the really really important thing to understand that if you are at rest then the glucose going from the bloodstream into these tissues are always going to need insulin however if you are exercising if that muscle is working and Contracting now that glucose can get into the muscle without insulin or with very very little insulin so basically a working muscle is going to suck the glucose out of the bloodstream without needing insulin so let’s say hypothetically that we’re going to put 50 grams into the liver and 50 grams into the muscle that’s a hundred grams that needs insulin if we’re at rest but if we’re exercising Now 50 needs insulin and 50 is going to get sucked out of the bloodstream anyway so in that sense and this is just a hypothetical example we would only need half as much insulin to handle that carbohydrate load and that is how exercise can help improve insulin sensitivity by reducing the total carbohydrate load on the other tissues however it’s not going to be the primary mechanism because the liver is still sort of the central mechanism that if we have insulin resistance and we have a fatty liver then we have to change our diet and we need to do some intermittent fasting to allow that liver to burn up some of that fat and become insulin sensitive again and the muscles working will suck the glucose out of the bloodstream but they will not pull the fat straight out of the liver it doesn’t work that way the next question of course is what type of exercise would we want to do and if you go on YouTube or you go online and you see exercise to reduce belly fat ninety percent of that is going to talk about crunches and why does that not work because crunches again is not going to change how the liver operates it’s not going to suck the the fat out of the liver and crunches are only going to affect a very small muscle group and that’s not going to pull a whole lot of glucose out either it’s going to pull a tiny little bit but when people say that crunches are going to help you with belly fat basically what they’re implying is that you can pull the fat straight out of the fat cells on top of the muscle but it doesn’t work that way because there are many many layers there is no communication pathway there is no pipeline between this muscle and that fat just because they happen to be next to each other so crunches can be good for core strength if you do them properly but they’re not going to be the way to burn belly fat so what do you do resistance training is great and when you put a load on your muscles you stimulate the muscles to grow especially if it’s heavy especially if you’re near your limits for what you can perform so this does two things when you challenge a muscle it will tend to grow and if you maintain or increase your muscle mass muscles are more metabolically active so by maintaining or increasing your muscle mass you will actually increase your basal metabolic rate resistance training or heavy weight lifting also will increase your growth hormone which is a fat burning hormone most of the exercise you want to do is aerobic meaning things like walking and biking things that you can do for a very long period of time without getting exhausted so you want to keep it below the level of huffing and puffing because then if you can provide oxygen for the exercise that means you’re burning mostly fat as you start huffing and puffing that means that you’re changing you’re switching from the fat burning to the carbohydrate burning because as long as you have oxygen you can burn fat when that oxygen is not enough now you have to start breaking down glucose so if you’re huffing and puffing you are automatically switching somewhat and the more intense that exercise is the more you’re going to switch to glucose so does that mean that you can never do any anaerobic or any high intensity no it does not mean that at all but the high intensity needs to be much shorter duration than the aerobic and there’s two reasons you want to keep the high intensity short duration one is that you’re switching to carbohydrates burning instead of burning the fat that you want to burn and the second is that the higher the intensity the more cortisol you’re going to release and stimulate and cortisol is a stress hormone which leads us in to step number four and most people don’t really understand what stress is even though it’s a word that we use every day there’s a whole lot more to it than just feeling overwhelmed than the emotion of stress so if we create a little scenario here where we have a person who is in an environment and he’s at rest and then something shows up where this person feels threatened now this person’s nervous system is going to react and even if he was at peace and burning mostly fat this body the physiology of the body is going to anticipate that he has to work that he has to run and fight and flee and expend more energy so now this body is going to release cortisol which is a stress hormone and the primary thing that that cortisol does is to increase blood glucose because blood sugar is a faster fuel than just fat it’s an additional fuel so if we can ramp up the glucose raise blood glucose a little bit now we have more of an emergency fuel with which to escape that danger but if this happens all the time where this becomes a default Baseline now we’re also going to increase Cravings on a regular basis is because if the body is trying to get more glucose then it’s going to tell you to go eat some sugar and with more cortisol and more Cravings of course now you’re also going to bring up insulin and again chronicity will lead to insulin resistance and when we talk about weight loss and belly fat the rules are basically there’s like a 98 overlap you do the same thing for both of them except this part because even though stress is bad for weight loss as well it is even worse for belly fat because cortisol will selectively put fat onto the Torso everywhere from The Hip To The Head that’s where the fat accumulation is going to happen much more when we have high cortisol and hardly anyone ever talks about this they talk about diet they talk about exercise but nobody realizes how incredibly important this is so am I exaggerating the impact on of stress well let’s take a look at a piece of research from PubMed where they talked about all these different things on how the stress affects hormones and cortisol and body type and behavior so first they start off saying that there is a strong relationship between the hypothalamo pituitary adrenal axis and don’t worry that’s a lot of big words for stress response it’s how the brain reacts and it sends the signal down to the adrenals that can produce cortisol and adrenaline and then they say there’s a strong relationship between this stress response and the way the body uses energy the energy homeostasis which is basically another word for metabolism and how stress changes the priorities and then they go on to verify what I just said that patients with abdominal obesity will also have high cortisol levels then it gets really good because they go on to say that stress and glucocorticoids meaning hormones that affect blood sugar like cortisol which we just talked about they act to control our Behavior both in terms of food intake and energy expenditure and it gets even better they say in particular this is known to increase consumption of foods that have been enriched with sugar and fat do you know what those foods are called they’re called Comfort foods and junk foods and processed foods so what they’re saying plainly is that stress increases your cravings for junk and I love this last one because they’re saying that it is well known in all species that the way the stress response affect us is highly variable so again we can’t compare one person to another and how they respond to stress it is individual and variable and usually when they talk about stress they talk about managing it by avoiding it or distracting yourself but you want to recondition your nervous system the stress is not in the world the events are in the world the stress is your response to them and you can change those you can recondition your nervous system so when you do breathing exercises for example you’re helping your body balance the stress response when you breathe in you fire off the fight flight when you breathe out you fire off the feed breathe the parasympathetic the calming response and if you do this on a regular basis it goes beyond the five or ten minutes that you do the breathing it’s a skill that you entrain in your nervous system and the next thing that you can do is mindfulness this is one of the most important things we’ve heard the word but what does it mean you have to make it really important to pay attention to how you feel as you’re driving through traffic you got nothing better to do but to ask yourself how am I feeling am I feeling the way I want to can I focus differently can I change something and if you pay attention there’s always something that you can do meditation is another huge thing that you can do and meditation is simply stilling and calming your mind it’s tricking your mind into stop doing the things that it always does all right there’s guided meditations that will help you along there an exercise is another way to deal with stress because like I said exercise fires up the brain when the brain is working better it can control stress better and another aspect of stress is sleep we need to get good quality and quantity sleep and if you don’t get good sleep then the very next morning your cortisol levels your stress hormone levels are going to be higher you’re going to be more insulin resistant after a single night of poor or insufficient sleep and a lot of people have trouble sleeping but realize that all the things on this list the breathing exercises and the exercise and the meditation they all help to calm you down and put your nervous system in Balance to where you can sleep better and step number five is to develop a holistic lifestyle and holistic is not some mysterious word it’s not about holy it’s not about crystals or burning incense or becoming a Mystic holistic simply means that we look at the whole body we look at the whole picture we look at all the different aspects that influence the body and we need to understand something called the Triad of Health it’s like three legs on a three-legged table that the human body has a chemical aspect to it it has a structural or mechanical aspect to it and it has an emotional or a stress aspect to it just like we saw in that paper and what this means is that on the chemical side there are things that we can do better things we can improve on and things that we can avoid so on the chemical side we have nutrients that build us up and we need to learn what those are and improve those and get a steady supply on a regular basis and then there are things that are toxic things that interfere with our biochemistry and those are things that we need to learn to avoid same thing with structure there is movement which is positive there is good posture which helps the body maintain proper signals for the nervous system that maintains proper movement and then there is sedentary lifestyle and poor posture that interferes with mechanical signals and then of course there is the emotional side so there are things that make us feel good and they’re things that make us feel bad and all of these are equally important that sometimes people they talk oh we just need to exercise so we just need to eat less carbs or more vegetables or whatever it is that’s in fashion this week but we need to understand that the body needs a holistic lifestyle there’s three legs to the table if you do them all then your chances of getting healthy not just losing belly fat but developing Optimal Health is going to be so much better and the more that you can incorporate all aspects the more you’re going to notice that you feel better not just in the things that you had problems with before but you notice your focus your mood your happiness everything starts getting better because everything feeds into each other and then realize that once you start being really happy and you start feeling really good well that’s just the price you have to pay for being healthy if you enjoyed this video You’re Gonna Love that one and if you truly want to master Health by understanding how the body really works make sure you subscribe hit that Bell and turn on all the notifications so you never miss a life-saving video

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Full-Stack App: Building a Reminder Application with React Native

    Full-Stack App: Building a Reminder Application with React Native

    The provided text meticulously documents the creation of a full-stack reminder application. It begins by outlining database schema migrations for “users” and “reminders,” followed by establishing API routes with corresponding controller functions. The explanation details the implementation of a service layer to handle business logic and interact with data models, incorporating input validation using Zod middleware and robust error handling. Finally, the text guides the development of a React Native frontend, demonstrating data fetching with TanStack Query, component creation, state management, and the implementation of CRUD operations for reminders, culminating in a functional mobile application.

    React Native Development Fundamentals Study Guide

    Quiz

    1. What is the primary benefit of using a step-by-step guide during a coding tutorial?
    2. Explain the role of NodeJS in React Native development.
    3. What is the purpose of npm init in a project setup?
    4. Describe the function of the Express framework in the context of backend development.
    5. Why is it considered insecure to hardcode sensitive information like API keys directly in your application code?
    6. What is an environment variable, and how is it typically used in a NodeJS application?
    7. Explain the concept of database migrations and why they are important for managing database schemas.
    8. What is the key difference between raw SQL queries and using an Object-Relational Mapper (ORM) for database interactions?
    9. In the Model-View-Controller (MVC) plus Service pattern, what is the responsibility of the service layer?
    10. What is a middleware in Express, and what is its typical use case in handling requests?

    Quiz Answer Key

    1. A step-by-step guide provides a structured and predictable path for learners to follow, ensuring they don’t miss crucial steps and can replicate the instructor’s actions more easily. It also serves as a reference point for troubleshooting and review.
    2. NodeJS is a JavaScript runtime environment that allows developers to execute JavaScript code outside of a web browser. In React Native development, it is essential for running the Metro bundler, which compiles and packages the JavaScript code for deployment on mobile devices.
    3. npm init is a command used to initialize a new Node Package Manager (npm) project. It creates a package.json file, which keeps track of project dependencies, scripts, name, version, and other metadata.
    4. Express is a minimal and flexible Node.js web application framework that provides a robust set of features for building web and mobile applications. It simplifies tasks such as routing, middleware integration, and handling HTTP requests and responses.
    5. Hardcoding sensitive information directly in the code exposes it to potential security breaches if the code repository is compromised or accessed by unauthorized individuals. Environment variables offer a more secure way to manage configuration by keeping sensitive data separate from the codebase.
    6. An environment variable is a dynamic named value that can affect the way running processes will behave on a computer. In NodeJS applications, they are commonly used to store configuration settings like port numbers and database URLs, keeping them separate from the main codebase for security and flexibility.
    7. Database migrations are version-controlled changes to a database schema. They are important because they provide a structured way to evolve the database over time, ensuring consistency across different environments (development, staging, production) and allowing for easy rollback of changes if necessary.
    8. Raw SQL queries involve writing SQL statements directly to interact with the database, offering fine-grained control and potentially better performance for complex queries. ORMs provide an abstraction layer, allowing developers to interact with the database using object-oriented code, which can improve readability and development speed for common operations.
    9. In the MVC plus Service pattern, the service layer contains the core business logic of the application. It receives requests from the controller, processes data (often interacting with models), and performs operations before returning a response back to the controller. It separates concerns and promotes reusability.
    10. A middleware in Express is a function that has access to the request object (req), the response object (res), and the next middleware function in the application’s request-response cycle. Middleware functions can perform tasks such as request parsing, authentication, logging, and error handling before or after the main route handler.

    Essay Format Questions

    1. Discuss the benefits and drawbacks of using raw SQL versus an ORM for database interactions in a web application development project. Consider factors such as performance, development speed, maintainability, and team expertise.
    2. Explain the significance of implementing the Model-View-Controller (MVC) plus Service pattern in backend development. How does this architectural approach contribute to code organization, maintainability, and scalability of an application?
    3. Describe the role and importance of middleware in the Express framework. Provide examples of common middleware use cases, such as request parsing, authentication, and error handling, and explain how they enhance the functionality and structure of a web application.
    4. Outline the process of setting up a basic NodeJS backend for a React Native application, including initializing the project, installing necessary dependencies like Express, and configuring environment variables. Emphasize the best practices for managing project configuration and security.
    5. Discuss the fundamental concepts of React Native navigation using a library like Expo Router. Explain how to define routes, navigate between screens, and manage layouts to create a user-friendly mobile application experience.

    Glossary of Key Terms

    • API (Application Programming Interface): A set of rules and protocols that allows different software applications to communicate and exchange data with each other.
    • Backend: The server-side of a web or mobile application, responsible for handling data storage, business logic, and API endpoints.
    • Dependency: An external library or package that a software project relies on to function correctly.
    • Endpoint: A specific URL that represents a resource or functionality exposed by an API.
    • Frontend: The client-side of a web or mobile application, responsible for the user interface and user experience.
    • HTTP (Hypertext Transfer Protocol): The foundation of data communication for the World Wide Web, used for transmitting requests and responses between clients and servers.
    • JSON (JavaScript Object Notation): A lightweight data-interchange format that is easy for humans to read and write and easy for machines to parse and generate.
    • Middleware: Functions that have access to the request object (req), the response object (res), and the next middleware function in the application’s request-response cycle in Express.
    • Module: A self-contained unit of code that can be imported and used in other parts of a program.
    • npm (Node Package Manager): The default package manager for the JavaScript runtime environment Node.js.
    • React Native: A JavaScript framework for building native mobile applications for iOS and Android.
    • REST (Representational State Transfer): An architectural style for designing networked applications, relying on stateless servers and standard HTTP methods.
    • Route: A defined path in a web application that maps a specific URL to a particular handler function.
    • Schema: A blueprint or structure that defines the format and types of data.
    • Server: A computer or software that provides services or resources to other computers (clients) in a network.
    • State (in React): Data that can change over time and affects the behavior and rendering of a component. When state changes, the component re-renders.
    • UI (User Interface): The means by which a user interacts with a computer system or software application.
    • URL (Uniform Resource Locator): A web address that specifies where a resource is located on the internet and the protocol used to access it.

    Briefing Document: React Native Full Course – Backend and Frontend Development

    Document Date: October 27, 2024

    Sources: Excerpts from “01.pdf”

    Overview:

    This document summarizes the main themes and important ideas presented in the provided excerpts from a resource intended to guide users through building a functional React Native application with a backend API. The content covers setting up a NodeJS backend with Express, database integration using PostgreSQL via Neon, basic API endpoint creation, structuring the application with MVC+Service pattern, data validation using Zod, error handling, and the initial setup of a React Native frontend using Expo Router and Tailwind CSS.

    Part 1: NodeJS Backend Setup and Fundamentals

    Main Themes:

    • Hands-on Learning: The core philosophy is learning by doing, emphasizing practical coding experience to build a functional application.
    • Structured Course: The presenter introduces a comprehensive React Native course developed by Vadim, highlighting its detailed guides, videos, and educational exercises.
    • Step-by-Step Guidance: A downloadable step-by-step guide is provided, which will be used throughout the tutorial. This guide will be updated based on user feedback.
    • Backend with NodeJS and Express: The tutorial starts with setting up a NodeJS project and using the Express framework to build the backend API.
    • Basic API Endpoint: The initial setup involves creating a simple “Hello World” API endpoint to demonstrate the fundamentals of routing and server responses.
    • Environment Variables: The importance of using .env files for configuration, especially for sensitive information like port numbers and API keys, is emphasized.
    • Nodemon for Development: The use of nodemon (implied through the –watch flag in the npm run dev script) for automatic server restarts on code changes is introduced.
    • API Testing with Insomnia: The presenter recommends and demonstrates the use of Insomnia (or similar tools like Postman or Bruno) to test API endpoints.

    Key Ideas and Facts:

    • The course aims to take users from writing their own code to having a functional app they can showcase.
    • “everything ties together and um yeah witnessing that by writing your your own code and then again at the end you will walk away with a functional app that you can uh show to whoever you want and say yeah this is what I’ve built”
    • The presenter is a software developer with several years of experience, a former startup CTO, and a former university instructor in software engineering.
    • “I am a software developer i have quite a few years experience in this field and I am already only like let’s say six plus years u startup CTO and co-owner um then I was also former and university instructor in software engineering”
    • A detailed React Native course with workshops is available for enrollment.
    • “it has everything that you need to know about React Native completely everything in very very much detail with the huge guides and videos so if you are considering if you are looking for a well ststructured course in React Native I highly suggest you to check it out”
    • A step-by-step guide for the tutorial can be downloaded after providing a name and email.
    • “after clicking on this link you’ll need to provide your name and an email and we’ll send this guide that I will show you in a second uh to your email address so then you can reuse it anytime you want”
    • NodeJS is a JavaScript runtime that allows executing JavaScript outside of the browser.
    • “as I mentioned already in the presentation NodeJS is a JavaScript runtime that allows ows us to execute basically JavaScript outside of the browser”
    • npm init is used to initialize a new NodeJS project, and npm install <package-name> is used to install dependencies like Express.
    • “just run npm in it and that’s it”
    • “now that we installed it we need to uh run mpm install express”
    • ES6 modules can be enabled by adding “type”: “module” to package.json, allowing the use of import instead of require.
    • “we will be enabling uh the EA6 uh modules which is in my opinion very neat it’s going to make the code a bit more readable and uh let’s say more modern uh so to do that we simply need to pass the type module in our package.json”
    • Environment variables, stored in a .env file, are accessed using process.env.<VARIABLE_NAME> and should be protected from being committed to version control.
    • “hard-coding configuration values like port numbers is quite bad and especially uh hard coding and inside not in the environment file but uh adding let’s say somewhere here inside the application your API keys is horribly bad because it’s very insecure are instead we use environment variables for that basically uh env file”
    • The npm run <script-name> command executes scripts defined in the scripts section of package.json, allowing for shorter commands like npm run dev to start the server with specific configurations (e.g., using .env file and watching for changes).
    • “if I run to run our server the only thing I need to do is say npm run and then specify the name of this script”
    • .gitignore file specifies files and folders that should not be committed to Git, such as node_modules and .env.
    • “in this file we specify which uh files or folders from our um from our application we do not want to push to versioning control and usually these are the files that we can configure easily ourselves or very let’s say uh private files like environment so one example would be node modules”
    • API testing tools like Insomnia are used to verify that API endpoints work as expected.
    • “there’s many different API to testing tools like one of the most important ones is probably a postman uh now in the recent times it’s getting like they have a lot of functionalities it’s kind of over complicated ated at this point uh to start with but you might see it quite often also insomnia is very popular one”

    Part 2: Database Integration with PostgreSQL and Neon

    Main Themes:

    • Database Necessity: A database is essential for persisting and managing application data.
    • Serverless PostgreSQL with Neon: The tutorial opts for a serverless PostgreSQL database hosted on Neon due to its popularity and suitability.
    • Database Types Overview: A brief overview of self-hosted, managed, and serverless database options is provided.
    • Raw SQL vs. ORM: The tutorial chooses to use raw SQL queries for database interactions, emphasizing the importance of understanding SQL. While ORMs (like Drizzle or Prisma) offer benefits, raw SQL provides a better foundation.
    • node-postgres Library: The pg library (node-postgres) is used to execute SQL queries and manage database connections in NodeJS.
    • Database Connection Configuration: Database connection details are stored as an environment variable (DATABASE_URL) for security.
    • Connection Pooling: The pg library supports connection pooling, which is beneficial for performance.
    • Database Migrations: Migrations are introduced as a way to manage changes to the database schema in a version-controlled and structured manner. The tutorial manually simulates migrations by creating SQL files with timestamped names.

    Key Ideas and Facts:

    • Neon is a serverless PostgreSQL database used in the tutorial.
    • “for this project right away I’m saying like we will use a serverless database uh posgrade SQL as well and we’re using posgrade SQL because it’s probably the most popular I would say and it’s very good so yeah that’s that but let’s really uh quickly cover all of the t like not all but main types that you might encounter of databases”
    • Raw SQL queries are favored for this learning project to ensure a strong understanding of database interactions.
    • “today we will be using raw SQLs because well this is a learning project and I believe and I I would argue like very harshly that it is a lot better to understand SQL and it’s a lot more valuable to learn that uh than simply relying on an RM”
    • The pg library (npm install pg) is used for interacting with the PostgreSQL database.
    • “in order to uh like write these uh SQL queries we need a library for that and we will use um install pg uh I mean pg which basically stands for posgress and this is the most commonly library it’s called node posgress”
    • Database connection string from Neon is stored in the .env file as DATABASE_URL.
    • “we will need to add this connection like this so we will say uh we are creating a new uh environment variable called database URL”
    • Migrations involve up functions to apply schema changes and down functions to revert them.
    • “here we are creating two different functions one is going to be down called down and the other one is going to be called up and this usually means we are migrating up and or we are migrating down”
    • The example migration creates a users table with id, name, and created_at fields.
    • “in the up we are what we’re trying to do is creating a new table in our database so what we’re doing here we’re saying okay create table basically create a new table if it doesn’t exist yet because if it will exist it will not create and the name of the table the is called users”
    • Another migration creates a reminders table with fields like id, reminder (text, not null), notes (text, nullable), completed (boolean, default false), and user_id (integer, foreign key referencing users table).
    • “now we need to do the same for reminders and now we can try to write this uh reminders code or like migration ourselves so first of all what are we doing we’re importing the database from and we will say okay so let’s import it from config and database and adds very important unless it’s got otherwise it’s going to throw an error for you okay now that we imported we have two functions well one of them is called uh up”
    • Foreign key constraints ensure data integrity by linking records between tables (e.g., reminders.user_id referencing users.id).
    • “we will add a user ID which is going to be an integer and it’s also very important to say that it will reference the users table and the ID field of that table and it’s also very important to say on delete cascade we’ll talk about it in a second but it means that if the user is deleted all of his or her reminders will be deleted as well”

    Part 3: Building the API Endpoints and Structuring the Backend

    Main Themes:

    • CRUD Operations: The tutorial focuses on implementing Create, Read, Update, and Delete (CRUD) operations for the reminders resource.
    • API Endpoint Design: Standard HTTP methods (GET, POST, PATCH, DELETE) are used for different actions on the /reminders resource. Endpoints for getting all, getting by ID, creating, updating, and deleting reminders are defined.
    • Route Separation: To improve maintainability, routes are separated into individual files (e.g., remindersRoutes.js) within a routes folder.
    • MVC+Service Architectural Pattern: The backend is structured using the Model-View-Controller (MVC) pattern with an additional Service layer. This promotes separation of concerns.
    • Models: Handle database interactions (executing SQL queries).
    • Services: Contain business logic and data processing, interacting with models.
    • Controllers: Handle incoming requests, call service methods, and send responses back to the client.
    • Middleware: Express middleware functions are used to perform tasks before reaching route handlers, such as parsing JSON request bodies.

    Key Ideas and Facts:

    • API endpoints are defined using Express router.
    • “we will need to import router but also from express and router is what allows us to create these separated routes very nicely”
    • The app.use(‘/reminders’, remindersRoutes) mounts all routes defined in remindersRoutes under the /reminders path.
    • “now we can say that router dot slash uh without saying this reminders part router slash id then once again like this and like this so now it’s not yet finished we need to have one last adjustment so now if we go to our index file and inside here at the top we’ll import these routes so it’s called reminder routes and we are importing them from and they’re imported from actually it’s only one routes reminder routes.js”
    • The MVC+Service pattern enhances code organization and maintainability.
    • “to solve this issue we will be creating a new folder called routes and this folder will keep all of our routes separated so for example we have reminders routes so we will say reminders routes.js you can have let’s say user routes.js and you can even like have as many as you need and it will keep everything very clean and structured”
    • Controllers receive requests, extract data, call service methods, and send responses.
    • “the controller will handle these requests and send back the responses to the user well you can right away understand that it’s kind of like a waiter in a restaurant so it’s the one that will take the order from the user which is a request it will pass this order to the kitchen to basically create whatever was ordered which the kitchen is in our analogy a service layer and it brings back the prepared dish which is going to be the response to the user”
    • Services contain the core business logic and interact with the database through models. They can also perform data sanitization and other processing.
    • “this service layer which is as I said is kind of like a kitchen inside a restaurant which is responsible for the logic and the actual processing of the data so the kitchen the service layer takes the order from the controller a waiter and processes it prepares the food based on the ingredients a model”
    • Models are responsible for executing database queries.
    • “there is models layer which only communicates with a database uh in our like code example but in a kitchen example you can think of model like an ingredientre different ingredients to make those dishes”
    • express.json() middleware is used to parse incoming request bodies as JSON.
    • “express doesn’t parse the incoming data to JSON by default so we need to enable that by like basically passing the the middleware and the middleware ware it’s also um yeah let’s say what is let’s talk about what is middleware in general middleware is kind of a helper functions that help you process the requests before they reach the routes”
    • Example model functions for reminders include getAll, findById, create, update, and delete. These functions execute raw SQL queries.
    • “let’s create our first model which is going to be called reminders model.js and in here we will import our database connection and then we will start defining our functions”
    • Service functions call the corresponding model functions and can include additional business logic (e.g., data sanitization).
    • “in here we can import the model uh in here we just go import yes reminder model and also don’t forget to add.js and now let’s start using them well first of all the yeah the first one is going to be very easy we don’t need to pass anything we don’t need to do anything it’s simply return reminder model get all and we get all of these uh reminders and return them right away”

    Part 4: Data Validation with Zod

    Main Themes:

    • Data Validation Importance: Validating incoming data is crucial for ensuring data integrity and preventing errors.
    • Zod Library: The Zod library is introduced as a schema declaration and validation library for TypeScript.
    • Schema Definition: Zod schemas are defined to specify the expected structure and types of data for reminders (e.g., reminder, notes, completed, user_id). Separate schemas are created for creating and updating reminders to reflect different validation requirements.
    • Validation Middleware: A custom Express middleware is created to use the defined Zod schemas to validate incoming request bodies. This middleware checks if the data conforms to the schema and returns appropriate error responses if validation fails.

    Key Ideas and Facts:

    • Zod allows defining schemas as TypeScript types with runtime validation.
    • “for this we will use a very popular library called zod so let’s install it by running npm install zod”
    • Schemas define the expected data structure, types, and constraints (e.g., required fields, string lengths).
    • “what we are saying here is that we are expecting an object and this object should have a property called reminder which is a string and it should have at least one character in it so it cannot be an empty string”
    • Separate Zod schemas can be defined for different operations (e.g., creating a reminder vs. updating a reminder).
    • “now we need to define different this is our main basically object schema that we have in our database for these reminders and here I said uh yeah no so for these reminders so it has an ID reminder notes all of these fields basically but now we need to define a separate schemas for when we’re trying to create and when we’re trying to update”
    • The validation middleware uses the .parse() method of a Zod schema to validate the request body.
    • “this middleware will receive uh in here the request response and next … this middleware will try to call the schema that we passed and parse it with the request body”
    • If validation fails (ZodError), the middleware extracts and formats the validation errors into a user-friendly response with a 400 status code.
    • “if the library is a zod error it means the request body did not match the schema that we were expecting so that means that we will try to build this error message in a human readable way … and then we’re returning the error with status 400 and saying that the data was invalid”
    • The validation middleware is applied to specific routes before the controller function using router.post(‘/reminders’, validateData(createReminderSchema), remindersController.create);.
    • “before calling this function we will add a validate data and we are also need to if you remember pass the schema to this validate data function”

    Part 5: Custom Error Handling

    Main Themes:

    • Consistent Error Responses: Implementing custom error handling ensures that the API returns consistent and informative error responses to the client.
    • Custom Error Class: A custom CustomError class extending the built-in Error class is created to include a statusCode property.
    • Static Error Messages: Using constants for common error messages (e.g., “Reminder not found”) promotes consistency and simplifies future changes or internationalization.
    • Error Handling Middleware: An Express middleware is created to catch errors that propagate through the route handlers. This middleware formats the error response, including the status code and message.

    Key Ideas and Facts:

    • A CustomError class allows for passing a specific HTTP status code along with the error message.
    • “what this code does is we are creating a constructor our own class which will extend the error class that we already have here … but because we this error class does not have a status code we will call this and we’ll say the status code will be the status code that we provide in when we’re calling our custom error”
    • Defining error messages as constants in a separate file (errorMessages.js) improves maintainability.
    • “what a lot of companies are doing they create these constant static error messages and they reuse them that’s a very good practice of doing that it prevents the typos it keeps the code very clean consistent and later on you can even translate everything all of these very easily”
    • The error handling middleware checks for a statusCode in the error object and uses it to set the HTTP status of the response. If no status code is found, it defaults to 500 (Internal Server Error).
    • “this error handler receives the error and it checks like okay does the error have a status code … if it has it will apply it if it doesn’t it will throw 500”
    • Route handlers use the next(error) function to pass errors to the error handling middleware.
    • “instead of calling right away this error we will say call next and we already uh saw this next and it means that call next middleware or yeah or router or whatever”
    • The error handling middleware should be the last middleware registered in the Express application to catch errors from all preceding middleware and route handlers.
    • “you need to add this middleware as the last one … because if like as I said like it’s calling the next middleware so it’s going to call this one after the routes”

    Part 6: React Native Frontend Setup with Expo Router and Tailwind CSS

    Main Themes:

    • React Native with Expo: The frontend is being built using React Native with the Expo framework, providing tools and services for development, building, and deployment.
    • Expo Router for Navigation: Expo Router is used for file-system-based routing and navigation in the React Native application.
    • Tailwind CSS for Styling: Tailwind CSS is integrated for rapid styling using utility classes.
    • Basic Project Structure: The frontend project follows a structure with source, app (for screens and routes), and components (for reusable UI elements) folders.
    • Path Aliases: Path aliases (@/) are configured in tsconfig.json to simplify import paths.
    • Layout Component: A root layout component (_layout.tsx) is used to define a consistent UI structure (e.g., headers using Stack) that wraps around different screens.

    Key Ideas and Facts:

    • A new React Native project with TypeScript and Expo is created using npx create-expo-app@latest –template tabs@50.
    • “now we are going to wait a second it created it so now we can go to our VS code on file open recent uh or no actually open and then we are going to go to uh documents projects and here we should have apple reminders clone let’s open this project”
    • The frontend application is started using npx expo start.
    • “click on terminal new terminal and in here simply write mpx expo start”
    • Expo Go app can be used to preview the application by scanning a QR code provided by expo start. Simulators can also be used for development.
    • “if you’re using Go if you’re using Expo Go simply scan this QR code and you will right away see the application on your phone just as easy as that no setup nothing for me as I mentioned I will be working with a simulator just to show it uh on the screen”
    • Expo Router is installed using npm install expo-router react-native-safe-area-context react-native-screens.
    • “we’ll be installing now the Expo router for our navigation as mentioned so to do that … we need to install all of these dependencies and actual exper itself”
    • The main entry point in package.json is changed to app to use Expo Router’s file-based routing.
    • “inside here where it says main and right now it’s index j index.ts TS which is here we need to say okay we will change it and now we will uh use the export router entry which is going to be the app folder in a way”
    • Tailwind CSS is installed and configured in the frontend project using npm install -D tailwindcss postcss autoprefixer && npx tailwindcss init -p.
    • “we will use Tailwind CSS for styling and I’m a huge fan of it and I use it in all of my projects and it really speeds up the development a lot so let’s install it by running this command uh we’ll do it with npm”
    • A tailwind.config.js file is created to customize Tailwind CSS.
    • “now that we installed it we need to initialize it and create our tailwind config file by running this command”
    • The global.css file is modified to include Tailwind directives (@tailwind base, @tailwind components, @tailwind utilities).
    • “now we need to go to our styles folder and inside global CSS we need to add these three directivs”
    • Tailwind CSS classes can be directly used in React Native components’ className prop via react-native-tailwindcss.
    • “to make it work what we need to do is we need to import tw from react native tailwindcss … and then we can use className prop in our elements”
    • The _layout.tsx file in the app directory defines the root layout for the application, often using Stack from expo-router to provide header navigation.
    • “in order to think of the um in order to showcase how it works we can create this layout file and let’s create it inside the app and let’s make it layout tsx … inside here let’s return and let’s return a slot from uh actually not a slot stack will be a better example let’s return a stack from I didn’t close sorry didn’t close the tag from react uh expert router and right away after I save you can see this header”

    Part 7: Fetching Data from the Backend in React Native

    Main Themes:

    • Fetching Data: The frontend needs to communicate with the backend API to retrieve and display data (reminders).
    • fetch API: The built-in fetch API in JavaScript is used to make HTTP requests to the backend.
    • Service Layer in Frontend: Similar to the backend, a services folder is created in the frontend to house functions that handle API calls, promoting reusability and separation of concerns.
    • Displaying Data in Components: Fetched data is displayed in React Native components (e.g., ReminderListItem).
    • Passing Props: Data (reminder items) is passed down from parent components (e.g., the screen displaying the list) to child components (e.g., ReminderListItem) using props.

    Key Ideas and Facts:

    • The fetch function is used to make GET requests to the /reminders endpoint of the backend API.
    • “now what we need to do is we need to get our URL the same way as we were doing inside insomnia so for example let’s we’re trying to get all reminders so let’s copy this go back to our code and let’s say okay let’s call uh this basically function”
    • Response from fetch needs to be parsed as JSON using .json().
    • “yeah this response should be parsed to JSON”
    • Frontend service functions encapsulate API call logic and return the fetched data.
    • “creating a services folder inside source and inside this services we will provi provide create reminders or maybe reminder service.ts and in here we can like create all of these different functions that will have all of the logic and that we’ll be able to reuse”
    • Data fetched in a screen component is passed as props to the ReminderListItem component to render individual reminders.
    • “we will have a reminder list which will map through all of the reminders that we fetched and for each reminder it will render this reminder list item component and very importantly we will pass down each reminder as a prop”
    • Props are accessed in the child component through the props object or by destructuring. Types can be defined for the props a component expects to receive using TypeScript interfaces or types.
    • “this is how we pass the data by simply adding this as an attribute but now in the child component which is reminder list item how do we receive it well we simply define here uh curly braces and we say props and now inside here I can access this data by saying props dot reminder”

    This briefing document captures the initial stages of building a React Native application with a NodeJS backend, covering the fundamental setup, API creation, database integration, data validation, error handling, and the initial structure for the frontend. The focus is on practical, hands-on learning with a structured approach and separation of concerns through established architectural patterns and best practices.

    React Native Course: Backend Setup and API Basics

    React Native Course and Resources

    1. What is this course about, and what will I learn? This course is a comprehensive guide to learning React Native. By following along and writing your own code, you will ultimately build a functional app. The course covers everything you need to know about React Native in detail, including guides and videos. It also includes educational exercises after each lesson to further enhance learning.

    2. Who is the instructor behind this course? The instructor is a software developer with several years of experience in the field. They have a background as a startup CTO and co-owner for over six years and previously served as a university instructor in software engineering. The instructor identifies as a developer first and an educator second, emphasizing learning through hands-on experience and a desire to share their knowledge.

    3. Is there any supplementary material or a step-by-step guide available for this tutorial? Yes, there is a step-by-step guide available that accompanies this tutorial. You can download it by following a link provided in the description of the live stream or potentially near the video title. After clicking the link, you will need to provide your name and email address, and the guide will be sent to you. This guide includes introductions to the topics and the tech stack used. The instructor also mentions updating the documentation based on feedback.

    4. What is the tech stack used in this initial setup? The initial setup focuses on the backend using: – Node.js: A JavaScript runtime environment used to execute JavaScript code outside of a web browser. – npm (Node Package Manager): Used for managing project dependencies, such as installing frameworks and libraries. – Express: A minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications. – pg (node-postgres): A PostgreSQL client library for Node.js, used to interact with a PostgreSQL database. – dotenv: A library used to load environment variables from a .env file into process.env.

    5. How is the backend project initially set up? The initial setup involves the following steps: – Ensuring Node.js is installed on your machine. – Creating a new project directory. – Navigating into the new directory using the terminal (cd). – Initializing npm for the project (npm init). – Installing the Express framework (npm install express). – Enabling ES6 modules by adding “type”: “module” to the package.json file. – Creating a source folder and an entry file index.js within it. – Writing a basic Express application in index.js to listen on a specified port and return a “Hello World” message on the root route. – Starting the server using node source/index.js.

    6. What are environment variables and why are they used in this project? Environment variables are dynamic named values that can affect the way running processes will behave on a computer. In this project, they are used to store configuration values such as the server port and later, database connection details. The benefits of using environment variables include: – Security: Sensitive information like API keys and database passwords are not hardcoded directly in the application. – Configuration: Different environments (e.g., development, production) can have different configurations without changing the code. – Best Practices: Hardcoding configuration values is considered insecure and bad practice.

    A .env file is created to store these variables locally. The dotenv library is used to load these variables into the Node.js process. The .env file is also added to .gitignore to prevent sensitive information from being committed to version control.

    7. How is API testing introduced in this tutorial? The tutorial introduces API testing using a tool called Insomnia (though alternatives like Postman and Bruno are also mentioned). Insomnia allows you to create and send HTTP requests to your backend API endpoints and inspect the responses. The process involves: – Downloading and installing Insomnia. – Creating a new project or collection within Insomnia. – Creating new HTTP requests (e.g., GET, POST) with the appropriate URL (including the correct port). – Sending the requests and observing the responses to verify if the API endpoints are working as expected.

    8. What is the purpose of database migrations in this project? Database migrations are changes to a database schema that are version controlled. They provide a structured way to evolve the database over time, ensuring consistency across different environments. The tutorial demonstrates creating migration files (with timestamps and descriptive names) that contain SQL code to modify the database schema, such as creating tables and defining their columns. The process involves writing “up” functions to apply changes and “down” functions to revert them if necessary. While the tutorial simulates migrations with individual .js files and direct execution via Node.js, it mentions popular migration tools like Knex, Sequelize, and Prisma that automate this process in real-world applications.

    Serverless PostgreSQL with Neon for a Reminders App

    The tutorial focuses on setting up and configuring a PostgreSQL database using a serverless platform called Neon for a full-stack Apple reminders clone application.

    Database Choice and Types:

    • The application uses PostgreSQL, a popular relational database.
    • The tutorial briefly discusses three main types of databases:
    • Self-hosted databases: Require manual installation, configuration, and maintenance, offering full control but demanding significant expertise.
    • Managed databases (e.g., RDBS): Cloud providers manage backups, scaling, and maintenance, suitable for constant high traffic but can be expensive if not optimized.
    • Serverless databases (e.g., Neon): Fully cloud-managed, automatically scale based on demand, and offer a pay-as-you-go model, ideal for startups and unpredictable workloads due to ease of setup and cost-efficiency, including a free tier.
    • Neon is the chosen serverless PostgreSQL database for this project due to its ease of use, elimination of maintenance tasks, automatic scaling, and a generous free tier.

    Setting up a Neon Database:

    • The setup process involves navigating to the official Neon website, creating a new account, and then creating a new project.
    • During project creation, you need to provide a project name (e.g., reminders API), a database name (which can be left as default or specified, e.g., reminders_database), and select a region closest to the target audience.
    • After creation, the Neon dashboard provides a connection string that will be used to connect the backend application to the database.

    Database Connection Configuration:

    • The tutorial utilizes the pg (node-postgres) library, a common and performant library for executing SQL queries in Node.js, which also supports connection pooling.
    • For secure configuration, the database connection string obtained from Neon should be stored as an environment variable. This is done by creating a .env file in the root of the project and adding a variable like DATABASE_URL with the connection string as its value.
    • Hardcoding sensitive information like the database URL directly in the application code is strongly discouraged due to security risks.
    • The .env file should be added to the .gitignore file to prevent it from being committed to version control systems like Git, thus avoiding accidental exposure of sensitive credentials.
    • The database connection is established in a dedicated configuration file (e.g., db.js inside a config folder). This file imports the pg library and creates a connection pool using the DATABASE_URL fetched from the environment variables using process.env.
    • A test function can be included in the configuration file to verify the database connection by executing a simple query (e.g., SELECT version()) and logging the result.

    Database Migrations:

    • Database migrations are introduced as a crucial practice for managing changes to the database schema in a version-controlled manner. This ensures consistency across different development stages and environments.
    • While popular migration tools like Knex, Sequelize, and Prisma exist, the tutorial opts for a more manual approach to illustrate the underlying concepts.
    • A migrations folder is created in the src directory to house migration files.
    • Each migration file is typically named with a timestamp followed by a descriptive name (e.g., 1678886400000_create_user_table.js).
    • Each migration file exports two asynchronous functions:
    • up: Contains the SQL code to apply the database changes, such as creating tables and adding columns. The CREATE TABLE IF NOT EXISTS command is used to prevent errors if the table already exists.
    • down: Contains the SQL code to revert the changes made by the up function, typically by dropping tables (e.g., DROP TABLE IF EXISTS users).
    • The tutorial emphasizes the use of raw SQL queries for database interactions to foster a deeper understanding of SQL. Examples are provided for creating users and reminders tables with specified data types, constraints (like PRIMARY KEY, UNIQUE, NOT NULL, DEFAULT), and foreign key relationships (REFERENCES with ON DELETE CASCADE).
    • Migrations are executed using Node.js by running a script that loads the environment variables using dotenv/config and then executes the up (or down for rollback) function in the specified migration file.
    • The tutorial demonstrates how to run a migration to create the users table and then the reminders table. It also shows how to roll back a migration by running the down function, effectively dropping the reminders table as an example.

    In summary, the database setup and configuration in this tutorial involve choosing PostgreSQL hosted on the serverless Neon platform, securely configuring the connection using environment variables, and managing database schema changes through manually created and executed migration files using raw SQL queries.

    Neon PostgreSQL: Database Table Creation via Migrations

    The sources discuss creating database tables primarily within the context of using database migrations with PostgreSQL on the Neon serverless platform. Migrations are described as version-controlled changes to the database schema, allowing for structured management of these changes across different environments.

    Here’s a breakdown of the process based on the tutorial:

    • Migration Files: Database tables are created through migration files located in a migrations folder within the src directory of the project. Each migration file typically has a timestamp and a descriptive name, like 1678886400000_create_user_table.js.
    • up and down Functions: Each migration file exports two asynchronous functions:
    • up: This function contains the SQL code to create the database tables and add columns. The tutorial emphasizes using raw SQL queries for this purpose. The CREATE TABLE IF NOT EXISTS command is used to ensure that a table is created only if it does not already exist.
    • down: This function contains the SQL code to revert the changes made by the up function. For table creation, this usually involves dropping the table using DROP TABLE IF EXISTS.
    • Creating the users Table (Example): The tutorial provides an example of creating a users table:
    • CREATE TABLE IF NOT EXISTS users (
    • id SERIAL PRIMARY KEY,
    • name VARCHAR(100) UNIQUE NOT NULL,
    • created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    • );
    • This SQL code defines a table named users with the following columns:
    • id: An automatically incrementing integer that serves as the primary key (SERIAL PRIMARY KEY).
    • name: A string with a maximum length of 100 characters, which must be unique and cannot be NULL (VARCHAR(100) UNIQUE NOT NULL).
    • created_at: A timestamp that defaults to the current timestamp when a new record is created (TIMESTAMP DEFAULT CURRENT_TIMESTAMP).
    • Creating the reminders Table (Example): The tutorial also demonstrates creating a reminders table:
    • CREATE TABLE IF NOT EXISTS reminders (
    • id SERIAL PRIMARY KEY,
    • reminder VARCHAR(255) NOT NULL,
    • notes TEXT,
    • completed BOOLEAN DEFAULT FALSE,
    • user_id INTEGER REFERENCES users(id) ON DELETE CASCADE,
    • created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    • );
    • This SQL code defines a table named reminders with these columns:
    • id: An auto-incrementing integer serving as the primary key (SERIAL PRIMARY KEY).
    • reminder: A string with a maximum length of 255 characters that cannot be NULL (VARCHAR(255) NOT NULL).
    • notes: A text field that can be empty (TEXT).
    • completed: A boolean value that defaults to FALSE (BOOLEAN DEFAULT FALSE).
    • user_id: An integer that establishes a foreign key relationship with the id column of the users table (INTEGER REFERENCES users(id)). The ON DELETE CASCADE clause specifies that if a user is deleted, all associated reminders will also be deleted.
    • created_at: A timestamp that defaults to the current timestamp (TIMESTAMP DEFAULT CURRENT_TIMESTAMP).
    • Executing Migrations: These migration files are executed using Node.js scripts. The script typically loads environment variables (including the database connection string) and then calls the up function of the specific migration file to apply the schema changes to the database. Similarly, the down function can be called to roll back the changes.

    In summary, creating database tables in this tutorial involves defining the table schema in migration files using SQL CREATE TABLE statements within the up function. These definitions include specifying column names, data types, constraints, and relationships with other tables through foreign keys. The migration files are then executed to apply these changes to the PostgreSQL database.

    ExpressJS REST API Route Definition

    The source discusses defining API routes within the context of building a REST API using ExpressJS. Here’s a breakdown of how API routes are defined according to the tutorial:

    • Basic Route Definition: API routes are defined using the methods provided by the Express application instance (app). These methods correspond to HTTP request methods like get, post, patch, and delete. For example:
    • app.get(‘/reminders’, (req, res) => { … }); defines a route that handles GET requests to the /reminders path.
    • app.post(‘/reminders’, (req, res) => { … }); defines a route that handles POST requests to the /reminders path.
    • Similar methods exist for patch and delete requests.
    • URL Paths: Each route is associated with a specific URL path. The tutorial uses /reminders as a base path for operations related to reminders.
    • Handler Functions: Each route is also associated with a handler function that executes when a request matching the route and HTTP method is received. These functions receive request (req) and response (res) objects, allowing you to access request data and send responses back to the client. Initially, these handler functions directly sent back simple text responses.
    • Passing Parameters in URLs: To retrieve specific resources, like a reminder by its ID, the tutorial demonstrates how to pass parameters within the URL using the colon (:) syntax. For example, /reminders/:id defines a route where :id is a parameter that can be accessed within the handler function using req.params.id. The tutorial also shows how to parse this ID to an integer if needed.
    • Separating Routes with Express Router: For better organization and maintainability, the tutorial introduces the use of Express Router. This involves the following steps:
    • Importing the Router from Express: import { Router } from ‘express’;.
    • Creating a router instance: const router = Router();.
    • Defining routes on the router instance instead of the main app instance: router.get(‘/’, (req, res) => { … });.
    • Exporting the router: export default router;.
    • Importing the router in the main application file (index.js): import reminderRoutes from ‘./routes/reminderRoutes’;.
    • Mounting the router on a specific path using app.use(): app.use(‘/reminders’, reminderRoutes);. This means that all routes defined in reminderRoutes will be prefixed with /reminders.
    • Associating Routes with Controllers: To further structure the application logic, the tutorial introduces the MVC (Model-View-Controller) plus Service layer pattern. In this setup, the route handlers in the route files (reminderRoutes.js) don’t contain the main business logic. Instead, they call functions defined in controller files (reminderController.js). This keeps the route definitions clean and focused on routing requests to the appropriate controller functions. For example, a route like router.get(‘/’, reminderController.getAllReminders); associates the GET request to /reminders with the getAllReminders function in the reminderController.
    • Handling Request Data: The tutorial explains how to access data sent with the request:
    • URL Parameters: Using req.params to access parameters passed in the URL (e.g., req.params.id).
    • Request Body: For POST and PATCH requests that send data in the request body (e.g., for creating or updating reminders), the req.body object is used. However, it’s highlighted that Express.js needs middleware to parse the request body as JSON. The express.json() middleware is used for this purpose: app.use(express.json());. This allows accessing the JSON data sent in the request body.

    In summary, the tutorial advocates for a structured approach to defining API routes using Express Router to separate route definitions, associating these routes with controller functions for handling logic, and using appropriate methods to access request data. This structure promotes a more organized and maintainable codebase.

    Full-Stack Reminders Clone: Implementing CRUD Operations

    The source material discusses implementing CRUD (Create, Read, Update, Delete) operations within the context of building a full-stack Apple Reminders clone using React Native Expo, Express.js, and PostgreSQL. The tutorial emphasizes a structured approach using a REST API with ExpressJS on the back-end.

    Here’s a breakdown of how CRUD operations are implemented according to the source:

    1. Defining API Routes:

    • API routes are defined using methods of the Express application instance (app) that correspond to HTTP request methods:
    • GET for reading data (retrieving all or a specific reminder). For example, app.get(‘/reminders’, …) to get all reminders and app.get(‘/reminders/:id’, …) to get a reminder by its ID.
    • POST for creating new data. For example, app.post(‘/reminders’, …) to create a new reminder.
    • PATCH (or PUT) for updating existing data. For example, app.patch(‘/reminders/:id’, …) to update a specific reminder.
    • DELETE for removing data. For example, app.delete(‘/reminders/:id’, …) to delete a specific reminder.
    • For better organization, Express Router is used to separate route definitions into dedicated files (e.g., reminderRoutes.js). These routers are then mounted on specific paths in the main application (index.js) using app.use().

    2. Controller Layer:

    • The defined API routes are associated with functions in controller files (e.g., reminderController.js).
    • Controllers act as intermediaries, receiving requests and sending responses. They do not contain the main business logic.
    • Controller functions call corresponding functions in the service layer to handle the actual data operations.
    • Error handling is implemented within the controller using try…catch blocks to manage potential errors during service calls and send appropriate error responses to the client.

    3. Service Layer:

    • The service layer (e.g., remindersService.js) contains the core business logic for each CRUD operation.
    • Service functions receive data from the controller, perform operations (like data validation or sanitization), and interact with the model layer to access the database.
    • Services can also interact with other services or external APIs if needed.
    • The service layer can throw errors if operations fail, which are then caught by the controller.
    • For example, reminderService.getAllReminders() would fetch all reminders by calling the model, reminderService.getReminderById(id) would fetch a specific reminder, reminderService.createReminder(data) would create a new reminder, reminderService.updateReminder(id, data) would update an existing one, and reminderService.deleteReminder(id) would delete a reminder.

    4. Model Layer:

    • The model layer (e.g., reminderModel.js) is responsible for directly interacting with the PostgreSQL database.
    • It contains functions that execute raw SQL queries for each CRUD operation.
    • Each function in the model performs a specific database operation:
    • reminderModel.getall(): Executes a SELECT * FROM reminders ORDER BY created_at DESC query to retrieve all reminders.
    • reminderModel.findById(id): Executes a SELECT * FROM reminders WHERE ID = $1 query to retrieve a reminder by its ID. Placeholders ($1) are used for security against SQL injection, and the actual ID is passed as a parameter.
    • reminderModel.create(data): Executes an INSERT INTO reminders (notes, reminder, user_id) VALUES ($1, $2, $3) RETURNING * query to create a new reminder. The data (reminder, notes, user ID) is passed as parameters to the query.
    • reminderModel.delete(id): Executes a DELETE FROM reminders WHERE ID = $1 query to delete a reminder by its ID.
    • The update operation (reminderModel.update) is built dynamically in the service layer based on the fields to be updated and then executed by the model.
    • The model functions use the pg library to connect to the PostgreSQL database and execute the SQL queries.

    5. Database Migrations:

    • Database tables (like users and reminders) are created and managed using database migrations.
    • Migration files contain SQL code to define the table schema (CREATE TABLE) in the up function and to revert these changes (DROP TABLE) in the down function.
    • These migrations ensure that the database schema is consistent across different environments and versions of the application.

    6. Schema Validation:

    • Zod is used for schema validation to ensure that the data received from the client during create and update operations is valid and matches the expected format.
    • Schemas are defined for creating (createReminderSchema) and updating (updateReminderSchema) reminders, specifying data types, required fields, and constraints (e.g., string length).
    • A middleware (validateData) is created to apply these schemas to the incoming requests before they reach the controller. This middleware uses Zod to parse and validate the request body against the defined schema. If validation fails, an error response is sent back to the client; otherwise, the request proceeds to the controller.

    7. Handling Request Data:

    • Request parameters (from the URL, e.g., /reminders/:id) are accessed using req.params.
    • Data sent in the request body (for POST and PATCH requests) is accessed using req.body. The express.json() middleware is used to parse the request body as JSON.

    8. Front-end Interaction (Briefly Mentioned):

    • The front-end (React Native Expo) will make API requests to these defined routes using methods like fetch or a library like Tanstack Query.
    • Tanstack Query mutations are used on the front-end to perform create, update, and delete operations. These mutations send requests to the back-end API routes and handle the responses. On successful mutations, the front-end cache is invalidated to reflect the changes.

    In summary, the implementation of CRUD operations in this tutorial follows a well-structured, layered architecture. API routes are defined to handle client requests, controllers orchestrate the flow, services contain the business logic and interact with the data through models using raw SQL, and database migrations manage the underlying database schema. Input validation ensures data integrity, and error handling provides a robust user experience.

    Building a React Native UI with Expo Router

    The source discusses building React Native UI as part of creating a full-stack Apple Reminders clone. Here’s a breakdown of the key aspects discussed:

    • Core UI Library: The front-end is built using React Native and Expo. React Native is described as the primary tool for the front-end.
    • Fundamental React Native Concepts: The tutorial emphasizes the importance of props and state as the “bones” of React Native for managing data. React Hooks, specifically useState and useEffect, are highlighted as essential for functional components.
    • Basic UI Components: The tutorial utilizes fundamental React Native components such as:
    • View: Used as a container for other components.
    • Text: Used to display text.
    • TextInput: Allows users to input text.
    • Pressable (or TouchableOpacity): Enables components to respond to user touches.
    • ActivityIndicator: Displays a loading indicator.
    • FlatList: An optimized component for rendering dynamic lists of data.
    • SafeAreaView: Ensures content is rendered within the safe area of the device screen, avoiding notches and status bars.
    • Layout and Styling:
    • Flexbox (flexDirection, alignItems, justifyContent) is used for arranging UI elements.
    • Inline styles can be applied directly to components.
    • StyleSheet.create from React Native is introduced as a better practice for organizing and reusing styles. This allows for defining styles in a separate object and applying them to components using the style prop.
    • Properties like margin, padding, borderWidth, borderColor, fontSize, fontWeight, and color are used for styling.
    • alignSelf is used to align individual items within a flex container.
    • gap is used to create spacing between items in a flex container.
    • width and height (including percentages) are used to control component dimensions.
    • Navigation:
    • Expo Router is used for screen navigation.
    • The main entry point for routes is within the app directory.
    • Link component from Expo Router is used for declarative navigation between screens. The href prop specifies the target route.
    • Layout files (_layout.tsx) are used to create wrappers around screens, allowing for persistent UI elements like headers.
    • Stack from Expo Router provides a stack-based navigation pattern with headers and back functionality. stack.screen within the layout allows configuring options for individual screens, such as hiding the header (headerShown: false) or setting the header title (headerTitle).
    • Programmatic navigation is possible using the router object from Expo Router, specifically router.back() to navigate back.
    • Modal presentation (presentation: ‘modal’) is available for screens, providing a modal-like transition.
    • Displaying Lists of Data:
    • The FlatList component is used to efficiently render lists of data.
    • It requires a data prop, which is an array of items, and a renderItem prop, which is a function that takes an item and renders the corresponding UI.
    • The item prop within renderItem provides access to each individual data object in the list.
    • Props can be passed down to custom list item components within the renderItem function.
    • keyExtractor can be used to provide unique keys for each item in the list, improving performance [Not explicitly shown in the excerpt, but a common practice with FlatList].
    • ListHeaderComponent can be used to render a component at the top of the list.
    • showsVerticalScrollIndicator can be set to false to hide the vertical scroll bar.
    • Handling User Input:
    • The TextInput component is used to capture user input.
    • The value prop binds the input’s value to a state variable.
    • The onChangeText prop is a function that is called whenever the text in the input changes, allowing you to update the state variable.
    • The multiline prop allows for multi-line text input.
    • Reusable Components: The tutorial emphasizes creating reusable UI components (referred to as “Lego pieces”) to make the code more modular and maintainable. This involves creating separate component files (e.g., ReminderListItem.tsx) and passing data to them via props.
    • Conditional Rendering: UI elements can be rendered conditionally based on certain conditions, such as the completed state of a reminder. This is often done using ternary operators or if statements within the JSX.
    • Type Safety with TypeScript: TypeScript is used to ensure type safety in the React Native code. This helps in catching errors early during development. Types are defined for props and state.

    The source provides a practical, hands-on approach to building a React Native UI by demonstrating how to use various components, manage layout and styling, implement navigation, display dynamic data in lists, and handle user interactions within the context of a real application.

    Build Your First Full-Stack Application (beginner tutorial) 🔴

    The Original Text

    hello and welcome back everybody uh today’s going to be a fun one because we will be building a full stack Apple reminders clone with React Native Expo Express.js and PostgreSQL so if you’re a beginner looking to take your first steps into full stack development I think you’re in the right place because we’ll start from scratch break things down step by step and by the end you’ll have a working app and the confidence to build even more so grab a coffee get comfy and let’s dive in so as I mentioned we will be working on a full stack Apple reminders clone uh we’ll be working with mainly with React Native Expo PosgreSQL and Express.js and I’ll cover more technologies that we’ll touch uh a little bit later but this is going to be our basic fundamental technologies so let’s dive a bit further and check out how our application will look like so first of all uh it’s not going to be as fancy on the front end because I will try to focus a little bit uh more on the back end and um therefore it’s uh yeah I want the beginners to have their first steps and to feel comfortable to get a good grip of how to structure their back end how to structure their front end how to tie everything together basically to help them either start their career or at least have good fundamentals to find a job the things that are like very needed to know but as a junior developer so let’s continue we’ll be working also on create new reminder screen so here we’ll be able to create those reminders we’ll be able to provide a title and some notes bas basically then we’ll be working also on updating uh or deleting these reminders so yeah if you created like a wrong reminder or you uh just don’t want to have it anymore you’ll be able to delete them modify them and so on so the technologies that we will use mainly will be for the back end uh NodeJS as our JavaScript runtime environment also uh accompanying that we’ll use ExpressJS as our framework which is a very popular combination then for our database we’ll be using Posgra SQL and it’s a relational database it’s a very popular one and I think most of the corporations use that so it’s going to be very good to know how to use it how to write uh SQL queries and I’ll touch a little bit more upon it later and also we’ll use ZOD for schema validation if you use uh any other technology for this you can totally do that i just feel that this is something I’m mostly comfortable with and that’s why I will use this and it’s a very popular one as well so it’s not bad to know it then for our front end we’ll be using React Native and Expo and I think that’s not a surprise to anybody because on this channel this is mainly what we use so yeah that’s nothing new here then we will be using expert router for our screen navigation we’ll see how to use it and how to implement then we’ll be using TypeScript to ensure type safety i’ll basically cover all the basics of it uh so you could understand how to write types how to why is it good and why you would need that it’s going to be very good to know and lastly we’ll use tanstack query for data fetching and caching our data so yeah this is our tanstack so let’s quickly recap and basically understand what are you going to learn in this live stream mainly we’ll be working uh and creating a a REST API with ExpressJS u so this is a very general topic but I’ll dive a little bit deeper uh what we will learn now so yes we’ll cover database database management using Postgress SQL for the data persistence how to store it how to retrieve data and much more then we’ll be working on schema validation to know that basically the inputs that we are receiving from the user are they correct and automate this a little bit better um then we’ll be learning how to handle the errors and the best practices to handle these errors correctly uh because there’s a lot of different ways and uh you can structure it differently so this is also quite important to know uh then again we’ll cover on the project structuring and how to structure it and organize for a let’s say easily maintainable uh application so this is also going to be very good to know for beginners because a lot of big corporations uh will be using this kind of structure it’s a very popular structure and knowing this will help you let’s say understand everything a lot faster of course we need to learn how to do the main CRUD operations uh so creating new records reading them updating them and deleting them from the database and also we’ll learn database migrations so how to manage them how to create them how to run them write them and stuff like that uh so for the front end now let’s see what we will cover here as well so as always props and state that’s very important to know that’s basically bones of uh React Native and managing the data so we’ll cover that we’ll be covering the flat list and how to create dynamic lists then we’ll check how to work with navigation how to navigate between screens and um yes like that then as mentioned TypeScript uh React hooks which is very essential uh to know especially the use state and use effect and we’ll see how they work they’re let’s say one of the more popular ones then we’ll learn how to make the API request request to our back end that we will create from the front end our application and that’s it so now let’s cover a little bit why I think the project based learning is the best way to learn and uh well first of all building uh you build the realw world apps you build them you don’t uh study too much theory but you understand the theory along the way you see how everything ties together and it’s very important this is actually how I learned and how I was taking my first steps and I would recommend that to every everybody then again you are getting as mentioned hands-on experience instead of just theory so it’s very interesting to see how everything ties together and um yeah witnessing that by writing your your own code and then again at the end you will walk away with a functional app that you can uh show to whoever you want and say yeah this is what I’ve built so let me quickly also talk about myself and uh who am I so I am a software developer i have quite a few years experience in this field and I am already only like let’s say six plus years u startup CTO and co-owner um then I was also former and university instructor in software engineering and we did that together with Vadim so shout out to him as well and I believe uh I always like to say I’m a developer first and educator second because I learned everything uh by heart i tried I failed and now I think it’s time I developed a lot of things and now I think it’s time to share my knowledge and maybe sometimes you see there is issues where you forget your microphone but that’s why I’m only learning to educate and share my knowledge the best way I can so that’s a little bit about me i think we can get started and uh start getting our hands dirty as they say so let I will meet you in a second but we are still here so but before we go and do uh anything else I just really want to um tell you about this course that Vadim was working tirelessly on for a very very long time and we’re finally done with it we are editing the last few lessons and we’ll be publishing it but you can already check it out you can already enroll to it it has everything that you need to know about React Native completely everything in very very much detail with the huge guides and videos so if you are considering if you are looking for a well ststructured course in React Native I highly suggest you to check it out and uh you will definitely not regret it vadim is actually currently even working to adding uh after each lesson each workshop that you learn uh educational exercises so it’s going to have even more value so guys check that out and I’ll be using a step-by-step guide in this tutorial that you can download by going to this to this link or going to the description of this live stream and finding and clicking on a link uh very similar actually the same link it’s going to be near the title saying uh get your asset bundle and step-by-step guide and um after clicking on this link you’ll need to provide your name and an email and we’ll send this guide that I will show you in a second uh to your email address so then you can reuse it anytime you want any changes I will do in the future you can get on that guide and check it out usually after the streams I try to improve the documentation if I see that people are having issues with certain uh topics I try to add more and u yeah make it even better so check it out if you need it but if you don’t need it it’s okay not to download it but yeah so let me show you this guide that I was talking about and uh we can close this off so yeah this is the guide uh in here I have like a short introduction of what we will try to learn of the text tag that we will use and a little bit more of the information but the main meat let’s say quote unquote is in this um let me reload it is in this part here you can see basically the lessons that will be covering everything and if you click on one of these lessons you can find even more information about it And um yeah probably I will not cover in the this live stream some of the very small things that I write here as let’s say uh little uh call outs i’m not sure how to tell uh tell what they are but here also you’ll have let’s say some comparisons uh more information how to do it step-by-step guides so I’ll be using this myself along this tutorial but if you let’s say do it later on make sure to go to the description download it and you can follow it along as well together with me but our first step is going to be setting up uh well actually before getting into the meat let’s see the comment section because that can be wild yes I see a lot of different comments and um yeah that’s a lot of comments about the volume but that’s already fixed I think and let me know if it’s not too low the volume if it’s let’s say good enough uh okay mhm lucas is here amazing tutorial the walking engineer thank you thank you very much uh nice to see you here as well go Lucas Mario yeah thank you thank you catalin thank you uh can we build large scale applications using expo 150% uh I’ve done it and I’ve used it actually I am using it in my startup there’s a lot of huge applications that use uh expo and actually this is the best way to build react native applications in general and in my opinion to build applications uh uh so yeah it’s a very good um very good tool framework to use uh is 10 stack query only for front end yes now will be yes the idea of the application is so good luck Lucas uh thank you very much uh coders loi station what about style guides and test cases sir so we’ll be uh we won’t be covering test cases uh here today but again keep on suggesting uh things that you want to see in the future we can definitely expand upon this tutorial a lot more because now as I mentioned I’ll be covering like your first first first step if you want to let’s say build your own back end build your own front end so it’s going to be very low level only the most important technologies um I didn’t use over-the-top let’s say technologies so that basically I’m trying to help you uh get a job let’s say or uh build your own application and then later on we can expand on even more things with time so keep on suggesting that um can you provide the link i imagine um I’m not sure if it’s a link to the React Native Mastery or to uh I I would assume so maybe if someone is watching from the team could you uh paste a link of React Native Mastery but I believe you can also find it in the description below so yeah check it out uh can I follow this tutorial with an Android phone yes you can totally do that um it will work just the just as we will do on iOS it will look a little bit different but the the differences will be like minimal so you can definitely do that hello from Turkey hello from Lithuania hello can we get a link to this notion site okay so maybe about this notion um you can uh get a link I think I can try to copy it as well so give me a second but you can also get this this link in the description of this video um but let me actually um okay okay okay let me go here and I will try to download it i mean try to copy it and then send it to you guys okay it’s here so tell me guys how are you doing how are how is your week are you ready for the weekend or what are you going to do during the weekend do you have any plans or is it okay and of course the ads uh no um no link in the description okay that’s interesting but here it is so yeah here in this link you if you open it you will uh be redirected to our site there you need to provide your name and an email and we will send you in the email the link basically to this notion site so feel free to check it out okay think we are ready so let’s start working on it so yeah if you open this guide go to the first lesson um not coding question is the cold cucumber soup from Poland and Lithuania um I don’t know about cucumber soup we have the cold um it’s not a cucumber how is it in English like borch but uh I’m not sure how that that plant is called in English uh but it’s like a violet kind ofish but the cucumber su probably it’s from Poland i’m not sure but yeah let’s continue with that uh yes so if we go to our guide click on the first lesson set up a fresh NodeJS project and let’s see what we need to do here well first things first yes beetroot that’s our soup that leak didn’t work how is it not working it is working for me you provide the name and email and download it um yeah I’ll try to double check it with my team uh but um it should be working can okay yeah I’ll let you know in a second uh of what’s happening there oh it worked perfect then so yeah let’s now get into the meat uh so before we begin it’s very important to ensure that basically we have NodeJS installed on our machine so as I mentioned already in the presentation NodeJS is a JavaScript runtime that allows ows us to execute basically JavaScript outside of the browser so to check if you have it installed already open your ter terminal and simply write node slashv dashv probably and you should see your basically version of the node if you see some sort of an error or anything else except for this version it means you need to install it and in order to install it just go to their official uh website that I provided here and download the LTS version basically if you install it you can it’s very easy to do that and then we can continue together yeah so now because we see that we have already our node installed we can create um basically we can paste this um commands in the terminal and by by doing so we will create a new directory called Apple reminders API so first of all let me navigate to the page where I want to create it it’s going to be um yeah project documents projects and in here I will paste uh the command so first of all let’s do it one by one first of all I will create a new directory with the name of Apple reminders API so enter now if I do cd which means basically to go we can copy the name of that the directory that we just created and we will go to this directory now we are in here perfect so let’s see what we need to do next well we need to initialize our MPM to do that it’s very easy just run npm in it and that’s it so let’s copy that run it and um yeah and that’s it we are basically inside the initialization so we need to provide a few let’s say inputs here if you want you can leave them completely by default and just click enter for me this is the good name so I will click enter the version is going to be 1.0.0 so again I’m going to click enter the description it’s not it’s optional so we will not provide it enter and the entry point for us it’s going to be index.js so it’s also I’m just going to click uh enter and the test commands as I mentioned we will not be covering tests today maybe we can do it some in the other tutorials if that’s something you’re interested in but I’ll just click uh enter as well and the git repository well I highly suggest you to work with it but uh I will do it later on keywords no keywords and author well we can give author as Lucas license IC and this is basically a quick overview of what we just went through so is it okay uh yes i’m just clicking enter and that’s it we’ve initialized it so now we can go uh to our uh where is it let me maybe rearrange a little bit like this go to VS Code if uh if you don’t have VS Code it’s um very easy to install it just um yeah you can go to your browser go to VS Code download VS Code and you will install it but if you’re using any other code editor that’s completely fine and it’s going to work just the same so now that we installed it we need to uh run mpm install express well first of all we need to open the terminal so actually not the terminal but we need to open the project that we just created so let’s click open and let’s go to our uh it’s in here in project and Apple reminders API so now if you navigate here let’s click open and we are inside our project you might get this little popup so just don’t worry click yet click yes I trust authors and that’s it we can close this welcome we can open it here and we can see yes this is exactly what we’ve provided while creating uh while providing basically those inputs so now it’s time to actually open the terminal so let’s go terminal new terminal and in here we will paste this command to install the express framework so let’s copy it paste it install it and u yeah yeah yeah it will install it very quickly and you will see that it created this package uh.lo and node modules right away and you can also see that inside our dependencies basically our project dependencies we have already express with a version of 5.1.0 zero perfect that’s very good so we can continue further now we will be enabling uh the EA6 uh modules which is in my opinion very neat it’s going to make the code a bit more readable and uh let’s say more modern uh so to do that we simply need to pass the type module in our package.json actually the only thing it will change is instead of doing uh the const uh dot basically require we will do import and then we will say what we’re importing that’s a little bit of a modern more modern way of doing that so let’s go here let’s add the type of module and continue further so now we will be creating our first entry file with a very basic basically application so you can simply copy all of this code because yeah I’m for now I’m copying the code but later on I’ll be writing myself uh but yes I will copy this one just because it’s a basic template and you will have it also in express uh documentation so we copy that code but before doing anything else what I always do uh is I create one folder called source in this folder we will keep basically all of our source um code basically all of the code that we will create now and um yeah this makes it more readable and um that’s a very good practice so inside the source we need to create our um entry file which is going to be index.js so if we create that we can paste the code that we just copied in this index uh file so let’s quickly go over what this is doing well first of all we’re importing the express that we the dependency that we just installed then we are creating the express application instance and later on we will be using it here we are simply specifying on which port we want to run our server uh so yeah you don’t need to have have it in a variable you can just pass it as a yeah like as 3000 but later on I’ll show you even a better way of having it and then we have one request already created basically to the um URL slash and this URL will basically that’s kind of a route that we’re defining and inside here we are saying okay what this route will do so when the user goes to this uh URL what’s going to happen well for now we are simply going to return hello world later on we’ll expand it and lastly we are saying here listen to the port that we define here so this in this case it’s 3000 or you can have like 3001 or yeah any other port uh that you feel is better and then um we are console logging that okay example app is listening on this port so once you have this all of this code click command S or control S if you’re on Windows to save this and now we need to run our server so if you go here uh what we will need to do is once again open the terminal you can either open it like this or with the if you didn’t close it you can run it right away here so what we will say is that we want to run our server and it from the entry point of source so going in here and index okay let’s click enter and right away we see that example app is listening on port 3000 that’s amazing so if you’re following the um if you’re following my guide that I created you can open just click on this uh link and you it will open you basically a localhost uh website or you can simply write yourself here localhost 3000 click enter and you will see hello world response so now if we go here and change hello uh not just developers if we save it then we need to restart actually we need to uh yeah restart it uh yes let’s go here loc local localhost 3000 and it changed to local hello not just developers so yeah like this is specifying the route the link that we’re going but if we would say here uh slash and not just let’s say if we go back here if we try to reload this actually yes let me for now I will show you later how to solve this and we will not need to restart it manually every time but so bear with me this would be insane but for now we do need to do that so if we go here if I’m going just to slash it says I cannot get because we don’t have any route that’s only like slash slash we have a route however with slashnotest so let’s try if it actually works like that if we say slash not justest and click enter we’re seeing that okay it works but we can specify many routes we can say uh okay so then let’s have also a route that’s only going to be slash and if we again we need to reload our server and go back here so now if we go only to slash it’s going to work to and redirect us return us a response of hello world the same is for the not just it’s still working so basically both of these routes are working well perfect let’s see what we can do to further to make it even better make the initial setup even cleaner well I will introduce you to the environment variables this is a very important file in your application your server back end because hard-coding configuration values like port numbers is quite bad and especially uh hard coding and inside not in the environment file but uh adding let’s say somewhere here inside the application your API keys is horribly bad because it’s very insecure are instead we use environment variables for that basically uh env file so you will have um you will have this file only for yourself you will not if you even if you’re using git you will not push it to let’s say um to your git uh github gitlab whatever you use even if you have this file here uh you will need to create let’s say once you like um host everything to the cloud you will need to upload it there as well separately so yes because it’s very insecure to share these or paste hardcode these uh API keys these values inside your application anywhere so let’s just do that first of all let’s create a new environment file so to do that just in the root root uh directory click anywhere and say new file now in inside here we will say okay we’re creating dot environment file and for now we will have only the port as u as our one environment later on we will add also our de database key which is a very sensitive information and that’s why we will have mainly this environment file 4 okay but now that we added this port how can we use it somewhere in our application well to do that it’s actually pretty simple you do it and here I have an example um but yeah I will guide you through here but we are simply saying that we are taking it from proc process we’re taking it from environment and we need to then specify the environment variable name so in this case we provided the name of port so let’s copy this name and say port okay now we can save it and now this port will be taken from this environment variable which is basically what we provide after equals but let’s give it in in in case there is some kind of misunderstanding and this port is not available let’s do it and I say it here as well let’s have it uh an or statement and basically fall back to a port number 3000 so basically now we’re saying take this port value from the environment variable but if it doesn’t exist simply use 3000 okay so now you might be thinking that it should work but if I try to reload it’s still saying that we are starting on port 3000 even though we provided it well yes because our uh server doesn’t know that we already created and what kind where is this environment file uh how is it called so in order to use that we will need to uh specify in the command that we are using the environment file environment file and we called it uh env so basically we’re giving this this exact name and we’re saying that okay so this file is going to be our environment file so use that where whenever wherever we use process environment okay so now you remember I said about like always needing to stop and restart stop and restart our application well it would be insane if we had to do that after every little change so we can pass another flag called watch and what this does it basically says to the server watch for every change and whenever you I make a change here and save it reload the server automatically so that I don’t need to do it myself okay and lastly we need to say okay so now our path is in um basically entry point is in source.index so now that we have this whole command if we run it we can see that the port the app is listening on port 3001 that means our environment variables are active the uh the server is able to read them and now if I say let’s say I remove this and save it you can see that it’s restarting also automatically our server so we no longer need to do that manually anymore well that’s amazing but remembering this long name every time to write would be also a little bit annoying so we can create a short script and it’s a very common u way of doing it if we go to basically copy this one uh yes copy this one and if I go uh to let’s say package uh JSON under scripts we can create our own scripts so basically we will say okay well the script name will be dev and I will show you what the this name is and once I call this we need to call this whole long function so let’s save it and now if I in the terminal if I run to run our server the only thing I need to do is say npm run and then specify the name of this script so you will have quite a few scripts here like for testing and you can even have for various different things but for us the most important one is right now dev so if I say npm rundev and click enter we see that it’s running this long command and we’re listening on the port 301 amazing now the last thing that is quite important to know is also that um as I mentioned committing uh to the version control to the git the environment file would basically make this environment file useless in a way because it’s very insecure to commit such a um valuable let’s say or crucial information later that we add like our database password because is if someone gets that database password they can connect and basically remove all of our information and that’s quite bad if you probably you understand that so let’s create another file called git ignore and most likely once like when when you are working in a corporation or you have a job you will be using some sort of versioning control like either github or gitlab and they will have this git file so what in this file we specify which uh files or folders from our um from our application we do not want to push to versioning control and usually these are the files that we can configure easily ourselves or very let’s say uh private files like environment so one example would be node modules uh node modules this uh increase the font size okay I’ll try doing this way and I I’m seeing some of the comments guys i will check it out very soon after like every lesson i will try to get to your comments check it out and then we can continue right now I want to like keep it a little bit uh yeah of a flow so now yeah we specify that node modules we do not want to uh commit that because it contains well uh all of our dependencies installed it’s a very huge folder and also I can configure this folder very easily by running npm install and that’s it basically it will look inside our package uh JSON and based on the package.json it will regenerate the node modules so if I can regenerate them that easily I don’t really want them to commit them and also a very important one is the environment file and it’s because we don’t want to commit that because of what I just um talked about basically it prevents us from accidentally exposing very sensitive information so we are almost done at this like first configuration lesson it’s probably the most boring part but it’s very important to know how to configure it properly so that we could get uh get to working so now let’s close all of those uh files and I will um introduce you basically to a tool to test our API calls so of course we know that before deploying our API we want to verify that every route that we define here works perfectly like they they do what they need to do they return what we need to return and yes like that so there’s many different API to testing tools like one of the most important ones is probably a postman uh now in the recent times it’s getting like they have a lot of functionalities it’s kind of over complicated ated at this point uh to start with but you might see it quite often also insomnia is very popular one but it has a little bit in my opinion a better feel for me at least so I will be using Insomnia but feel free to use any other tool it they all work mostly the same they all do the same thing there’s one called Bruno which is also very popular now like more of a let’s say um I’m not sure like indie kind of for indie developers in a way like hipster that’s what that’s the the word I was looking for uh but it’s also very cool so Bruno is amazing okay so let’s download and install Insomnia from their official website which is insomnia rest so once you install that um I have well I already have my account but uh you will see in the main dashboard uh something like this saying that here’s are here are the organizations you own and uh you simply of course first of all install it in your computer you simply need to press open and what this will do it will open insomnia for you and you will see actually exactly the like what you see now here so what we need to do now well first of all I I want to create a new project uh because I want to create it locally and I don’t want to always sync it with my cloud if you’re working with a team you will most likely always choose like the cloud sync and for that you already have one project created but I only want I want to store everything locally for for this project um yeah so it doesn’t really matter too much for you um if you’re working in a company uh they will say which one to use if they are using their own they will probably import in your computer so yeah let’s call it something like personal uh local project and click create or continue then the name now in here let’s click on new collection and let’s call our collection so we will call it reminders API and let’s click create now you will see something like this basically a blank space with u not much so yeah here I have all of the things you need to know and now we’re here uh the creating your first API request it’s actually kind of easy to do you simply click here on a little plus sign you say let’s create a new HTTP request uh you can even like give it a name if you want so we can rename it and say uh get hello world something like this and um now what we need to do is you need this localhost URL here so let’s remove this and copy this local host URL actually now if you run this it’s not going to work because we are running no longer on 3000 port but it’s 3001 and I think I didn’t yes I did not run my application so let’s do mpm rundev so if we go here maybe I should increase size here as well so now if I go um if I go to this local host and on port 3001 we’ll see our old um project so now let’s copy this URL from here and go to back to insomnia in here at the top let’s paste this URL and you don’t need to add this slash because by default it is added if there’s nothing after it but I will add it just for demonstration purposes so now that we have this we see that the request is get and we know what request to use because here we say it’s get so if we go here and send this request we will get exactly the same response and let me maybe also increase it hello world but if we say here not just get we are getting hello not just developers response so it’s um yeah it is how it’s uh what we wanted to achieve in our first let’s say uh first lesson so now let’s go to the taskboard we will take a short break and let’s go to the database uh lesson now I think we can uh check out some of the comments and um yeah there’s a lot of them so probably I’m not going to be able to respond to all of them but yeah um um uh hi will you implement authentication and CSRF token handling no and in this tutorial we will not do that however I’m thinking to do like a separate tutorial for authentication only because that’s kind of like a a broad topic so I didn’t wanted to cramp everything in one uh project one tutorial because you see how deep am I going in some of the things here and I’m even explaining like the very very big like let’s say simp the simplest things quite um detail so having authentication would have been quite an overkill um okay um this is amazing regelio thank you thank you very much uh nice to see you as always in the streams that’s amazing yeah we’ll use Lucia no as I said yeah no authentication um um why not use nodebond package to run the ser uh to run the server automatically i feel this is uh like a lot easier way of doing it it’s uh everything built in you don’t need anything extra it’s very simple and very effective at this point uh do you implement MVC or just simply yes we will work on the full MVC model and that’s one of the um lessons in here we will use MVC plus service layer so basically the way how probably the biggest corporations are handling uh the ones that are using like uh let’s say express framework or even more like uh structure so we’ll cover all of that uh soon soon so yeah I think um more or less uh answered a few we’ll have a short like again burst of implementations and then we’ll come back to to to to some of the comments okay so now database um well probably kind of you know if you don’t why we need a database is basically to store and manage our data we need to somehow persist that data and uh when the user let’s say creates a new reminder we need to store it so that later when he opens his application we can actually retrieve that data and show it to him so there is a lot of different types of databases and uh for this project right away I’m saying like we will use a serverless database uh posgrade SQL as well and we’re using posgrade SQL because it’s probably the most popular I would say and it’s very good so yeah that’s that but let’s really uh quickly cover all of the t like not all but main types that you might encounter of databases so first one is self-hosted database either on your virtual machine or even on your own servers that you own this is basically where you install configure and maintain the database on your own um you have a full control yes it can be optimized like for very specific use cases but it requires insane amount of database management expertise and knowledge usually you would have your own database management team only for that so it wouldn’t it’s kind of complicated because you need to handle the backups the scaling uh everything everything yourself you need to set up and u it’s very complex so it’s not going to we are not going to be using that and if you’re working on creating your own application you’re also definitely not going to use that bigger corporations with the huge teams huge let’s say budgets may be using this uh so you might encounter this but for you nothing will change from what I will show in this tutorial then there are managed databases something like RDDS uh Google also has one um and uh basically it’s a cloud provider that manages your databases it manages the backups the scaling and all the maintenance so you kind of don’t need the full team to ma maintain it it has like automated backups and um this is probably the best suited I would say uh if you can’t really afford this for constant high traffic applications but it can be very expensive if you do not optimize it properly so basically if you leave default options this can get crazy expensive and if you don’t really know what you’re doing so you are required to fine-tune uh for the cost and performance quite well so you still need to know what you’re doing and there are uh serverless databases uh like the one that we will use today Neon there’s a lot of them there so use whichever you want i just felt this is the easiest one to use so that’s why I chose for the tutorial and it’s a good one actually also not that because it’s only easy but yeah it’s like fully cloud managed it al auto automatically scales based on the demand and we pay only for what we use so we don’t need to manage any servers it’s kind of costefficient because um for unpredictable workloads because you kind of don’t know maybe sometimes the traffic is low sometimes it’s very high so it balances out in a way it’s very easy to deploy and we’ll see how to do that and start using it however it also has some cons like uh you have less control over tuning and optimizing it potentially there might be it might be more expensive if your application is consistently having like a very high traffic but um it’s still it still can be good so it’s very difficult to say which one will be the cheapest it depends a lot on your um on your uh like use case but uh serverless if you’re working like on a startup is more more times than not will be the way to go so again why serverless well for us it’s the best choice because it’s easy to set up start using it eliminates any maintenance task it scales automatically and it has an amazing free tier so basically you can use it for free even after even uh publishing your app to production it’s still good for free for quite a bit of uh data and time only when you reach a certain threshold uh threshold you will need to go into the paid tiers again however if you’re using consist consistently high traffic applications you kind of can think about as RDS so now let’s see how to set up our database well first of all let’s just go to Neon’s official website which is um neon.te in there create a new account and after creating this new account you will see a this screen like exactly this screen maybe you will need to click click new project as well but I think it automatically opens this screen and here we need to provide the project name for our database uh so let’s say it will be reminders API uh I think I have the same so maybe Apple reminders API um database name you can provide it or you can just leave uh Neon DB we can say reminders uh database um and then you can select a region so in in theory you would select a region closest to your main target audience the people that will use your application for me I will use the one that’s closest to me uh so yeah it’s either central or west let’s say Frankfurt and then we click create now that we are in this uh okay I see there’s some a lot of questions um uh um uh hello Lucas could you please show us how to install a React Native Expo application on iPhone without going through App Store for example if you have an app you want to install among friends you mean basically not to publish your uh application to the app store so that only you and your friends could test it out and use it let me know if that’s uh that’s that real developers use Microsoft Access for database concern dodge okay uh where do you get your app designs do you do it uh or do you outsource it so it really depends uh so if you’re a small team usually you can do it yourself um for for a developer it’s good to know the basic styling but if you are let’s say in a big team big corporation more times than not they will have their own like UI UX team that will handle these things so you will only need to know how to apply these tiles but uh yeah like in a startup you would need to do it more times than not yourself unless you have a lot of investments okay let’s continue uh so now that we logged in we provided everything selected the region we will need to connect our database but before that I really quickly want to talk also about using raw SQL or OM and what is it a difference between them so um uh at a very high level an OM is a tool that uh allows us to interact with a database using object-oriented code instead of writing like raw SQL queries queries um this which makes the database operations easier to read and write so here you can see an quick example so here is how it would look in a raw SQL so you need to remember like the structure and everything it might be for some people very unintuitive and for example a drizzle or has something like this which makes it for maybe even easier to read and well again RMS have additional benefits on top of that but we are focusing on a key difference between these two and uh yeah it’s again also worth noting that many ORMs allow developers to write SQL queries when needed and it’s very it’s kind of common for well it’s not uncommon maybe that would be the better way of putting it for companies to use a mix of both like OMS for simple operations and raw SQL for performance ments but today we will be using raw SQLs because well this is a learning project and I believe and I I would argue like very harshly that it is a lot better to understand SQL and it’s a lot more valuable to learn that uh than simply relying on an RM so by working with directly with these SQL raw queries you’ll gain a very good foundation uh of database interactions and you will definitely I’ve never heard of someone trying to apply to the job and uh the uh job is saying no sorry we cannot take you in because you don’t know the ORM that we are using but not knowing an SQL queries might be a reason you are not accepted so it’s kind of important to know it it depends on your position but it is important and here you can see also like a quick uh comparison between using like uh an RM and Ross SQL why is better so main probably difference between is the performance one and the Rossql often is faster because there’s no overhead or no like abstraction I meant and um yeah but here you can read a little bit more about it and let’s I see music forever is asking why we not use superbass and you could definitely use superbass here I just thought like uh neon fits better In our case it’s only like a posgress database it’s a simple thing it’s very simple to deploy it and use it if you want you can use superbase um it’s just as good uh but here yeah I chose neon so connecting to our database yes let’s continue so in order to uh like write these uh SQL queries we need a library for that and we will use um install pg uh I mean pg which basically stands for posgress and this is the most commonly library it’s called node posgress which allows us to execute these queries and it also allow like supports uh connection pooling which is very good for performance and you can easily adapt it to any other services it’s yeah very very popular one so to install that just let’s copy this command and go back to our code let’s stop this server with Ctrl C and let’s paste this command install pg after installing it you can see that it appeared here so perfect now we need to connect to our database finally so if you go to your database uh dashboard and click here on connect you will get this uh connection string copy it in here by clicking copy snippet and go to your project for me I will um it’s not a problem to share this password because I will remove this database uh right away and I don’t I have like limits set but for you I would um be very careful by sharing this password so once we’re here let’s create some more folders to keep the structure very good let’s say in the our application so let’s click on the source and click create new folder and here we’ll create config this is where we will keep all of our configurations in this case we will have only one basically configuring our database but you might uh encounter more things in let’s say very big projects uh but what you will see definitely there is going to be db.js so in here what we need to do is um create this connection between our server and our database to do that let’s go to the environment file that I uh introduced earlier to you today and we will need to add this connection like this so we will say uh we are creating a new uh environment variable called database URL I think yes and then I will use this URL pasteed basically this connection string from here so now that we have this URL we can go uh and create this connection between um our server and the database this is the code for that uh I will copy it because there’s nothing crazy here and I will go over of what we’re doing so go to this DB and paste this code if you do not if you did not download the notion guide just pause the video and um you can write everything out but basically what we’re doing is we’re importing the pg the library that we just installed we are creating this connection pool that I talked about by simply passing the connection string from the database URL that we defined in here then in we will remove this uh function very soon but we have this function just to test if our connection is working properly so basically what are we doing here we’re connecting to this pool basically and we’re trying to query the version of our database right now and simply console log the version if it does this if it connects and uh returns me uh basically successful query that means everything is working and we can finally uh release the client otherwise uh something is not correct if it won’t return us the version so let’s see what it will return and here we’re just simply saying at the end of this file just call this function so the run this function call this function so let’s open uh our of course let’s save it and then let’s open this um terminal once again you can do terminal and new terminal or create or use a shortcut in here we will say run the script uh run the node is going to be in source uh in config and in db once we click enter uh we can oh yes it’s not going to work because we’re trying to access here the environment variables but we’re not providing okay so which where are those environments stored so we need to provide environment file env yeah here I’m talking a bit more what we’re doing here but what we can see is we have the correct response which means everything is working perfectly so now we are done with yet another lesson and we are kind of uh already 1 hour in but it’s okay I want to make it detailed so let’s go to migrations as our next lesson uh let’s open it up and we can now once again take a short break see what’s happening take a sip of water because I didn’t do that for a very long time already okay no new comments um it’s good it’s good so I think we can continue u if you have questions just let me know if you have any feedback always uh let me know as well and let’s yeah let’s do some more coding so now that we are here I hope I’m showing yes we will learn a little bit more about database migrations and here I have a huge block of text uh telling you what are they but in a way migrations are changes to a database schema that are version controlled this is very important and um we create them in order to apply these migrations and the I mean these changes in a very structured way this allows us to have basically maintain a very consistent u database schemas across different let’s say environments and typically companies will use different tools for this so there is a very popular one connects SQLize uh this is already like or even Prisma i saw someone is uh asked why I’m not using uh Prisma and um yes it’s because I really wanted to keep this whole thing very very low level and cover in much detail the things because not every company that you will apply to uh for a job will use Prisma there’s a lot of different tools that you can use instead of it and uh I just wanted to give you like a low-level knowledge of how to like create everything and work with everything and do not attach you to any of the tools that uh the company that you’re applying to is working like with different tools or with the same so yeah Drizzle is also uh a very popular one it um it also like an as an OM i gave an example with it previously so yeah but I just wanted to keep it very very low level as mentioned but so yeah these tools um help you a lot uh but we will simulate how it’s going to look like uh very very similarly so let’s first of all uh you will always have this migrations folder so let’s go to our project let’s close the config of the folder and let’s create another one inside the source called migrations inside this migrations folder you would usually use a tool to create this migration so yeah like there is it would be something to like migrate or whatever and um uh and then you would say like the the migration name that you want to apply and it will create a file similar to this first of all it will have a timestamp so let’s create today’s time stamp and it has um and then it will have a name of the basically migration that you are creating so for us it would be let’s say something I actually have some names here so yeah create user table so let’s rename it let’s create this migration called create user table and it’s more times than not uh will use this syntax also so yeah you’ll feel right at home when you see it it’s just you’re not going to create them manually so now that you created these let’s say migrations files um yeah like I’m telling here a little bit more about the naming pattern and it always will include the time stamp so how to write these migrations well here we have a little bit of an example once again um should I write it or just copy this is like a very yeah there’s a lot of setup let me copy and just go over but maybe I will like start writing them uh now let me know like should I do this setup uh setup code like in a writing everything step by step or just for now copy paste and then later on just get into the meat so for now I will paste it but yeah let me know okay so what are we doing here well first of all we’re importing the database um from this config file which is config db so in here we can see that we’re going to two like we’re going one folder back then we’re going inside config and we are uh going inside the DB um okay people are saying step by step so let me create this one like explained like this and then the reminders one we will write step by step then and from now on everything will be written step by step so here we are creating two different functions one is going to be down called down and the other one is going to be called up and this usually means we are migrating up and or we are migrating down so migrating up is usually you create some something new but if something didn’t work you create the migration down to revert the those changes back so what it means so in the up we are what we’re trying to do is creating a new table in our database so what we’re doing here we’re saying okay create table basically create a new table if it doesn’t exist yet because if it will exist it will not create and the name of the table the is called users okay now we need to specify what this table will have well first of all and almost all of the tables will have the ID which is going to be a serial uh primary key what what means it’s going to be like a primary key And uh it’s going to be auto incremented with every new record that you add so basically none of them will have the same ID all of the records different ID then it will have a name uh for the user this name can have like up to 100 characters uh and it should be unique and it can never be null so it’s a required field we need to have the user name and lastly we will have a created out uh which is going to be a timestamp and if it’s not provided once you create an every like new record new user we will default this timestamp to the current time stamp basically it will take the current time and add it as a created at and that’s it like we are running this query and if it doesn’t work we will catch it and throw an error now like how to revert this migration so if we saw that okay we migrated up but it’s something that we shouldn’t have done how to revert it back well we have for this this down function and what it does it’s simply dropping the table if it exists and the table name is users so the same as we created so yeah if we created it if we don’t need it anymore we call it down and then at the end here we will call a function so it’s either down or it’s either up usually again if you use a tool it might be something that you would simply call uh migrate up uh or migrate down or something like this it depends on the tool you’re using but for us we are going to specify it like this but like this part will look the same and you you will feel at home you will know what it’s doing so now in order to run this migration what we need to do is we need to say uh go like once again node we need to specify the environment file and it’s going to be so you could actually even create scripts for all of these if you wanted to so we are saying use environment file uh env source then we’ll go to migrations and then we will call create users table migration so now if we click enter uh we yes we are still calling this but we can go back to our it created it but we can go to our config db and remove or comment out this part because we will no longer need it we test it it works it’s good so I will remove it you can console it i mean comment it out and later uh we will you you can reuse it if you wanted to so now if we go to our neon console if I reload it um and go to tables under tables we can see a new table called users perfect with an ID as a serial with a name as we uh maybe I can make it bigger here yes with an ID as a serial uh with a name as a basically varch of up to 100 characters and created at time stamp so for example we can even create a record just in here right away and we can see that these two values have a default value but this one we do need to provide it so let’s say I will say simply Lucas and save it and it created a new record with a created at time step of actually right now but in in a different um time zone and with an ID of one well perfect so now we need to do the same for reminders and now we can try to write this uh reminders code or like migration ourselves so first of all what are we doing we’re importing the database from and we will say okay so let’s import it from config and database and adds very important unless it’s got otherwise it’s going to throw an error for you okay now that we imported we have two functions well one of them is called uh up so we will say export a synchronous it’s very important function and the name of the function is going to be up parameters it will not have any and Now we can inside it define the try catch uh so select this one the try catch right away try catch um I forgot the the word but basically yeah try catch in order to try to execute some code and if anything inside this block fails you will uh execute this so here we are again uh defining the query so we are saying await db and we’re saying query so from this DB we’re’ll execute the query and the query will be as follows so let’s adjust a little bit like this and let’s try start defining well first of all if you remember we will create uh table if it’s also very important to say if it doesn’t exist yet if not exists and now we give the name of the table which is going to be in our case reminders now we can start specifying okay what what fields will it have well first of first of all it will have ID which is once again going to be the same serial and also it needs to be a primary key i hope I’m not going to make mistakes in writing uh typos but we’ll see it because it will catch the error and console log it for us then we will add another um field uh called like reminder so we need to actually uh the actual reminder that user will save so it’s going to be again varchar and we will give it let’s say 255 characters then it also cannot be null that’s the only um like basically the most important part of our this reminders records like it’s the reminder itself that the users will save then we will have another one called notes and this can be uh empty it’s very like optional so simply a text will suffice then we will need to know if the user actually completed completed the reminder or not yet so it’s going to be a boolean basically either a true or false and if it’s not provided when we are creating we will default to false so basically because we kind of know that if the user creates a new reminder by default he’s not going to be done with it it’s a new one that means it’s still not finished then we will also need to know to which user this reminder belongs so the user will be an integer and we will reference so we say references and we need to now say the table name so if we remember here we created users table so we say it references user and it references the ID field of the user so basically this we are creating like a relationship between this user uh between this reminder and the user and also we need to say like if this user decides to remove his account so with it we need to remove all of his reminders as well because we no longer need them so we will say on user delete we will cascade and cascade means basically remove uh all of his reminders and lastly we also need created at time stamp and it’s going to be exactly the same as for the users table it’s going to be a timestamp which will default to current uh timestamp i hope I didn’t make any mistakes but if I did we’ll see as as I told already and then we will if there’s an error we will console log the error itself perfect let’s maybe add this as well here so now we need to create again another function to migrate down so let’s say uh not expo export a sync function and we will call it down and it’s not going to have any parameters it’s also going to be in a try catch block and in here we will simply say await we’ll call the DB we will also say we are running a query and the query is going to be very simple simple drop the table if exists and the table name is going to be reminders so now we will simply if it throws an error console log and console log error okay let’s save everything and now we can try to run this one as well so it’s going to be the same we were running environment file uh with and we’re running the source migrations and this migration let’s click enter now if we get go back and reload our database we are seeing that something did not work so I think I’ve made a mistake oh yes of course I made a mistake because I forgot to call the one of these functions so either because I only defined them here but I did not call anything so I’m calling now up so now if I run it again and um hopefully it’s going to work well I’m pretty sure it’s going to work okay it’s still creating it so yeah it’s done we can go try to reload it and we see the reminders table amazing now we will no longer create um records of our manually because that’s why we are here we need to know how to create them programmatically right so let’s get into our um um guide and see what’s next yeah here I explain in maybe even too much details of what are we doing here so if you have the guide you can always come back and read it again this guide is going to be always up for you if you download it like yeah and I will keep on improving it so yeah here’s some explanations and here I’m explaining of how to run it the migration and even how to roll back so yeah so for example rolling back I can show you very easily for the create uh for the create reminders we say that oh I made some sort of mistake and I forgot to add one of the fields well you could in theory create a new migration just for that but for me I am lazy so I will call for now I’m uh calling again down so basically migrate down i’m calling this same um migration and then uh we’re waiting a second while we’re waiting uh whatever I pulled that from clients how can we pull the API what do you mean exactly with that brian Harris Prasad thanks for the story bro thank you very much for watching i really really appreciate you guys staying with me on a late Friday or for some early Friday or Saturday uh yeah I really really appreciate you being here guys or any other time maybe you’re watching it after the live stream also so yeah now if we go to our console and if we reload we can see that we no longer have a reminders table because uh we rolled back we dropped this table because it existed so um but yeah but we need it so now let’s say if I made a mistake as I had an example previously I would add a new field here let’s say um not sure what you can add maybe due date something like that due date and then I would define here what it should be but we’re not going to complicate that much so we will leave this and let’s run the migration once again to uh with up to create this table I’m wondering if this is full stack yes we will cover later on um how to create the front end of this application basically your mobile app with all the reminders displayed how to interact between you the back end that we are creating right now and your front-end application uh for each load this migration check if it’s created or not i’m not sure if I understand exactly uh but yes like you would probably check if it exists or not uh always just to be safe um okay so now we can continue with our guide and go into routes this is where the things are starting to get uh more interesting maybe we’re kind of leaving the setup uh ground and um continuing kelber hello hello nice to see you here nice to see you hopefully you’re having guys a great uh evening so in this lesson as I’m stating here we’ll dive into creating uh the CRUD operations and organizing them properly so what are the CRUD operations it’s basically how we will create new data and store it in our database how we will fetch that data and retrieve it how we will update that and delete that so let’s start with a very simple and I will no longer copy my code uh although here it’s a lot of code but uh I want to show you how we do that uh step by step so now we can clo uh actually run our server and if you remember we can run it with mpm rundev click enter and now it’s watching it’s going to be reloading so we can close it we can close these migrations we will no longer need them and we can even close these folders let’s go to the index and let’s try to create different um routes so for example there might be a route uh to post so but because right now I can only get these like I can I’m only calling get routes so to get all reminders get a single reminder but what if I want to create a new reminder well in that case it’s we need to call post or to update you would either patch it or call.put uh then to delete all of them have different um different um basically requests even though for example let’s check at delete and rem and patch they have and even get they have exactly the same URLs all of them so yeah that’s that’s going to be a topic we we are dis basically discovering now a bit more so yes we will need one route which is going to get us all of these reminders and to do that well first of all we are going to call here uh slash reminders and for now let’s just return let’s say get all reminders and maybe I can even remove these comments uh too much i no longer need them okay so we have to get all reminders but I maybe want to get one reminder so in order to get only one reminder we need a way uh to pass the ID inside the URL and if you worked with web apps it’s it will be very familiar and to pass that ID we simply say like this and specify the name of the variable uh the parameter that we’re passing it could be even like name or yeah whatever for us it’s going to be we will be passing the ID because that’s how you will usually be retrieving one items items one item so get reminder by id then we also need uh one more request to create new reminder so we will say call app dot post and we will create uh new post request and a post request uh when are creating we can simply call slash reminders the same as this one then we are getting the request and response and we are say opening an arrow function inside here we are specifying okay what are we returning so we will send back to the requester to the user saying yeah you called create new uh reminder okay now I will like a little bit copy paste because here not much changes for example Here I only need to change the patch and have reminder and actually here I already made a small mistake because here I also need to say we’re calling reminders ID because that’s the best naming structure because for example if you had only like uh this and it’s a good that it’s good thing that I made this mistake it what uh what are we trying to get here are we because let’s say we have also users table so are you trying to get a user are you trying to get a reminder so to be very clear um in your back end to make the life easier for yourself and for your teammates you would usually want to be very clear uh with your naming so here we’re getting the reminder of ID even though in theory we could leave it simply like that um okay so we have a patch that we call to reminders and we also need to say okay so which uh reminder do you want to update so update old reminder and lastly we want to add exactly the same with dotdee and saying delete old reminder so now we have all of the uh most important basically routes and in a way almost all the only one that we’re not uh having is put and put and patch is basically updating both of them but patch is updating certain fields and put is updating the full uh record so now that um that we have these routes defined let’s go in our insomnia that we created a little bit earlier and say see how can we call all of these different routes because we only saw how to call the get ones so if we yeah we saved it we can see let’s go to our insomnia and or whatever if you’re using something different it’s totally fine you you might be using Postman or Bruno it will work exactly the same so now if we call our lo our URL which is going to be local host and we can see that URL uh in here basically on which port is running right now it’s local host but if you had this uh back end let’s say hosted somewhere it would be a different URL so but the everything that’s after it would be let’s say the same um so now what if we simply call slash reminders let’s See and okay it’s calling get all reminders ju just as we are what are we returning basically uh you can add here remember a lot of different codes so for example I could even say okay so before that let’s console log something hello or hello it should be hello so if we go back and now we also want to pass the ID so because if we simply call this with a get it’s gonna um it’s going to call the get all reminders and it’s a very good practice and that’s how you would do all the time create different requests in here for different requests well right so let’s say here we will have get all reminders and it’s going to get us all reminders but now we can create a new HTTP request and let’s rename it and let’s say get reminder by ID So now we need to specify a different URL so but you can kind of copy from here and paste here and just change the last part there is an even easier way in order not to like um remove the need of always defining this here so maybe I’m not going to show it because it’s only on like like that on Insomnia and it might confuse for others that are using let’s say Bruno or Postman but you can add let’s say um environment variables as well and I could use here instead of having always this local host I could have like this base URL and it will encode behind it the local host but just for not to confuse too many people let’s leave it like this so I would say reminders and then pass the ID of the reminder that I want to get so maybe let’s leave it one if I send it I can see that okay the return is get reminder by ID so exactly as we define here and we can also see that it console logged hello as we asked him to perfect let’s create all of the rest uh functions so now that we created both of the get ones we need to create uh a create request and in order to do that let’s first of all copy this URL as always but now this get here change it to post because and you can know to what it to change based on this little hint here so here we are calling post whoopsie patch delete and yeah and get so now we’re going to be calling post and even though the URL is I can simply let’s say go here copy it paste it not change anything and call it we are getting create new reminder and it’s because we are specifying which request are we doing and here we’re doing a post request and it’s also important to rename it so let’s say create new uh new reminder perfect so now we need to also be able to update these reminders if we are able to create them so let’s do go here let’s create a patch as I told there is a put one but we’ll use patch today then we’ll have um the same URL but we need to pass the ID of the reminder and I’ll show you a bit later how to get this ID from the URL that we want to update and it says update all reminder and lastly we want to be able to delete these reminders so we we can simply paste the same URL leave it as delete and call it delete all reminder perfect just rename it real quick delete delete oh my misclicks reminder then here as well update reminder perfect we have all of the requests that we will need for the reminder now we can check what’s next in our guide so now you can kind of already feel that this is crazy uh unmaintainable imagine if I had all of this for a user imagine if u I had even more let’s say reminders different lists different uh I’m not sure like likes or whatever so for all of these I would have to paste them in the same file well that would be in very confusing and very difficult to maintain to solve this issue we will be creating a new folder called routes and this folder will keep all of our routes separated so for example we have reminders routes so we will say reminders routes.js you can have let’s say user routes.js and you can even like have as many as you need and it will keep everything very clean and structured so let’s create these reminder routes what we need to do well first of all let’s go back to our index and let’s copy all of let’s actually not even copy but cut out all of these um requests uh with the command or control X let’s save this folder and go to the reminders route for now just paste it of course we will need to do some adjustments now but because it’s not going to work like that first of all we will need to import uh and it’s a different thing we will be importing router but also from express and router is what allows us to create these separated routes very nicely then we need to initialize this router like this so basically we’re saying this variable will become this router and now we can call this router so instead of having this app app we’re calling uh oh no no no we will be calling router.get router.get by ID router.create router.patch router.delete and I’ll show you in a second why because now we can simplify this uh whole thing a lot well first of all we need to export uh this not uh export this router that we just created and attached all of these routes to but now we can say that router dot slash uh without saying this reminders part router slash id then once again like this and like this so now it’s not yet finished we need to have one last adjustment so now if we go to our index file and inside here at the top we’ll import these routes so it’s called reminder routes and we are importing them from and they’re imported from actually it’s only one routes reminder routes.js so now that we can use these routes and we can tell our app uh instance to use them so let’s say we will say app dot use and we will say so now all of these routes that we are going to pass you here they will have a prefix of reminders and group them together and then we are passing this remind all of these reminders routes so now our application will know that okay if we are calling um reminders basically slash or reminders or just yeah reminders ID uh or whatever it will know that the prefix is like reminders and we don’t need to have all of them added here manually which simplifies the readability a lot a lot more and here you would do the same for let’s say user routes if to created them here you would say users and pass here user routes and once again it would work the same you would have user user/ ID and it would know which routes to call so now that we have this we can quickly go to our um insomnia and check out if it’s actually still working so if we call them like this we can see that they are still perfectly working and we simplified it a lot okay so we Yes we did all of this um Uhhuh yes yes yes we modified it and yeah here’s I’m explaining a bit more of what’s happening it basically appuse mounts these routes uh under slash reminders path so we it knows right away a lot cleaner where to go so now that we’re done with routes with very basic uh routes we will be getting into the meat right now and um it’s kind of important to uh know how to structure your application because if you just create all of the files or everything in one file it’s going to be a huge mess and when it when it’s a huge mess it’s going to be unmaintainable and you will not be able to create a functional maintainable uh and scalable application so usually you would select some sort of a structure to follow and most of the big companies uh right now and not only like also the small startups uh use this MVC plus service structure and um why you would use this I will explain once I’m showing but yes once again it’s called model view controller plus service pattern and it helps to us to structure everything so now I created this like analogy of a restaurant because we will be creating um three more folders so let’s actually do that first of all we will create uh controllers then we will also have the services uh not as a file i created it as a file that’s not good let’s remove it i need to create it inside as a folder so it’s going to be called services and then lastly we will also have models so now let me quickly with this restaurant analogy go over what it means so the controller will handle these requests and send back the responses to the user well you can right away understand that it’s kind of like a waiter in a restaurant so it’s the one that will take the order from the user which is a request it will pass this order to the kitchen to basically create whatever was ordered which the kitchen is in our analogy a service layer and it brings back the prepared dish which is going to be the response to the user this controller/waiter doesn’t process any data doesn’t prepare anything it acts only as an intermediary it doesn’t care really how the data is processed it’s only there to basically communicate uh this order then there is this service layer which is as I said is kind of like a kitchen inside a restaurant which is responsible for the logic and the actual processing of the data so the kitchen the service layer takes the order from the controller a waiter and processes it prepares the food based on the ingredients a model which we’ll talk soon about it can combine multiple ingredients into one and uh it can add specific processes like like cooking mixing garnishing basically all of the logic that you would do for um processing that data or creating that food happens in this service layer and then there is models layer which only communicates with a database uh in our like code example but in a kitchen example you can think of model like an ingredientre different ingredients to make those dishes so it doesn’t care how the food is prepared the final dish it doesn’t care about how it’s served it is simply a dish I mean a product and um yeah it provides essential components basically data to the kitchen which is service layer so that this final dish can be repaired so for example I need a tomato I’m taking it from the fridge and tomato in this case is a model I need some cucumbers I’m taking let’s say reminders and processing them and passing back to the waiter maybe this analogy will help you a little bit easier to understand like why are we separating everything so much and I will also have some examples for example when in the service we need different ingredients uh and we will call different database um tables so yeah we will see how this all ties up in a not a restaurant but in a coding environment so let’s continue so the first um actually the the first one um layer let’s say in our application will be the routes layer because that’s how we will know which route was called so it’s either reminders slash or user slash or reminders ID and then this router will uh specify which controller to use so let’s say let’s go here and let’s create our first controller which is going to be called reminders controller so if we go here um let me check if the stream is still good if there’s any questions or anything so far uh hey Aditia nice to see you here you’ve been here well you’ve been in Discord yesterday so today here very very glad to see you sir Josh uh hi please just join how do I get started please yes uh I see our team member valuable team member just posted um sent you a asset link so just download that and you can have all of this uh what I’m going through um yourself and then after the the stream ends we will post the stream on this channel so you can always come back re-watch at your own pace stop whatever we will never remove this tutorial so feel free to go at your own pace you don’t need to follow me uh like uh in real time let’s see what else uh Ji subscribed thank you thank you very much i’m so happy to see that you are guys enjoying at least some of you not sure if everybody but thank you very very much J uh okay I’m late today what uh we are building today yes we’re building a full stack application a very beginnerfriendly um application basically taking your first steps into full stack development and uh yeah I think we can continue now and um yes what I was talking yeah oh yeah creating those uh controllers uh let’s go to our controllers folder and let’s create a new controller so we will call it reminder controllerjs Perfect um so mean you could have here many different uh controllers so user controller I don’t know likes controller or whatever so all of them also will be se would be separated for us now it’s a good example with reminder and actually um yeah I will tell about it a bit later so now let’s create this controller first of all we’ll say export const and give the name so it will be called reminder controller and now we will inside it specify all the functions so in theory we will try to follow exactly uh let me close this user because we will not need it and actually I can even remove it now because we will not need it um okay we will follow this structure so for example we see okay we have get all reminders well okay that means we need to create a function to get all of those reminders so we will call it just like that get all reminders uh and it should be camel case so here like that uh this will get a request and response the same as we get here request and response and then we will specify what this function needs to do so for now we will keep it uh keep returning this later on we will add like all the data interactions with database but as you remember it’s not happening at this layer yet so we will simply uh have this response still get all reminders so if we save this we can now go back to our reminders table uh remind us routes I mean and then import this reminder controller so we would import it like this saying reminder controller from controllers reminder controller be very careful and add this add this JS at the end because it’s going to crash for you and now we can use it so we can make this a lot more simple so we can remove all of this boilerplate code and simply say reminder controller and call get all reminders that’s it it knows that if the user goes to this route which is reminders slash I need to call this function and that’s it nothing else and pass the request and response to it so we go here and you can go here by clicking command and on this or control on Windows and on the name and we see which function is going to be executed and what this function will do it will simply send a response to get all reminders okay perfect but now we need to do that for all of the rest uh functions so here we can see okay we are trying to get reminder by ID perfect let’s do exactly the same so maybe I just even will copy it and say what we need to do here is get reminder by ID and uh what is it complaining about oh I yes I forgot to add this comma here we need to separate them basically okay now we’re getting uh yeah the response will be this one so we can copy it from the get we can go to our controller and paste that we know that the response is going to be exactly the same and now we can simplify this as well very easily reminder controller get reminder by ID okay saved let’s go quickly create the rest so it will be I think it’s called yeah create reminder we get request and response and in here let’s see what we were doing we were returning create reminder response so let’s paste it save it go to our routes remove all of this boilerplate code now leave this one say reminder controller and create reminder last one not last one before the last one is to patch so we will create One more okay like this we will say a sync and we will call it update reminder we will take request and response and we will return let’s see what okay we’re returning this one let’s paste it back and then we can very nicely once again apply here reminder controller dot update reminder and now it’s the last one so let’s create quickly a sync we will call it delete reminder request and response and then we will have response send and delete all reminder and lastly just say delete reminder perfect let’s save this let’s save this now we can go to our once again insomnia and we can and we can uh test it out so let’s say if the lead is still working okay they are still all working amazingly just as before um yes so let’s see what we need to do next we created all of these reminders uh all of these functions i mean we are using all of these um controller functions inside our routes uh and now we say yeah basically I’m telling here what we’re doing so feel free to read it out um so now it’s time to actually handle some data from these requests because in many scenarios we will need to get uh the ID for instance when we are creating when we are updating or deleting uh a reminder from the URL or maybe we will even need to get some data from the user so for example when we’re creating a new reminder we need to get the actual reminder and the notes for it so we need to somehow get this data and to do that it’s actually very very easy well what we need to do is we need to get it from the request then all every request will have this params and then the name of the parameter that we are passing in that URL so let’s see how to do that look for example in the get get reminder by id and also I’m here parsing to int because if you know like all of these um are passed like ID not like this but one two they’re a string but we need to convert them to a number in order to actually pass them to the database sometimes databases also store the ids and strings so you would not need to do that but for us it stores that in an integer in a number so we need to parse it to an integer as we are doing here so if we go back we will say here uh const and we will say what the the name of this variable so we will get call it reminder id and as I said we will par parse this id to integer and then we will take it from the request so from here and in the request there will be parameters and we will okay so how is the n what’s the name of the parameter so if we go here and we check for get reminder by ID we called it ID okay so that means we can copy this come back here and say that request parameters should have ID and in order to test if we are actually uh getting back this ID we can a little bit transform this and add these different quotes under escape i’m not sure how they’re called and we say get reminder by ID and we specify with this syntax of inserting this variable uh reminder ID so now if we save it and go to our insomnia we say get reminder by ID and uh we pass the ID one if we save it we get ID one if we say let’s say ID5 it’s working perfectly that means we are getting this ID we’re parsing it and everything is amazing from the URL part you could pass many different URLs so you could have here uh also like ID and then um name and u yeah like different names but you would get them exactly the same like request params and then the name of the parameter that you passed okay so this is working for the ones that we need to pass the reminder so we can copy this and do the same for the update reminder because if we remember for updating we are also passing the ID and we see that for delete we also pass the ID so we can pass the same thing for delete but now for create it would not make any sense to pass all of that data in the URL first of all it’s not secure at all if we would say uh here let’s say like uh reminder and then pass like everything embed inside the URL and then take it like this no no no no very bad so we have a way better way of doing that and we can pass JSON format to these requests so to to achieve that uh we will need to of course have some uh changes and I talk about the change um well first of all maybe ext let’s extract this URL and then I will say what we need to do but actually extracting this URL is very very easy so in create reminders what we would do is we would say um let’s create let’s say new variable called reminder and we will take this reminder from request once again but now we will not take it from URL parameters but we would take it from the body of the response of the request and then we would say the name of the variable that we passed so in our case we called it in the database as you if you remember reminders so if we go here and u let’s reload where’s the reminders table yeah here we have the reminder and we are expecting that to be passed when creating a new reminder so now we can simply console log this reminder right but let’s see what will happen now if I do that so let’s say I go to uh create new reminder and of course I pass this so we need to pass it as a body we will pass it as a JSON body and I’m saying okay so I’m passing the reminder and the reminder would be uh take the dog out for a walk i don’t have a dog but I would love to so yes let’s see what will happen i send it and I get um I get an error cannot read properties undefined of reminder so why is that happening let’s try to console log the whole request body so let’s now have it like this go back call it go back here and see the console log reminder is not defined uh and um oh here let’s say request send like let’s do like this go back send this request and we can see that request body is undefined but why is that well um express doesn’t parse the incoming data to JSON by default so we need to enable that by like basically passing the the middleware and the middleware ware it’s also um yeah let’s say what is let’s talk about what is middleware in general middleware is kind of a helper functions that help you process the requests before they reach the routes so for example a request comes in we process it here and only then we pass it to the routes if like the middle it passes the middleware but it can throw an error inside it it can perform different checks and we will even see how to create our own middle middleware a little bit later but for now we will uh add a new middleware that will that express provides to us and it’s going to be the app like how do you apply it is simply app dot use and now we need to say which middleware to use so we’ll use one from express and we’ll say where we want to use the JSON middleware what this does is it parses the incom incoming request to JSON uh which will help us to make this defined basically and uh let’s try to save it and try it out right now so if I leave it like this I can even do like this and go back here i send the request we can see the reminder of take the dog out for a walk that means everything is worked because as you can see now it parsed this um this uh body into a JSON file that express now knows how to read and know how to return to us so we can use that so if I would say let’s say pass here also notes and let’s add something like don’t forget to feed him before and let’s say I pass it go back here we can see that now it has a reminder and a note and I can pass even more like a lot of them so um okay now what else let’s see let’s see our um guide and maybe we’ll answer some comments yes here I’m explaining like how to add the middleware what is it and here we will go into service layer so before that I think we can take a short break uh sip some water and check out some of the comments yeah I see Danielle said it’s important to stay hydrated so I’m trying uh Jade thanks for the MVC plus services no worries no worries i’m trying um I’m trying my best hopefully the explanations are also clear enough enough i think my back end will be much cleaner after this hopefully hopefully you can use a number uh which will enforce to be only number any char will throw an error yes that’s also possible yeah uh so uh what what’s next i think uh oh Adita also commented great to see awesome content thank you very much Aditia appreciate you a lot always supporting always here uh yeah very very much so let’s go back to coding right so now we will be introducing the service layer and here you can also right away see what is this service layer i already explained it a little bit more inside um like my restaurant analogy which hopefully was good enough but basically a service layer it will contain all the logic of the requests to like yeah I’m doubling down but without let’s say analogies uh it will be responsible for performing the operations on the data and coordinating everything between the model and the controller it’s basically a layer in between uh model and controller which is the main logical part like where you would do calculations and stuff like that and here I’m listing some of the responsibilities as well like will perform core logic coordinate and aggregate the data with different models so you can call different functions in a model like get something then update it and delete it and uh yeah so it will also interact with the third party services or APIs and return process data to a controller so it’s a very important layer and some of the um applications skip this layer but and do let’s say all of that logic inside a controller i would never do that and more most of the more let’s say modern and um bigger corporations will always have the service layer because it makes everything so much cleaner and so much structured uh a lot more reusable and uh it’s a very good practice to learn it and always use it so yeah that’s that let’s see how to actually implement it and add it so first of all as we can see here we are we need to create actually we already created the services uh folder but inside here we need to create our reminder service so reminders service.js okay and now here let’s create um let’s say the functions that will be responsible for doing all the logic so let’s create again let’s say export const and we say reminder service and then we do like this and um here we can all like specify and define all the functions that’s the word I was looking for a sync we will have get all reminders so if we get here we see okay we have a function to get all reminders that means we will need to get all reminders And uh it will for now not get anything and inside here for now let’s just leave some comments and say fetch all reminders and for now let’s because we don’t have yet the model which will interact with the database let’s return only an empty array and let’s continue creating for all of them and in theory you can just copy paste to make it faster for you but um yeah because you asked I will uh do it like this get reminder by ID and actually maybe it doesn’t make sense to waste the time on this basic uh implementation um just definitions basically so fetch reminder by ID maybe I’ll just go here and copy the rest so we’ll have the create reminder update reminder and delete and once we are adding some logic inside there I will uh keep on writing because here we simply basically copy what we defined here the functions as well so not to save some time and leave some energy because it’s already getting late for me to explain let’s say front end as well a bit better let’s do it this way here now i hope it’s not going to be a huge issue for you guys so yeah now that we have this service layer um we need to connect it with our controller layer and now we will be start adding uh proper structure and final structure almost final except for the errors of our um controller functions so all of the controller functions will have this try catch block because we need to try to execute this function that we will pass but if it fails controller is responsible as a waiter let’s say if the cooking is bad if it I don’t know if we don’t have this uh ingredients the waiter is going to be the one who will come to the user and say sorry we cannot prepare this for you it failed because of something so yeah that’s why we are having this in the controller because it’s it’s talking with the user so first of all we will try to actually get these reminders so we will say const reminders and we will be calling the reminder service but to do that we also of course need to import them so let’s do import and then we say reminder service from here that we just created once again if it auto corrects add the GS at the end and now we can start uh saying reminder service and we want to get all of these reminders so if you get them if everything is good let’s return response the status and the status codes we will also talk a bit more uh about them later but probably you heard about like 404 200 500 uh there’s different status codes to communicate what uh error was it so for example if everything is good 200 is okay that means everything worked out and we’ll return the status 200 and we’ll return the JSON of these reminders so that means everything worked out but if we got an error we will need to return the status of 500 for now we don’t know what was the error so we will simply send 500 error which is like a very general internal internal server error so what a uh mouthful so we’ll say here as well internal server error and we will see later on how to make this a bit better so now that we have this we need to apply this logic for all of our routes so let’s go and do it so here again try catch block we’ll be trying to get the parse the ID and we’ll be trying to get the reminder by which by ID so we’ll say not controller reminder service dot get reminder by ID but now we need to pass the reminder id for our service layer to know with what ID should I call the models should I call the database basically so we are also passing down this ID and then we are if everything is good we are returning just the same only changing what we return which is reminder and not like all reminders but the error for now will be exactly the same we can remove this uh basically if it didn’t work uh just call it with internal service error let’s do the same for create reminder and in here we will need to uh get the body request but now we like it would be a bit un um how to say redundant to do it like this notes and say okay give me notes it’s not a very good practice it’s not let’s say maybe horrible but there is a lot of a lot easier way and also we would not be extracting in this layer because we’re trying to keep it uh very um clean so what we would do is we would again call const reminder and then we will say reminder service uh create reminder and we would pass all of these um all of that like JSON body which is request slashbody and it will contain all of the data from the user like a reminder user ID and notes and we pass it to create reminder and then create reminder we will define the logic how to handle this so now if everything uh worked we’ll return f 200 if something failed we return 500 and we delete the rest there so now it’s actually uh these two are very similar to update uh so let’s add this try catch block let’s try to parse the ID and let’s try to uh call um yeah const reminder and we will be calling the reminder service dot and it’s update reminder and we will be passing the reminder ID and for this is going to be a little bit different because update reminder well we need to know which uh which object are we trying to update so we need reminder ID but We will also need to ask the user basically for him to pass us the updates that he wants to do so if you are updating the reminder itself let me know what what text should I change it to if you’re updating the notes let me know to what you want to change it to so what we will do is we will also pass the request body the same as in the create reminder because here he’s passing his initial basically reminder data but here we’re passing already the updated so if we go to insomnia and to update reminder we would also have exactly like this so reminder and then something like new reminder and then in the J in that oh we don’t need this in that JSON we would get this reminder and if pass it to the update reminder service so if everything is good return this if something went wrong return this and lastly for the deletion it’s try catch and then having this here and then lastly calling the con reminder and calling reminder service and where is delete reminder with the reminder ID of this okay like this and like this yeah I’m actually not very clear like clean with keeping these here so it’s not an error it really depends on what your team is which pattern your team is following you might not be adding these uh you might be adding these these do not change your code logic in any way so yeah it’s really up to the teams and we can also remove this one so now that we have our controller basically almost completely done we will change the errors we can continue and check out what we are doing next so we updated all the functions in the controller uh yes we talk a bit about here now controllers don’t have any logic and don’t handle any logic they only call services so now it’s time to introduce the model layer and the model layer as I talked in the my analogy it was it’s kind of like an ingredient like a product it represents the data layer it it is responsible only by to interact with the database basically it only runs the queries u to store update retrieve or whatever here is the place where we will define our raw SQL queries and as you can see the responsibilities would be to interact with the database and this like a prov provides a layer of abstraction which is basically I only what it says I only know how to interact with the database don’t give me anything else you call me I give you like the result back that’s it so this way we can reuse them very easily so for example maybe even in user uh control user service I would need to get uh somehow some like for some reason his um one of the reminders so I could call this find by ID um or even get all from the user ser uh service and uh or even in the reminder service I can call multiple of them so for example maybe I need to get one reminder by ID and then maybe I need to check if it exists that’s actually what we will do and then maybe I need to delete that reminder so yeah this is uh what it’s the model layer is responsible for so let’s do all of that so let’s go back to our code and inside the models we need to create a new model which is going to be called reminder model.js so this reminder model uh we can start defining the um the queries itself so let’s first of all import the database because as I said here is where we will talk with the database so we’ll say config database njs very important then we will say export const and we’ll say reminder model and it’s going to be uh like this so here now inside we will we can specify all of the functions so first of all it’s going to be get all and in here we don’t need to pass anything it’s simply going to call the database and return it so first of all we will say we will store the result in this variable and we are calling the database so DB dot we are passing this query to the database and now we need to specify what query so first of all we will say we want to select everything all the fields basically uh like uh the reminder the notes the user ID everything from uh which table so we have two basically you could even either specify reminders or user or if you have created more tables you will tell here pass the name of the table so basically what you have here okay we say take all from reminders and uh that’s it we only need to get all by reminders but we also want to order them so basically to return them in order by how recent they were created so we want the most recent reminders to be at the top maybe you want a different order that’s also totally fine but for us that’s what we want so we would say return where ordered by created at in a descending order so now this will uh like this will be the the query uh SQL query and we would simply return we would call this database we will try to get all of this and we would simply return uh all of the rows from this result so no no no so we’ll from this result we will return all all of the rows because that this will always return an array for us in this case we want an array later on we’ll see what to do if we want only one object so now uh if we try to do get all we will not get anything just because we still didn’t connected it to our services but soon we will do it we still need to define some more functions so one of them is going to be find by ID and in here uh it’s going to be a bit different because we are actually going to get the ID because we want to know on which ID do we need to do the query but the rest is going to be very similar so it’s going to be result we’ll say DB query and here once again we will follow very similar pattern we will select all fields you could specify here let’s say what field does reminder have like only the reminder notes so we could say reminder and notes uh and then you would follow something like from but for us we need to return all of the fields so from reminders table uh actually here I forgot I removed it because I already see we need to get all from reminders table so yeah here we select all from reminders table but we need to get only where this ID like we give the name of this field so we say where the ID of that field is equal to um this weird syntax to basically we’re saying to the value at position one but now we need to also somehow pass this value in theory you could have added in here something like this uh of course by changing this but it’s very unsecure because of SQL injections so this it makes it a bit sec more secure and how we would pass uh the values we would simply say here so the value at position one later on now actually when we will be showing the create one you’ll see how we can pass more more uh fields more values so now just simply return uh not const but return result dot rows but as I said we are returning again an array but in this case we should expect one object not an array of objects so we would simply take the what we’re saying here take the first um object from rows array so why it’s not one it’s because that’s basically how programming works and we count calculate count everything from zero not from one so zero means at position one means at position two and so on so start counting from zero if you’re yeah total beginners get get start get you uh start getting used to that that’s what I was looking for okay now let’s do for create so we create once again a create function and in here we will once again say const result equals DB query and we will specify select uh actually not select because now uh now we are inserting now we are like creating adding new data so this is going to be a bit longer and um let for that let’s make it um structured let’s say a bit better uh but maybe let’s write first of all in one line and then I will structure it so what we will say we are inserting now not selecting in so now we need to specify instead of from we will need to say into which uh table so we are inserting into reminders table and now we will say um what values are we inserting basically so we specify the values like this it’s going to be reminder just as we have uh where is it in here reminder notes and we can also pass uh in here the user ID which we actually need to do so reminder um notes actually notes and then the last one is I said user ID and the names here once again you can get like they should match what you see here at the top so now that now that we defined these um what we basically need to insert we can also specify uh the values itself so it’s going to be similar to kind of this but a bit different now we say okay so insert values so this value is going to be at position one and then the notes will be at position uh two and then the last one will be at position three and after you do all this query please returning returning please return me everything here you could also specify as I showed you here what to return but we need to return everything so now how do I pass uh the values in here well it’s following a kind of similar uh actually exactly the same pattern as here so we give comma we open an array and now it’s the the the order is going to be very important actually first of all we didn’t even like get these so we can dstructure them by saying that give me a reminder because as if you remember in our insomnia when we’re creating we will pass the reminder the notes and stuff like that which are going to be required so yeah we are passing the reminder the notes and lastly we will pass the user uh ID and as I said the order in which you pass here the the values is very important because if we say here let’s say notes reminder and then user ID and actually it I think it kind of makes sense right away to u make it a little bit cleaner and to do that I will need to change it to this and also okay so insert into reminders with these values and then return me this looks a lot cleaner so it’s a good good thing always so yeah what are we doing now is we’re saying notes because we said here that the reminder will be at position one so now it uh it means that notes will be applied to reminder that’s why the position in which you pass here the fields is very important so we actually meant that the reminder should be at position one just as here the notes will be at position two so let’s do like this and the user ID will be at position three so we are passing here the user ID and um yeah that’s how you insert something but now that you insert it we also need to return the the item that we just inserted so we’ll say uh return result dot rows at position uh zero just as we had here and lastly is the delete so it’s going to be a sync delete and we’ll have here again we’re only going to be asking for rem reminderinder ID and I already see the issue a sync reminder ID and in here we’ll be specifying once again our uh query so we’ll say await actually I didn’t add it here as I see anywhere a wait and it’s very important to add that so because we need to await until we get the result and only then return maybe there someone even commented this maybe let me check uh nope one uh Muhammad following from Dubai oh that’s very nice that’s very nice so yeah this is very important to this little keyword to await or underway to just wait until this query is executed and only then return so we need to do that for all of them uh await await we would have spotted this issue later on but yeah I’ve I’ve seen it here so now we say the B query and let’s define uh I think it’s not the last one because I probably I need yeah I skipped update I think so but the delete will be um something similar but with a different keyword so we will say delete from once again now we say from which table to do we need to delete it from reminders uh whoopsie and then we will need to say where ID equals it’s like updating a one once again when you’re just starting out you can try to write these queries with the help of um CH chat GBT just ask what kind of um what kind of uh query would you like to build and it will return you like all of this you can even join the tables to like return different things so it’s um yeah it can help you very much but now once we delete we simply want to because now we deleted this item we simply want to return the result and the row count of um the deleted items basically how many were deleted okay and yeah I skipped the update so we’ll say a sync update and now we will be again once updating we need to get um the the update values but this is going to be a bit different because we are going to be patching so I’m not sure how to show you so for now maybe let’s leave update implement later because it’s going to be the only one that’s kind of different in a way that we will not specify the query here and I’ll show you later why is that but yeah now that we have all of these created let’s see what we need to do and yeah oh yeah here you see how it’s going to look like but I will not add it yet i will explain to you a bit later so now we can add these models and start using them in our service layer and um to do that uh actually let’s do that let’s do that yes so if we go back to our service layer here we can import the model uh in here we just go import yes reminder model and also don’t forget to add.js and now let’s start using them well first of all the yeah the first one is going to be very easy we don’t need to pass anything we don’t need to do anything it’s simply return reminder model get all and we get all of these uh reminders and return them right away for reminder get with ID it’s a bit different because if you remember from the controllers when we’re getting by ID we’re passing this reminder ID so if we go to the service we can get this reminder ID from here that we received and now we will say okay so I will assign this reminder and I will await again it’s very important to wait for the response and I will call reminder model find by ID and I will pass the ID so I will pass this reminder id to the model so if I go to uh find by ID we can see that it is expecting the ID and that’s how we will find so let’s go back to the service and if now we need to check if there’s any errors so if I for some reason this reminder is not returned that means something was wrong something did not work out so what we will do is we will throw new error and we need to specify what is this error so for example a reminder not found because we let’s say did not found the reminder something is bad and we will throw the error but if we found a reminder we will simply return it and um yeah and we will return it now soon with the creation after we implemented this we will see everything in action with insomnia so now after create uh after getting it by ID it’s time for create implementing the creation of the reminder so if you remember from the controller uh we are passing the whole body to create reminder so in here we can get this object of reminder we could either destructure everything inside here and take all the values one by one or you can have something like const and in here specify what we are receiving so if you remember we’re expecting the reminder the notes and also the user ID the same if you go here the create expecting reminder notes and user ID so actually yeah here I showed you how to dstructure them inside the uh when we’re receiving here I will show you maybe then a different approach uh how you could do it so and actually I’m doing that right away uh so doing this way and what this does is basically instead of having const reminder and then equals new reminder dot reminder so it would be even wrong maybe something reminder object so it’s and then you would have something like this for notes and here notes and then the same for user ID it requires three lines of code that would be imagine if you have like a huge uh form of 10 inputs getting all of them like this is it would be a nightmare so what we’re doing is instead of assigning them each to a new variable or of course you can have it in here and pass it just like this uh as well to a function without assigning to a new variable so for example if let’s say we call what function do we yeah create so we say we create this uh const created reminder and we need to call the reminder model.create so you could pass them like this one by one and then reminder notes but it still doesn’t change doesn’t change the fact that it’s very long so we can destructure all of them outside so what we’re saying here from this reminder object take out these values so it’s very important to have this curly brackets around here and now we can use the them right away without doing them like news reminder new reminder notes and repeat ourselves we can simply say reminder notes and then lastly user ID so it right away knows like okay I’m taking these values here and I’m passing them so it saves us a little bit of time uh yeah so I highly suggest you doing that in theory you can also as we did inside the model do them right away in here you don’t even need to have this line of code so there’s a lot of um ways to do it but just know that do not do new reminder reminder new reminder notes new reminder user ID choose either this one or the one where we d the structure right away inside the function okay okay so now that we are calling this we uh need to return it here but also um as I told this and I want to show you as an example this service layer can have a lot of different things like you can clean your uh inputs you can do a lot of different calculations so just to be a little bit um show a bit more of an example I’ll do let’s say it’s common to sanitize the input form so for example let’s call const sanitized uh reminder and what does it mean is we’re cleaning up the user input so for example the reminder user can pass us like something like this space space space space hello space space space and maybe we don’t want that uh we can very easily sanitize this and clean it up we will say if the reminder is passed just trim it and trim means means clean the empty spaces before and after let’s do the same for notes maybe we don’t want to have like that many spaces at the start and at the front it just doesn’t make much sense for us in our case let’s say so we’ll say trim and this question mark means uh if it exists kind of so if it would be null and we would call uh trim on null it would crash but now this prevents from crashing and lastly uh for user ID think for user ID we are simply passing it as it is like that so now instead of passing them like this we can pass them as sanitized basically cleaned up uh versions so yeah this is not necessary i just wanted to show you that you can do a lot of things in the service layer you can have a lot of different logic you can have here running like I don’t know huge for loops and stuff this is where it would happen so yes um if everything is good here we are returning the the the reminder we can also have like this error handler here saying that if create reminder does not exist something like something crashed in this case actually our controller if something would crash still catch it so we don’t really need this check here and here we need it because if the reminder was not found we need to be clear with our error but here when you’re creating a new one it cannot be not found because it should be not there yet if you know what I mean okay so for updates um are we yeah probably let me actually first of all showcase you how we create get and get them by one by ID and then get all of them and then maybe I can show you the update because that’s going to be the most complicated one so if we go back to our insomnia first of all if we try to get all reminders let’s check that we are not returning anything so we’re returning only an empty u JSON so if you remember we changed it in the controller layer and now we’re returning a JSON it’s no longer uh we’re no longer returning the response send and here like some HTML code we are right now returning a JSON of the reminder but because we don’t have any reminders it’s empty now so now let’s create a new reminder so we will add reminder uh take the dog out for a walk note the same one and let’s check the id of the user so the id is one so we also need to pass the user ID and for now we don’t validate this data in any way but later on we will add so for example for now if I would um not provide something it would not crash it would crash but in a let’s say database layer model layer so now if I say send we are uh not receiving uh oh yes we should post that’s good uh if I go to reminders we can see that the reminder was created and sorry and we can see that the data is exactly the same so we are reminder is take the dog for a walk the note is don’t forget to feed before it’s not completed the user is with an ID one and it was created so now if I would go to get all reminders and send this request for some reason it’s not working so let’s see uh what’s bad here so if I say get all reminders reminder service get all reminders and now get all select everything from reminders order by created at descending okay let’s console log the result here uh console log result and let’s see why is it probably I’m missing something oh yeah let’s do rows okay let’s see let’s see it actually it has it in here I return it okay so in the service layer okay Maybe uh where is it and it is in if yeah in service layer okay so yeah I already no actually I don’t see the error because we should be returning all so now if we go to controller let’s see here if we get console log and let’s see if we get those reminders the probably it’s a Oh yeah here it’s a promise but we are uno so yeah probably I’m missing something like crazy small okay so is it Yeah let me check the controllers real quick yeah I already see the issue and it’s right basically saying me here we are even though we are calling here like a reminder we are not awaiting for the response so we need to wait until we get the response so this is a very important thing and only after we get it we will return it so add it for all of it await and that’s why we also when creating did not receive it so sorry for missing that in so go to reminder controller and for every part where we call uh our service layer add an await before it so for example now let’s test it out if we go to our insomnia and if we go to create new reminder and let’s say uh buy milk and um hello for user one if we create it yeah we are also receiving it back so that was my first hint because I was a bit also confused why didn’t I receive it but now if I go to get all reminders I will get all of my reminders There’s and even so for example now I can say okay I have reminder with ID 1 and with ID two so if I go to get reminder by ID and say give me with ID2 it will return me a reminder with ID two if I say with ID1 it’s a first one but if I say with ID that does not exist it will throw me an internal server error but we will handle it a little bit later properly so um okay what’s next what’s next so now we need to see how to update it and actually update one is going to be the most complicated because uh we we need to get basically okay we need to allow a person to pass only certain uh fields so for example if the user is updating only notes field it should update only notes and do not touch the user ID or completed or um even the reminder itself or if user let’s say completes a task uh so we need to update only the completed field we don’t need to update the notes or the reminder fields that’s why in here and me I do not specify too much but in here that’s why we are building this SQL dynamically basically so we have we’re taking all the fields from object keys with new values and keys will so maybe actually let’s try to write it and then I will console log it with it will be a lot more easier for me to explain it well so now for the update reminders we can go to the service layer and in here start implementing it so the first thing that we will need to do is once again get all these values so I would say here const and the values that I can get are like the reminder the notes and I think it’s also completed nothing else i cannot update the user ID and nothing else so only these three values and I will get them from the new values and later on we will see how can we define the schema of what we should allow to pass and what is required what’s not required we’ll see it very soon so now that we get like these values we need to according to them build our SQL query dynamically so first of all we will say const and we will take all the fields and we will say object dot keys and let me first of all write it and then I will show you so new values if I console log these this uh fields actually it should have been let’s save it and let’s go to update reminder and pass let’s say yeah new reminder so if I pass it here and go check it out the fields are basically these so I’m saying the reminder notes and completed I’m taking the key and putting them as a name so for example let’s try to pass the notes as uh notes and saying here uh updating note yeah I made a mistake but it’s not a problem um actually I’m getting some sort of updating note okay let’s make it the same let’s try to send it yes it fixed it so now if I go here I say okay so the keys are reminder and note this is a key basically the name of this will be a key uh basically here this is a key here is also a key okay so now that we have these keys we need a way to get um also the values not the keys anymore of this object so what we will do here is first of all we will uh call const and say values equals object dot uh values and we will pass the object that of the values that we want to take so and maybe also actually let’s do it like this after the this one and after this let’s console log but here fields so now if we go and call this and go back we can see that okay the key is the reminder and the notes but the values are the new reminder and updating note so actually the values are the this part uh and basically what this object dot does is it takes the object and makes it into transforms it into an array with either like keys or values so now now that we have these we need to a way to create a set clause and a set clause is um basically when you’re updating you need to say okay so actually I think I have an yes we’re saying update reminders and we need to explain what needs to be updated like what needs to be set so to do that we can go back to our code and to reminder no no to the service and we need to create the set clause so to do that let’s say here const and say let’s call it set clause equals and we will say fields dot map so we’re mapping through all the fields that we pass so you it depends on how many you passed maybe it’s only reminder so only one or maybe it’s reminder notes or maybe it’s only completed but it will map through all of them and mapping it’s mapping it’s kind of like a for loop uh a bit different but in yeah it’s mapping through all of these items taking first second third and doing something with it transforming it so what we’ll do is we will take the key so the name like reminder note or which is going to be here and then we will take the index and at which position we are uh in this so this will be at position zero this is at position one and this is at position two so this is going to reflect that and we will transform as I said in this map so we need to open this like under escape quote and we will need to say okay this is where I’m going to pass the not a string because if I would simply say here key it will act as a string but we need to say that we here we’re passing a javascript expression so we’re taking this key so it’s going to be a reminder and then what we need to do is we need to say equal and if do you remember how we in the models how we did like where id which is the key that we’re trying to do and we need to pass the position of it so where the position is one or even here a position is two three and it can be four five six seven so what we’re saying here is if you remember this is the we need it in a string because this is how it’s done here and then we are need to open the JavaScript expression so this is no longer a string this second dollar sign and in here we will say where the index uh and plus one because if you remember I said like it start counting from zero but here we need to start showing from like a normal person one two three so now we created the set clause and why this set so we can console log it and actually I will show explain you why is it important to do it this way so if we go to insomnia let’s call it once again open it up and we can see that this is the keys this is the values and this is the actual set clause so we’re saying okay literally exactly like here we’re saying where ID is at position one but here we’re saying where reminder is at position one and it notes at position two because we don’t have the user we did not add here and you kind of already m can guess why we do this thing because user can pass only one thing only two things or all of them and we need to dynamically know uh build this set clause because if we would add there uh let’s say uh set and pass them all by one so uh let’s actually build this query and then I will show you so con query equals and then we open this uh query and then we’ll say so in this case we’re updating the reminders table and here we will be passing this set clause and here we need to want to pass this set clause and uh again we want to specify the JavaScript expression inside it so this is the syntax for that we’re saying set clause and we want to also be because now it’s an array we want to transform from this array into a string so we would set set clause and join every item inside an array with a comma so I can actually even consolate log console it for you to see so we would say set clause and join all of the strings inside this array which is in this case this one so this is first item this is second item join these items by a comma so if I save it send it go back here we can see that now it’s a string and they are joined by a comma i could say join them by this but of course it’s not going to work for us because um yeah and you can see it’s joined like this but it’s not going to work for us because this is what SQL is expecting to be separated by a comma or let’s say here like this okay so now that we have it uh like that what we yeah so we are setting set clause and we want to specify which object to update so what we will say and to which values to update we will say where first of all uh and I actually actually forgot to add one more thing because here we will say where id so we are saying which object to update and we will say where id equals and we could either again inject it in here like this uh say like the ID reminder ID but it’s not secure it’s prone to SQL injections so that’s why we will do a little bit different and after we add all of these uh values basically to um to the values that we will pass so reminder text like this reminder no uh this new reminder update note at the end of it we also want at the end of this um array we also want to add the ID of the reminder so let’s quickly run it again and see how it looks now so now this looks um yeah actually values I’m not console logging uh here no wait let me clean it up here we don’t need anymore set clause we don’t need anymore to see fields for now like this so values push and then we are adding the rem no reminder ID okay let’s save it let’s send it let’s go back okay so now we see that the values are new reminder the same as we passed here then updating note and the last one because push adds it to the end of the array is going to be the reminder array the reminder ID from here so for example if I add two here and go back it’s going to be two okay so now we will say so the ID of the object that we want to update is again this little uh syntax but now we also say that okay now this is going to be an expression it’s going to be you could either do values and at position uh values dot length so it’s taking like from the array of values so from 1 2 3 we would say and because the length of this is uh three so actually let me console.log yeah this I hope is not over complicating things to you but we need that so if you console log you see that the length is three three and we are saying that take give me the at values at position length three but let’s see what will happen if we do that uh so I console log I do here and it’s undefined be why well because here the length is actually three but if you remember we are starting to count from zero so you would need to add minus one so now if you do this the will be the ID of two but there’s an easier way to do it so what you could do and that’s also another helper uh we could say simply where values dot so actually let me first of all maybe even console log it it would be easier uh length so if I do values dot length and I console it log yeah it’s going to be three but um I I think it it should work um so basically what I want to do is take the last item of the uh of the array so let’s leave it for now with this approach but um later on we will check it out i think it will work minus one so now we’re taking the last item and this is going to be the the last item we always know it’s going to be the reminder ID so where id is this and then don’t forget that returning we will return everything there so now we have actually built um query so now let’s console maybe even log it a dynamic query that will change based on the it based on the inputs that we pass so now the quer is update reminders set the reminder at position one notes at position two and we know that the values so we actually also need to console log the values but the values would be that at position one we would have a reminder and at position two we will have notes so now if we let’s say pass only uh notes only reminder if we go back we are seeing that okay so set reminder which is at position one and um yeah the values at position one is is is a new reminder and the same like basically as we say here so it’s taking the new reminder yeah so it’s a little bit more complicated than the the rest and I hope I like I managed to Uh I hope I managed to really explain it well because it’s it’s going to be the most complicated one and but yeah but now that we have this query and these values that we want to add so let’s remove all of these console logs that we will no longer need we can pass um so basically let’s do const and then we will say updated reminder not update but updated reminder equals and we will say await very important not to forget reminder model and here we will say update but now to this update we will pass the query that we’ve built here and also we will pass the values that we’ve built in theory you could build this query inside the model and it would it would be probably like still good way of doing it but I wanted to keep the models like very very low level no logic so it really depends on the team where you would do this uh building this query uh but um yeah neither one of these choices would be a bad one in the model or in the service in the controller that would be bad so okay we are doing updated reminder and now we’re saying if we are not receiving an updated reminder we will throw a new error so we basic basically throw new error oh error and it will be saying reminder not found because probably we did not found the reminder that you are asking me to update but if we found this reminder we will simply uh update uh return the updated reminder now that we’re done with this we can go uh inside our model of update and implement this model as I said we’re skipping it now but it’s going to be very e easy right now because we are taking the query and the values as we’re passing here query values and we simply need to call the database so basically say const uh result it will be again await db and then we’ll say we’ll do query and then the query will be very simple the query that we pass here so basically the the one that we’ve built here and the values as we were passing them uh in here as a second parameter the values is also going to be an array of these values which is what we need so if we go here uh no here we are going to pass the values here and now last thing to do is return the result and the rows at position one so now if the update is done we will return it so now we can try updating it so for example let’s try to get all reminders uh the first one is buy milk and the notes is hello so if I go to update reminder for two let’s say the notes notes is don’t forget eggs so if I update it I already get the second one where the reminder stays with like milk and the notes is don’t forget eggs now I don’t can update also the reminder itself uh saying by cheese and it will not update other values because if we would have not created the set clause if I pass only the reminders it will set everything else as null because I’m not passing notes it would set notes as null completed it would set as null so it’s very bad way of it would be bad way of doing it and maybe if we have some time um I will I will showcase but probably will not have time for that anymore because we’re whoa quite a lot long time in okay so now that we have this um this update service uh done the last service that we need to implement is actually the deleting service and do we have the controller for delete yes so this is also going to be a little bit different uh because what we need to do here is we need to check for a few cases first of all we need to check if the user can if the user that is trying to delete is actually the one that created this reminder if not we should not allow him to delete second thing is we need to check if the reminder that we’re trying to delete actually exists and if the reminder like the deletion was successful so first of all uh because we right now don’t have any kind of authentication we don’t know the ID of the logged in user or of the user that is trying to do the request so right now we will simulate it by saying authenticated user ID and we will pass the ID of authenticated user let’s say that is right now so first of all that we need to do is we will check if the reminder uh is actually exists that we’re trying to delete so first of all we will call reminder and now if you remember I told you that why are we separating all of these in separate uh like in the model it’s because now we can reuse everything so for example now I can say reminder model and give me this reminder with this ID i could call a lot more functions like other model functions in here and it makes everything a lot cleaner let’s say and more scalable because I could say okay then let’s um if we were trying to delete but it was it failed let’s update it maybe some field that um say that okay this user I don’t know like it’s it’s up to the um up to your client how he wants to handle but what I’m trying to say you can call a lot of different models inside these services so now that we got this reminder what we need to check is first of all if the reminder exists so we’re saying if it not doesn’t exist so this question uh exclamation mark says that if the reminder was not found if it’s not here then we will throw an error so we’ll say throw new error and then the error will be let’s something like you are not authorized okay if the uh oh no this is not I mean reminder not found yeah so I if the reminder is not here that means the reminder was not found based on this ID okay let’s move forward now if it find if it managed to find this reminder we need to check that this reminder and the user ID so basically if we go to our console if this user ID so it’s very important to have this exact same name if user ID is not equal to the authenticated user basically the one who is do trying to do this request then we would say um again throw a new error and here we would say uh you are not authorized or something like this okay but if the user actually the user ID matches um this authenticated user ID that means we can allow him to remove it so we would say we would call like as always const maybe let’s call it now row count because now we will be receiving the number of rows deleted so it’s a more appropriate name so we’ll say await and then reminder model delete and then we as we if we go to this delete we can see that it’s expecting the reminder ID so we can say here let’s pass this reminder ID to our model and now that we pass this ID we can check like another last check if row uh this row count is equal to zero basically it did not delete any uh reminders we can throw yet another error saying that failed something failed like failed to delete a reminder maybe yeah we don’t know why maybe the ID was not found of this reminder or something like something different failed otherwise uh we will say reminder deleted successfully so now I think we are completely done with our reminders service as well let’s check out the guide so yeah we’re completely done here so now what’s left for us is to learn uh well probably take a break and check out what’s happening okay react native me I went in art tried node media client but not work PC theme creator um not sure like we would need to kind of check out the exact errors and yeah it’s it would be a bit difficult to do now I’m a first time watching your video you can help me react native snap carousel snap carousels he right now it would be kind of difficult to explain but how to do them but maybe we’ll add them to one of our tutorials in the future and you could check it out but you can check also Chad GBT maybe ask uh how to do it and they will definitely give you a good example i’m Oh yeah the carousel yeah right now it’s going to be kind of tough to show it out i’m really sorry but uh yeah JBD can definitely show and I will try to actually improve it and not improve it but add it to to next tutorial so now we can go to the taskboard and check out the input validation and error handling this is okay looks like it’s a lot but it’s not going to be a lot maybe we’ll do it a little bit uh faster and um so yeah when building APIs input validation and actual correct error handling is very important because it’s it as I say here it ensures data integrity it provides clear user friendly error messages and that’s what we will try to do well first of all we will start with input validation and um it is important because when the user is trying to make a request but let’s say he sends an invalid data that might that might break our application and uh that’s a very bad thing because we want to make it so that our application functions as good as possible and without no breaking without anything so what is our goal is to ensure that the only the valid data that matches our schemas actually enters the system for that we will have implement input validation and we will use as I mentioned zod so you can go to their documentation and check it out but I will briefly like showcase you the most important part well first of all it’s very important to install it so let’s open once again our terminal we can stop the server for now run mpm install zod you you will see in here that it is added now we can rerun the server and um check out what’s next well first of all we will need to create the schemas and define them uh like add data types constraints and to ensure like basically tell our application what is an actually valid schema and what we should expect so for that let’s go to our source and create one more uh folder called uh schemas in here let’s create create a new reminder schema.js and in here let’s define the schemas so first of all you can just copy this one or and u yeah I will actually even go through it here so what we’re saying here is that the reminder schema object should have an ID of number it will have also a reminder which is going to be a string with at least one character and a maximum of 255 characters uh yeah I’m adding these constraints just to showcase you like different examples but you can check out like Z documentation and do them differently we will have also a string of notes which is going to be an optional so if it’s not provided it should this uh this basically z should not throw an error we’ll also have a completed boolean which is also an optional one and if it is not here it should default to false basically because yeah that’s it just created it should be false then it’s very important to have a user ID which is going to be a number and lastly it’s going to have a created ad field which is going to be a string and formatted as a date time so let’s copy this and just paste it inside our schema uh let’s save it but uh for now it’s not yet done because we need to define different this is our main basically object schema that we have in our database for these reminders and here I said uh yeah no so for these reminders so it has an ID reminder notes all of these fields basically but now we need to define a separate schemas for when we’re trying to create and when we’re trying to update so for creating we need to have like basically all of these fields except so what we’re doing here we’re taking this reminder schema the same as here basically referencing this and we’re omitting the values like ID so I we when we’re creating we don’t need to pass the ID we will create it ourselves completed is also you shouldn’t pass it because it’s also going to be always false by default and then created at it’s also don’t pass it because we will create it by ourselves basically the current date time so we’re going go back to our schema and paste this schema uh for create reminder schema now for the for the update it’s once again going to be very different even though like let’s say the reminder itself is here uh required when creating when updating it should be optional so you don’t really need to pass it so also notes you can pass null for notes if you’re trying to let’s say remove your note so it can be nullable and also optional but when you’re creating a note you cannot pass just null so yeah that’s that and lastly the completed is boolean and it’s also optional so if we go here we define it and now we have different schemas for updating and creating so if you go again to zod you can find different um like different uh how to say um functions maybe uh and um yeah read about it there is a lot of different uh validations like it but mainly this is the ones that you will use a lot and you can also ask for chajbt once again use AI when developing to build you uh schema with zod for example just say I will have reminders notes the reminder should be uh required it should have that and that length the you completed will be optional it’s going to be true or false or yes or no and will build you like this and you can use it so don’t forget to use AI okay now that we defined these schemas we need to create the middleware and as I talked already about middleares that will validate these schemas uh basically we will create a validation middleware and to do that we are going to create once again a new folder uh called middle wares and inside it let’s create a new middle and let me check how it should be called in order to have the same okay so yeah it’s going to be called validation middleware and uh let’s keep it nope js so this validation middleware will have uh this piece of code it looks a little bit intimidating let’s first of all just paste it in our validation middleware but I will go through it it’s not that difficult so even here I’m explaining what it does so first of all this middleware will receive uh in here the request response and next um like any express middleware we were always going to pass this request response and next to it this middleware will try to call the schema that we passed and parse it with the request body so basically with the in the schema that we defined are here basically and we will try to compare it in a to put it in a simple ways with the request body which is basically means with the input that user is providing that user is sending us it will try to compare with it and if everything is good it will call the next function which means proceed to the next middleware or route handler uh if it was not correct however we will go into a catch block that means somewhere we had an error and this catch block is not that difficult also to understand first of all we’re checking if the error is a zod error basically from the library that we installed and we as you see we here imported at the top so if the library is a zod error it means the request body did not match the schema that we were expecting so that means that we will try to build this error message in a human readable way so we are looping through the error that we received we are combining this message with different issues so here it might say uh like um reminders is required or something like this and then we’re returning the error with status 400 and saying that the data was invalid but if it was not a zod error that means something else failed i’m not sure what failed and then I will return simply u error status 500 and say that in it was an internal server error so yeah as easy as that now to apply this validation middleware it’s not that difficult either so what we can do remember this function actually let’s maybe close out a little bit of the things because we have a lot of them so the first thing it needs to enter is going to be the routes and we need to say okay so which routes uh are we adding this middleware well first of all let’s import the function that I just called uh validate uh date I think I called it uh validate data so yeah I need this function and I need to import it from it’s going to be from um middlewares/validation middleware so what we will do when we’re calling the create before calling this function we will add a validate data and we are also need to if you remember pass the schema to this validate data function so if you remember as well we created already these schemas so what what we can do here is say import and then we will import the name of the schema so in our we are create reminder schema we need the create schema and we will say imported from and let’s do schemas slash reminder schema and now we will say okay so validate data with this schema and if it’s correct because we are passing we are calling here next from express we will go next into and call this function otherwise if it catches an error here that the schema does not match it will throw an error we need to do the same for the update so let’s do that validate data but if you remember we created a different schema for updating because not all fields are required so we will pass here the update reminder schema but also we need to validate the data before doing anything else so as simple as that we are applying this these validations so here um yeah I’m saying what I suggested and uh what I’m doing and now if I go so let’s um let me think how is it better okay let me show you the let’s say when creating because reminder is uh required if I don’t send a reminder it will say invalid data error and the detail now is saying okay message reminder is required okay That’s very good like if I don’t pass the uh user uh I mean the notes and try to call it with and create it it’s going to work it’s not going to have any notes and completed is false but it’s working if I for example don’t pass the ID and try to create it it’s going to say that the user ID is also required so yeah that’s how it’s working it’s validating if it’s good it will go to the controller if it’s bad it will stop so here for example all of the fields are optional so in theory it will what the thing is checking for is for example if I pass some um actually yeah the thing is checking for because the reminder must have at least one character so for example if I have it like this it will still say that the reminder should be longer but if I pass at least one character and then send the update it will update the reminder to like what I wanted to so this is automatically helping us to like do so many things like catch so many errors and you could in theory even have here for the user ID to check it with the user ID that it would match at least one user ID in the user table you uh I will not show you right now because we’re like a bit short on time but just make sure that check out Chajbet and ask to show an example like that and you will see it and it’s going to be amazing uh it helps us a lot but now let’s see um okay past all this this as well let’s see how can we create custom errors because uh right now we are using throw new error just like you have let’s say in here I know not schemas but in service we’re throwing new error and saying some sort of an error well it has a few issues well first of all and the main one for us is that we cannot send a status uh code in a clean way so for example we cannot say that it was uh internal error for 400 or invalid data I mean 500 or invalid data 400 or it was not found 404 you could do it with this error but it would not be oneliner it would be a long here like at least three lives lines I think and repeating that would be also a nightmare all the time so we will create a custom error class for that and to do that simply inside the source let’s create our last folder called utils and in here we can add error message.js i think call it like this um oh no create custom error sorry my bad uh custom error.js and in here simply pass this code here so what this code does is we are creating a constructor our own class which will extend the error class that we already have here which is defined already but we will change it a little bit well first of all we will call um the parent class which is this one uh with the error message so basically we’re passing the message that bas uh here we provide here so it’s working the same it’s all good we need we can just override it but because we this error class does not have a status code we will call this and we’ll say the status code will be the status code that we provide in when we’re calling our custom error and we’ll see very soon how to provide that status code so before we jump in and right away implement our custom errors everywhere we can also see one weakness so for example here we have a lot of reminder not found reminder not found but what if I say make here mistake remander not found let’s say they’re not like they’re not consistent and later on if I would want to change the name uh for all of them that would be insanely difficult to go through all each of them and define a different error all the time so what a lot of companies are doing they create these constant static error messages and they reuse them that’s a very good practice of doing that it prevents the typos it keeps the code very clean consistent and later on you can even translate everything all of these very easily so it has a lot of pros let’s say to it so to do that actually I was lying not the last folder we will have constants and inside here for the constants we will create error messages so if we go here we say error messages.js JS and simply paste all of these messages that I provided you here we’ll have a few messages one of them is going to be reminder not found or we could have it even more general saying like item not found and here having item not found but let’s leave reminder not found you could have like user not found and more of that then we’ll have invalid data unauthorized forbidden and internal server error these are like one of the more common ones so now if we uh if we just uh use all of that oh yeah first of all yeah let’s uh start using these uh error messages and well first things first very clear one uh we need to adjust the newly created uh schema error where we throw these errors and make them use our constants that we just created so let’s import and let’s uh I already have here like um but okay I’m just going to show you in the code so what we’ll do is importing we are importing error messages from constant constants error messages and now instead of having this invalid data we’ll say error messages dot invalid data and here error messages dot internal server error now these will stay clean and if we any time in the future we want to change let’s say the internal ser error we can just go here and say try again or something like that and it will change to all of these so yeah very clean that’s the first change the second change is we will need to create this middleware to handle these errors because right now if we would have uh let’s say so let me go into one which one get reminder by ID and try to throw this custom error don’t forget to import it from here and let’s say let’s throw uh 404 not found and go to get by ID i think nine should be not found it’s still throwing us internal server error uh and not not found um yeah it’s still throwing us a wrong error well it is happening because we don’t have a middleware that would handle these errors so because if we go to our controller it knows that if something failed I will simply call this message with this message every time no matter what so we need to adjust that and in order to do that we will need to create this middleware so let’s go to our middlewares new file error handler middleware and then inside here we can specify this middleware what it’s doing is basically this error handler receives the error and it checks like okay does the error have a status code uh that we will pass if it has it will apply it if it doesn’t it will throw 500 then it will check okay does the error have a message if we provided it it will uh apply this message otherwise it will default to internal server error message and lastly we will simply as we do here in the controllers uh let me go here we’re sending the status with status code so status status code 500 404 and then we’re returning the error message uh very similarly to this like we have here so let’s copy this let’s go to error handler middleware paste this in and don’t we’re using already the error messages like um the created new ones uh so now that we are we created this middleware if you remember we need to apply this middleware and um but before that that’s actually very good that I checked the guide because even if we apply it we are never we are always calling this like every time um so it’s not good like even though if you are going to throw an error in here it’s always going to uh respond with status 500 and these error messages so what we need to do is go to the controller and if you already remember this next function and instead of calling right away this error we will say call next and we already uh saw this next and it means that call next middleware or yeah or router or whatever so we will basically express will call the next middleware in this case for us but now it’s still not going to work even though we changed it but because we need to uh so yeah now we’re passing the error and I actually forgot to pass the error itself so yeah you need to pass the okay the error to the middleware as well because if you remember let me show you in a second in here where we have this middleware we need to pass here the error and we it is expecting it so that’s what we’re doing here but now we need to apply this middleware so if you go uh well we’ll come back to these if you go to your index you need to add this middleware as the last one because if like as I said like it’s calling the next middleware so it’s going to call this one after the routes we are passing this uh new created middleware so if we go to our index and if we of course we need to import it here as you can see from the guide so let’s do that and we will say simply as the last one app dot use and use the error handler middleware just like we said to use the express.json middleware the same way we’re saying okay now use our custom one that we just created in here okay let’s save it so now that we have this we can go back and actually finally even we can test it with uh our get reminder by ID that we just created that uh where is it uh let me go to where is controller and get reminder by ID h get reminder by ID if no reminder throw custom error reminder not found and custom error where is it define where um did I forgot to export it c No no no it’s utils/custom error uh oh and we’re Yeah so um next is not defined i did not read that correctly so if I go here to our controllers uh we’re not importing this next so basically we’re calling it but we forgot to import it for every also a controller function so the this is what uh express returns like request uh response and also the next function so now that we have it for everything it will now display the error but the error will be this one it’s not standardized yet so if I go here call it it says reminder not found and not capital letters doesn’t look very good so let’s adjust it and make it perfect so error messages dot uh and it’s um reminder not found so if you can see error messages are important from constants so now if we call it it will have reminder not found but it will call it from this so we can say maybe even item not found to just show you that it actually works like this so if I save it and go of course now I need to adjust the name uh in this service because there’s no reminder not found now it’s called item not found so if I send it it says item not found that means it’s using that and it’s perfect so now in this file everywhere where we using the old error we will change it to a custom error and let’s say error messages dot item not found and it’s going to be 404 so here as well like reminder not found we will call the same one these are different so I’m not going to change them just yet and is there any u an any other errors throw error uh so yeah there’s you’re not on you’re not authorized error so let’s adjust this also so it’s going to be forbidden and forbidden I think it’s 400 no 403 is forbidden so okay forbidden you see and I don’t remember them by heart and the last one is something like fail to delete a reminder so we are simply going to check like uh throw uh internal server error which is going to be 500 so let’s save it and now I think there’s no throw new error so now all of the errors are going to be amazing uh so let’s for example let’s try to uh do update 500 uh could not determine data type of parameter 2 um this is a weird one so if it’s 10 uh bind message supplies two parameters but prepared statement it requires so it is some let me check it out that’s actually interesting so if we go to update reminder so we had these new values is not let’s try to console log our query real quick and if we go here if we try to call this what does it uh Okay so we’re saying where ID Oh okay so that’s actually that was my mistake we don’t need to take it from at which position we actually need to take it values.length so the ID is going to be at the last position always so my brain is a bit fried for us it’s already almost 10 so give me some slack but yes here we wanted to say like where the ID is not like equals the actual value of the ID what we were doing before because this one is actually let’s show it as an example that’s a very good thing that we caught it so if we have it like this and then I would leave it only like this and now if I would call this here we are saying okay okay but the ID is the same so maybe I want to do like this 100 so now what we’re saying is that okay so uh set this this reminder where the ID is at position 100 but we’re not even passing that many values here we only have one value and we’re saying at position 100 so this is what that does that’s why we need to keep it only uh values.length because in theory uh we are trying to update uh where the position is and it’s not minus one it shouldn’t be minus one it should be normal one so if we do this one and again console log it so now we’re saying yeah like at position two because we have at position one we have the reminder itself that we’re passing here and at position two because we added it with values push and push adds at the end of the array uh we added the reminder ID so the reminder ID is always going to be the last uh item inside the values array that’s how you a access it by saying values.length length give me basically if the length is two it’s going to be at position two so yeah this is that’s why I said like it it’s weird that we I’m doing this but it was my my bad so now it’s working and we’re saying that item is was not found perfect so if we go to our guide how does Yeah so service handles business and throw structure mhm so here I you can see how everything ties together so basically what we are doing is first of all we are calling the validate data create reminder schema so if we go to our routes here that’s what we are calling if it doesn’t have it it just skips this and right away goes into the controller but if it does have it’s calling the valid data with the schema to validate it and only calls the controller if the schema is correct so that’s what we just checked then controllers call services so if we go to the controller the controller will call the service in here and then this service is going to process the data and do whatever but if the error occurs while processing the let’s say the data like here we we weren’t able to find it will throw this error then what happens is that this error is passed to the error handler middleware via next error so for example if we go back to our controller because an error happened here we’re catching it and we’re passing this error that we threw to the next which is error handler middleware because if we go here the next one is error handler middleware so then uh service uh yeah processes the logic and throw that that error that I just talked to you and then return error handler middleware returns a structured error with a status code and with a message or with a defaulted values so that’s how everything ties in together um so just try to experiment this will make sense if you try to sometimes when you try to do it only once it might be a bit confusing but this is I know how like also started just try to do it once twice and then later you are kind of um tie everything up in your head as well because you forget to add something and then okay you see oh it doesn’t work why it doesn’t work then you say oh I forgot to add maybe this middleware or maybe I forgot to tell the our app to use this middle middleware that I created so it and also if you while watching this have any questions uh feel free to leave it under the video it’s this video will be up and also feel free to ask JBT it will always answer at least give you an idea of the answer but if it’s not clear enough leave us a comment and I’m trying my best to always go back to the videos at least for the first few months and try to reply to you so yes that is actually how we implement and how we properly structure our API our backend and how most of the big companies are structuring it if you come to a job uh interview as a junior or maybe even as an intern knowing all of this will help you a lot and you will even if you don’t have everything like down to a tea how it’s said uh you can already have a good idea of uh okay I remember I saw this I remember it can be here and I remember more or less what models are doing so you can get a gist of where you add your logic where you add your database and how everything ties up it it ties it together basically okay so now that we’re done with our back end it’s time to do the front end the front end is not it’s going to be a very easy one so again I’m not going to spend too much time on it we have a lot of tutorials on this channel uh how to implement it with way bigger examples way more difficult examples this is going to be a very very small uh application i’m seeing that it’s already almost 4 hours so as always uh it’s not going to be a short one but um yeah hopefully it’s going to be a good one so first of all what we need to do for the to create our uh our let’s say mobile application expo application is once again install NodeJS but if you you are 100% have it installed because if you wanted to follow the back end you needed it as well then if you are running it on a physical device you simply need expo go application that you can download on your um device either Android or iOS from the app store and you’ll be able to run the application without any extra setup just like that however if you want to run the application on a simulator on an emulator on your machine you would need some extra setup and here I am providing this setup like you can follow the documentation and um run it uh but for this guide I would suggest you if you are just starting out do not even bother with all of these just check out uh using um Expo Go application it will work just the same and uh if you feel that oh okay I’m liking uh React Native Expo it’s amazing then you can set it up everything here as well again a few things in mind uh Android is available on all operating systems but Xcode which is required for uh iOS simulator is only available for Mac OS however you are still able to publish um iOS applications to the app store uh using EAS but uh again this is not what we’re going to cover it it’s like a next next step uh it’s a lot of theory so maybe we’ll do a tutorial on how to do that but we’ll see so yeah as I said right now let’s use Expo Go i will use a simulator but just because I want to show you the screen of the simulator on on the live stream that I’m doing now so once you’re done with the configuring let’s set up a fresh expo project and it is actually insanely easy just copy this line of code go to your terminal and run this code so what we’re doing here we’re calling create expo app with the latest version we’re saying this is going to be the name of like my folder in my application and we’re saying d- template and it is because um by default here if you don’t provide a template it will create a default template which will already include some tools and which you will probably use for most of the your apps but because I want to show you everything from scratch without having anything else pre-installed we will choose the blank TypeScript So let’s choose that and click enter now while it while it’s installing let’s go back and check out what’s going to happen yes probably you will not see this uh unless you started with the with the Apple like the front end first so if you see this just click yes I trust the authors because you are the author you created everything and now we will need to open another um VS code um project in VS code so to do that what we will do go to your Xcode and you can simply uh either go um file and maybe even new window or I’ve never done it yeah new window works but you can also click commandshiftn uh if you’re on a MacBook or control shiftn if you are on a windows and it will open you with a shortcut this new window so now that you opened it go to files uh and in which I I think I have done a little bit of a mistake because I created this uh Apple reminders clone inside the Apple reminders API folder so if you go here uh we will already see this I will remind us clone so do not do not do that that’s uh we needed to do it in a different folder so yeah I will simply delete it from here if you follow do it like that that’s not an issue and now if you see that you are in your API folder just simply do cd and then double dot that means go one directory back and now I see that I’m in the right uh project directory so now I can actually run this command and create the project that I wanted with a typescript and um yeah now we are going to wait a second it created it so now we can go to our VS code on file open recent uh or no actually open and then we are going to go to uh documents projects and here we should have apple reminders clone let’s open this project and now actually that we’re not going to use the reminders API that much anymore so let’s do it like this okay so now what we need to do is run our front end application to do that click on terminal new terminal and in here simply write mpx and I see that I need to increase it maybe not sure how much um but yeah maybe that’s enough maybe that’s better we can close this clo uh welcome mpx uh expo start once you run this you will see something like this so if you’re using Go if you’re using Expo Go simply scan this QR code and you will right away see the application on your phone just as easy as that no setup nothing for me as I mentioned I will be working with a simulator just to show it uh on the screen so uh I pressed uh Y to open iOS simulator let’s minimize this screen a little bit to fit in the emulator as well so if I go here I know that some of the emulator is hidden behind my camera let me fix that real quick how much something like this probably should be good maybe a bit i can use a bit more and then I can extend this until the end perfect so now that we have our app running we can see uh here open up app tsx and start working on your app so if you go here we can change here the text to anything something like hello world and if we save it we already see the changes that means everything is working everything is set up correctly we can continue working so actually now this is not in the place anymore again okay so yeah here I explain all of that and now let’s create a basic structure once again so just as uh like we did in the API let’s create a new folder in the root directory called source here we will keep all of our source code basically everything that we create inside here the two folders that you will always create especially if you’re using export router is going to be app and also inside we will create components component yes so here we will keep all of our screens uh and we will talk about it soon and here we will keep like Lego pieces small components that we will be attaching in our code so as we can as I said here for screens and navigation app and for components for reusable UI components little Lego pieces now another very important thing is to set up uh path aliases previously I wasn’t that big on them but um because I didn’t want it to overwhelm beginners but they’re actually amazing and without them the project can get a little bit unclear because this is by default how would you import you need so many like go back go back go back and then one directory back one directory back then components and list item if you have path aliases set up you can simply say like this you see how much cleaner it is and to do that the only thing you need to do is actually in the TS config which we have here you can just add this line like we don’t we’re not going to use assets now but so you can only add this but basically only this small part if you add it here uh yeah here you will already set up these path aliases and when I’m let’s say here I’m saying go to at and then component so what it’s saying this at because we’re here specifying uh at and it will be inside the source basically go source components or I could say uh at app or whatever so this is setting up the path aliases and it makes it a lot a lot more cleaner now we can import it just like that perfect we have the setup done now it’s time to implement the expo router and the navigation but before that let me maybe check out the um the chat and Lucas is low-key killing it thank you Catalyn thank you always here always supporting um link lend my error runtime not ready cannot read property style of un undefined probably you didn’t define the style somewhere you’re trying to access it but it’s either not in the right scope so you defined it in the wrong place or it’s like not defined at all uh music forever love you thank you thank you very much uh I appreciate you you’re here actually I remember in Apple News Clone you were here from the start until now you’re here today so I really appreciate the support and I see Reelio is also here still thank you thank you guys very much you’re you’re an amazing support guys always here always supporting huge huge thank you so let me actually take a few sips of water it’s important to stay hydrated oh that was a good sip of water but I like I almost don’t have any left so let me uh Okay um so we’ll be installing now the Expo router for our navigation as mentioned so to do that just go to the official documentation which you can find at um yeah this link or just go to the notion guide that I provided now we can close these because we will no longer need them and we will follow the installation so first of all we need to install all of these dependencies and actual exper itself so let’s do that open the terminal you can do it with terminal new terminal or with a shortcut let’s stop the server with Ctrl C because we will need to rerun it with a clear cache and now we can paste that long code but I see that I included some not necessary symbols like 200 um yeah that’s a long way i could have done it shorter but yeah let’s install all of these libraries they will appear here inside yeah here all of them are installed now what we need to do is we need to change our main entry point in the package.json so let’s copy this and go to the package.json we’re already here and inside here where it says main and right now it’s index j index.ts TS which is here we need to say okay we will change it and now we will uh use the export router entry which is going to be the app folder in a way we’ll see it how it works a bit later then we also need to for deep linking which we will not really explore and but it’s not very difficult we will add our scheme so in the app config which is app.json JSON i like to do it under the slug here add our scheme so let’s say not just uh reminders something like this uh actually like this not just reminders um or even not follow it completely like something like this not just reminders okay now that we added this scheme we could install React Native web and React DOM if we want to have our application also on uh the web right away and it’s just like installing this and that’s it just to save time we’re not going to do it uh but yeah it’s very easy then you will need to also enable the web bundler and then you need to modify the Babel config if you have it already changed by to use basically Babel Babel preset expo but uh by default this is what Expo will use so you will not even have this folder this file in your file structure because this is the default setup for it so the last thing we need to do is we need to run our server again with clear flag that means clear the um clear the cache so now if we run it and open it reload we will see a little bit of an error saying that expo cannot find the routes any like inside the source app directory and we changed that the main entry right now is inside source app so let’s create a entry file called index o not js I am used right now from um tsx yes and now let’s define our let’s say entry file it’s not going to be right now anything too crazy but uh we will have something like export default uh function we will call it home screen because this is going to be our home screen and we will uh return for now simply a view let’s make sure that you import the view from React Native and we will also import text and also make sure that you import it from React Native and in here let’s say hello if we save it we once again hilo hello once we can see it here that means it’s working the expert router recognizes our routes everything is perfect so now that we are no longer using this apps and this index.ts ts we can safely remove these files and nothing will crash nothing will be bad uh because now we our entry file is the index so uh we can also close this and go back to our uh notion guide what we did we installed we created our first screen so now uh let’s see uh should I um let me think like because we will sh okay so I will show you the navigation a bit later on how you can navigate but if you’re following this uh notion guide feel free to just like follow it and um here follow these examples but I don’t want to waste your time at my time right now uh mine is not that important yours is very important important so I’m not I don’t want to waste your time and go through these um little examples that we will later like very soon actually remove and we’ll also still see how the navigation works so you can read and implement but if you don’t want uh let’s just continue so now this is an important one and um the lay let’s a little bit talk about this layouts file this layout file uh is like kind of like a wrapper uh around your screens because by default all of the routes fill the entire screen so this basically is a route and it fills the whole screen but sometimes uh so yeah and if you would move to another screen this will change the full screen everything inside it will change but sometimes you want to um keep some of the things for example the headers so you would want to keep here the header or you would want to keep the bottom tabs as your navigation so in order to keep those things we need this layout that will wrap the screen so it will wrap the screen and it will put uh it will yeah this is going to be the layout and here you would have your screen that you created basically inside it so you would still see everything that you defined inside the layout and also uh what you have inside the screen so in order to think of the um in order to showcase how it works we can create this layout file and let’s create it inside the app and let’s make it layout tsx um so now that we created this layout file in here it’s actually uh let’s export default function and also let’s call it root layout and why we call it root layout it’s because it’s in the root basically the main layout inside the app this is going to wrap everything that you add all of your screens inside here it will wrap this is going to be on top of them so root layout and in here in here let’s return and let’s return a slot from uh actually not a slot stack will be a better example let’s return a stack from I didn’t close sorry didn’t close the tag from react uh expert router and right away after I save you can see this header and this is what stack provides so uh with stack you will have the all the u go back like for example if I would navigate to another screen here it will automatically add go back arrow and it will it will always display the headers we can hide them and I will show you how but this is basically what’s wrapping all the screens in here so actually I kind of have to show you this example but if you add another one let’s say about tsx and uh let’s say about screen and then let’s say here about screen so now if we have the two of these screens and I go here and say link link and then here we say href and I say go to about screen if I click on it you can see that it right away went to this new screen that I just created but because they are both under this layout they both have this header uh because I said this layout wraps around everything that you add inside this app um app directory so now if I and it also added this back so it has also the stack keeps the history of where you went so if I go back I will go to index now there is also a slot but the slot will not return anything basically it will just render the children inside here behind hiding you can see hello from here and if I yeah you like let me add uh here style and some margin top like 50 so here you can see this hello if I click on it we went to about screen but I cannot go back it did not keep this u history so yeah that’s why we will use here the stack for us and we can remove this delete i said I won’t waste your time but I did so yeah this is how you can think about layout and in our let’s say Apple News clone or a Reddit clone that we did recently uh I’m sure Vim also in his clones um use the layout even more like nested layouts because you can have a layout inside a layout this is a bit more complicated so let you can leave it for your next tutorial okay so now uh there’s a quick guide like how uh expert router decides which screen to load basically because you saw here we had two screens but how did it decided to load the index and not about and here um like I can you can read a bit but the basic rule is that expert router will look for the first available index uh file in the project directory and it will once it finds it it loads it right way if it doesn’t find it let’s say at the root level if I had here like something like protect oh not capital protected and I had the index inside here so I can even actually not create here but move it so here inside protected and if I reload you can see that it’s still here like but now the index inside is inside protected and index so it’s looking for the first index that to find and it goes deep deep deep searching for it so here’s a short step-by-step like um explanation of how it finds it uh and here’s a very common also way example of having two subfolders which is going to be protected and O protected will contain all screens that require authentication authentication and they should not be accessed uh any other way and O will hold all of the screens like login register forgot password basically the screens that can be accessed by unauthenticated users so first of all the root layout loads app.layout uh because this is the first thing to be loaded always in every so for example I could even create here another layout and uh in that case uh let me showcase what will happen so if I do this and this will be let’s say protected layout so now it has two headers because the first thing it always does it loads this layout it doesn’t find in the app index it goes into folder in the further it finds here an index but it still loads the layout first so let me move the index out of here because we will no longer need this but let me go through the example so yeah it loads the root layout it it finds there either slot or stack which again acts as a wrapper since there is no index inside the app uh expert router will move into subcategories so expert router will scan those subcategories in order that they appear in the file system so for example this or here if we had like as I said another file something like um I’m not sure like blog blog.tsx it will look them one by one like this so basically alphabetically because this is how they are ordered here in inside so the first valid index found we determine the initial screen since the app has no index it moves deeper in the subcategories uh in the subdirectories and scans them also in the alphabetical order so for example if I had here O and protected it will go into O first and then in protected because it didn’t found any like index in the O it will move next which it will find the index inside protected and immediately load it like even if protected didn’t have an index the expert router would search even deeper and a very common pattern as I say here is to create a tabs folder inside protected and then in this case expo router would continue searching inside tabs and even deeper until it finds the index there so here I’m also specifying what will happen if the off and protected had an index and basically to summarize it it will uh load the o index if you don’t have any layout checks there because you can add any code here to be executed in the layout before even loading here so saying like if uh not o basically if you don’t have o uh then we can uh redirect to somewhere like if you don’t have this in the o uh layout it will load the o index because it found it there first be uh so here yeah here because it’s alphabetically uh so yeah that’s that’s the main gist and we have these these examples in Apple um Apple News clone and Reddit clone and pro Vadim has in other uh projects as well so here if you want you can always go back and check the final code of our root layout uh but we will implement it step by step so let’s go we implemented the expert router let’s check out the tanstack query and why we would use that so TensaQuery is a very powerful tool for state management uh and also like for fetching uh it simplifies it caching fetching synchronizing updating the state so basically instead of handling everything manually it helps us to do it basically with a tanstack query so this is how our request would look like without timestack query we would need to handle the loading we would need to store our reminders when we get them from the fetch request to the state as well we would need to also handle the error separately and set it catch it and finally set the loading to false and here actually it should have been at the start like set it to the loading to oh it’s initially true and then you need to call the fetch reminders and use effect this is a lot of boilerplate for one fetch request so look how much it simplifies everything if we’re using the tanstack query so this is only one advantage of it but also it has global caching so tense query like caches those responses automatically which means that if the same request is made like in multiple components it will be dd duplicated avoiding like unnecessary network calls for every time that you do a request so it keeps that data cached fetched by refreshing in the background and it handles like garbage collection of all data and basically optimizes everything it’s so so good so it’s um to do to use it it’s very easy setup first of all let’s install it with npx expo install so let’s open our terminal we can stop the server once again and I again got this 200 so let’s install tack query and once installed inside the app layout basically the first uh the first file that will be loaded we need to import the query client and define it so if we go to the layout here uh what we will do here is we will import this layout client and let me check if the stream is um yeah okay it’s good so uh we will import the query client and also provider we’ll see later what we do with that we are defining this new query client and then we need to wrap our whole layout with this um query client provider and then pass the client there so it will look something like this so if we keep it here we’re wrapping our whole application because if you remember the layout will be loaded first this is the root layout it’s nothing is going to be above it we are um we’re uh wrapping everything in query client provider and we’re passing this client to it to know like okay basically which client to use now that it’s done uh here you can find the final code but we’ll check out how to do it that’s it you can start using uh sorry you can start using the tanstack query just like that so if we go to our first component how to do that well we already used some components like text and view and they’re react native built-in components and we use them inside here inside our index like view and previously you saw text link is also built-in component from expert router but we can also create our own components so to do that let’s start seeing how everything evolves and basically how everything ties up so first of all let’s start u by displaying the a simple reminder but in order to display that reminder well we kind of need to query it from our uh API that we just created well let’s do just that let’s go to our code inside the index well first of all let’s start the application once we have it ready let’s open it on iOS let’s say reload with by clicking R and then yeah and then let’s start working on it first of all we need to do the query as I said well in order to do that it’s very easy first of all we will define that u or maybe let’s start with use query from tanstack query so we’re basically going to use this fetching and inside here what we need to do is we need to pass a few things well the first thing is the query key and the query key is there to know basically for caching like and you’ll see later on when we add a new um add a new uh record to update the lists and u actually now that I’m thinking I will expand this um after the stream probably tomorrow it’s going to be too late today but uh expand this uh guide and explain a a little bit more inside the tens query um lesson what is the query key and what is the next one that we will use which is query function well query function is kind of um self-explanatory we will run the function um that we will define here basically what this query your query needs to fetch or whatever so in theory what we could do is we could simply uh inside here define like right away uh fetch uh first of all we would say const response and equals now here we need to define like what we are fetching like the URL so we will say await that’s very important we will use the fetch uh function you could use axios or yeah it’s up to you but we will say uh await and it’s going to re a bit complain about the weight but we’ll fix it later and now what we need to do is we need to get our URL the same way as we were doing inside insomnia so for example let’s we’re trying to get all reminders so let’s copy this go back to our code and let’s say okay let’s call uh this basically function and what we need to do is we need to get the response and yeah this response should be parsed to JSON and we can do con um actually we can return it right away so yeah this is what we will do and here you would more time like all the time actually you would have an error catcher so for example here would say if the error is the if the response is not is not okay like the it’s not 200 then something fails so we would say throw uh new error and it depends like now it’s also based on how your team is handling you can define here your own like names fail to fetch a reminder or reminders actually it’s plural or you could reuse the error messages from the like back end that we’re returning so it’s really up to you and um yeah I will show you this way so yeah uh but this like reusing this and maybe you will need even to call this same query somewhere else in your app for example if you have different lists or whatever well there’s a better way once again to handling this and the better way is creating a services folder inside source and inside this services we will provi provide create reminders or maybe reminder service.ts and in here we can like create all of these different functions that will have all of the logic and that we’ll be able to reuse very similar to how we did like we use services in our API so now let’s define actually the first service and the first service function it’s going to be export a sync that’s very important because we this function will be a synchronous we will need to await something to re return so a sync function the name it will be get reminders for now it will have no um no parameters and in here what we will need to do is simply call all of this so we can copy it and paste it uh too much a bit so now we can reuse this get reminders function everywhere in our app just like this and it cleans up the query function here a lot a lot more so what we would do is we would say get uh reminders and make sure it’s important from services here from services reminder service uh get reminders and then we also need to say um okay something here I made a little mistake um oh yeah not little actually a huge mistake but why I removed all of that I don’t know because we only needed to remove this this part and also we don’t need this little part but we need the closing tag and um yeah and this part we also need so here we can move them here and here we will say get uh we will use the oh get reminders from services reminder service let’s fix it a little bit and also we need to call this function so now uh okay it says is yeah so now we will get a little bit of um of an error but it’s not uh because we’re not done with how we are basically defining all of this when uh this get reminders are is called what we need to do is we need to destructure from this use query a few things and we already learned about the structuring so basically what this returns to us so it will return data it will also return is loading so basically data is already what is going to be returned from here so in this case the response JSON the is loading is going to be true while we’re fetching and once we get it will be false so that’s how we control it very easily and then we will also see an error here so now um now we can let’s do it this way yeah what uh why it turned white it says no query client set use query client provider to set one but do we actually have one from tense oh we did not save it after changes so now yeah I I saw a little bubble it was not saved sorry my bad but now that we saved it’s working so now if we go to our uh reminders and if we console log the data here uh let’s go here we can see that we are receiving this data we receiving one completed false created at id notes and reminder by milk we remember that we created this here we are also receiving the reminder uh of one we also remember that we created with it with notes don’t forget to feed him for so we’re we’re already receiving the data from our own API and in order to see that it’s actually from our own API we can go to the controllers reminder controllers and for example for all reminders we can console log saying uh calling this function so if we save it now once once we reload this application sorry once we reload this application if we go to here uh oh we are returning we’re console logging the reminders it’s going to be a little bit messy so let’s do it once again so now if we go here oh what are we console logging still here but we see that yeah calling this function is here uh so that means we are actually going inside here going inside the get all reminders well first of all starting of course from routes getting inside here our model is calling the database with this exact um let’s say query and it returns us back so here was what we’re console logging and it returns us back to controller the reminder says a JSON with status 200 which means everything worked perfectly amazing now that we have this data we still need to handle a few use cases for example if we are loading uh if if we’re still fetching let’s return an activity indicator for users to understand that uh activity indicator from React Native from for users to understand that okay it’s still loading so be patient uh it will be the data will be the list will be here soon let’s add some margin on uh top to see it better like something like 20% uh oh sorry like this let’s save it so now you saw like a short loading period so if I make it like is not loading you see here is g how it’s going to look like you can also pass I forgot like yeah size and you can say it should be large so now the loading is big okay perfect now we also need so for example let’s simulate an error let’s say if response is okay throw an error so now it’s not going to show us anything uh else because what we need to do is we will add yeah here the loading was a bit longer because again a very good thing about uh tens query it’s retrying every time to call again because oftent times um calling the back end again uh is fixing the function you see how many times it called our API and often times this is should be enough like because it it can let’s say at least it can fix the issue by calling it again so we don’t need to set up anything manually it’s right away trying to provide a good response that’s amazing another very cool thing about um about um test query but let’s say if we had an error we need to return this error so in order to return this error let’s define how it should look like so we’ll not do anything too crazy we’ll simply say we render a text and inside here we will uh of course opening this so we’re saying okay don’t we’re not adding just the text but the JavaScript expression and we will say render the error and the message that you return from this error of course we will probably need to add some also styles like here it doesn’t need to be too pretty so now if we load it and actually it’s not going to Yeah let’s wait now here we see failed to fetch reminders so that means that um this this service threw an error and um the utens caught it and returned it to us so now we can display the error message which is failed to fetch the reminders we can also make this a little bit maybe nicer something like bold or not font size font font weight bold and then yeah maybe justify content should we align no align self i think it’s align self center and now it will look a little bit better let’s structure it like this as well yeah I’m spending too much time on this error of course but I cannot leave too bad of a quality okay so now it’s good so we can say if the response was not okay then return me this error otherwise the data should be there so now when the data is there we can start working with it well first of all we already remember this kind of syntax so let’s do that here underneath like if there’s no errors nothing else let’s take uh the data at position zero so basically because if you remember it returns us an array here you can see it returns us an array of objects so we will take the first one inside an array because zero is first and now we can start working and implementing this um slowly this custom component so first of all we will say okay so inside a view we will have a text and the text will say reminder item um I’m seeing some messages um okay uh reminder items and then we will say uh yeah reminder because that’s what we receive we also get the notes so if we save it we can here see buy milk if we say give me at position one it’s going to be one with don’t forget eggs i don’t think if oh we have also at position three so take the dog out for a walk don’t forget to feed him before so this is how we’re already using the data from our database but um imagine if we would need to uh create all of these separately so for example I would need to have another one reminder item two um and saying like something like this this would be a little bit insane first of all and uh not very maintainable second of all and here yeah I’m again saying why we use curly braces because JSX treats everything inside text as a plain default text but in to include dynamic values like here we need to wrap them in a curly brace to tell that it need to be evaluated as a JavaScript expression so to make this a little bit more reusable inside a component let’s create that Lego piece that I was talking about with you let’s call it reminder list item tsx and in here um yeah in here we can uh move all of this logic so that we had here with uh displaying notes and reminders to here so let’s do export default function let’s call it reminder list item and let’s do it return and let’s return something like uh view and also a text we need to import it so you can import it by pressing command Y and make sure that it’s imported command I yeah command I and make sure it’s imported from React Native uh and do the same here and make sure it’s imported from React Native or you can just write it yourself like this so here we also can do the same thing by basically display display some text let’s say here we will be reminder uh and let’s leave it like that for now so now instead of creating this huge code and imagine if there is more styles more text it would be very bad what we can do is we can simply let’s remove the link import this newly created reminder list item from components reminder list item and inside here we can simply use it like that reminder list item so now we’re using this little Lego piece inside our code and u and basically we are able to reuse it and we can use it anywhere in our app like anywhere at all that’s very good but now we’re displaying some random information how do we display the actual information that we need well the same as we were passing props here uh parameters we can pass it to our components so for example we could here say that we want to receive reminder item and now we define what is that reminder item for us it’s going to be let’s say this one and we can even do a second one and yeah do reminder item two uh so now if we save it and now we can see that it displays two but how can we take the data in here and reuse it well it’s kind of not too difficult in here what we will do is we will take the name here reminder item we will destructure it right away to reminder item otherwise you would take it as a props and then you would here do props dot reminder item but we already learned how destruction works we know how cool it is so let why not use that okay we have reminder item now we can start using it so for example if I say reminder item reminder and even reminder item do notes if we save it we are right away seeing the data the actual data that we need which is amazing of course we do see some red warnings saying that it has an any type and TypeScript is not happy about it at all but we will fix it very very soon so now if we go here uh yeah I’m telling that this is how we made it manageable reusable and very scalable i told you how to pass the props and actually yeah like if you would go here and say I can pass hello again hilo hello equals let’s say something like hey we could get this data inside there as well so I would say how I named it so if I go here I called the prop hello so I would go no no no no not full I would here also say hello and now I could simply uh display that instead of what I was displaying before but what I need to do is I also need to pass it here because otherwise it will crash so if I save it here I save it here we’re displaying the hey so we’re displaying the value that we passed which is here this little thing so you can pass as many parameters as you want and it’s going to work you can use them here u the way you need it to be and we’ll see a bit later but for now what we need is the reminder item and display the notes and the reminder itself so yeah we saw how to pass the data uh how to receive the data and how to use it here I’m also like giving you a little bit of an example of uh how it will would you use it if you wouldn’t destructure it here so you could have here props but then do props render item reminder but now that we structure we can do reminder item reminder let’s close the service for now and let’s close uh the let’s let’s make this a bit smaller we don’t need the layout the index will need app don’t need don’t need don’t need so now we can start working on the designs and I have provided you here the final code of the design how everything will look like so if you want just go there copy it and u yeah and you’ll have everything ready but we can do it uh real quick because it’s not that difficult ourselves well first of all we will u have our reminder as untouchable opacity which means it’s going to be pressable so we need to of course pass the on press function to tell what will happen after user presses on it so we’ll say console log and we have pressed amazing that’s very good but we can also pass some styles to it so if we save it now you can see that it’s pressable if I press it’s doing like this little animation but um we need to pass some styles to this whole component because now it looks well to say the least horrible so these styles can be first of all we need to um yeah oh I forgot a bit more i don’t have a design on my on my screen so but if you want actually and I will do that i will uh go here and here I will move it to check the design and it will be a lot easier for me okay so yeah I can see right away that we need to have um little icon beside it and um and then another icon at the end of it so actually without showing to you it’s also not going to be very good good so but here as you can see we have this little button to know if it’s already um completed or not we have a more information button and we have some text here so let’s start doing like from left to the right what we need to add is the the icon so I already have this icon ready and let me copy it so it’s going to be here let’s save it and also uh to use this icon we need to import them from material community icons and we will also need the undesigned later so now okay we have this button perfect that’s very good we also need the uh other button that I talked about which is the um which is the the the information button that’s that’s how you call it probably so let’s do it that way u okay like this let’s save it and we already have some styles to it so we are aligning it at the start like maybe I will remove the styles for now okay so now we have all of them like that well what we we see is that they should be in a row to achieve that that already gives us a very good hint because we want them to be in a row so flex direction row now we have all of that in a row however we don’t want these two to be in a row we want them to be as one component so to achieve that we are simply going to wrap them inside one view and now they will stay under each other but this uh this and this will be a line in a row so that’s already achieves a lot if we would add this for example inside here it’s also going to stay in a column but we want this to be at the end in a row perfect we have this we also want to align all of these items inside like and center them like this for now later we’ll change this but we want them to be centered also we want them to have a gap between each other something like like a small gap between here and here now um now that we have this I’m thinking um what would be the most important part for the Yeah so let’s say we also want this uh information button to be aligned like completely on the right to achieve that we will have margin left and we would have auto amazing that’s that’s what we wanted to do we also it’s a bit too close to the side so we will have margin uh right and we will have like something like five having it a bit uh more outside of the wall okay that’s very good so now the worst thing that like for me here is the text it’s too small it’s um like hard to understand which is reminder what is note so let’s maybe quickly style them it’s not going to be too difficult so let’s do that for the title uh of the reminder we actually don’t need to pass anything maybe if you want to make it bigger maybe we’ll do that for but for the uh notes we definitely see that it is a bit smaller so maybe something like 12 and we see that the color is gray but not and not black so yeah maybe uh I will make it um yeah for now let’s leave it like this may if you want you can do it bigger but now I also want to have a little bit of gap between here and on the bottom so again it’s already saying you what we want to add which is gap and the gap could be of five um but now let’s say that the reminder can be very long uh even longer even longer and now it pushes like our icons out what we need to say is that the flex box that it is in should so basically if everything something that’s inside here is moving out of the flex box that it’s in and you can see the flex box that it’s in by doing background red then move this everything inside like for example if I move remove this you can see that it’s going out and the the flexbox is actually here so I need to do um background blue but you don’t see it because of this but yeah basically what it says is if something is going outside of the flex box please uh don’t do that so we uh can achieve this now what else well uh let’s see the designs well they need to have some sort of uh like more padding around it and like the lines uh under so that means we will be continuing continuing to add styles to the main um main component that wraps everything so first of all I really want to add some margin between them all of them so I will say margin bottom and it should be quite a big margin from example like this and I also want them to be a little bit um separated by a line so to do that we can very easily add a line border bottom width and we can import we can even either say like the width should be 0.5 and then we can say border bottom color and the color will be in our case I see gray or we can from the stylesheet that’s imported from react native very important we can get the hairline line width which makes it a little bit smaller and look better in my opinion so now that we have all of these uh I will I still want to because this line is too close to the to the note let me add some padding uh on the bottom and here we say let something do like five or something like that so now we are kind of moving towards um what we want of course uh here you don’t see the final version it’s too close to the sides but we’ll get to that right now we’re only wanting to solve this and actually here we can move back to reminder item reminder okay so now we have these uh what we want to do next let me check the design so here we kind of are okay yeah here I see that the this icon is not very well aligned so we need to align it with the title here at the top but now it’s in the middle between these two so what I would do here is I would say align uh yourself so align self and align it at the start of the flex box that you are in so it moved it to the top so now it’s kind of um where we want to be not exactly but we will um solve it a little bit later inside the index when we are be applying the styles there okay but now this u button is always pressed how can we control what to dis how it should be displayed well for that I decided that we will use uh state so to use a state what we need to do is first of all dis uh define the variable name a set is comp completed so we need to define the variable name and also say that okay it is going to be a state by calling as a use state from react and it should usually be the first one um a hook so what is a state a state is um do I have an example no I didn’t so basically a state is a variable uh that once it is changed the whole component is rerendered and we’ve talked quite in detailed in Apple News clone about it so if you want check it out maybe only that part but basically what it will do once we change it it will go through everything and adjust it basically or rerender your whole comp whole component to show maybe some changes that we will do right now very soon so again we can define inside the state a default value basically how it is going to be initialized and if you remember our reminder item has a completed field which is basically specifying if the item if the reminder is completed or not but now we still always displaying this completed button well that means we will need to uh render the icon conditionally so if it is completed we will show one thing if it’s not we will show another so here we’ll say if it is completed let’s show what we are actually showing here let’s maybe clean it up a little bit and here like this and here like this okay so now here we Yeah if it is completed we will show this else this little double dot mean else else we will show a little bit of a different icon and I have it here so let me copy paste it um else we will show it incomplete so now it’s a lot closer to what we need to have but now how can we make it completed well actually we will do it by later on calling a mutation but for now what we can do is say set is completed and make it um so the right way would be to take the current state and say make it different so if it is now completed it should not be completed and vice versa so now if I save it I can see that it’s being applied to one of them and it works good but it doesn’t update it in the database this is what we will do a little bit later on but now that we have all of this um I’m feeling that we need to finish styling uh to look to to make it look better so go back to your index and first of all inside the actually go to your layout and inside the stack what we need to do is we need to say okay we kind of don’t need this uh header here so to do that what we can do is um instead of having a stack selflo with a self-closing tag make it like this and inside here we will define stack dots screen we will give a name of this screen basically index that you have here so we’ll say index and we will pass some of the options to it so maybe some styling options which in our case it’s going to be header shown false we could you could also instead of doing header shown false you can have header uh title and say hello you could change not like this you could change here the title but for us what we need to do is just hide it well we can see another issue right away that all the text moved behind like in unsafe area let’s say that way well we can save it pretty quickly saying use safe area view and in this case we will use save area view from React Native uh so if we save it it right away moved out our content outside of this uh notch and inside the safe area so everything that it’s going to render here it’s going to render inside a safe area but let’s give it some styles so first of all if we do background color and do red we can see that it’s only taking up that much space but we need to take we need for it to take up the full space of the screen so we pass flex one basically saying take out the full space of the screen you are in we also need some margins on the side so now that you saw how it works I can remove the background color we also need some uh margins on the side so to do that we can say margin horizontal and it will add margins on here and on here uh if you could do also margin vertical to add it on top and on the bottom but for us we need it only uh horizontal okay now that we have this uh looking a lot better what we need to do as well is to add this uh if we go here reminders uh title and it is very easy i actually even have it prepared so I’m not going to waste your time too much i’m going to paste it and tell you what it does we’re simply uh displaying a text saying reminders we give it a font size of 27 we make it bold we give some letter spacing between each letter we give a color of this and we have a little bit of margin on the bottom of it so now our reminders look a lot uh better okay so what’s next what’s next is going to be um yeah okay I know so the next thing that we need to do even if we are displaying all of these reminders like uh like this the problem is that we still are taking the data one by one how can we make it dynamic so that in the future so if you actually go here and we can go to the next lesson which is type safe component so I was I was thinking to show the list right away but let’s follow the structure so yeah very quickly why do we need TypeScript and why do we use it well it helps us to detect errors errory so helps to tie catch also like type mismatches so for example if a component expects a string but gets a number it will complain about it so for example also if the if it will not have a um uh any type like here and here it will say well uh any type is not good enough to put it in simple words it also ha helps us to catch like these little errors for example if we would say reminder item remain it will complain and say maybe you meant reminder because that’s what reminder item is supposed to have in its type and also it makes it a lot easier to understand the code and understand what component expects and it what it doesn’t expect so I highly suggest everyone use at least start using you don’t need to actually apply the uh types everywhere so for example if you would leave it like this and release it to production nothing will crash everything will work but uh so you don’t need to apply all the types but at least start learning how to do that so inside the source let’s create a new folder called types and inside we can create let’s say reminder uh types.ts and in here let’s paste let’s copy all of this code so here we it’s actually pretty simple what we’re doing we are defining a reminder type and we know that this reminder should ex uh have a number with an uh with ID with an type of number and we can get all of this information from our database so if we go here or like our migration schema that we created or even the zod schema so it expects a ID of number of string it can have a note but note is either string or it can be null if it’s not provided it will have a completed boolean user ID or number and it will have a string of created uh at yes then we will have different types for inserting and for updating so for inserting uh when you’re creating new a reminder is a string which is required but a notes is an optional string that’s why we add this little question mark and even if it’s optional you can have it as a string or as a null value and user ID is also required as a type of number but for updating both of them are optional because you can update only one field so you can update the string um the reminder of a string or notes either a string or if you removed it it it’s going to be a null so now that we defined these types we can save them and um we can update our reminder list item component so here you can just copy but I will show you how to do that step by step because that’s that’s where we are seeing the complaints so at the top here let’s create a new type called I usually what I do just copy this name and add at the end uh props then we can start defining the types so what we know it is expecting to get a reminder it should expect to get a reminder item so let’s copy and paste that and this reminder item should be of type reminder here so it should have all of these fields so if we say reminder it would should suggest us to right away import it from types and we can hear that it imported from types but now it’s still complaining because we did not apply it here so how to apply it uh we simply add double dots here and we say this reminder all of these props okay it should have copied only one all of these props that we receive should match what we defined here so for example if you had here uh hey like we defined earlier you would have here inside also uh hey and it was of type string so because reminder props should receive basically two things but this hey can be also optional so it might be optional it depends on your case but yeah right now we’re only expecting the reminder item and this is how it should be structured so now you see that it’s no longer complaining it’s also a very good uh practice to here to provide names for your states so for example here we know that this is is completed and completed should be of type boolean if you pass a string if you pass a number it will complain so for example if I pass here two uh sorry if yeah if I pass here two it will start complaining because it says it’s not assignable to parameter of type boolean so it has to be either true or false and in our case the reminder item completed it is true or false okay so that’s that it’s very easy we’ll see how you use them even more in the previous tutorials we used them kind of in a especially in the Reddit clone in a more complicated way but this is a very good start to have basically just at least apply types to your components and the data they are receiving that way you will learn and if something you don’t understand like you can copy the error message paste it to any AI tool and it will help you to understand okay what’s the problem here okay so now that we fixed these types the one thing that we can finally get to is the lists because if as I told before adding all of the items like this and let’s say data we could even do like this way but that’s that’s insane that’s way too difficult uh and later on let’s say if people add more reminders in the application you need you would need to if you had this case come back here add new um new values after adding these new values submit your app to uh Apple review or Google play review and only then you can release with new values so this is not going to work we need to make them somehow uh dynamically render and uh basically it doesn’t matter how long the list is it should render them dynamically all the time and for that we can use a flat list from React Native flat list is a very cool list because it’s very optimized it’s rendering only the data that you see in some more screens but it is basically if you are thinking about rendering a list more times than not you are going to use a flat list there are different lists but yes this is what you should think of and it should expect a data and the data should be an array we know that this data that we get from the our query is an array so we can pass it like this but it’s not enough because we need to also define and tell to the flat list okay so how should I render this data so you could say okay so for every component that you render just render hello and because we have three three reminders it will render three hellos still not good enough we need to take the data from those reminders and uh dynamically display them so Every time um flat list goes through the list it goes let’s say inside first object then it goes inside second object then inside third option object and if there’s more continues to do that and every time it goes inside that object object it returns you here basically saying okay here is the object that I’m rendering now tell me how to render it and we will do it by simply saying item and let’s say let’s take reminder because we know that this item item has a reminder field so if we save it we can already see the reminder titles that it’s rendering here but it’s it’s even more powerful than that what you could do is you could say okay so for every item please uh render me reminder list item so the component that we just created of course we can right away see that uh the reminder list item TypeScript is helping us is expecting to get a reminder item so let’s just do that and even if you pass let’s say a reminder item incorrectly it will say that is not assignable to the type reminder that means the type is incorrect the data that you’re passing so you can see how much it’s helping us but if we say item it is because I’m writing this item i’m passing this item to the reminder list and if I go to the reminder list we know how to use all of this data so now if I save this we can see that everything is working very very well so we no longer now need these uh anymore and um we have a decent looking um reminder list of course uh let’s see if we uh align item center yes so we need that but um are they aligned correctly i’m not exactly sure but probably they are yeah you can play around with the styles a bit more but it this is how we want to Oh no yeah I see they are not uh especially this one is not correct because here we have so much white space so in here we can adjust it a little bit and say okay so the title reminder title we know that it always will be here so render it always but we will render the notes only if the reminder item has these notes so if you have them if they are defined if they are not null please render them only in that case so this is also bad because uh it will it might crash your application because you need to uh this should be a boolean basically true or false but notes is a string and uh we need to convert it to a boolean by doing double negation basically so first of all uh yeah doing double negation so if we save it we can see that now it looks good because now it there’s no white space under underneath it if it doesn’t exist and uh yeah it looks amazing so we can maybe increase a little bit the font size as well of the reminder so saying like font size 15 something like this and then maybe this one can be 13 yeah it depends on you you can play around with it but yes now that we have them uh one very important thing that we need to implement is actually uh finishing these and sending it to the data because now if we finish them we reload we can see that they’re not finished anymore so to do that we will use again tens query but we will use this time mutation from it so mutation is the difference between query and mutation mutation is kind of like a post patch uh request the thing that you want to make the changes in to your data and the query is the thing that you only ask for the data it returns and that’s it so what mutation will uh pass down is the mutate which is going to be the function basically that you call when you want to run the mutation so usually you do it on the button press or in this case we will do it on the button press so basically when the user clicks on this we can rename this mutate to our own so let’s say we can call it complete task uh and now you could either leave it like this and it would work if you called mutate but complete task makes a bit more sense it’s easier to read so now we will define like that it should be a use mutation from tenstack query and then this uh mutation should have also expects a few things so first of all it expects mutation function well that’s kind of uh easier to understand we need to somehow like say to it what it needs to do so for now we will uh leave it empty but later on we will add something inside there then it you this is no longer uh required but what we can do is we can call on success and basically when we call on success we are saying that um call this function if the mutation succeeds basically if it runs without any errors so we will do that also because we will need to do that and lastly we will say okay so what should happen if it didn’t succeed if there’s an if there was an error so here we will take the error from it and we will actually right away implement what it will do because we will simply display alert uh from React Native alert and we will say just display an error and also the error message you can adjust this like what happens on error however you want this is a very basic approach but it’s a good one okay so now let uh let’s define another function for mutation well that means we will be doing that inside the reminders service and um yeah uh let’s go and create a new function called so I will copy this one maybe close it and just rename it to complete reminder so here we’ll be completing the reminder but in order to complete reminder we will need uh two things well first of all our API expects ID to get ID and also it expects to get well is it completed or is it uncompleted so we will do that now we can build our query so uh our fetch function so we will say await and now we’ll say fetch inside here once again we could once again uh paste this whole link uh like long query and it would work but what we can do we can also create an environment file in the root here as well so if you create this environment file what we can do with it I will copy paste it and you can say like this is going to be our API URL and it’s actually 3001 and this API URL it’s very important to make it it expo public so that expo knows that it’s ex publicly available um environment variable and that I should be able to access it inside here so now uh I could very easily change my code to instead of calling this whole long let’s say um code what I can do is say okay so simply use process dot environment and then here there was a name I called it expo public and I think it was API URL and then we say slash slash reminders and then if I well now I won’t see that it’s working because I have this error in the renter item list but we can copy this and actually do the same here but of course we will call a different endpoint because we will be calling reminders but now you see okay so these are completely same how do we specify that it this is a post request no longer a get well for that we will open uh more options and here the first thing that we can pass is a method and this method if you remember is a post method because fetch by default is a get method we also need to pass some headers to say that okay the basically the content type will be a JSON type so this is what we need to pass for it and then we will pass in the body itself so basically all of the information but also we need to make sure that this body is in JSON format so that’s why we say JSON stringify and then we will pass um well either the full reminder or um actually only the like the parts that need to be updated so in this case it we only need to update the completed so we called it completed in our back end and then we call is completed like here and it um it will be the I think yeah let’s I think it’s going to be we need to like convert it to a different one so for example if it was completed that means we will uncomplete it uh or if it wasn’t completed we will complete it so if it’s true we’ll convert it to false if it’s false we will convert it to true uh later if we don’t need it I will remove it but yeah actually complete reminder is not a post request it’s a patch request because we’re updating and I forgot about it and we also need to pass the reminders and we also need to pass there the ID of the reminder so now this is getting uh better and the body is only passing the completed and now the rest of the part is exactly the same we were checking if the response is good failed to let’s say update uh a reminder and then if it’s good we will return a response so now we see that this is complaining because of the type so we can say that the ID should be of type number and it’s it’s very easy to add and the uh get completed should be of type boolean so now it’s good if we go back to our reminder list item we need to use this complete reminder function uh from the service reminder from this yeah reminder service so now if you hover on this we see that TypeScript is complaining because it expects an ID and is completed boolean and nothing is provided well first of all we need to the provide the ID and to do that it’s not that difficult because we have the ID here inside reminder item do ID and lastly we need to also um provide whether the reminder is completed or not and for that we will receive it in here so let’s say is reminder completed so you can pass the fun uh variables to mutations in here and then we will pass it back to here but now we see that uh this argument is of type void so we need to type this uh is reminder completed as well and now nothing is complaining everything is good so now what we can do is we can actually pass this once the user press on this touchable opacity we can do uh we can call complete uh not reminder because this is not going to be good we call complete task uh from here like mutation so once we call complete task what we need to do is we need to pass the current state of our task so we are passing this so if the current state is true we’ll pass it as true here but the reminder service is going to transform it and make it false so if we keep it like this um and now uh yeah now if we would change something it would not work so like if I uh and what is the error network request actually that’s very interesting to see so let’s see console.log response and let’s see what the response say to us let’s scroll to the bottom um doesn’t network request failed uh okay i think I wasn’t I didn’t refreshed it and it was showing me this error but now if I try to reload it we can see that after I clicked it it’s completed and if I click again and reload it it’s uncompleted but the problem is that we’re not showing the the like basically the changes in here right away we need to replo reload our app which is very bad so what we will do on success if it succeeded let’s take the data that it returns and set is completed to the data docompleted so basically what we’re doing here is we will set the data set this to completed only if we succeeded and the data is actually completed so now if I save it if I do this we can see that it already updates automatically uh if I yeah and if I reload it’s going to stay like that in theory you could h you could do this with um optimistic UI approach and uh call this even without on success but I just wanted to showcase you how to use this on success uh hook uh not hook like a function that it returns and um yeah this is exactly how you would do that so now we see that we can complete our uh reminders everything is perfect now we need to be able to create these reminders and um that is going to be done let’s see how uh I’m checking if the stream is still here people are still watching okay so now updating the reminder well we can see from our designs that the button to create I mean create new reminder should be uh in the index on the bottom and uh that button is actually I have it I think in my I don’t no I did not add it well never mind we can create it our own so we will have a pressable this is also basically how you wrap a button your custom buttons um and it’s imported from react native so in inside here we can add we need to add an icon that I have prepared as well because as if we see here it’s like a plus but icon i did not do it this way so now I also need to import it uh from React vector icons okay yes and type of React Native vector icons if I save it we see this plus sign right away where we need it and if we didn’t add here the flex it would be here at the top but now if we add this here it moves it where we need it to be and lastly we also need to add the text which is going to say new reminder the text should have be a little bit bigger so let’s pass some styles so the text will be something like font weight so you can also pass numbers here so 600 a little bit more but not too much and we also will pass a color of that little not little but cool orange color and let’s add a hashtag here let’s save it perfect now that’s still a bit um bad maybe we can make it also font size something like 16 and but it’s not uh really aligned how it should be how we would want it to be so we need to pass some styles to the box to the view or the wrap the parent component that wraps it so first of all we again if we want them to be in a row we will pass flex direction row we see that they are not really aligned in the middle so what we will do is we will align them centrally we need to also pass some gap between them so let me make it five and um yeah right now you don’t see it but here it does it will if I scrolled here on the bottom I am 100% sure that it will have no space here so what I want to do is I want to add some margin top and let’s make it 10 perfect so now we have this button um I also if I scroll I see that this reminders always stays on the top but this is shouldn’t happen and it’s very easy to fix inside the flat list we can pass list header component and we can simply pass that title as a list header component so now if I save and scroll it’s going to scroll together this is exactly what we wanted to achieve very good um so now how do we uh navigate to a new screen when we want to update well first of all we need to create a new screen inside our app and we will call it create and also update reminders because this is we can re reuse the same screen for both of the things very very easily and I will showcase you how to do that um so okay we have that um now let’s implement a very export default function uh create update reminder let’s make it return and let’s make it return a view and also a text so now if and import it from react native that’s very important so now if we say here create update save it and now how can we navigate here well if we go to the reminder uh index actually our home screen what we need to do to navigate there is as we already learned we can use link so we need to wrap everything with link from expo router so make sure you import it from expo router we no longer need this view here so we can remove it and now that we have okay now that we have this link here we it expects to have an href it’s like required the only thing that’s required and what we want to pass there is simply this name create update reminder create update reminder if we save it we can already see that something is messed up here and it’s because link only ex expects like to get a string or an icon inside it if you want to have your own some sort of um structure like some sort of a styling what you can do is pass it as child so what this does is basically saying okay I will pass this navigation to the children component but it’s very important that the children component has an on press uh like a parameter and we know that pressable has it so now it’s going to work and if we press here we are navigated to create update reminder screen of course we want to add some changes here and um to do that if we go to our layout we remember that we can style each of them separately so if we go to stack screen let’s close it here we need to pass the name that we’re trying to here implement changes so the name will be exactly this one create update reminder and now in here we can uh once again pass some options but because we will pass more options let’s make it like this so we will say options and inside here open the object and first of all what I really want to do is pass the presentation of model this is not going to be this model is not going to be native to Android because Android doesn’t have this kind of model so it will look a bit differently like a normal screen but it will still work so no worries about that i also because here if I click it’s the title is very random so I want to change the header title and the header title will be something like new reminder by default then I also want to add here like a back button or more like Apple reminders have it says cancel here so I can actually add my own uh header on the left there by simply specifying this and I will pass like a text i have it prepared here so you can just copy it and Okay um give me a what I’m forgetting the header left does not support attribute because it does not have props property uh let me actually type everything on my own because header left and I’m Yeah let’s see i will say text and what if I just say cancel here oh I did not import it from anywhere okay my bad so if I import from here now it will say cancel here but you already saw we can add some styles and I have a color prepared for that so let’s add them now the color is a lot better and we also want to once it’s clicked it should go back so right now it doesn’t do anything so to to go back programmatically we can pass this on press and we can reuse from expo router this little router and here by saying router uh back we can programmatically go back so if I click cancel now I’m going back to the main screen and it’s working like we want it to be perfect we have that ready so now we can start building our create update UI and it’s going to be pretty simple well first of all uh what I want to do oh again so there’s one more thing and maybe I will add it later yes so first of all what I want to do is add text inputs and um because we are severely over time um uh I see the questions uh Ryan I’m watching from Brazil very very nice i hope you will you will enjoy ready i’m when will be the other tutorial tutorial i missed this one we’re doing the tutorials at least trying to do every Friday maybe sometimes it can be every other Friday but we’re trying our best to do it every Friday but no worries because every tutorial you can find on uh this YouTube channel just go to it go to the live tab and you will see all of our tutorials there’s 300 of them uh so you’ll find what you need for sure but yeah so I will simply paste this little part um and I will explain real quick how it works well first of all let’s import the text input from React Native that’s very important and uh let me maybe remove this part it will be a bit easier to explain and now here you see some styles and I’m passing them in a different way and you might be thinking why and um well in the previous ones uh I was maybe even a bit uh lazy no I’m joking but um you can either pass the styles in line the same as we were doing here but if they’re getting longer like for example this one and this can be your homework actually or this one and especially in reminder item here we can definitely do that for this style but we can very nicely extract them in a stylesheet so we could create stylesheet from again it’s very important to import it from react native and we can say stylesheet dotcreate and we will create our own stylesheet so first of all we can add we can see here that we need a divider stylesheet so let’s call it like this and let’s add the styles for divider and I have them prepared here first of all we’re adding bordm bottom width you seen this and we’re saying the border bottom color should be light gray we also want to pass the styles to our input box so uh and we are usually doing that if they they have like a lot of different styles oh my mistake what’s no no uh so yeah we’re usually doing that if there’s a lot of styles like here or if the styles are repeating a lot then it’s a very good practice to extract them like this so here you can see that we set the background as white we gave some margin horizontal on the sides we also gave some margin on the top we also gave the border radius to this white box and of course padding very important because that’s how it would look without it and also we gave a gap between each of the input like this so yeah as your homework do this for um reminders list item and especially at least for this huge style here it’s a good practice to do it this way so now that we have these two inputs we need a way to track of what is being typed there and uh one way of doing that is using a state once again because whenever user is inputting something we need to first of all update it here so and also we need to store that data somewhere so we will do that with use state here so the use state will be a string only and the initial it will be initially it will be an empty string so we need to do the same for the notes as well so we’ll say set notes and it’s also going to be a string and uh initially empty okay that’s very good so now if we want to like how do we attach this text input to the state so that when someone is typing here I can have it inside my state every time and update it so that I could have the latest data when submitting well it’s very easy actually the only thing we need to do is pass to this text input two uh properties one is value so the value is going to be the actual like reminder and here the same value is going to be the notes in this case and also we need a way so when someone is typing to update this value so we will call on um on change text and when the text is being changed we will be calling either set reminders or on change text we will be calling set notes so in yeah in theory you could have it like this and have here text and then like this and pass text like this this would also work uh but um we can simplify it and have it like this and basically it will take that text basically all the parameters that it receives and it will pass it to a reminder so it we can simplify it just like that and the multi-line what it does is basically without it if we have if we typed something let’s say a very long it’s going to do it this way but if we have multi-line it’s going to go down so that’s what we want to do another thing that we want to add is we want to uh add a done button here at the top and uh how can we do that well in here in the layout we couldn’t really do it because after the done is pressed we will need to run the mutation and the mutation we will have it only inside here so how we can do it well first of all let’s wrap uh our our return statement in this like tag it’s uh kind of like a view tag but not really it just allows because return statement can have only one element inside uh so we need to wrap it like this because what we will do next is we will try to add stack dots screen we’re once again uh referencing this screen name so saying name and here now we can pass even more changes so for example if we couldn’t add something in the layout we can add it here very easily so for example here we need to add the header right uh and it should be a button and I already have uh yeah maybe I will do it like it will be a text button it will simply say done and the styles will have only a color so styles will have done like that of course we will have in here on press uh so once it’s pressed we will say we will call a function but for now we will console dot log and say uh pressed something like this okay so now it’s time for us finally to implement our mutation here to save the reminder and to do that it’s going to be quite similar to what we did in reminder list item so first of all uh at the top here we will uh define it so let’s say const we’ll have a mutate and we will rename it to save rem uh save reminder and we will also um continue by initializing it with use mutation from react query and this use mutation will once again have few things first of all mutation function and this will be we will call this service then it will have on success and we will need this and you’ll see why uh so on success we will at this time we will not need to receive the data so we can simply leave it like this but we’ll do some things here and then on error and on error I can simply actually even copy from reminder list because it’s going to be exactly the same uh just import the alert from React Native okay perfect so now we can go to the service uh and add this new service uh basically function which is going to be create uh creating a new reminder perfect so if we go here let’s maybe Okay let’s create from scr no let’s do this i’m already a little bit tired not going to lie and in here we will pass we will uh name it create reminder and what this create reminder expects is only new reminder object and this new reminder object if you remember in the types we already specified how insert reminder should look like so we can simply say insert reminder and don’t forget to import it from the types so now everything is good it’s typed let’s copy this because it’s going to be quite similar to updating the only things that we need to change is we’re no longer needing the ID because we’re calling the reminders but we’re calling the post not the patch and instead of providing like one uh object u one um value we will provide the full object of new reminder and now everything else once again is exactly the same so we’ll check if the response is good if it’s not we will throw an error and here we can also say fail to create a reminder instead so now once we go back here we can start using this create reminder from services very important and in here we need to pass this new reminder so this new reminder is going to be consisting of a few things well first of all it needs to have a reminder itself and a user which is mandatory and it might have notes might not have well so that means there will be some extra logic here so we can do it uh like this first of all we will say okay so we will start building our new reminder um object and this object will have as I said reminder itself so we’re taking it from here and passing as a reminder you could do it like this in theory saying that this is a key this is the value but we can simplify it and this will be key and value and then we will be needing the user ID because we don’t have any authenticated users here and we don’t have authentication yet maybe we’ll do it in the other tutorials but this is going to be the ID that we will pass which is ID one so okay user ID one that’s good and now we know that the notes is not mandatory so if we add here the notes it will always pass it and um basically kind of updated but it’s not it shouldn’t be always passed uh inside the request so what we can do is we can check like if notes is not empty what we will do is we will say that this new reminder object we should add another field called notes and then it’s going to be this notes right now we kind of see the issue and uh it says that notes does not exist on this type so what we need to do here we also need to specify the type here and it will be insert reminder uh and now everything is working because it insert reminder has if you remember um notes as a optional value and it’s either going to be a string and or a null so now after we do all this what we can do is we can return and call the create reminder function with this built reminder object so if we do that let’s try and uh let’s say here hello and for the notes uh we say test so if we click done and uh reload it actually after clicking done maybe um wait a second new reminder and let’s say hello test because now I know it’s um it should also close it but if we click it should we implement right okay so let’s do it like this on success uh let’s first of all already learn how to do that but programmatically close that reminder uh like model so in in expo query we will import the router and inside here we will say routerback so if the if the request succeeds we will call uh router back and go back so let’s see if this is actually a correct uh so we’re doing post with new reminder and if it’s not oh and we’re okay so let’s see let’s try to reload it let’s go to a new reminder and do something like this and uh oh okay so yes you can see that it’s already almost 12 uh in here so uh I am not calling this reminder anywhere so what we need to do in this done on header pressed left we need to call this reminder and yeah basically say this is where uh when it’s going to be executed so let’s go here to the top let’s see the name it’s called save reminder so let’s say save reminder let’s save it and now if we call it uh let’s see if it’s going to work yeah it worked it went back so I can add even another one maybe here you would even uh want to add like a loading state so that you cannot for example add here uh is uh it’s called it’s pending not is loading so let’s say this on press um yeah what we can do let let me think we want to make it disabled but on the button so maybe can we do it like this let’s see uh true and if we say like this and if I yeah it’s not pressable so that’s good so what we say uh what we will say is if it’s pending do not allow to click uh made a screenshot do not allow to click another time so let’s say if we create uh reload we already see those new values but yeah let’s try doing that yeah um is it is this pending i don’t actually remember uh let me console log console log is pending let’s save it it’s false so dis maybe on Okay now it worked but maybe I was pressing on a wrong button but now it’s working so now we can actually also try to test if it actually this works maybe it was no it actually works perfect so we can maybe even make this uh cons uh const is save button disabled so what we will do is we will say that this button should be disabled if uh is pending or uh reminder is not present then it will and it will return uh true then basically it should be disabled but we can simplify this a lot more and then we would need to say else return like false but we can do it very very nicely by simply extracting this and keeping it like this so we say is button saved uh is save button disabled either if it’s loading or reminder is not provided so we will do something like this and we will call it so now if we save it we go here we are no longer and we’re not able to press but here we are able to press and um yeah now we created but let’s see how many only one so that’s good but yeah now the problem is another one like if you add some data here it’s not not appearing here right away and how can we solve this this is a very bad thing so it’s actually quite easy to solve it what we need to do is we need to import the use query client from the tenstack query so here we have uh tack yeah here we will import use query client then inside here below let’s say our routes we will specify as const query client and we will say that we want to use this hook use query client and now we can on success what we can do is we can say query client and invalidate all the queries because now it’s not updating because the cache is basically the same it doesn’t know it needs to be updated but now we say that I’ll update every query that has a key of uh reminders and if you remember we are passing this key in our index so basically here it will update all of the uh queries that has this key so this is exactly what we want so now if I go here and say here updated and here updated almost correctly if I click save we can see right away right away it is appearing here which is exactly what we want to do amazing so now um I’m wondering is actually is pending uh is a news mutation but um I think so i think I think I think so but we can also check 10stack.com 10st query examples and um maybe something like okay so there’s is fetching maybe I can is pending okay not something I was looking for um is this how it is called okay I see a lot uh yeah I was reading the comments but yeah thank you guys very much viva thank you much uh Mayures um Eric Marin Golucas Mexico helpfully thank you thank you very much Jamie yes we are still live and we will be finishing it until the end even though it takes a bit longer thank you very much and yes Lee uh the video will be available in this channel so make sure to check it out after in the live tab and 6 hours in and still nobody understand that Lucas is just an AI robot yes uh Jane with this age of AI you can’t tell who is human and who isn’t yeah indeed indeed but we will be finishing it definitely i’m not sure about the is pending but where is the mutation yeah let’s quickly check out the M yeah here mutations so yes it’s pending perfect but uh mutation is currently running so yeah it is called that way perfect i’m not making it up so now and actually in order to test this completely because I really think I want to keep it high quality uh let’s try to console log it but yeah I can see it’s true if I click um something here it’s going to be true and then yeah perfect very good so now that we have all of these um what we need to do is we need a way to delete them and uh in order to delete them what we need to do is we need to open uh their detail page it’s going to be easy to do let’s just go to our reminders list item and where we have this ant design what we need to do is we need to simply pass on press function so we say on press and then we once again because we’re kind of um navigating there programmatically but um actually why should I do it this way i can do it with a link so yeah this is way better so let’s do it let’s wrap it with a a link and now let’s pass an href and this href will be basically where are we navigating well we know that we will be navigating to create update reminder uh create update reminder so for now let’s leave it like this so of course you see the styles are already kind of a little bit messed up so we will pass it to as child and because design like icons have on press it’s going to work and it’s opening this screen but now what we need to do is we need to populate the these fields with the existing data if we click on here so in order to know on which uh reminder and I already see this vertical line which I really hate so let’s quickly go to index and say here shows vertical indicator and we will say false do not show it so now it’s perfect looks amazing okay so when go let’s go back to reminders list item and how do we know to which uh reminder that we go well to know that we need to pass the ID here and we will pass this ID as a optional parameter because it’s not going to be always present it’s going to be only present if we click and if you go go to create update reminder from here if we click here it’s not going to be present okay okay so that is a little bit uh more interesting so to do that we will add a question mark say that we’re passing the ID and then uh in here we will pass and of course to enable these inputs we need to change it to this quote under the escape button never knew how it’s called probably will never learn but uh yeah so now in here we will pass the ID of the reminder so saying reminder item do ID and you see TypeScript is already suggesting which fields does it have that’s another huge bonus so we say ID so now if we click here we should be receiving the ID of the reminder that we clicked on so in order to get this ID and create update reminder we can extract it from the URL and it’s actually quite easy to do so at the top here we can say const we can uh we need to specify that we’re taking the ID sorry uh so yeah we’re specifying that we’re taking the ID so if we had here name you would have here name as well but we will keep it as an ID because that’s what we are passing right okay perfect this is where we have an ID and now how can we extract it well we can use use uh local search params from uh export router and in here we will take that ID um later on we will have um a little bit of an issue with the TypeScript so I will right away fix it and specify to that the ID that we will receive it’s not going to be an array it’s going to be a string ID of string so now let’s try to console log this ID and see if we’re actually receiving correct IDs so if we save it we can see already that it’s working maybe I do I have this no so if I go let’s say here it says four if I go here it says ID 8 but if I go uh new reminder it’s undefined but it’s still working perfect so now that we have an ID we can query the the reminder based on this ID but this query will be called only if the ID exists so how can we achieve that well first of all maybe um because we will need this ID to pass as a integer and we are receiving in a URL once again the same issue as a string let’s right away pse it like this reminder ID and let’s parse it to integer and let’s pass this ID here perfect so now uh now it’s going to be of type uh integer what’s exactly what we need so here we can call uh we can create our query which is going to be again defined the same as in the index we will be getting data oh no data we will be getting is loading lastly we will be getting error okay that’s good so sorry misclicks so now we’ll say okay so it’s going to be not you state sorry guys it’s almost almost we are almost at the end uh so we’ll be taking it from use query hook and let’s specify what we will do that so first of all we’ll be uh defining a query key and the query key at this point we will call it still reminders because we called it here here reminders and we kind of want to keep it the same because if let’s say here we are uh going to be um invalidating queries it will invalidate all the queries but in order to have all of these uh separately like stored and cached separately what we can do because this is an array we can pass a reminder id here also as a key so now this query will consist of basically reminders and key uh keys key pair of reminders and reminder ID but if I call invalidate queries and I call only with reminders it will still invalidate this query because it will check at the first one so that’s why we call it reminders here as well okay we also need to have uh specify a query function and the function here is going to be um boom and of course we will need to right now define that function but very important thing here is because we don’t want to run this query all the time if the ID is not present we shouldn’t be calling this query so we need to pass on one more property uh called enabled and what we will do is we will say only fetch if id exists so we are doing this um reminder id if reminder ex ID exists only do then uh do the fetching then if it doesn’t exist do not do fetch and we will not need that okay that’s good so now we can go to our reminder service and create once again uh another service to get a reminder by ID so let’s create export and maybe I will copy as well here and get reminder by ID okay so it will of course if we’re getting it by ID it will expect an ID and the ID will be of type number um okay so now we can very easily specify it’s going to look almost exactly like get reminders here uh the only difference is that we will need to pass here also the ID at the end so very easy to adjust it so yeah now that we have this everything else is going to be the same as always uh here we don’t need to really uh yeah we’re checking if the response is okay failed to get a reminder and we will return it so in here now we can call that function and uh I think we called it get reminder by id make sure it’s imported from services and now we need to pass the ID in here because um or actually I think we can right away instead of passing there we can pass it from here because we have it at the top so now once we do this let’s check console um log and let’s check if the data if we’re actually getting the data so let’s try to click at first it’s undefined then it loads the data and then we get it actually so that’s very good but what if we click on new reminder well it’s going to be undefined and this function is not even going to be called so for example we could say here console.log uh called and uh if we go here it’s going to be well called but if we go on here it’s not even going to be called so that’s amazing exactly what we want okay so now that we have this reminder we need to populate the data uh with in these fields with already existing data here and to do that well we can uh introduce a new hook called use effect and this hook will help us to do that uh very nicely but actually before that even before that I would want to handle the loading case because if you saw there was at first some loading the data was undefined and then it was defined so let’s say if it’s uh is loading we will add basically exactly the same styles as here and the error is also going to be the same so you can just copy and paste it here but we need to show uh import the this one first of all yeah and we need to say like handle these state it’s very important um so now you can if you go here you will see a small loading screen which is exactly what we want but now what we will do is we will also call use effect uh query hook not query and once this hook uh when is this hook called well first of all it depends really on the dependencies that you that you have here so for example if I only have a empty array so it’s going to be uh called only when the component mounts so for example here it’s called and I can write anything whatever it’s not being called but if I pass any kind of dependencies here so for example let’s put reminder state as a dependency and now let’s try to call it again when uh I did not save it so yeah let me open it rendered more hooks than in the previous render so Oh okay i need to have this it’s very important never have uh these before uh hooks basically hooks should should always go before because the component every time need to render the same amount of hooks and why it was failing and it’s actually very good that it failed because I have an um I can explain to you because once you once we add it here what it does at first when this component mounts because it’s loading it will return this and it will never go uh down once the loading finishes it will go here and it will render this hook but now because we in the previous render we did not render this hook it will fail and throw us an error saying that we now we’re rendering more hooks than in the previous render so it’s very important to not have these returns uh before any of the hooks that you have here yeah so now if we save it it’s going to work and uh let’s go here so it is called now and now if I type every time this reminder state changes we are calling it again and again and again so this is what how we will reuse um our let’s say use query and how we will set the data that we receive from the API to this already existing states so what we can do here is we can go uh and say okay call this hook on first render and then every time when you uh when the data changes here basically when this changes call it again uh like yeah render it again call it again so what we will do first of all we will check if we have the data so if the data is not empty or undefined then we can call set reminder and set data dot reminder and also we can set set notes and say data do notes perfect uh now if we save it and go here we all right away see the data being populated so now if I press on let’s say the one with notes also we see this right away so this is how we will be able to update it but of course we need to create a one more mutation to be able to update this um um yeah to be able to update it so just under the save let’s create one more last mutation co well actually there will be delete but it’s a very easy one so almost the last mutation called mutate and let’s call it update uh rem reminder perfect so now uh we can also follow the old use mutation structure yeah how is it called let’s add some of these to make it a bit more of the same uh yeah make all of them the same so now inside here once again let’s follow uh how we did before we will call this uh we will have here mutation function which we will need to call and we will have some more changes here and also we will have oh sorry we will have here on su not unsettled on success which we will again we will be calling to invalidate the data and show right away the new changes that we just did and lastly the error is going to stay the same so I’m just going to copy it and paste it so right now actually also success is completely the same because the only thing we need to do when it succeeds is to invalidate the rem all the reminders and then go back so that we could see the changes right away so in this mutation we will have uh a little bit differently so we will also want to build this new reminder basically that we are updating to and in here we will pass the reminder because you can only update reminder notes and completed and also we will have the notes but we will pass the notes only if it exists uh basically if it’s not empty if it’s not uh empty string yes so if it’s an empty string we will pass it null because that’s the structure we kept it uh we kept in our database and that’s what we want to maintain basically if if the user removes um the string and leaves it let’s say goes here removes this and wants to update we need to set it as null and not as an empty string uh so yes that’s that’s what we’re trying to achieve here and also lastly we will just return and we will return the function that we will create in the reminder services now so let’s go here and let’s do like this let’s call it uh okay so update old reminder and in here uh this update function should expect uh the ID that we’re trying to the reminder that we’re trying to update and also the fields so ID I don’t know why I removed it and also it will be updated uh reminder so fields basically so in in here the type will be update reminder type the ones that we here specified okay so now we can call uh this very similarly to actually completing a reminder and we could have actually reused it but let’s make it that way so now that we have all of this code uh the only real difference that we are making here is that we are not passing only the completed but we’re passing the whole no this one the whole updated reminder object so that we could have easily and if you want a challenge you can try to uh implement it basically I just wanted to have a little bit separate concerns and yeah make it maybe a bit cleaner more structured so in here now once we return we can call update all reminder from this service make sure it’s important yes and in here we need to only pass the reminder ID so it’s going to be I think yeah reminder id and also we will be passing the new reminder object that we’ve built here perfect that’s not it we need to understand and basically which function to call or is it going to be called basically uh done or save new yeah save new reminder or update all reminder so to do that what we will do is we will create one function called ondone pressed and what this function will do is it will decide what are we calling so what how we will decide simply if reminder id exists that means we are in a detailed page and we will simply call where is it um we will call this update reminder function yes otherwise if it doesn’t exist uh that means we’re 100% uh saving and creating a new reminder so we will call save reminder function mutation which is here now we need to pass this function to our done instead of calling always save reminder we will call it uh undone pressed so we’ll go here and we’ll check which we need to function to call and it will call appropriately so now if we go let’s say and create a new one let’s say creating um new reminder and let’s say in notes we can add creating new notes if we save it we see that new reminder appeared but if we go here and let’s say rename to update new reminder and update new notes if we save it we can see that it updated this uh reminder itself so that means everything is working as we need it’s very cool very good uh so yeah now we are left with the last last thing and it’s going to be very easy to implement we need a way to remove these reminders because now we are cluttered in here so to do that we will add once we go here to update reminder we will add one more button on the bottom and here again we will decide uh whether to display it or not with saying like if reminder ID exists only then display it and I already have the styles I’m not going to waste too much of of your time here so let’s import pressible uh let’s have this and the the styles will be uh for like as the input box the same as these two the only thing is that for now we don’t have this so let’s say console log and let’s pass for now ss or maybe press okay so now something doesn’t look exactly correct and I don’t really uh why is it exactly like that because of input box but um I wanted to have them Oh okay okay i see because we have them in the same view but it should actually be outside of this view and be as its own separate box to click on delete yes perfect so now let’s simply uh define our last last mutation which is going to be for deletion so okay maybe let’s do it okay let’s do it here so we will create once again we learned it how to do it already so we will call here maybe delete or remove i’m not sure maybe remove reminder and then in here once again equals use mutation hook in here we specify the mutation function which is going to be something that we will create in the services so for now let’s do it this way we will have on success and on success is once again we are we need to invalidate the data because um we need to reflect all of these changes everywhere so we can copy exactly like this and actually error is also exactly the same so we the only thing we need to do is create this uh remove service so if we go to reminder services in here um for the delete we only need actually the um the ID so let’s copy this one uh create it like this let’s rename it say um how delete reminder maybe reminder and now uh that we specify this function let’s implement uh the the um the actual fetch request so let’s say const response equals we again we’re waiting for it where fetch calling fetch and here we’re specifying the link so maybe I will yeah it’s going to look very similar to this so URL so that’s what I’m going to do but if we remember this is actually a delete um request so we need to specify the method of delete so once we do that we can follow exactly the same as here uh structure and uh now we can go to our create update and call delete reminder by passing the reminder ID at here at the top that we have so now let’s test the deletion so now we can see that even if we reload that update new reminder is at the top but if I go here and click okay I forgot to pass it uh as a function so how did I call that mutation remove reminder yes here so if we go here we call remove reminder and let’s save it so now if I click here once we are back we are no longer seeing that anymore so as sad as well if we delete it’s no longer here so it’s working it’s uh yeah perfect uh we are finished with uh finally finished with our full stack application it took us a little bit longer than expected maybe I went too deep uh uh in some of the concepts but I hope it was valuable so yeah hopefully I really did not forget anything but um even if I did we already did quite a lot and also for yourself you can try to implement it even more things so for example one very good um task would be or even let’s say um exercise to do exactly the same but with users because we already created kind of uh the database uh we have the users there so try to do exactly the same and also maybe a list you can also have here but without completing just try to get those users and maybe implement a way to delete those users or if you have more knowledge in the on the like react native front end try to create different lists like um Apple reminders have so for example you could have a completed list and incomplete list this is actually one of the things I wanted to do as well but um yeah we’re severely over time so um yeah you can try doing that yourself so for example if you click go to all uh you will see incomplete or if you click go to completed tasks you will only see these and this is very good for you to continue learning on top of this and um deepening your knowledge and also if you have any questions just uh leave them in the description below oh not in the description in the comment section below i’m always trying to get back and u trying to answer these questions as much as I can find at least a little bit of time maybe sometimes during the weekends uh yeah I really want you to transfer all of my knowledge to you and uh if I can help I will definitely always try it out you can also use cajbt if I am not replying instantly maybe you’ll find your answer there but um yeah I will always be there to try at least and help you but yes hopefully you enjoyed uh this long long um tutorial uh hopefully at least one of you will finish it and yeah that would make me very happy i see some very nice words also and um I’m very thankful for these words uh and um yeah hopefully we’ll meet very soon again and we’ll have uh more of a chitchat zuhari awesome video it was very informative thank you thank you very much for staying for that long i really really appreciate it uh how what great job thank you very much Leonel super understandable thank you very much for this video these comments is actually what’s uh driving us forward and why I’ve stayed for so long and uh yeah even though at the end my wording got a little bit uh let’s say wonky but I tried I tried my best to keep focused keep it informative and yeah Eugene first time being here i hopefully I’ll see you more i usually remember all of the uh people that are at least commenting and we have some of the people here that are coming back at least to say hi for every every tutorial which is insane like wow it’s wow uh yeah guys thank you very much i really appreciate you being here with me and I’ll see

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Hare Rama Hare Krishna 1971 Indian Superhit Drama

    Hare Rama Hare Krishna 1971 Indian Superhit Drama

    YouTube Video

    हरे राम हरे कृष्ण – Hare Rama Hare Krishna 1971 Indian Superhit Drama Movie In 4K

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog