<?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: Franck Blettner</title>
    <description>The latest articles on DEV Community by Franck Blettner (@franck_blettner_43d29fa88).</description>
    <link>https://dev.to/franck_blettner_43d29fa88</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%2F2843714%2Fb49ee47c-51ac-4373-af22-8bfbb002c387.png</url>
      <title>DEV Community: Franck Blettner</title>
      <link>https://dev.to/franck_blettner_43d29fa88</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/franck_blettner_43d29fa88"/>
    <language>en</language>
    <item>
      <title>A Generic Backend for All Your Apps</title>
      <dc:creator>Franck Blettner</dc:creator>
      <pubDate>Thu, 27 Feb 2025 10:34:28 +0000</pubDate>
      <link>https://dev.to/franck_blettner_43d29fa88/a-generic-backend-for-all-your-apps-48k3</link>
      <guid>https://dev.to/franck_blettner_43d29fa88/a-generic-backend-for-all-your-apps-48k3</guid>
      <description>&lt;p&gt;In modern application development, having a reusable and scalable backend is crucial for efficiency and maintainability. With the Liberty Framework, you can create a backend that serves multiple applications seamlessly. This guide will walk you through setting up your backend and integrating it with your frontend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Install the Framework
&lt;/h2&gt;

&lt;p&gt;You can install the Liberty Framework using either Python or Docker, depending on your preference.&lt;/p&gt;

&lt;h3&gt;
  
  
  Requirements
&lt;/h3&gt;

&lt;p&gt;A PostgreSQL 16 database is required. You can either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a Docker image based on postgres:16, or&lt;/li&gt;
&lt;li&gt;Install PostgreSQL 16 directly on your host system.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Install with Python
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install liberty-framework
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After installation, you can &lt;strong&gt;start the framework&lt;/strong&gt; with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;liberty-start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Install with Docker
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker pull ghcr.io/fblettner/liberty-framework:latest
docker run -p 8000:8000 ghcr.io/fblettner/liberty-framework
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Installation URL
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Setup: &lt;code&gt;http://&amp;lt;your_host&amp;gt;:&amp;lt;your_port&amp;gt;/setup&lt;/code&gt;
Follow the wizard to configure your backend&lt;/li&gt;
&lt;/ul&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.amazonaws.com%2Fuploads%2Farticles%2Fk2px0qds3t92zosadqpo.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.amazonaws.com%2Fuploads%2Farticles%2Fk2px0qds3t92zosadqpo.png" alt="Image description" width="800" height="902"&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.amazonaws.com%2Fuploads%2Farticles%2Fdarr6thhoovzsyxrv10l.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.amazonaws.com%2Fuploads%2Farticles%2Fdarr6thhoovzsyxrv10l.png" alt="Image description" width="800" height="800"&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.amazonaws.com%2Fuploads%2Farticles%2Fyhx8kosz7h7o38o21cgf.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.amazonaws.com%2Fuploads%2Farticles%2Fyhx8kosz7h7o38o21cgf.png" alt="Image description" width="800" height="755"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Configure the framework
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Application: &lt;code&gt;http://&amp;lt;your_host&amp;gt;:&amp;lt;your_port&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Connect to liberty with admin account and password set during the installation&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a New Application
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go to the Menu.&lt;/li&gt;
&lt;li&gt;Navigate to Settings &amp;gt; Applications.&lt;/li&gt;
&lt;li&gt;Click Create a New Application.&lt;/li&gt;
&lt;li&gt;Fill in the necessary Properties.&lt;/li&gt;
&lt;li&gt;Configure the Connection settings.&lt;/li&gt;
&lt;li&gt;Use the UI to set your application theme&lt;/li&gt;
&lt;/ol&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.amazonaws.com%2Fuploads%2Farticles%2Fvi464ngx1m7zuwtfoers.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.amazonaws.com%2Fuploads%2Farticles%2Fvi464ngx1m7zuwtfoers.png" alt="Image description" width="800" height="503"&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.amazonaws.com%2Fuploads%2Farticles%2Fn9qrldb11teb9n6eq2ia.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.amazonaws.com%2Fuploads%2Farticles%2Fn9qrldb11teb9n6eq2ia.png" alt="Image description" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create the Database
&lt;/h3&gt;

&lt;p&gt;After saving the new application you can create the database repository using button &lt;code&gt;Create Database&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a User
&lt;/h3&gt;

