<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Leandro Barbosa</title>
    <description>The latest articles on DEV Community by Leandro Barbosa (@leandrobarbosafr).</description>
    <link>https://dev.to/leandrobarbosafr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1002669%2Fcacd24c9-58a7-432a-81d7-54c588d4fbd0.png</url>
      <title>DEV Community: Leandro Barbosa</title>
      <link>https://dev.to/leandrobarbosafr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/leandrobarbosafr"/>
    <language>en</language>
    <item>
      <title>I Turned Sanity Into a Social Content Operating System That Publishes to Instagram</title>
      <dc:creator>Leandro Barbosa</dc:creator>
      <pubDate>Mon, 28 Sep 2026 16:04:28 +0000</pubDate>
      <link>https://dev.to/leandrobarbosafr/i-turned-sanity-into-a-social-content-operating-system-that-publishes-to-instagram-b97</link>
      <guid>https://dev.to/leandrobarbosafr/i-turned-sanity-into-a-social-content-operating-system-that-publishes-to-instagram-b97</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/sanity-2026-09-16"&gt;Sanity Challenge, Path Two: Vibe-Code Something Strange&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built Sanity Social, a social content operating system for agencies.&lt;br&gt;
Instead of using Sanity only as a CMS, I used it to manage the complete lifecycle of social content: client brand guidelines, campaigns, AI-assisted drafting, editorial review, approval, scheduling, and finally publishing directly to Instagram.&lt;br&gt;
A post moves through:&lt;br&gt;
Idea → Draft → Internal Review → Client Review → Approved → Instagram&lt;br&gt;
The final version isn't a mock integration. I connected a real Instagram Business account through Meta OAuth and successfully published an approved post from the Sanity application directly to Instagram.&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;


&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/leandroBarbosaFR" rel="noopener noreferrer"&gt;
        leandroBarbosaFR
      &lt;/a&gt; / &lt;a href="https://github.com/leandroBarbosaFR/social-sanity" rel="noopener noreferrer"&gt;
        social-sanity
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Social Studio&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;An agency workspace for planning, approving, scheduling and publishing social content, built as a
&lt;a href="https://www.sanity.io/docs/app-sdk" rel="nofollow noopener noreferrer"&gt;Sanity App SDK&lt;/a&gt; application. It runs inside the Sanity
Dashboard, uses Sanity UI and the Content Lake for all content and workflow state, and publishes to
Instagram through a small Next.js backend that is the only place secrets live.&lt;/p&gt;
&lt;p&gt;Sanity models the whole editorial process here, not just the posts: client → brand guidelines →
campaign → social post → review workflow (&lt;a href="https://www.sanity.io/docs/workflows" rel="nofollow noopener noreferrer"&gt;Sanity Workflows&lt;/a&gt;)
→ human approval → publishing to Instagram, orchestrated by Sanity Functions. AI caption drafts and
an assistant run on &lt;a href="https://www.sanity.io/docs/content-agent" rel="nofollow noopener noreferrer"&gt;Sanity Content Agent&lt;/a&gt; and read the
structured brand and campaign context. AI never approves or publishes anything.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Sanity Challenge 2026&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Built for the DEV + Sanity Challenge 2026, Path Two ("Vibe-Code Something Strange"), with Claude Code.&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Sanity project&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;8btwn23g&lt;/code&gt;, dataset &lt;code&gt;production&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App (Sanity Dashboard)&lt;/td&gt;
&lt;td&gt;"Social Studio" App SDK&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/leandroBarbosaFR/social-sanity" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  My Build Process
&lt;/h2&gt;

&lt;p&gt;I built the project with Claude Code, using it as an implementation partner rather than a one-shot code generator.&lt;br&gt;
The initial idea was simple: turn Sanity into a social content operating system for agencies, with structured client data, brand guidelines, campaigns, review states, AI-assisted drafting, and Instagram publishing.&lt;br&gt;
One early direction was to turn the whole project into a full multi-tenant SaaS with custom authentication, tenant provisioning and Supabase RLS. That architecture still makes sense commercially, but it was too large for the challenge and distracted from the most interesting Sanity features.&lt;br&gt;
So I changed direction and focused on a deeper Sanity-native experience using App SDK, Workflows, structured content and external API publishing.&lt;br&gt;
The final editorial flow became:&lt;br&gt;
Idea → Draft → Internal Review → Client Review → Approved → Instagram&lt;br&gt;
Claude Code helped implement the custom App SDK interface, schemas, workflow synchronization, Instagram OAuth, encrypted token storage, publishing validation, duplicate-publish protection, AI drafting and tests.&lt;br&gt;
Where things got interesting&lt;br&gt;
Not everything worked on the first attempt.&lt;br&gt;
The Content Agent integration looked correct locally but failed against the real API until I deployed the required Studio and fixed issues that only appeared in production.&lt;br&gt;
Instagram was the biggest reality check. Mock publishing worked, but I wanted the submission to prove a real end-to-end flow. That meant configuring Meta OAuth, Instagram professional account access, Supabase, secure token storage and the deployed backend.&lt;br&gt;
At one point the Sanity App reported “Backend unavailable” even though the backend health endpoint was fully healthy. That led to another debugging pass around the frontend/backend connection instead of assuming the deployment itself was broken.&lt;br&gt;
The final test was real: I connected the @1367.studio Instagram Business account and successfully published an approved post from Social Studio directly to Instagram.&lt;br&gt;
AI and structured content&lt;br&gt;
I also wanted the AI feature to use Sanity for more than simple storage.&lt;br&gt;
“Draft with AI” reads structured context including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;brand voice&lt;/li&gt;
&lt;li&gt;target audience&lt;/li&gt;
&lt;li&gt;content pillars&lt;/li&gt;
&lt;li&gt;preferred and forbidden vocabulary&lt;/li&gt;
&lt;li&gt;CTA preferences&lt;/li&gt;
&lt;li&gt;campaign objective&lt;/li&gt;
&lt;li&gt;key messages
This produced much more relevant drafts than a generic caption prompt.
Testing
The final project has 72 passing tests, covering workflow behavior, publishing validation, Meta API errors, OAuth protection and duplicate publishing prevention.
pnpm check passes typechecking, linting, tests and all builds.
What I learned
The biggest lesson was that Sanity became much more interesting once I stopped thinking of it only as a CMS.
The same structured content can drive AI context, review workflows, scheduling and real external actions like publishing to Instagram.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Sanity Project Details
&lt;/h2&gt;

