<?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: Emanuele Pavanello</title>
    <description>The latest articles on DEV Community by Emanuele Pavanello (@epavanello).</description>
    <link>https://dev.to/epavanello</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F259729%2Feb7c0ee5-890f-4aae-8f0b-c7845089449b.jpeg</url>
      <title>DEV Community: Emanuele Pavanello</title>
      <link>https://dev.to/epavanello</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/epavanello"/>
    <language>en</language>
    <item>
      <title>I built a GitHub Bot that fixes your code for you (and here's how you can use it)</title>
      <dc:creator>Emanuele Pavanello</dc:creator>
      <pubDate>Fri, 06 Jun 2025 09:25:55 +0000</pubDate>
      <link>https://dev.to/epavanello/i-built-a-github-bot-that-fixes-your-code-for-you-and-heres-how-you-can-use-it-29ff</link>
      <guid>https://dev.to/epavanello/i-built-a-github-bot-that-fixes-your-code-for-you-and-heres-how-you-can-use-it-29ff</guid>
      <description>&lt;p&gt;Stop me if you've heard this one before: you're reviewing a pull request and spot a typo. Or maybe you're triaging issues and find a simple bug that needs fixing. You leave a comment, assign the task, and... wait. What if you could just tell a bot to fix it, and moments later, a pull request appears, ready to merge?&lt;/p&gt;

&lt;p&gt;That's the reality I wanted to create. I'm excited to introduce &lt;strong&gt;&lt;a href="https://github.com/epavanello/fixodev" rel="noopener noreferrer"&gt;FixO Dev Bot&lt;/a&gt;&lt;/strong&gt;, an open-source, AI-powered GitHub bot that automates the tedious parts of coding, so you can focus on what matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is FixO Dev Bot?
&lt;/h2&gt;

&lt;p&gt;FixO Dev Bot is your AI assistant on GitHub. Instead of manually fixing linting errors, refactoring code, or addressing minor bugs, you can simply mention &lt;code&gt;@fixodev&lt;/code&gt; in any GitHub issue or PR comment. The bot will then:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Understand the context:&lt;/strong&gt; It reads the issue description, comments, and even the code itself.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Clone your repository:&lt;/strong&gt; It securely checks out your code into an isolated Docker container.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Perform the work:&lt;/strong&gt; The AI analyzes the request and makes the necessary code changes.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Submit a pull request:&lt;/strong&gt; It delivers the fix directly to your repository in a new PR, or updates an existing one.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Our mission is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;To eliminate the friction between identifying code issues and implementing solutions, making high-quality code accessible to every developer and project.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We believe that code quality shouldn't be a luxury, and developers should be free to focus on creative problem-solving, not repetitive tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built This Bot
&lt;/h2&gt;

&lt;p&gt;As a developer, I've spent countless hours on tasks that felt like they could be automated. Things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixing a typo across multiple files.&lt;/li&gt;
&lt;li&gt;Refactoring a function to be more readable.&lt;/li&gt;
&lt;li&gt;Applying linter suggestions.&lt;/li&gt;
&lt;li&gt;Updating dependencies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These tasks, while necessary, are a major source of context switching and a drain on productivity. I envisioned a tool that could act as a pair programmer, taking care of these small but important fixes, allowing me to stay in the flow. That's how FixO Dev Bot was born.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it Works (The Magic Behind the Curtain)
&lt;/h2&gt;

&lt;p&gt;The magic of FixO Dev Bot lies in its architecture, which is designed for security, efficiency, and intelligence.&lt;/p&gt;

&lt;p&gt;When you mention &lt;code&gt;@fixodev&lt;/code&gt;, a webhook is sent from GitHub to our server. The server then creates a job and adds it to a queue. A worker picks up the job and spins up a secure Docker container. Inside the container, the bot clones your repository, and an AI agent (powered by models from OpenRouter) analyzes the code and the request to generate the fix. Finally, the bot uses the &lt;code&gt;simple-git&lt;/code&gt; library to create a branch, commit the changes, and open a pull request.&lt;/p&gt;

&lt;p&gt;The tech stack is built for performance and reliability:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Runtime&lt;/strong&gt;: Bun + TypeScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Framework&lt;/strong&gt;: Hono (for a lightweight server)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Containerization&lt;/strong&gt;: Docker&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Integration&lt;/strong&gt;: OpenRouter&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database&lt;/strong&gt;: SQLite with Drizzle ORM&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;FixO Dev Bot is more than just a simple "find and replace" tool. It's designed to handle a variety of development tasks.&lt;/p&gt;

&lt;h3&gt;
  
  
  From Issue to PR in Minutes
&lt;/h3&gt;

&lt;p&gt;Got an issue describing a bug or a small feature? Just mention the bot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example: In a GitHub issue&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Hey @fixodev, can you add validation to the email input field in &lt;code&gt;src/components/SignupForm.tsx&lt;/code&gt;? It should reject any email that doesn't include an &lt;code&gt;@&lt;/code&gt; symbol."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A few seconds later, you'll get a pull request with the requested changes, ready for your review.&lt;/p&gt;

&lt;h3&gt;
  
  
  Iterative PR Improvements
&lt;/h3&gt;

&lt;p&gt;The bot can also help you refine existing pull requests. If you see something that needs changing, just add a comment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example: In a pull request comment&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"@fixodev, great start! Can you also add a unit test for this new validation logic?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The bot will understand the context of the PR, make the requested changes, and push an update to the &lt;em&gt;same branch&lt;/em&gt;. No new PRs, just a clean, iterative workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  Custom Configuration (soon)
&lt;/h3&gt;

&lt;p&gt;Every project is different. With a &lt;code&gt;.fixodev.yml&lt;/code&gt; file in your repository's root, you can customize the bot's behavior, specifying the runtime, scripts, and more.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;runtime&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;bun:latest&lt;/span&gt;
&lt;span class="na"&gt;scripts&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;lint&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;bun run lint&lt;/span&gt;
  &lt;span class="na"&gt;test&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;bun run test&lt;/span&gt;
  &lt;span class="na"&gt;format&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;bun run format&lt;/span&gt;
&lt;span class="na"&gt;autofix&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;autofix&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="na"&gt;target&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;main&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How to Get Started
&lt;/h2&gt;

&lt;p&gt;Ready to give it a try? It only takes a minute to set up.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;&lt;a href="https://github.com/apps/fixodev-app" rel="noopener noreferrer"&gt;Install the GitHub App&lt;/a&gt;&lt;/strong&gt; for private repositories. It'a not required for public repositories.&lt;/li&gt;
&lt;li&gt; (Optional) Add a &lt;code&gt;.fixodev.yml&lt;/code&gt; file to your repository for custom configuration.&lt;/li&gt;
&lt;li&gt; Mention &lt;code&gt;@fixodev&lt;/code&gt; in an issue or PR comment and watch the magic happen!&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Join the Community and Contribute
&lt;/h2&gt;

&lt;p&gt;FixO Dev Bot is an open-source project, and we believe the best tools are built by the community. Whether you're a developer, a designer, or just someone with great ideas, we'd love for you to get involved.&lt;/p&gt;

&lt;p&gt;Here are a few ways you can contribute:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Beta Testers&lt;/strong&gt;: Try the bot on your projects and give us feedback.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developers&lt;/strong&gt;: Help us fix bugs, add new features, and improve performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentation&lt;/strong&gt;: Help us improve our guides and tutorials.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ready to jump in? Check out the project on &lt;a href="https://github.com/epavanello/fixodev" rel="noopener noreferrer"&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/a&gt; and &lt;a href="https://discord.gg/jjKSatbfYM" rel="noopener noreferrer"&gt;&lt;strong&gt;join our Discord community&lt;/strong&gt;&lt;/a&gt; to get started.&lt;/p&gt;

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

&lt;p&gt;My goal with FixO Dev Bot is to build a tool that feels like a natural extension of your development workflow—an AI partner that handles the grunt work so you can focus on building amazing things.&lt;/p&gt;

&lt;p&gt;I'm incredibly excited to see what the community builds with it. Give it a try, and let me know what you think!&lt;/p&gt;

</description>
      <category>github</category>
      <category>ai</category>
      <category>automaton</category>
      <category>typescript</category>
    </item>
    <item>
      <title>🎨 Building Avatarify AI: A One-Click Solution for Stunning AI Avatars</title>
      <dc:creator>Emanuele Pavanello</dc:creator>
      <pubDate>Tue, 25 Mar 2025 14:33:23 +0000</pubDate>
      <link>https://dev.to/epavanello/building-avatarify-ai-a-one-click-solution-for-stunning-ai-avatars-2oee</link>
      <guid>https://dev.to/epavanello/building-avatarify-ai-a-one-click-solution-for-stunning-ai-avatars-2oee</guid>
      <description>&lt;p&gt;Hey there, fellow developers! 👋 I'm excited to share with you my latest project: &lt;strong&gt;Avatarify AI&lt;/strong&gt;, an open-source SaaS that lets you create amazing AI-powered avatars from a single selfie. No more waiting hours for model training or dealing with complex Dreambooth setups!&lt;/p&gt;

&lt;p&gt;Visit &lt;a href="https://avatarify-ai.com" rel="noopener noreferrer"&gt;avatarify-ai.com&lt;/a&gt; to try it out!&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 What Makes Avatarify AI Special?
&lt;/h2&gt;

&lt;p&gt;While there are many AI avatar generators out there, Avatarify AI stands out for its simplicity and speed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One-Click Generation&lt;/strong&gt;: Upload a single selfie and get instant results&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pre-built Themes&lt;/strong&gt;: Choose from various artistic styles without writing complex prompts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Prompts&lt;/strong&gt;: Full control for those who want to experiment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Daily Free Credits&lt;/strong&gt;: Generate one avatar per day without spending a dime&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-Hostable&lt;/strong&gt;: Complete control over your data and infrastructure&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Source&lt;/strong&gt;: Built with the community in mind&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🛠️ Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: SvelteKit 2 + Svelte 5 (with runes) + TailwindCSS + DaisyUI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Supabase&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI&lt;/strong&gt;: Stable Diffusion via Replicate&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payments&lt;/strong&gt;: Stripe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analytics&lt;/strong&gt;: Plausible&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  💫 Svelte 5 with Runes
&lt;/h3&gt;

&lt;p&gt;One of the most exciting aspects of this project is that it's built with Svelte 5 and its new runes system! This cutting-edge approach to reactivity has made the codebase more maintainable and performant. The runes system provides a more intuitive way to handle state management and derived values, making the code cleaner and easier to understand.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 Current Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🤖 AI-powered avatar generation&lt;/li&gt;
&lt;li&gt;🎨 Multiple artistic styles and themes&lt;/li&gt;
&lt;li&gt;📸 Custom prompt support&lt;/li&gt;
&lt;li&gt;🔒 Google authentication&lt;/li&gt;
&lt;li&gt;💳 Credit-based payment system&lt;/li&gt;
&lt;li&gt;💾 Local storage for generated images&lt;/li&gt;
&lt;li&gt;💧 Watermark protection&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔮 Future Roadmap
&lt;/h2&gt;

&lt;p&gt;I'm working on several exciting features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎥 Video generation support&lt;/li&gt;
&lt;li&gt;🎨 More artistic styles and themes&lt;/li&gt;
&lt;li&gt;🚀 Integration with newer, more advanced AI models&lt;/li&gt;
&lt;li&gt;📱 Enhanced mobile experience&lt;/li&gt;
&lt;li&gt;🔄 Real-time generation preview&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🤝 How You Can Help
&lt;/h2&gt;

&lt;p&gt;As a solo developer, I'd love to see this project grow with community contributions! Here are some areas where you can help:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;New Themes&lt;/strong&gt;: Create and submit new artistic styles&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feature Development&lt;/strong&gt;: Help implement video generation or other new features&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI/UX Improvements&lt;/strong&gt;: Make the interface more intuitive and beautiful&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentation&lt;/strong&gt;: Help improve docs or create tutorials&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing&lt;/strong&gt;: Write tests or help with bug reports&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sponsorship&lt;/strong&gt;: Support the project's development&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  💡 Why Open Source?
&lt;/h2&gt;

&lt;p&gt;I believe in the power of open source to create better tools for everyone. While Avatarify AI offers a hosted service with a freemium model, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Self-host the entire application&lt;/li&gt;
&lt;li&gt;Modify the code to suit your needs&lt;/li&gt;
&lt;li&gt;Contribute to its development&lt;/li&gt;
&lt;li&gt;Use it as a learning resource&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Check out the &lt;a href="https://github.com/epavanello/avatarify-ai.com" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt; for setup instructions and documentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤔 Your Thoughts?
&lt;/h2&gt;

&lt;p&gt;I'd love to hear from you! What features would you like to see? How can we make Avatarify AI even better? Drop a comment below or open an issue on GitHub.&lt;/p&gt;

&lt;h2&gt;
  
  
  🙏 Acknowledgments
&lt;/h2&gt;

&lt;p&gt;A big thanks to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The SvelteKit team for the amazing framework&lt;/li&gt;
&lt;li&gt;Supabase for the backend infrastructure&lt;/li&gt;
&lt;li&gt;Replicate for the AI capabilities&lt;/li&gt;
&lt;li&gt;The open-source community for inspiration and support&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;This project is a labor of love, and I'm excited to see where the community takes it. Let's build something amazing together!&lt;/em&gt; 🚀&lt;/p&gt;

</description>
      <category>svelte</category>
      <category>ai</category>
      <category>webdev</category>
      <category>showdev</category>
    </item>
    <item>
      <title>GPT Commands launch</title>
      <dc:creator>Emanuele Pavanello</dc:creator>
      <pubDate>Thu, 23 Mar 2023 22:12:05 +0000</pubDate>
      <link>https://dev.to/epavanello/gpt-commands-launch-2cfh</link>
      <guid>https://dev.to/epavanello/gpt-commands-launch-2cfh</guid>
      <description>&lt;h1&gt;
  
  
  Introducing GPT Commands: A Powerful Chrome Extension for GPT-4
&lt;/h1&gt;

&lt;p&gt;Hello Dev.to community! We are excited to announce the launch of &lt;strong&gt;GPT Commands&lt;/strong&gt;, a Chrome extension designed to make your life easier using the power of GPT-4.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is GPT Commands?
&lt;/h2&gt;

&lt;p&gt;GPT Commands is a Chrome extension developed by Emanuele Pavanello, leveraging the remarkable capabilities of GPT-4 to assist in various tasks. With a simple &lt;code&gt;/gpt&lt;/code&gt; command, you can choose from an array of functions such as answering questions, fixing grammar, translating text, and much more.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Answer Mode&lt;/strong&gt;: Ask GPT-4 any question, and get concise, relevant answers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fix Grammar&lt;/strong&gt;: Polish your text by fixing grammar and syntax.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Translate&lt;/strong&gt;: Seamless translations for multiple languages, powered by GPT-4.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;And More&lt;/strong&gt;: Additional features include sentence completion, summarization, and idea generation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation &amp;amp; Usage
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Download and install GPT Commands from the Chrome Web Store.&lt;/li&gt;
&lt;li&gt;Activate the extension and enter your API key.&lt;/li&gt;
&lt;li&gt;To use GPT Commands, type &lt;code&gt;/gpt&lt;/code&gt; followed by a command (e.g., answer, fix grammar, translate) and see the magic unfold!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Get ready to transform the way you interact with the web using GPT Commands. Try it today and enhance your productivity like never before!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gpt-commands.com/" rel="noopener noreferrer"&gt;https://gpt-commands.com/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>CheatGPT on Product Hunt</title>
      <dc:creator>Emanuele Pavanello</dc:creator>
      <pubDate>Fri, 17 Mar 2023 07:57:39 +0000</pubDate>
      <link>https://dev.to/epavanello/cheatgpt-on-product-hunt-30ih</link>
      <guid>https://dev.to/epavanello/cheatgpt-on-product-hunt-30ih</guid>
      <description>&lt;p&gt;Hey everyone! I'm excited to announce the launch of &lt;a href="https://cheatgpt.app/" rel="noopener noreferrer"&gt;CheatGPT&lt;/a&gt; on Product Hunt. &lt;/p&gt;

&lt;p&gt;This open source tool is built using &lt;a href="https://kit.svelte.dev/" rel="noopener noreferrer"&gt;SvelteKit&lt;/a&gt;, &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind&lt;/a&gt;, &lt;a href="https://daisyui.com/" rel="noopener noreferrer"&gt;DaisyUI&lt;/a&gt;, &lt;a href="https://supabase.com/" rel="noopener noreferrer"&gt;Supabase&lt;/a&gt;, &lt;a href="https://vercel.com" rel="noopener noreferrer"&gt;Vercel&lt;/a&gt;, &lt;a href="https://stripe.com/" rel="noopener noreferrer"&gt;Stripe&lt;/a&gt;, and I believe it can revolutionize the way you approach academic and professional tasks.&lt;/p&gt;

&lt;p&gt;CheatGPT offers premium features like summarization, in-depth explanations, grammar and syntax correction, and photos-to-text conversion, making it the perfect productivity tool for students and professionals alike. I'd love your support on Product Hunt to help me spread the word and gain traction in the community.&lt;/p&gt;

&lt;p&gt;In addition to upvoting our launch on Product Hunt, I'd also appreciate any feedback or suggestions you might have about the project. You can find the source code for CheatGPT on &lt;a href="https://github.com/epavanello/cheatgpt.app" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for your support, and I hope you find CheatGPT to be as useful as we do!&lt;/p&gt;

&lt;h2&gt;
  
  
  Upvote here: &lt;a href="https://www.producthunt.com/posts/cheatgpt" rel="noopener noreferrer"&gt;Product Hunt&lt;/a&gt;
&lt;/h2&gt;

</description>
      <category>productivity</category>
      <category>laravel</category>
      <category>community</category>
      <category>webdev</category>
    </item>
    <item>
      <title>CheatGPT is Here: Upgrade Your Chat Experience</title>
      <dc:creator>Emanuele Pavanello</dc:creator>
      <pubDate>Thu, 16 Mar 2023 13:06:03 +0000</pubDate>
      <link>https://dev.to/epavanello/cheatgpt-is-here-upgrade-your-chat-experience-3p99</link>
      <guid>https://dev.to/epavanello/cheatgpt-is-here-upgrade-your-chat-experience-3p99</guid>
      <description>&lt;p&gt;I'm excited to announce the launch of &lt;strong&gt;&lt;a href="https://cheatgpt.app/" rel="noopener noreferrer"&gt;CheatGPT&lt;/a&gt;&lt;/strong&gt;, the ultimate AI writing assistant (based on GPT-3.5-turbo, soon on GPT-4) that will help you write faster and better than ever before!&lt;br&gt;
With CheatGPT, you'll have access to all the advanced features of ChatGPT, plus additional premium features like concise responses, text summarization, grammar fixing, image text recognition, and more.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why CheatGPT?
&lt;/h2&gt;

&lt;p&gt;CheatGPT is a powerful tool for anyone who wants to improve their writing skills and productivity. Whether you're a content creator, a student, or a professional writer, CheatGPT can help you get your work done faster and more efficiently. It uses cutting-edge AI technology to provide you with accurate and relevant responses to your writing prompts, and it can even help you fix common grammar and spelling mistakes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Early Bird Promo Code
&lt;/h2&gt;

&lt;p&gt;To celebrate the launch of CheatGPT, we're offering an Early Bird promo code that will give you a 40% discount on your monthly subscription. Just use the code "EARLYBIRD" when you sign up for CheatGPT, and you'll get full access to all our premium features for just $5.99 per month.&lt;/p&gt;

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

&lt;p&gt;CheatGPT is built using the latest web technologies, including &lt;a href="https://kit.svelte.dev/" rel="noopener noreferrer"&gt;SvelteKit&lt;/a&gt;, &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind&lt;/a&gt;, &lt;a href="https://daisyui.com/" rel="noopener noreferrer"&gt;DaisyUI&lt;/a&gt;, &lt;a href="https://supabase.com/" rel="noopener noreferrer"&gt;Supabase&lt;/a&gt;, and &lt;a href="https://vercel.com" rel="noopener noreferrer"&gt;Vercel&lt;/a&gt;.&lt;br&gt;
We've chosen these technologies for their speed, efficiency, and ease of use, and we're confident that they'll provide a great user experience for everyone who uses CheatGPT.&lt;/p&gt;

&lt;p&gt;If you're interested in learning more about CheatGPT, you can visit our website at &lt;a href="https://cheatgpt.app/" rel="noopener noreferrer"&gt;CheatGPT.app&lt;/a&gt; or check out our &lt;a href="https://github.com/epavanello/cheatgpt.app" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also follow us on Twitter at &lt;a href="https://twitter.com/e_pavanello" rel="noopener noreferrer"&gt;@e_pavanello&lt;/a&gt; for updates and news about CheatGPT.&lt;/p&gt;

&lt;p&gt;Thank you for your support, and we look forward to helping you write better with CheatGPT!&lt;/p&gt;

</description>
      <category>gpt3</category>
      <category>chatgpt</category>
      <category>svelte</category>
      <category>ai</category>
    </item>
    <item>
      <title>CheatGPT - The Ultimate Cheat Engine Powered by OpenAI</title>
      <dc:creator>Emanuele Pavanello</dc:creator>
      <pubDate>Sun, 05 Mar 2023 19:59:51 +0000</pubDate>
      <link>https://dev.to/epavanello/cheatgpt-the-ultimate-cheat-engine-powered-by-openai-1l85</link>
      <guid>https://dev.to/epavanello/cheatgpt-the-ultimate-cheat-engine-powered-by-openai-1l85</guid>
      <description>&lt;p&gt;Are you tired of studying for hours and still not being able to ace your tests? Look no further, because &lt;strong&gt;CheatGPT&lt;/strong&gt; is here to save the day!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CheatGPT&lt;/strong&gt; is a SaaS project that uses the power of AI to help you cheat your way to success. Simply submit your question, whether it's in text or image form, and CheatGPT will provide you with the perfect answer. No more wasting time studying or worrying about failing, CheatGPT has got you covered.&lt;/p&gt;

&lt;p&gt;But wait, you may be thinking, isn't cheating unethical? We hear you, and that's why CheatGPT is all in good fun. We believe that if the technology exists, why not have a little fun with it? Plus, think of all the time you'll save!&lt;/p&gt;

&lt;p&gt;The project is being developed using the latest technologies, including &lt;a href="https://kit.svelte.dev/" rel="noopener noreferrer"&gt;SvelteKit&lt;/a&gt;, &lt;a href="https://supabase.com/" rel="noopener noreferrer"&gt;Supabase&lt;/a&gt;, &lt;a href="http://vercel.com/" rel="noopener noreferrer"&gt;Vercel&lt;/a&gt; and &lt;a href="https://openai.com/" rel="noopener noreferrer"&gt;OpenAI&lt;/a&gt;. The source code is available on &lt;a href="https://github.com/epavanello/cheatgpt.app" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; for anyone to contribute to and improve. We welcome all developers to join us in creating the ultimate cheat engine powered by AI.&lt;/p&gt;

&lt;p&gt;If you're interested in staying up to date on the development of &lt;strong&gt;CheatGPT&lt;/strong&gt;, make sure to subscribe to our newsletter. You'll be the first to know when the service is officially available and ready for use.&lt;/p&gt;

&lt;p&gt;So what are you waiting for? Join us in creating the ultimate cheat engine and let's have some fun with AI!&lt;/p&gt;

&lt;p&gt;⭐ &lt;a href="https://github.com/epavanello/cheatgpt.app" rel="noopener noreferrer"&gt;Github Repo&lt;/a&gt;&lt;br&gt;
🐦 &lt;a href="https://twitter.com/e_pavanello" rel="noopener noreferrer"&gt;Twitter account&lt;/a&gt;&lt;br&gt;
💻 &lt;a href="http://cheatgpt.app/" rel="noopener noreferrer"&gt;Website&lt;/a&gt;&lt;/p&gt;

</description>
      <category>chatgpt</category>
      <category>ai</category>
      <category>svelte</category>
      <category>saas</category>
    </item>
    <item>
      <title>Introducing Avatarify AI: the AI-powered profile photo generator</title>
      <dc:creator>Emanuele Pavanello</dc:creator>
      <pubDate>Thu, 02 Feb 2023 17:45:26 +0000</pubDate>
      <link>https://dev.to/epavanello/introducing-avatarify-ai-the-ai-powered-profile-photo-generator-4j73</link>
      <guid>https://dev.to/epavanello/introducing-avatarify-ai-the-ai-powered-profile-photo-generator-4j73</guid>
      <description>&lt;p&gt;Are you tired of having the same old boring profile photos? Look no further, Avatarify AI is here to revolutionize the way you present yourself online. Developed by independent developer Emanuele Pavanello, Avatarify AI is an open-source SaaS that uses AI to generate custom profile photos based on your desired look. &lt;/p&gt;

&lt;p&gt;To get started, simply log in with your Google account or use a magic link. Upload at least 10 photos of yourself from different angles and watch the AI do its magic. The AI model, based on the recently open-sourced "Stable diffusion" model, will learn your unique features and generate up to 100 custom profile photos for you to choose from. The model is capable of recognizing and generating photos for Man, Woman, Couple, Dog, Cat, and Child.&lt;/p&gt;

&lt;p&gt;But that's not all. Avatarify AI takes it a step further by allowing you to customize the style and theme of your generated photos. With inspiration from the prompts available on &lt;a href="https://lexica.art/" rel="noopener noreferrer"&gt;lexica.art&lt;/a&gt;, the possibilities are endless. All you need to do is pay a one-time fee of €9.99 (currently 40% off with promo code LESS40) to get started. &lt;/p&gt;

&lt;p&gt;The frontend of Avatarify AI is written in Svelte and TypeScript in strict mode, and the TypeScript types related to the database are automatically generated using the Supabase CLI. The authentication, user data, and photo storage are managed through Supabase to avoid manual backend and database management. The project is continuously integrated with Vercel pipelines. &lt;/p&gt;

&lt;p&gt;So what are you waiting for? Give Avatarify AI a try and let the AI help you stand out from the crowd. The project is open source, and the developer is actively looking for engagement through stars, issues, and pull requests on &lt;a href="https://github.com/epavanello/avatarify-ai.com" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Check it out now on &lt;a href="https://avatarify-ai.com/" rel="noopener noreferrer"&gt;avatarify-ai.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>svelte</category>
      <category>machinelearning</category>
      <category>typescript</category>
    </item>
    <item>
      <title>input[type=time] polyfill for IE, Safari etc</title>
      <dc:creator>Emanuele Pavanello</dc:creator>
      <pubDate>Thu, 11 Mar 2021 21:54:57 +0000</pubDate>
      <link>https://dev.to/epavanello/input-type-time-polyfill-for-ie-safari-etc-4ka1</link>
      <guid>https://dev.to/epavanello/input-type-time-polyfill-for-ie-safari-etc-4ka1</guid>
      <description>&lt;p&gt;Hi all,&lt;br&gt;
I searched everywhere one polyfill for time input under IE, Safari and other dumb browsers but it doesn't exist 😮&lt;/p&gt;

&lt;p&gt;So if you need it too, I've created one as an npm package.&lt;/p&gt;

&lt;p&gt;Here everything you need! 🚀&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📦 Npm package - &lt;a href="https://www.npmjs.com/package/input-time-polyfill" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/input-time-polyfill&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🕶 GitHub repo - &lt;a href="https://github.com/epavanello/input-time-polyfill" rel="noopener noreferrer"&gt;https://github.com/epavanello/input-time-polyfill&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💻 Demo polyfill - &lt;a href="https://codepen.io/epavanello/pen/RwoqVvx" rel="noopener noreferrer"&gt;https://codepen.io/epavanello/pen/RwoqVvx&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💸 Sponor me - &lt;a href="https://github.com/sponsors/epavanello" rel="noopener noreferrer"&gt;https://github.com/sponsors/epavanello&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;☕ Buy me a coffee - &lt;a href="https://www.buymeacoffee.com/epavanello" rel="noopener noreferrer"&gt;https://www.buymeacoffee.com/epavanello&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Money, likes, stars, coffee and love are appreciated&lt;/em&gt; ❤&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>opensource</category>
      <category>npm</category>
      <category>github</category>
    </item>
    <item>
      <title>No more rest 🚀</title>
      <dc:creator>Emanuele Pavanello</dc:creator>
      <pubDate>Mon, 15 Feb 2021 23:55:10 +0000</pubDate>
      <link>https://dev.to/epavanello/no-more-rest-2ain</link>
      <guid>https://dev.to/epavanello/no-more-rest-2ain</guid>
      <description>&lt;p&gt;Hello guys!  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Here the &lt;a href="https://github.com/epavanello/no-more-rest" rel="noopener noreferrer"&gt;GitHub Repo&lt;/a&gt; and here the &lt;a href="https://www.npmjs.com/package/no-more-rest" rel="noopener noreferrer"&gt;NPM package&lt;/a&gt;&lt;/em&gt; 📦&lt;/p&gt;

&lt;p&gt;If you, like me, don't like to pass all day defining new rest API and calling them from the frontend in a verbose way, you can start to use my new NPM package &lt;a href="https://www.npmjs.com/package/no-more-rest" rel="noopener noreferrer"&gt;no-more-rest&lt;/a&gt; that allows you to expose your API directly from your server to be called transparently from your client with the IntelliSense support.&lt;/p&gt;

&lt;p&gt;If you like the idea star the project and collaborate with me 💗&lt;/p&gt;

&lt;p&gt;A small example of the potential&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// server/myApi.js&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;doLogin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;username&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;password&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;username&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;admin&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;password&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;admin&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getLoggedUsers&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Elon Musk&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;admin&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

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

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// server/server.js&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;express&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;express&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;expose&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;no-more-rest&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;myApi&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./myApi&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;express&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nf"&gt;expose&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;myApi&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Add this npm script to your package to generate the proxy script for the client from the exposed module
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
   &lt;/span&gt;&lt;span class="nl"&gt;"sync-api"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"no-more-rest --input myApi.js --output-dir ../your-client-path/ --watch"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Import in the client your generated proxy and use it as if it were on your backend.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// client/index.js&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;doLogin&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;getLoggedUsers&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./generatedProxy&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nf"&gt;doLogin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;admin&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;admin&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nf"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Login success&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

      &lt;span class="nf"&gt;getLoggedUsers&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;users&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;The logged users are: &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;users&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;, &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
      &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nf"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Login failed&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Network error&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

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

&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>typescript</category>
      <category>node</category>
    </item>
    <item>
      <title>Imba - Another reactive technology for the web</title>
      <dc:creator>Emanuele Pavanello</dc:creator>
      <pubDate>Sat, 26 Sep 2020 11:10:58 +0000</pubDate>
      <link>https://dev.to/epavanello/imba-another-reactive-technology-for-the-web-2cgj</link>
      <guid>https://dev.to/epavanello/imba-another-reactive-technology-for-the-web-2cgj</guid>
      <description>&lt;p&gt;Hi there,&lt;br&gt;
Have you ever heard of &lt;strong&gt;Imba&lt;/strong&gt;?&lt;br&gt;
Imba is "&lt;em&gt;another&lt;/em&gt;" tecnology for writing reactive components for the web, this time with a new &lt;strong&gt;python&lt;/strong&gt; like language.&lt;/p&gt;

&lt;p&gt;Here the official &lt;a href="https://www.imba.io/" rel="noopener noreferrer"&gt;Imba.io&lt;/a&gt; page&lt;/p&gt;

&lt;p&gt;Let me know in the comments what you think!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>imba</category>
      <category>python</category>
    </item>
    <item>
      <title>A hilarious browser game</title>
      <dc:creator>Emanuele Pavanello</dc:creator>
      <pubDate>Sat, 12 Sep 2020 08:00:43 +0000</pubDate>
      <link>https://dev.to/epavanello/an-hilarious-browser-game-39gn</link>
      <guid>https://dev.to/epavanello/an-hilarious-browser-game-39gn</guid>
      <description>&lt;p&gt;Hi all!&lt;br&gt;
I’m here today to show you a platform developed by me during the &lt;em&gt;quarantine&lt;/em&gt; 😷 in Italy and launched yesterday on &lt;strong&gt;&lt;a href="https://www.producthunt.com/posts/bad-cards" rel="noopener noreferrer"&gt;Product Hunt&lt;/a&gt;&lt;/strong&gt; (&lt;em&gt;Leave some upvotes&lt;/em&gt; 🔥).&lt;/p&gt;

&lt;p&gt;It’s an open-source project, an online implementation of &lt;strong&gt;Cards Against Humanity&lt;/strong&gt;, here the &lt;a href="https://github.com/epavanello/bad-cards-game" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt; for some stars 😜&lt;/p&gt;

&lt;p&gt;Let’s talk about technologies, this is a web application based on a lot of new technologies and hosted on Netlify for the frontend and on Heroku for the backend.&lt;br&gt;
All are under CI/CD with GitHub actions for the deploy.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;🎣 &lt;strong&gt;React&lt;/strong&gt; with hooks&lt;/li&gt;
&lt;li&gt;⚙️ &lt;strong&gt;Typescript&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;💅🏻 &lt;strong&gt;Tailwindcss&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;🐧 &lt;strong&gt;NestJS&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Shared
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🔥 &lt;strong&gt;Firebase&lt;/strong&gt; for real-time DB and authentication&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Roadmap
&lt;/h2&gt;

&lt;p&gt;On the next step, there is the porting of the game as a native mobile game. (&lt;em&gt;What's better? React Native or Flutter?&lt;/em&gt; &lt;strong&gt;Anyone wants to collaborate?&lt;/strong&gt; 💔 )&lt;br&gt;
Of course, contributions, stars, upvotes and sharing are welcome ♥️ &lt;/p&gt;

&lt;h2&gt;
  
  
  Some fun
&lt;/h2&gt;

&lt;p&gt;Here &lt;a href="https://bad-cards.netlify.app/" rel="noopener noreferrer"&gt;the GAME&lt;/a&gt; 🚀&lt;/p&gt;

&lt;p&gt;Here &lt;a href="https://discord.gg/HF7QSCW" rel="noopener noreferrer"&gt;the Discord Server&lt;/a&gt; 💻&lt;/p&gt;

&lt;p&gt;Play online with your friends!&lt;/p&gt;

&lt;p&gt;Let me know what you think in the comments below 💬&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>showdev</category>
      <category>node</category>
    </item>
    <item>
      <title>Svelte template with Typescript, Tailwind, Sass, Purgecss and More...</title>
      <dc:creator>Emanuele Pavanello</dc:creator>
      <pubDate>Thu, 10 Sep 2020 09:13:59 +0000</pubDate>
      <link>https://dev.to/epavanello/svelte-template-with-typescript-tailwind-sass-purgecss-and-more-19kd</link>
      <guid>https://dev.to/epavanello/svelte-template-with-typescript-tailwind-sass-purgecss-and-more-19kd</guid>
      <description>&lt;p&gt;Hi guys!&lt;br&gt;
&lt;strong&gt;Star the project&lt;/strong&gt; and start to develop with this &lt;strong&gt;Svelte 3&lt;/strong&gt; template based on the newest tecnologies.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.typescriptlang.org/" rel="noopener noreferrer"&gt;Typescript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwindcss&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sass-lang.com/" rel="noopener noreferrer"&gt;Sass&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://autoprefixer.github.io/" rel="noopener noreferrer"&gt;Autoprefixer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://purgecss.com/" rel="noopener noreferrer"&gt;Purgecss&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here's the link to the &lt;a href="https://github.com/epavanello/svelte-complete-template" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt; 🚀&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A small preview&lt;/em&gt;&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.amazonaws.com%2Fi%2Fw1z9qbyms3hfs6frzq3j.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fw1z9qbyms3hfs6frzq3j.jpg" alt="Alt Text" width="800" height="664"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;❤ &lt;em&gt;Leave a heart if you needed this article&lt;/em&gt;&lt;/p&gt;

</description>
      <category>svelte</category>
      <category>typescript</category>
      <category>saas</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
