<?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>Forem: Egor Dubchenko</title>
    <description>The latest articles on Forem by Egor Dubchenko (@edubchenko).</description>
    <link>https://forem.com/edubchenko</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%2F1644446%2Fc07077ef-4388-4f7d-8da1-d459f270b35d.jpg</url>
      <title>Forem: Egor Dubchenko</title>
      <link>https://forem.com/edubchenko</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/edubchenko"/>
    <language>en</language>
    <item>
      <title>RevenueCat has saved me over 50 hours, why do I love it so much?</title>
      <dc:creator>Egor Dubchenko</dc:creator>
      <pubDate>Fri, 21 Jun 2024 09:49:19 +0000</pubDate>
      <link>https://forem.com/edubchenko/revenuecat-has-saved-me-over-50hours-why-do-i-love-it-so-much-33m4</link>
      <guid>https://forem.com/edubchenko/revenuecat-has-saved-me-over-50hours-why-do-i-love-it-so-much-33m4</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%2Ffs1qjg7hxwba9eqkgurw.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%2Ffs1qjg7hxwba9eqkgurw.png" alt="Image description" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hello! My name is Egor, and I'm an indie developer creating useful applications that utilize AI. So far, I’ve released 5 apps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;StepAhead&lt;/strong&gt; (&lt;a href="https://apps.apple.com/app/id6504284650"&gt;iOS&lt;/a&gt;) — helps you beat procrastination by breaking down your tasks into small, manageable steps&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prompt Forge&lt;/strong&gt; (&lt;a href="https://apps.apple.com/us/app/prompt-forge/id6480447004"&gt;iOS&lt;/a&gt;) — teaches you how to code with AI&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Space Academy Quiz&lt;/strong&gt; (&lt;a href="https://apps.apple.com/us/app/space-academy-quiz/id6483865704"&gt;iOS&lt;/a&gt;/&lt;a href="https://play.google.com/store/apps/details?id=org.hyperskill.app.saa.android"&gt;Android&lt;/a&gt;) — interesting facts about space in a quiz format&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Feedback Loop: Interview Prep&lt;/strong&gt; (&lt;a href="https://apps.apple.com/us/app/feedback-loop-interview-prep/id6499011407"&gt;iOS&lt;/a&gt;) — to prepare for job interviews (AI product management)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Giggle Ohms — Resisting Boredom&lt;/strong&gt; (&lt;a href="https://apps.apple.com/us/app/giggle-ohms-learn-by-memes/id6502453249"&gt;iOS&lt;/a&gt;/&lt;a href="https://play.google.com/store/apps/details?id=org.hyperskill.app.np004.android"&gt;Android&lt;/a&gt;) — AI-generated jokes for hardware engineers&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why did I choose RevenueCat?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Integration with the App Store and Google Play and compliance with their requirements
&lt;/h3&gt;

&lt;p&gt;RevenueCat provides easy integration with the App Store and Google Play. It offers ready-made packages for integration, eliminating the need to write complex code for handling purchases. For example, for React Native, there’s a package called React Native Purchases, which can be integrated with just one line of code. This invokes native payment windows on iOS and Android, while RevenueCat tracks the purchase and saves all the data.&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%2Fnw6cl9kjrx5e7btefnwa.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%2Fnw6cl9kjrx5e7btefnwa.png" alt="Image description" width="500" height="610"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Additionally, RevenueCat automatically complies with all App Store and Google Play requirements. Both stores have strict requirements for subscription management, and failing to meet these requirements can result in your app being rejected. RevenueCat ensures that all necessary conditions are met, helping you avoid potential issues when publishing your app. This includes using the correct terminology, displaying subscriptions appropriately, and the use of necessary terms.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Automation of subscription storage, restoration, and refunds
&lt;/h3&gt;

&lt;p&gt;Another key benefit of RevenueCat is automating subscription storage and restoration. The platform automatically tracks subscriptions and purchase events and can restore subscriptions when needed.&lt;/p&gt;

&lt;p&gt;For example, if a user buys a new device or reinstalls the app, their subscription could be lost. In such cases, the app might not recognize the existing subscription, but RevenueCat keeps all the information on its backend and can restore access with the push of a button. This is crucial for maintaining user loyalty and preventing frustration. It also significantly simplifies my life as a developer by handling these routine tasks automatically, allowing me to focus on app development.&lt;/p&gt;