&lt;p&gt;Sanity Project ID: 8btwn23g&lt;br&gt;
Dataset: production&lt;br&gt;
The project uses structured documents for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;clients&lt;/li&gt;
&lt;li&gt;brand guidelines&lt;/li&gt;
&lt;li&gt;campaigns&lt;/li&gt;
&lt;li&gt;social posts&lt;/li&gt;
&lt;li&gt;workflow and publishing state
Sanity Workflows manage the editorial review process, while the custom App SDK interface provides the calendar, content views, post editor, Instagram preview, AI-assisted drafting, and publishing controls.
The structured relationships between client, brand guidelines, campaign, and social post are also used as context for AI-generated content.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Some Images
&lt;/h2&gt;

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

&lt;p&gt;Sanity schemas:&lt;/p&gt;

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

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


&lt;div&gt;
  &lt;iframe src="https://loom.com/embed/e6308ac0fd744cc689a5054911bd769f" width="100%" height="400"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;


</description>
      <category>devchallenge</category>
      <category>sanitychallenge</category>
      <category>sanity</category>
      <category>ai</category>
    </item>
    <item>
      <title>NEXT JS x SANITY.IO</title>
      <dc:creator>Leandro Barbosa</dc:creator>
      <pubDate>Wed, 02 Oct 2024 08:05:06 +0000</pubDate>
      <link>https://dev.to/leandrobarbosafr/next-js-x-sanityio-523k</link>
      <guid>https://dev.to/leandrobarbosafr/next-js-x-sanityio-523k</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Building Dynamic Websites with Next.js and Sanity.io: A Perfect Match for Modern Development&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;When it comes to creating fast, scalable, and dynamic websites, two technologies stand out: Next.js and Sanity.io. Pairing these two powerful tools can take your web development to the next level. Let’s dive into why this combo is so effective and how it can streamline your projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Next.js?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Next.js, powered by React, is a versatile framework that allows you to build dynamic applications with server-side rendering (SSR) and static site generation (SSG). It's hybrid nature means that it offers the best of both worlds: dynamic pages for personalised content and static pages for faster load times.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SSG and SSR: Deliver both static and dynamic content seamlessly.&lt;br&gt;
API Routes: Build full-stack applications by creating REST or GraphQL APIs directly within your project.&lt;br&gt;
Automatic Image Optimisation: Handle image resizing, format conversion, and performance enhancements out-of-the-box.&lt;br&gt;
Vercel Integration: Perfectly optimised for deployment on Vercel for speed and scalability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Sanity.io?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sanity.io is a headless CMS designed for flexibility and customisation. It allows developers to define custom content schemas and use real-time collaboration features to manage content more effectively. Sanity’s GROQ query language and its live preview features are a perfect match for the fast-paced development environment offered by Next.js.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Real-Time Content Updates: Sanity.io enables editors to see changes instantly, and combined with Next.js' hot-reloading, it results in a seamless content editing experience.&lt;br&gt;
Custom Content Types: Tailor your content model exactly to your project’s needs with Sanity’s schema builder.&lt;br&gt;
Scalability: Whether it’s a small portfolio or a large-scale e-commerce platform, Sanity can handle your content needs.&lt;br&gt;
GROQ: A flexible query language that allows you to retrieve only the content you need—optimising performance and reducing API calls.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Use Them Together?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Speed and Performance: With Next.js’ static site generation and Sanity’s real-time updates, your site will not only load quickly but will also reflect changes instantly.&lt;br&gt;
Flexibility: Sanity.io’s highly customisable structure allows you to create complex content models, while Next.js handles how this content is delivered, either statically or dynamically.&lt;br&gt;
Developer Experience: Both tools provide excellent developer experiences—Next.js with its powerful framework and Sanity.io with its easy-to-use CMS interface.&lt;br&gt;
Scalability and Security: Both Next.js and Sanity.io are built to scale, and Sanity.io's secure APIs ensure your data is safe.&lt;/p&gt;

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

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