&lt;p&gt;Right click on the application and select &lt;code&gt;Display Users&lt;/code&gt;&lt;br&gt;
Create a new user with the required permissions.&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.amazonaws.com%2Fuploads%2Farticles%2Fx4nqmghrp71hrocnvxwe.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.amazonaws.com%2Fuploads%2Farticles%2Fx4nqmghrp71hrocnvxwe.png" alt="Image description" width="800" height="498"&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.amazonaws.com%2Fuploads%2Farticles%2Foui6jivycf2bw5g6lj1m.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.amazonaws.com%2Fuploads%2Farticles%2Foui6jivycf2bw5g6lj1m.png" alt="Image description" width="800" height="499"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 3: Configure your Backend
&lt;/h2&gt;

&lt;p&gt;Disconnect and reconnect to the BACKEND.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to the Menu.&lt;/li&gt;
&lt;li&gt;Click on &lt;code&gt;Framework&lt;/code&gt; to display the development menus&lt;/li&gt;
&lt;li&gt;Create a new applications as you did in the first step for your database (Database that contains your application data)&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  Set Up Queries
&lt;/h3&gt;

&lt;p&gt;Now that your backend is configured, you can create database queries.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to the Menu.&lt;/li&gt;
&lt;li&gt;Queries Builder&lt;/li&gt;
&lt;li&gt;Create your queries&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Create query is easy, you will describe your query, add method for SELECT, UPDATE, INSERT or DELETE depending on your database type, and set your SQL&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.amazonaws.com%2Fuploads%2Farticles%2Fd4upugkopnh6flu0fo00.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.amazonaws.com%2Fuploads%2Farticles%2Fd4upugkopnh6flu0fo00.png" alt="Image description" width="800" height="501"&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.amazonaws.com%2Fuploads%2Farticles%2Fw9npd5ejjm23sjys9ch0.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.amazonaws.com%2Fuploads%2Farticles%2Fw9npd5ejjm23sjys9ch0.png" alt="Image description" width="800" height="492"&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.amazonaws.com%2Fuploads%2Farticles%2Fo6uy51sffsuzgzmr4jii.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.amazonaws.com%2Fuploads%2Farticles%2Fo6uy51sffsuzgzmr4jii.png" alt="Image description" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it ! You are now able to use your query in your frontend or simply as an API call. &lt;/p&gt;
&lt;h2&gt;
  
  
  Step 4: Usage example
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Encrypt your password
&lt;/h3&gt;

&lt;p&gt;Endpoint: POST /api/fmw/encrypt&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "plain_text": "your_password"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Get a token for your API user / password
&lt;/h3&gt;

&lt;p&gt;Endpoint: POST /api/auth/token?pool=backend&amp;amp;mode=session&amp;amp;type=database&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "user": "admin",
  "password": "return_from_encrypt_endpoint"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Call your query
&lt;/h3&gt;