&lt;p&gt;RevenueCat also makes handling refund requests easy through its platform interface. If users are not satisfied with the service, they can quickly get their money back, saving you the time and effort of managing refunds.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Analytics and subscription tracking
&lt;/h3&gt;

&lt;p&gt;RevenueCat provides powerful analytics tools, allowing you to track purchases directly within the system. You can track various metrics, such as the number of active subscriptions, subscription revenue, cancellations, and refunds. This makes it easy to analyze subscription data and make informed decisions to improve the product. It also helps understand user behavior and optimize marketing strategies.&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%2Fbm2wrap6iqipaaovxloa.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%2Fbm2wrap6iqipaaovxloa.png" alt="Image description" width="622" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Configurable paywall templates
&lt;/h3&gt;

&lt;p&gt;Configuring a paywall in the web interface gives you the flexibility to experiment and test different approaches. For example, you can set up different offers for various user groups and track which configuration leads to the highest number of subscriptions. This allows you to find optimal monetization strategies and improve conversion to purchase.&lt;/p&gt;

&lt;p&gt;To sum up, I recommend RevenueCat to all developers looking for a reliable solution for managing subscriptions in their apps. RevenueCat can be compared to solutions like Stripe, but while Stripe is web-focused, RevenueCat is essentially Stripe for mobile applications. It provides all the necessary tools for managing subscriptions, which makes it an ideal choice for developers who want to focus on creating content and functionality rather than managing payments and subscriptions.&lt;/p&gt;

&lt;p&gt;Thank you for reading this article! I hope my experience will be useful for your projects.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>revenuecat</category>
      <category>mobile</category>
      <category>react</category>
    </item>
    <item>
      <title>Why I chose Supabase as BaaS for my projects</title>
      <dc:creator>Egor Dubchenko</dc:creator>
      <pubDate>Wed, 19 Jun 2024 09:33:35 +0000</pubDate>
      <link>https://forem.com/edubchenko/why-i-chose-supabase-as-baas-for-my-projects-2pnf</link>
      <guid>https://forem.com/edubchenko/why-i-chose-supabase-as-baas-for-my-projects-2pnf</guid>
      <description>&lt;p&gt;Hello! My name is Egor, and I'm an indie developer creating useful applications that utilize AI. So far, I’ve released 5 apps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;StepAhead&lt;/strong&gt; (&lt;a href="https://apps.apple.com/app/id6504284650"&gt;iOS&lt;/a&gt;) — helps you beat procrastination by breaking down your tasks into small, manageable steps&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prompt Forge&lt;/strong&gt; (&lt;a href="https://apps.apple.com/us/app/prompt-forge/id6480447004"&gt;iOS&lt;/a&gt;) — teaches you how to code with AI&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Space Academy Quiz&lt;/strong&gt; (&lt;a href="https://apps.apple.com/us/app/space-academy-quiz/id6483865704"&gt;iOS&lt;/a&gt;/&lt;a href="https://play.google.com/store/apps/details?id=org.hyperskill.app.saa.android"&gt;Android&lt;/a&gt;) — interesting facts about space in a quiz format&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Feedback Loop: Interview Prep&lt;/strong&gt; (&lt;a href="https://apps.apple.com/us/app/feedback-loop-interview-prep/id6499011407"&gt;iOS&lt;/a&gt;) — to prepare for job interviews (AI product management)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Giggle Ohms — Resisting Boredom&lt;/strong&gt; (&lt;a href="https://apps.apple.com/us/app/giggle-ohms-learn-by-memes/id6502453249"&gt;iOS&lt;/a&gt;/&lt;a href="https://play.google.com/store/apps/details?id=org.hyperskill.app.np004.android"&gt;Android&lt;/a&gt;) — AI-generated jokes for hardware engineers&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can check them out in the App Store, and I would greatly appreciate your feedback.&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%2F7hdmagg0wp6lonqcgnkv.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%2F7hdmagg0wp6lonqcgnkv.png" alt="Image description" width="800" height="793"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Today, I want to share my experience with Supabase — one of the most promising platforms for developing serverless applications that I've had the pleasure of using.&lt;/p&gt;