&lt;p&gt;&lt;a href="https://www.sanity.io/" rel="noopener noreferrer"&gt;Sanity.io&lt;/a&gt; &lt;a href="https://nextjs.org/" rel="noopener noreferrer"&gt;Next.js&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>sanity</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Let's talk JS 🤪</title>
      <dc:creator>Leandro Barbosa</dc:creator>
      <pubDate>Fri, 06 Jan 2023 10:37:02 +0000</pubDate>
      <link>https://dev.to/leandrobarbosafr/lets-talk-js-1ad8</link>
      <guid>https://dev.to/leandrobarbosafr/lets-talk-js-1ad8</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe8gwrn455swfkyg8y95g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe8gwrn455swfkyg8y95g.png" alt="JS" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxor0yprnv8ucuf7rza93.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxor0yprnv8ucuf7rza93.png" alt="JS" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc5gpjh5zozqoe8tfcb6p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc5gpjh5zozqoe8tfcb6p.png" alt="JS" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F160ofpa1o7ji727r2suh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F160ofpa1o7ji727r2suh.png" alt="JS" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhg82tb5o7wtkj45248g5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhg82tb5o7wtkj45248g5.png" alt="JS" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkf4yaeds1xhujrwiajx3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkf4yaeds1xhujrwiajx3.png" alt="JS" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyzerdf73smd461dcloah.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyzerdf73smd461dcloah.png" alt="JS" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx9c29u85jhermlvysscr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx9c29u85jhermlvysscr.png" alt="JS" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fber0dl5hawktc9uv1h0y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fber0dl5hawktc9uv1h0y.png" alt="JS" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Let's talk about Types in javascript</title>
      <dc:creator>Leandro Barbosa</dc:creator>
      <pubDate>Fri, 06 Jan 2023 09:59:53 +0000</pubDate>
      <link>https://dev.to/leandrobarbosafr/lets-talk-about-types-in-javascript-5dcb</link>
      <guid>https://dev.to/leandrobarbosafr/lets-talk-about-types-in-javascript-5dcb</guid>
      <description>&lt;p&gt;In JavaScript, there are several types of data that you can work with in your code. Here is a list of the basic data types in JavaScript:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Number:&lt;/em&gt;&lt;/strong&gt; Numbers can be integers (e.g., 42) or floating-point values (e.g., 3.14). In JavaScript, all numbers are represented as double-precision floating-point values.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;String:&lt;/strong&gt;&lt;/em&gt; A string is a sequence of characters, represented in JavaScript by either single or double quotes (e.g., 'Hello, world!' or "Hello, world!").&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Boolean:&lt;/em&gt;&lt;/strong&gt; A boolean value represents a true or false value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;null:&lt;/em&gt;&lt;/strong&gt; The null value represents the absence of a value or a null reference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;undefined:&lt;/em&gt;&lt;/strong&gt; The undefined value represents a value that has not been assigned a value.&lt;/p&gt;

&lt;p&gt;In addition to these basic data types, JavaScript also has several composite data types, which are data structures that can hold multiple values. These composite data types include:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Array:&lt;/em&gt;&lt;/strong&gt; An array is a collection of values that are all of the same data type. Arrays are created using square brackets (e.g., [1, 2, 3]).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Object:&lt;/em&gt;&lt;/strong&gt; An object is a collection of key-value pairs. Objects are created using curly braces (e.g., {name: 'John', age: 30}).&lt;/p&gt;

&lt;p&gt;instagram @leandrobarbosa_____&lt;/p&gt;

</description>
      <category>jokes</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>Google Logo</title>
      <dc:creator>Leandro Barbosa</dc:creator>
      <pubDate>Thu, 05 Jan 2023 22:42:02 +0000</pubDate>
      <link>https://dev.to/leandrobarbosafr/google-logo-3kd1</link>
      <guid>https://dev.to/leandrobarbosafr/google-logo-3kd1</guid>
      <description>&lt;p&gt;here is my version of google logo with only css&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffo9rtxunzci9btjjp7jh.png" alt="The only div html" width="800" height="422"&gt;
&lt;/h2&gt;

&lt;p&gt;and here is the css code &lt;/p&gt;

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




&lt;p&gt;and here our google-logo class&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frqirq9ep5nvpalwj7q5f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frqirq9ep5nvpalwj7q5f.png" alt="Ithe circle with differents colors" width="715" height="526"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;here we gonna create the retangle to do the G using the :before &lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frlw4k0ysnl8n7jxuqswb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frlw4k0ysnl8n7jxuqswb.png" alt="Retangle" width="555" height="410"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;and finally the triangle to be able to do the same shape as a google logo, with :after&lt;/p&gt;

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




&lt;p&gt;----------------------THE FINAL RESULTS-----------------------&lt;/p&gt;

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




</description>
      <category>css</category>
      <category>googlecloud</category>
      <category>javascript</category>
      <category>html</category>
    </item>
  </channel>
</rss>