&lt;p&gt;Endpoint: GET /api/db/query?source=query&amp;amp;type=table&amp;amp;pool=backend&amp;amp;mode=session&amp;amp;query=&lt;code&gt;query_id&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "items": [
        {
            "ROW_ID": 1,
            "USR_APPS_ID": 10,
            "USR_ID": "APPLEAD",
            "USR_NAME": "Financial/Distribution Company",
            "USR_REGISTRATION": "430788490",
            "USR_STATUS": null,
            "USR_DT_LOGIN": null,
            "USR_DT_CREATION": null,
            "USR_PRIVILEGED": "N",
            "USR_DT_REFRESH": "2025-02-27",
            "USR_UKID": 2
        },
        {
            "ROW_ID": 2,
            "USR_APPS_ID": 10,
            "USR_ID": "CRPCTL",
            "USR_NAME": null,
            "USR_REGISTRATION": null,
            "USR_STATUS": null,
            "USR_DT_LOGIN": null,
            "USR_DT_CREATION": null,
            "USR_PRIVILEGED": "N",
            "USR_DT_REFRESH": "2025-02-27",
            "USR_UKID": 2
        },
        {
            "ROW_ID": 3,
            "USR_APPS_ID": 10,
            "USR_ID": "CRPDTA",
            "USR_NAME": null,
            "USR_REGISTRATION": null,
            "USR_STATUS": null,
            "USR_DT_LOGIN": null,
            "USR_DT_CREATION": null,
            "USR_PRIVILEGED": "N",
            "USR_DT_REFRESH": "2025-02-27",
            "USR_UKID": 2
        }
    ],
    "status": "success",
    "metadata": [
        {
            "headerName": "ROW_ID",
            "field": "ROW_ID",
            "type": "text",
            "operator": "like",
            "rules": null,
            "rules_values": null,
            "default": null
        },
        {
            "headerName": "USR_APPS_ID",
            "field": "USR_APPS_ID",
            "type": "text",
            "operator": "like",
            "rules": null,
            "rules_values": null,
            "default": null
        },
        {
            "headerName": "USR_ID",
            "field": "USR_ID",
            "type": "text",
            "operator": "like",
            "rules": null,
            "rules_values": null,
            "default": null
        },
        {
            "headerName": "USR_NAME",
            "field": "USR_NAME",
            "type": "text",
            "operator": "like",
            "rules": null,
            "rules_values": null,
            "default": null
        },
        {
            "headerName": "USR_REGISTRATION",
            "field": "USR_REGISTRATION",
            "type": "text",
            "operator": "like",
            "rules": null,
            "rules_values": null,
            "default": null
        },
        {
            "headerName": "USR_STATUS",
            "field": "USR_STATUS",
            "type": "text",
            "operator": "like",
            "rules": null,
            "rules_values": null,
            "default": null
        },
        {
            "headerName": "USR_DT_LOGIN",
            "field": "USR_DT_LOGIN",
            "type": "text",
            "operator": "like",
            "rules": null,
            "rules_values": null,
            "default": null
        },
        {
            "headerName": "USR_DT_CREATION",
            "field": "USR_DT_CREATION",
            "type": "text",
            "operator": "like",
            "rules": null,
            "rules_values": null,
            "default": null
        },
        {
            "headerName": "USR_PRIVILEGED",
            "field": "USR_PRIVILEGED",
            "type": "text",
            "operator": "like",
            "rules": null,
            "rules_values": null,
            "default": null
        },
        {
            "headerName": "USR_DT_REFRESH",
            "field": "USR_DT_REFRESH",
            "type": "text",
            "operator": "like",
            "rules": null,
            "rules_values": null,
            "default": null
        },
        {
            "headerName": "USR_UKID",
            "field": "USR_UKID",
            "type": "text",
            "operator": "like",
            "rules": null,
            "rules_values": null,
            "default": null
        }
    ],
    "hasMore": false,
    "limit": 1000,
    "offset": 0,
    "count": 3
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Added Value of Liberty Framework
&lt;/h2&gt;

&lt;p&gt;The Liberty Framework provides a structured and scalable backend solution that simplifies application development. It allows you to create and manage applications, configure databases, and delivers API endpoints for all your queries. The flexibility of Liberty Framework enables seamless integration with any frontend, whether you choose to use Liberty-Core or any other custom application. Its API-first approach ensures that your backend remains reusable, scalable, and adaptable to various use cases, making it an excellent choice for modern application development.&lt;/p&gt;

&lt;p&gt;Instead of hardcoding your queries, you can manage them through a database with authentication and JWT security to prevent SQL injection.&lt;/p&gt;

&lt;p&gt;Edit:&lt;br&gt;
A socket dashboard is also available to display current connection to the database&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.amazonaws.com%2Fuploads%2Farticles%2Fpw8gm63nt0atfb429okl.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.amazonaws.com%2Fuploads%2Farticles%2Fpw8gm63nt0atfb429okl.png" alt="Image description" width="800" height="313"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Useful Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;strong&gt;GitHub Repository (Framework):&lt;/strong&gt; &lt;a href="https://github.com/fblettner/liberty/" rel="noopener noreferrer"&gt;Liberty Framework&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📖 &lt;strong&gt;API Documentation:&lt;/strong&gt; &lt;a href="https://liberty.nomana-it.fr/api" rel="noopener noreferrer"&gt;Liberty API Docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🔗 &lt;strong&gt;GitHub Repository (Core):&lt;/strong&gt; &lt;a href="https://github.com/fblettner/liberty-core/" rel="noopener noreferrer"&gt;Liberty Core&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🔗 &lt;strong&gt;GitHub Repository (Test Project):&lt;/strong&gt; &lt;a href="https://github.com/fblettner/liberty-test/" rel="noopener noreferrer"&gt;Liberty Test&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📖 &lt;strong&gt;Live Documentation:&lt;/strong&gt; &lt;a href="https://docs.nomana-it.fr/liberty-core/" rel="noopener noreferrer"&gt;Liberty Core Docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💖 &lt;strong&gt;Sponsor &amp;amp; Support:&lt;/strong&gt; &lt;a href="https://github.com/sponsors/fblettner" rel="noopener noreferrer"&gt;Sponsor Liberty Core&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>fastapi</category>
      <category>react</category>
      <category>liberty</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Introducing Liberty Core – A Complete React Library !</title>
      <dc:creator>Franck Blettner</dc:creator>
      <pubDate>Thu, 20 Feb 2025 10:32:55 +0000</pubDate>
      <link>https://dev.to/franck_blettner_43d29fa88/introducing-liberty-core-a-complete-react-library--3o7m</link>
      <guid>https://dev.to/franck_blettner_43d29fa88/introducing-liberty-core-a-complete-react-library--3o7m</guid>
      <description>&lt;p&gt;Hello everyone! I’m excited to share Liberty Core, a React-based library designed not just as a component library, but as a full-featured framework for building modern, responsive web applications.&lt;/p&gt;