&lt;p&gt;Choosing the right backend platform can significantly impact the success of a project. Supabase, positioned as an alternative to Firebase, offers powerful tools for developers who want to focus on the frontend of their applications while leaving backend complexities to the platform. This makes Supabase attractive for indie developers and startups looking to quickly bring their products to market.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BaaS&lt;/strong&gt; means that when developing a fullstack app, I only work on the client-side, and everything else is provided by Supabase through software development kits (SDKs) and application programming interfaces (APIs). "Everything else" includes an authentication service (including the use of third-party providers), a database (PostgreSQL), file storage, real-time data change reactions, and the server that manages all these components.&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%2Ffj31nsnqvc12vdi90cyu.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%2Ffj31nsnqvc12vdi90cyu.png" alt="Image description" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Advantages of Supabase
&lt;/h2&gt;

&lt;p&gt;One of the key advantages of Supabase is Zero Configuration. Imagine not needing to set up a server, configure NGINX, manage firewalls, or deploy Docker. With Supabase, you simply register an account and are ready to go. No complicated setup, everything happens automatically. This is ideal for developers who want to start creating their applications quickly.When you work with a traditional server, you have to set up many components: server, firewalls, Docker containers, SSH connections, and more. With Supabase, all these tasks are reduced to a single click. This significantly reduces the time and effort needed to launch a project.&lt;/p&gt;

&lt;p&gt;Another advantage is the built-in support for PostgreSQL with a user-friendly administrative panel. In the Supabase dashboard, I can manage the database, create tables, configure migrations, and even make automatic backups. All this is available through an intuitive user interface. PostgreSQL is one of the most powerful and flexible database management systems, and its integration into Supabase makes data handling even more effective.&lt;/p&gt;

&lt;p&gt;Additionally, Supabase offers a simple and reliable authorization mechanism. The platform supports all major authorization methods, such as email and password, OAuth providers (Google, Apple, etc.), and the ability to reset passwords via email. This means that authorization works on all platforms — from mobile to web. All you need to do is enable authorization in the settings, and it will work "out of the box."&lt;/p&gt;

&lt;p&gt;I particularly like the Postgres Realtime feature. It allows you to subscribe to database changes and receive updates in real time. For instance, you can subscribe to changes in a table and get notifications whenever data is modified. This opens up vast possibilities for creating interactive and dynamic applications. You don't need to implement complex logic with web sockets or other technologies; everything works "out of the box."&lt;/p&gt;

&lt;p&gt;Another powerful feature of Supabase is serverless functions, which run on Deno. Deno is a modern runtime for JavaScript and TypeScript that ensures high security and ease of use. Thanks to this, I can quickly develop and deploy server functions that run in the cloud. This allows for the creation of powerful server-side logic without the need to manage infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Supabase CLI
&lt;/h2&gt;

&lt;p&gt;Supabase provides a convenient command-line interface (CLI) that allows for quick deployment and management of projects. Using the command line, I can perform all necessary actions, from creating new projects to deploying them. For example, simply executing supabase deploy deploys changes to the project. This significantly speeds up the development process and eliminates the need for complex pipelines and scripts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations of Supabase
&lt;/h2&gt;

&lt;p&gt;Of course, Supabase has its limitations. One such limitation is the lack of support for custom domains. This means that your project will be accessible at a domain like &lt;a href="http://yourproject.supabase.com/"&gt;yourproject.supabase.com&lt;/a&gt;, which may be a drawback for some projects that require the use of their own domain.&lt;/p&gt;

&lt;p&gt;Another issue I encountered is the automatic shutdown of the backend when there is no activity. For example, my project faced a situation where there were no database queries for a week, and Supabase automatically stopped the backend. To reactivate the project, I had to go to the administrative panel and manually restart it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparison with Cloudflare
&lt;/h2&gt;

&lt;p&gt;For comparison, I also use Cloudflare for some projects. Cloudflare has its advantages, such as support for custom domains and powerful serverless functions. However, Cloudflare does not have as convenient an interface for managing databases as Supabase. Cloudflare uses SQLite, which may be less preferable compared to PostgreSQL for large and complex projects.&lt;/p&gt;

&lt;p&gt;Both Supabase and Cloudflare are actively evolving and integrating new technologies, including artificial intelligence. This opens up new opportunities for developers creating innovative solutions. For instance, Supabase recently announced new services for working with AI, which allows for even greater functionality of the platform.&lt;/p&gt;

&lt;p&gt;Ultimately, Supabase is a powerful tool for any developer aiming for efficiency and speed in launching their projects. With Zero Configuration, PostgreSQL support, convenient authorization, and real-time database updates, Supabase becomes an indispensable helper.&lt;/p&gt;

</description>
      <category>baas</category>
      <category>supabase</category>
      <category>reactnative</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
