<?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: Radomir Brkovic</title>
    <description>The latest articles on DEV Community by Radomir Brkovic (@radomir_brkovic_954abae53).</description>
    <link>https://dev.to/radomir_brkovic_954abae53</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%2F3582887%2Fa87920e7-4b16-41d0-8219-63da9625af09.jpg</url>
      <title>DEV Community: Radomir Brkovic</title>
      <link>https://dev.to/radomir_brkovic_954abae53</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/radomir_brkovic_954abae53"/>
    <language>en</language>
    <item>
      <title>FastKit — open-source toolkit for FastAPI: repository pattern, service layer, CLI scaffolding, and more</title>
      <dc:creator>Radomir Brkovic</dc:creator>
      <pubDate>Tue, 24 Mar 2026 17:46:33 +0000</pubDate>
      <link>https://dev.to/radomir_brkovic_954abae53/fastkit-open-source-toolkit-for-fastapi-repository-pattern-service-layer-cli-scaffolding-and-e3l</link>
      <guid>https://dev.to/radomir_brkovic_954abae53/fastkit-open-source-toolkit-for-fastapi-repository-pattern-service-layer-cli-scaffolding-and-e3l</guid>
      <description>&lt;p&gt;If you've built more than one FastAPI project, you've probably written the same boilerplate more than once — repository classes, service layers, consistent API response formatting, and database migrations setup. FastKit is our attempt to solve that once, properly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is FastKit?
&lt;/h2&gt;

&lt;p&gt;FastKit is an open-source ecosystem of packages built on top of FastAPI. The goal is simple: when you start a new project with FastKit, the first thing you write is business logic — not infrastructure.&lt;/p&gt;

&lt;p&gt;It currently consists of two packages:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;fastkit-core&lt;/strong&gt; — the foundation layer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Repository pattern for database operations (sync + async)&lt;/li&gt;
&lt;li&gt;Service layer with lifecycle hooks (&lt;code&gt;before_create&lt;/code&gt;, &lt;code&gt;after_update&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;TranslatableMixin&lt;/code&gt; — multi-language support built directly into SQLAlchemy models&lt;/li&gt;
&lt;li&gt;Validation with structured, translated error messages&lt;/li&gt;
&lt;li&gt;HTTP utilities for consistent API responses across services&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;fastkit-cli&lt;/strong&gt; — scaffolding tool:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;fastkit make module Invoice
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This single command generates a complete module — model, schemas, repository, service, and router with all five CRUD endpoints wired up and ready to go. Six files, zero boilerplate.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;fastkit migrate make &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"create_invoices"&lt;/span&gt;   &lt;span class="c"&gt;# alembic revision --autogenerate&lt;/span&gt;
fastkit migrate run                          &lt;span class="c"&gt;# alembic upgrade head&lt;/span&gt;
fastkit db seed                              &lt;span class="c"&gt;# run all seeders&lt;/span&gt;
fastkit server                               &lt;span class="c"&gt;# uvicorn with sane defaults&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why we built it?
&lt;/h2&gt;

&lt;p&gt;FastAPI is intentionally unopinionated about structure. That's a feature — but it means every team rebuilds the same patterns from scratch. FastKit standardizes the parts that rarely need to vary, so you can focus on what actually makes your product different.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to find it?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;📖 Full docs: &lt;a href="https://fastkit.org" rel="noopener noreferrer"&gt;fastkit.org&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;⭐ GitHub: &lt;a href="https://github.com/fastkit-org/fastkit-core" rel="noopener noreferrer"&gt;fastkit-org/fastkit-core&lt;/a&gt; · &lt;a href="https://github.com/fastkit-org/fastkit-cli" rel="noopener noreferrer"&gt;fastkit-org/fastkit-cli&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's early, MIT licensed, and we'd genuinely appreciate feedback — what's missing, what's confusing, what you'd use in a real project. Stars on GitHub also help a lot with visibility.&lt;/p&gt;

</description>
      <category>fastapi</category>
      <category>python</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
    <item>
      <title>A Python library that lets you switch email providers without changing your code</title>
      <dc:creator>Radomir Brkovic</dc:creator>
      <pubDate>Sat, 25 Oct 2025 10:03:56 +0000</pubDate>
      <link>https://dev.to/radomir_brkovic_954abae53/a-python-library-that-lets-you-switch-email-providers-without-changing-your-code-c41</link>
      <guid>https://dev.to/radomir_brkovic_954abae53/a-python-library-that-lets-you-switch-email-providers-without-changing-your-code-c41</guid>
      <description>&lt;p&gt;Hey everyone 👋&lt;/p&gt;

&lt;p&gt;I’ve recently released Mailbrig, a lightweight Python library that provides a unified interface for sending emails through multiple providers — including &lt;strong&gt;SMTP&lt;/strong&gt;, &lt;strong&gt;SendGrid&lt;/strong&gt;, &lt;strong&gt;Mailgun&lt;/strong&gt;, &lt;strong&gt;Brevo (Sendinblue)&lt;/strong&gt;, and &lt;strong&gt;Amazon SES&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The main goal was to simplify provider integration — you can switch between them just by changing the configuration, without modifying your code.&lt;br&gt;
It also comes with a small CLI tool for quick testing and setup.&lt;/p&gt;

&lt;p&gt;📦 PyPI: &lt;a href="https://pypi.org/project/mailbridge/" rel="noopener noreferrer"&gt;Mailbridge&lt;/a&gt;&lt;br&gt;
💻 GitHub: &lt;a href="https://github.com/radomirbrkovic/mailbridge" rel="noopener noreferrer"&gt;Mailbridge&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Everything’s open source and tested.&lt;br&gt;
I’d love to hear feedback or suggestions for new providers/features. 🙌&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from mailbridge.mail import Mail

Mail.send(
    to="user@example.com",
    subject="Welcome!",
    body="&amp;lt;h1&amp;gt;Hello from MailBridge!&amp;lt;/h1&amp;gt;",
    from_email="no-reply@example.com"
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>webdev</category>
      <category>python</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