&lt;p&gt;🔗 Documentation: &lt;a href="https://docs.nomana-it.fr/liberty-core/" rel="noopener noreferrer"&gt;https://docs.nomana-it.fr/liberty-core/&lt;/a&gt;&lt;br&gt;
🔗 GitHub Repository: &lt;a href="https://github.com/fblettner/liberty-core" rel="noopener noreferrer"&gt;https://github.com/fblettner/liberty-core&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌟 Why Liberty Core?&lt;/p&gt;

&lt;p&gt;Liberty Core provides everything you need to develop scalable applications, including:&lt;br&gt;
✅ Authentication &amp;amp; OIDC integration&lt;br&gt;
✅ Logging with Sentry&lt;br&gt;
✅ WebSocket &amp;amp; real-time event management&lt;br&gt;
✅ Highly customizable UI components&lt;br&gt;
✅ Overridable API functions (Work in progress – customize without relying on the backend API)&lt;/p&gt;

&lt;p&gt;The best part? The documentation itself is built using Liberty Core! 📖&lt;/p&gt;

&lt;p&gt;💡 This is an open-source project, and contributions are always welcome! If you’re interested in extending, forking, or collaborating, check out the repository.&lt;/p&gt;

&lt;p&gt;⚡ If you find value in this project and want to support its development, you can also sponsor the work:&lt;br&gt;
🔗 Sponsorship: &lt;a href="https://github.com/sponsors/fblettner" rel="noopener noreferrer"&gt;https://github.com/sponsors/fblettner&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love to hear your feedback! 🚀🔥&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.amazonaws.com%2Fuploads%2Farticles%2Ftwh1imdgo4qxt13kkrrm.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.amazonaws.com%2Fuploads%2Farticles%2Ftwh1imdgo4qxt13kkrrm.png" alt="Image description" width="800" height="970"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>libertyframework</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Introducing Liberty Framework: A React/FastAPI Low-Code Platform for Enterprise Applications</title>
      <dc:creator>Franck Blettner</dc:creator>
      <pubDate>Mon, 10 Feb 2025 18:58:01 +0000</pubDate>
      <link>https://dev.to/franck_blettner_43d29fa88/introducing-liberty-framework-a-no-codelow-code-platform-for-enterprise-applications-3ihh</link>
      <guid>https://dev.to/franck_blettner_43d29fa88/introducing-liberty-framework-a-no-codelow-code-platform-for-enterprise-applications-3ihh</guid>
      <description>&lt;p&gt;🔹 Liberty Framework is an open-source No-Code/Low-Code framework built with React and FastAPI, designed to help businesses and developers rapidly create enterprise applications.&lt;/p&gt;

&lt;p&gt;Whether you’re a developer looking to accelerate your workflow or a business user needing custom applications without coding, Liberty Framework provides the flexibility to create powerful, scalable, and AI-driven applications with minimal effort.&lt;/p&gt;

&lt;p&gt;🛠️ What is Liberty Framework?&lt;/p&gt;

&lt;p&gt;Liberty Framework is a fully modular platform designed to:&lt;/p&gt;

&lt;p&gt;✅ Enable No-Code/Low-Code Development – Build applications visually without extensive programming.&lt;br&gt;
✅ Provide Enterprise-Grade Scalability – Works for both startups and large-scale businesses.&lt;br&gt;
✅ Integrate AI and Automation – Use OpenAI-powered AI and workflow automation with Airflow.&lt;br&gt;
✅ Offer Flexibility – Customize, extend, and integrate with your existing systems.&lt;br&gt;
✅ Simplify Deployment – Containerized with Docker for easy deployment anywhere.&lt;br&gt;
✅ Monitoring – Integrated with Sentry and Grafana to monitor errors  and performance&lt;br&gt;
✅ Components – Custom components written in React to remove any external dependencies like MUI or AG-Grid&lt;/p&gt;

&lt;p&gt;💡 Liberty Framework is built to bridge the gap between visual programming and developer-friendly customization.&lt;/p&gt;

&lt;p&gt;🌟 No-Code &amp;amp; Low-Code Capabilities&lt;/p&gt;

&lt;p&gt;With Liberty Framework, business users can create applications while developers can extend functionality using React components and FastAPI services.&lt;/p&gt;

&lt;p&gt;🔹 Visual UI Designer – Build user interfaces without writing code.&lt;br&gt;
🔹 Workflow Automation – Define processes and logic visually.&lt;br&gt;
🔹 Custom Components – Developers can integrate custom-built React components.&lt;/p&gt;

&lt;p&gt;🧠 AI &amp;amp; OpenAI Integration&lt;/p&gt;

&lt;p&gt;Liberty Framework comes with built-in AI support, allowing you to:&lt;br&gt;
✅ Generate text using GPT models&lt;br&gt;
✅ Create AI-powered chatbots&lt;br&gt;
✅ Automate responses &amp;amp; decision-making&lt;/p&gt;

&lt;p&gt;📊 Enterprise Workflow Automation&lt;/p&gt;

&lt;p&gt;Liberty integrates with Apache Airflow, enabling you to:&lt;br&gt;
🔹 Define and schedule business processes&lt;br&gt;
🔹 Automate repetitive tasks&lt;br&gt;
🔹 Monitor &amp;amp; orchestrate workflows&lt;/p&gt;

&lt;p&gt;⚡ API-Driven &amp;amp; Extensible&lt;/p&gt;

&lt;p&gt;Liberty Framework is fully API-driven, allowing seamless integration with external systems:&lt;br&gt;
✅ REST APIs&lt;br&gt;
✅ Custom backend logic with FastAPI&lt;br&gt;
✅ Third-party service integrations (e.g., databases, authentication, analytics)&lt;/p&gt;

&lt;p&gt;💻 Why Liberty Framework?&lt;/p&gt;

&lt;p&gt;🔹 For Business Users – Build applications without writing code.&lt;br&gt;
🔹 For Developers – Extend, customize, and integrate as needed.&lt;br&gt;
🔹 For Enterprises – Automate workflows, manage AI-driven tasks, and scale effortlessly.&lt;/p&gt;

&lt;p&gt;Unlike traditional no-code tools, Liberty provides a developer-friendly environment while keeping the power of visual programming accessible to all users.&lt;/p&gt;

&lt;p&gt;💰 Sponsorship &amp;amp; Support&lt;/p&gt;

&lt;p&gt;Liberty Framework is open-source and licensed under AGPL. If your company benefits from Liberty, consider supporting development through sponsorship:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/fblettner" rel="noopener noreferrer"&gt;🔹 GitHub Sponsors&lt;/a&gt;&lt;br&gt;
🔹 Enterprise Support &amp;amp; Consulting – Contact us for dedicated assistance.&lt;/p&gt;

&lt;p&gt;Your support helps keep Liberty free and continuously improving!&lt;/p&gt;

&lt;p&gt;🚀 Join the Community&lt;/p&gt;

&lt;p&gt;⭐ &lt;a href="https://github.com/fblettner/liberty" rel="noopener noreferrer"&gt;Star Liberty Framework on GitHub&lt;/a&gt;&lt;br&gt;
📢 &lt;a href="https://www.linkedin.com/in/franck-blettner-72509510/" rel="noopener noreferrer"&gt;Follow updates on LinkedIn&lt;/a&gt;&lt;br&gt;
💬 &lt;a href="https://github.com/fblettner/liberty/discussions" rel="noopener noreferrer"&gt;Open an issue or contribute to the project&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Liberty Framework is built for the future – try it today and shape the future of No-Code/Low-Code development! 🎉&lt;/p&gt;

&lt;p&gt;Demo available at : &lt;a href="https://liberty.nomana-it.fr" rel="noopener noreferrer"&gt;https://liberty.nomana-it.fr&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>react</category>
      <category>fastapi</category>
    </item>
  </channel>
</rss>
