<?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: kevbosaurus</title>
    <description>The latest articles on Forem by kevbosaurus (@kevbosaurus).</description>
    <link>https://forem.com/kevbosaurus</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%2F203371%2F1b115274-22c4-42de-9468-48441cd8a296.jpg</url>
      <title>Forem: kevbosaurus</title>
      <link>https://forem.com/kevbosaurus</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kevbosaurus"/>
    <language>en</language>
    <item>
      <title>Top 5 MySQL GUI tools in 2021</title>
      <dc:creator>kevbosaurus</dc:creator>
      <pubDate>Tue, 26 Oct 2021 16:37:18 +0000</pubDate>
      <link>https://forem.com/retool/top-5-mysql-gui-tools-in-2021-53h1</link>
      <guid>https://forem.com/retool/top-5-mysql-gui-tools-in-2021-53h1</guid>
      <description>&lt;p&gt;Ahead of Postgres and SQLite, MySQL has been the leading relational database for years. This is corroborated most recently by &lt;a href="https://insights.stackoverflow.com/survey/2021" rel="noopener noreferrer"&gt;Stack Overflow's 2021 Developer Survey&lt;/a&gt;, in which 50.18 percent of all respondents (73,317) claim to have used MySQL extensively and plan to do so in the coming year.&lt;/p&gt;

&lt;p&gt;However, many find MySQL challenging to manage despite its simpler design. GUIs have become increasingly central to delivering exceptional user experiences. Database managers are faced with a number of tasks, including the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Object management and automation&lt;/li&gt;
&lt;li&gt;  Data analysis&lt;/li&gt;
&lt;li&gt;  Creating and executing queries&lt;/li&gt;
&lt;li&gt;  Developing and debugging stored routines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MySQL Shell might feel unapproachable, and even its fundamental components like MySQL Workbench or MySQL Connectors don't appeal to everyone. Some may not even require every advanced feature under the database's umbrella. Thankfully, the third-party tooling market has grown substantially throughout MySQL's twenty-six-year history.&lt;/p&gt;

&lt;p&gt;This article breaks down the leading MySQL tools and their benefits (plus potential drawbacks).&lt;/p&gt;

&lt;h2&gt;
  
  
  Selection criteria
&lt;/h2&gt;

&lt;p&gt;The goal was to find tools with well-rounded functionality. Each is evaluated on the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Features---what can you do with the tool, and how well do these capabilities align with MySQL's native functional offerings? How might these tools exceed expectations, or democratize the utilization of MySQL within teams?&lt;/li&gt;
&lt;li&gt;  Platform compatibility---is the tool developed for specific OSs, or does it have cross-platform availability for Windows, Mac, Linux, and even the web?&lt;/li&gt;
&lt;li&gt;  SQL autocomplete support---is the MySQL Intellisense feature baked in or emulated, both to save time and reduce scripting effort within the editor?&lt;/li&gt;
&lt;li&gt;  Special MySQL support---does the tool integrate with MySQL in any novel ways that differentiate it from competitors?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This assessment is meant to be as objective as possible, with added comments that you might find helpful. Here are the top five picks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adminer
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fretool.com%2Fblog%2Fcontent%2Fimages%2F2021%2F10%2Fimg1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fretool.com%2Fblog%2Fcontent%2Fimages%2F2021%2F10%2Fimg1.png" alt="Adminer interface, via online demo editor"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Adminer interface, via online demo editor&lt;/p&gt;

&lt;p&gt;Perhaps one of the more no-nonsense members on this list (in stock form), &lt;a href="https://www.adminer.org/" rel="noopener noreferrer"&gt;Adminer&lt;/a&gt; aims to provide powerful functionality within a simplified package. Launched in 2007, the tool prioritizes security, performance, and size. You can select your preferred look from over twenty-five included themes---sourced by Adminer's developers, with others contributed by community members.&lt;/p&gt;

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

&lt;p&gt;The tool promises robust database management using a single PHP file. This makes it relatively easy to set Adminer up on any machine with PHP. Learn how to set up PHP on your computer &lt;a href="https://www.php.net/manual/en/install.php" rel="noopener noreferrer"&gt;with this guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can install optional MySQL database servers either locally or remotely. This second option lets you tap into a remote machine as needed, saving space on your physical drive. Accordingly, it may be advantageous to install any database extensions for MySQL that you cannot live without. This is great preparation for the remaining steps.&lt;/p&gt;

&lt;p&gt;Finally, download the latest Adminer PHP file directly from &lt;a href="https://www.adminer.org/" rel="noopener noreferrer"&gt;Adminer's website&lt;/a&gt;. Any associated plugins you'll want to add are hosted and documented on this website and on &lt;a href="https://github.com/vrana/adminer" rel="noopener noreferrer"&gt;Adminer's GitHub page&lt;/a&gt;. Getting started is as easy as logging into your essential databases.&lt;/p&gt;

&lt;h3&gt;
  
  
  Features and MySQL support
&lt;/h3&gt;

&lt;p&gt;To understand how Adminer stands out, compare it with another leading MySQL GUI, phpMyAdmin. Adminer offers &lt;a href="https://www.adminer.org/en/phpmyadmin/" rel="noopener noreferrer"&gt;numerous improvements&lt;/a&gt;, according to its developers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  It's available in a MySQL-only version---purpose-built without excessive bloat&lt;/li&gt;
&lt;li&gt;  Permanent logins&lt;/li&gt;
&lt;li&gt;  Automatic field generation&lt;/li&gt;
&lt;li&gt;  Multi-index manipulation&lt;/li&gt;
&lt;li&gt;  Complete foreign-keys support with an associated interface&lt;/li&gt;
&lt;li&gt;  Full support for triggers, routines, and events&lt;/li&gt;
&lt;li&gt;  Absolute and relative modification support in bulk&lt;/li&gt;
&lt;li&gt;  Safer row cloning with confirmation, avoiding overwrites&lt;/li&gt;
&lt;li&gt;  Seamless anywhere-synchronization using an ALTER export&lt;/li&gt;
&lt;li&gt;  Multi-query SQL results displayed in a single view&lt;/li&gt;
&lt;li&gt;  Concurrency with multiple tabs during complex operations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Adminer requires secure logins for all integrated databases, and employs rate limiting to thwart brute force attacks. It's built to be lightweight and rapid thanks to asynchronous data downloading. Table fetching isn't a limiting factor when requesting lists.&lt;/p&gt;

&lt;p&gt;Among other features, Adminer allows plenty of table manipulations---especially those involving listing, indexing, altering, creating, dropping, and adding records or indexes. You can execute any SQL command using text fields and files. It's also possible to create new databases, export data structures, kill processes, and display users alongside their rights. Adminer allows all of this while encouraging you to harness your preferred data type.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best use cases
&lt;/h3&gt;

&lt;p&gt;The makers of Adminer highlight two seemingly paradoxical benefits: its simplicity and its customizability. But customization isn't necessary to get the most out of the GUI. It's available for power users, while the base package remains usable to novices.&lt;/p&gt;

&lt;p&gt;That said, flexibility is a major strength of Adminer. It allows experienced developers to stretch their capabilities with plugins, extensions, and other APIs. It's great for those with solid knowledge of PHP and avoids the one-size-fits-all pitfalls of other applications. Finally, the toolset is welcoming to newcomers thanks to liberal inclusion of text fields, drop-downs, toggles, checklists, and radio buttons.&lt;/p&gt;

&lt;h2&gt;
  
  
  Beekeeper Studio
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fretool.com%2Fblog%2Fcontent%2Fimages%2F2021%2F10%2FBeekeeper.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fretool.com%2Fblog%2Fcontent%2Fimages%2F2021%2F10%2FBeekeeper.png" alt="Beekeeper Studio"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Decidedly the junior compared to something like Adminer, &lt;a href="https://www.beekeeperstudio.io/" rel="noopener noreferrer"&gt;Beekeeper Studio&lt;/a&gt; first launched in early 2020 as a modern approach to MySQL database management. This is reflected in its aesthetic, which mirrors that of other GUI-centric applications in the past five years. The interface and editor come with numerous content views, most of which are information-rich and well-organized. Development has also been steady, with &lt;a href="https://github.com/beekeeper-studio/beekeeper-studio/releases" rel="noopener noreferrer"&gt;forty-one releases&lt;/a&gt; in the past year and a half (at the time of writing).&lt;/p&gt;

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

&lt;p&gt;Beekeeper Studio is compatible with Windows, Mac, and Linux. The program is built primarily using Vue, TypeScript, and JavaScript. No PHP downloads are required locally. To get started, install the appropriate &lt;code&gt;.dmg&lt;/code&gt; or package &lt;a href="https://www.beekeeperstudio.io/" rel="noopener noreferrer"&gt;directly from Beekeeper's website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can get started with Beekeeper within minutes, depending on your OS.&lt;/p&gt;

&lt;h3&gt;
  
  
  Features and MySQL support
&lt;/h3&gt;

&lt;p&gt;Beekeeper highlights a host of key features on its homepage. Security is highly important, given that SSL encryption is standard for all database connections. Beekeeper will hold onto your password for safekeeping. It also helps you connect through firewalls via specific ports.&lt;/p&gt;

&lt;p&gt;Beekeeper Studio supports SQL autocompletion through the built-in editor, which provides dev-friendly features like syntax highlighting and pop-up suggestions. This makes it much easier and less tedious to fly through numerous SQL queries. Beekeeper also provides the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Support for dozens of concurrent tabs within one unified window&lt;/li&gt;
&lt;li&gt;  Quick saving and organization of common SQL queries&lt;/li&gt;
&lt;li&gt;  Quick and easy data table changes, with the ability to stage changes later on&lt;/li&gt;
&lt;li&gt;  Straightforward creation, editing, and deletion of table columns, indexes, and relations using the GUI&lt;/li&gt;
&lt;li&gt;  Data export in CSV, JSON, JSONL, and SQL in just a few steps---even in conjunction with specialized data filters&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Beekeeper also supports multiple run contexts. It's possible to run all queries by default, run the current highlighted query, or run selected queries only. Once data is retrieved and arranged in a table, you can filter, sort, and peruse this information however you wish. Beekeeper also supports a number of default &lt;a href="https://docs.beekeeperstudio.io/guide/#keyboard-shortcuts" rel="noopener noreferrer"&gt;keyboard shortcuts&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best use cases
&lt;/h3&gt;

&lt;p&gt;Beekeeper Studio is designed to work with several DBs, like Postgres, SQLite, and SQL Server. It's not built solely for MySQL and is therefore better suited for day-to-day data lookup and manipulation, as opposed to intensive or detailed projects. Compared to something like Adminer, Beekeeper supports a smaller array of MySQL-specific features, which you might miss.&lt;/p&gt;

&lt;p&gt;The editor is the star of the show here. It's attractive, easy to work with, and relatively powerful. If you're looking to bang out numerous lines of SQL queries, you'll feel right at home within the app.&lt;/p&gt;

&lt;h2&gt;
  
  
  CloudBeaver
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fretool.com%2Fblog%2Fcontent%2Fimages%2F2021%2F10%2Fcloudbeaver.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fretool.com%2Fblog%2Fcontent%2Fimages%2F2021%2F10%2Fcloudbeaver.png" alt="CloudBeaver's integrated schema diagrams"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CloudBeaver's integrated schema diagrams\&lt;br&gt;
Released around the same time as Beekeeper Studio, &lt;a href="https://cloudbeaver.io/" rel="noopener noreferrer"&gt;CloudBeaver&lt;/a&gt; is a smaller, open-source project supported by a stable of &lt;a href="https://github.com/dbeaver/cloudbeaver" rel="noopener noreferrer"&gt;thirteen contributors&lt;/a&gt;. Because of this, development schedules are a little more deliberate, but that hasn't stopped CloudBeaver from fine-tuning its lightweight, user-friendly GUI. The interface is clean and has both dark and light modes. CloudBeaver also presents users with informative visualizations, keeping you engaged and organized as databases scale. Being a web application, this tool is accessible to a larger subset of users without consuming too many resources or disk space.&lt;/p&gt;

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

&lt;p&gt;CloudBeaver comes in three flavors. First is the web application, which leverages a web server and JavaScript frontend. While this method is accessible, &lt;a href="https://cloudbeaver.io/docs/Build-and-deploy/" rel="noopener noreferrer"&gt;CloudBeaver warns&lt;/a&gt; that the setup process can be somewhat complex.&lt;/p&gt;

&lt;p&gt;Next is the popular community build, which is free. CloudBeaver distributes this as a Docker image on Docker Hub or as source code.&lt;/p&gt;

&lt;p&gt;The final version is CloudBeaver Enterprise. The development team has made a Docker container specifically for this purpose, or you can secure an AWS-compatible version within the AWS Marketplace. The application is predominantly built using TypeScript and Java.&lt;/p&gt;

&lt;p&gt;Installing CloudBeaver requires the Terminal and some scripts. Use either &lt;code&gt;docker pull dbeaver/cloudbeaver:latest&lt;/code&gt; to pull the current build, or &lt;code&gt;docker pull dbeaver/cloudbeaver:dev&lt;/code&gt; to grab the newest developer build.&lt;/p&gt;

&lt;p&gt;You can run CloudBeaver &lt;a href="https://cloudbeaver.io/doc/cloudbeaver.pdf" rel="noopener noreferrer"&gt;using the Terminal, using daemon mode, or by accessing &lt;code&gt;localhost&lt;/code&gt; databases&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Features and MySQL support
&lt;/h3&gt;

&lt;p&gt;At the macro level, CloudBeaver offers you its data editor, data export, entity diagrams, SQL editor, AWS-and-Docker integration (RDS, Redshift, Dynamo DB, Docker Hub), and execution planning. However, let's dig a little deeper to understand how helpful &lt;a href="https://cloudbeaver.io/features/" rel="noopener noreferrer"&gt;these features&lt;/a&gt;) are.&lt;/p&gt;

&lt;p&gt;The data editor displays data from tables and queries in a readable list format composed of labeled rows and columns:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fretool.com%2Fblog%2Fcontent%2Fimages%2F2021%2F10%2FCB-s-database.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fretool.com%2Fblog%2Fcontent%2Fimages%2F2021%2F10%2FCB-s-database.png" alt="CloudBeaver database image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Scanning these custom categories and arranging data in a sensible format is doable in a snap. Both relational and document-oriented databases are supported. Quickly view values for all data types, read from tables regardless of length, use the dedicated data-filter panel, or even order tables based on column numbers.&lt;/p&gt;

&lt;p&gt;For export, CloudBeaver supports CSV, XLSX, XML, JSON, and SQL INSERTs formats. Entity diagrams offer more interesting features. Should you want to visualize your entire database schema, Beaver will provide a flowchart-style diagram with labels and categorized data points. Unique keys, foreign keys, and automatic layouts are supported by default. You can even export this visualization as a PNG or SVG file for safekeeping.&lt;/p&gt;

&lt;p&gt;The SQL editor supports syntax highlighting for different dialects and even provides auto-completion for columns, tables, SQL keywords, and procedures. Query results are viewable in multiple concurrent tabs.&lt;/p&gt;

&lt;p&gt;You can integrate CloudBeaver with your AWS account to unlock authorized browsing of AWS databases using AWS credentials and RDS authentication. This type of process relies either on Kerberos or Active Directory, and thus allows you to clamp down on unintended access. You also have compatibility with Docker environments and the ability to serve local or remote databases.&lt;/p&gt;

&lt;p&gt;Finally, the execution plan feature generates a query-execution tree in a results tab and evaluates whether scripts and queries are designed to work optimally in their existing formats.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best use cases
&lt;/h3&gt;

&lt;p&gt;If you prefer integration with AWS, you'll love CloudBeaver. The tool is built from the ground up with these platforms in mind, offering an expansive list of possibilities for serving and pulling databases from multiple sources.&lt;/p&gt;

&lt;p&gt;CloudBeaver is also good for team collaboration---you can invite contributors to join project workspaces with a simple, shareable link. It's a viable solution for enterprises and common users alike---while other tools don't offer specialized corporate versions. That alone speaks volumes.&lt;/p&gt;

&lt;h2&gt;
  
  
  phpMyAdmin
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fretool.com%2Fblog%2Fcontent%2Fimages%2F2021%2F10%2Fphp-cover.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fretool.com%2Fblog%2Fcontent%2Fimages%2F2021%2F10%2Fphp-cover.png" alt="phpMyAdmin demo interface"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;phpMyAdmin demo interface&lt;/p&gt;

&lt;p&gt;A stalwart in the database management space, &lt;a href="https://www.phpmyadmin.net/" rel="noopener noreferrer"&gt;phpMyAdmin&lt;/a&gt; launched in 1998 and has since enjoyed voracious support. GitHub has recorded &lt;a href="https://github.com/phpmyadmin/phpmyadmin" rel="noopener noreferrer"&gt;469 releases since launch&lt;/a&gt;---an ambitious schedule made possible by over 1,100 contributors. It's written mainly in PHP.&lt;/p&gt;

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

&lt;p&gt;At the OS level, phpMyAdmin supports Windows and various Linux distributions. However, be warned that macOS is NOT supported.&lt;/p&gt;

&lt;p&gt;Choose an appropriate distribution kit from the website's Downloads page, unzip it, connect to your web server, and configure the tool accordingly. You might opt for MyAdmin's new wizard-style installation, which makes things easier.&lt;/p&gt;

&lt;p&gt;There are three other ways to install phpMyAdmin: using a Git package, via Docker, or via Composer. These utilize images and tarballs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Features and MySQL support
&lt;/h3&gt;

&lt;p&gt;The web-based phpMyAdmin tool allows you to use either the GUI or direct commands.&lt;/p&gt;

&lt;p&gt;The tool also offers the following features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Support for MySQL functions like browse or drop for tables, databases, fields, views, and indexes&lt;/li&gt;
&lt;li&gt;  Create, copy, drop, and rename functions for the above items&lt;/li&gt;
&lt;li&gt;  Support for server configuration proposals and server maintenance&lt;/li&gt;
&lt;li&gt;  Importing and exporting data in a wide range of formats&lt;/li&gt;
&lt;li&gt;  Administering multiple servers&lt;/li&gt;
&lt;li&gt;  Creating multi-format database graphics&lt;/li&gt;
&lt;li&gt;  Creating complex Query by Example (QBE) queries&lt;/li&gt;
&lt;li&gt;  Global and subset database searches&lt;/li&gt;
&lt;li&gt;  Transformation of stored data using predefined functions and formats---even converting BLOBs into links or images&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;phpMyAdmin supports both LTR and RTL languages. The tool has been translated into seventy-two languages, making it accessible for global users.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best use cases
&lt;/h3&gt;

&lt;p&gt;phpMyAdmin has had plenty of time to develop a list of highly requested features. Administrators and architects can trust it to handle tasks ranging from menial to intricate.&lt;/p&gt;

&lt;h2&gt;
  
  
  MySQL Workbench
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2Ftbh9wi7p1by3nd7qyoeu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Ftbh9wi7p1by3nd7qyoeu.png" alt="MySQL Workbench, via GitHub"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.mysql.com/products/workbench/" rel="noopener noreferrer"&gt;MySQL Workbench&lt;/a&gt; was launched in 2015 as a visualization tool for database architects, developers, and DBAs. It's a full-fledged suite that allows you to data model, develop SQL, and administer everything around your databases. It's written mainly in C++ and has &lt;a href="https://github.com/mysql/mysql-workbench/releases" rel="noopener noreferrer"&gt;twenty-five releases&lt;/a&gt; stored on GitHub.&lt;/p&gt;

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

&lt;p&gt;MySQL Workbench is &lt;a href="https://dev.mysql.com/doc/workbench/en/wb-requirements.html" rel="noopener noreferrer"&gt;available for Windows, macOS, and Linux distributions&lt;/a&gt;. It's designed to work best with (yet doesn't require) a MySQL server connection, along with simultaneous client connections.&lt;/p&gt;

&lt;p&gt;MySQL Workbench can be installed via the command line. However, there are unique installation pathways for each OS.&lt;/p&gt;

&lt;h3&gt;
  
  
  Features and MySQL support
&lt;/h3&gt;

&lt;p&gt;MySQL Workbench is primarily a GUI-centric tool and thus ditches the scripting interfaces found elsewhere. Designed to work with MySQL Server 5.6+, it offers the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  create and manage database-server connections, connection parameters, and integrated query execution&lt;/li&gt;
&lt;li&gt;  assemble data into meaningful graphical designs, reverse and forward engineer between schemas and live databases, and edit all database elements as needed. The Table Editor makes it easy to alter tables, columns, indexes, triggers, options, privileges, inserts, and partitioning&lt;/li&gt;
&lt;li&gt;  server-instance management, auditing, backup and restoration, and performance-health monitoring&lt;/li&gt;
&lt;li&gt;  data migration between versions of MySQL or moving data from other database systems to and from MySQL&lt;/li&gt;
&lt;li&gt;  MySQL Enterprise support&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Use cases
&lt;/h3&gt;

&lt;p&gt;Like phpMyAdmin, MySQL Workbench is made for both novices and experts. As the native database management option for MySQL, the tool excels at supporting the database technology without major hiccups. It's perfect for those hoping to keep everything under one proverbial roof.&lt;/p&gt;

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

&lt;p&gt;As you can see, there are plenty of exceptional (and approachable) MySQL GUIs on the market. No tool is perfect, but your needs and preferences will help determine which is ideal for you.&lt;/p&gt;

&lt;p&gt;It's also true that simple is often better. At &lt;a href="https://retool.com/use-case/sql-gui" rel="noopener noreferrer"&gt;Retool&lt;/a&gt;, we work to make it easy to build apps and tackle other projects using your team's data. We aimed for a clean, organized GUI enables you to quickly view, edit, and analyze information whether you prefer lists, tables, or richer visualizations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F3urs9qf2sd97e247ygwn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F3urs9qf2sd97e247ygwn.png" alt="Retool"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To learn more, &lt;a href="http://login.retool.com/auth/signup" rel="noopener noreferrer"&gt;give it a try&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>mysql</category>
      <category>sql</category>
    </item>
    <item>
      <title>What is low code?</title>
      <dc:creator>kevbosaurus</dc:creator>
      <pubDate>Fri, 25 Jun 2021 22:51:54 +0000</pubDate>
      <link>https://forem.com/retool/what-is-low-code-4egk</link>
      <guid>https://forem.com/retool/what-is-low-code-4egk</guid>
      <description>&lt;p&gt;Low code and no code have all the hype, but among developers, they also have equal amounts of skepticism.&lt;/p&gt;

&lt;p&gt;In March 2021, no code pioneer Zapier &lt;a href="https://techcrunch.com/2021/03/08/zapier-buys-no-code-focused-makerpad-in-its-first-acquisition/" rel="noopener noreferrer"&gt;acquired no-code community Makerpad&lt;/a&gt;. In April 2021, UiPath, a provider of low code automation software, &lt;a href="https://fortune.com/2021/04/21/uipath-ipo-valuation-stock-price/" rel="noopener noreferrer"&gt;IPO'd at $31 billion&lt;/a&gt;. Gartner predicts that by 2024, &lt;a href="https://www.forbes.com/sites/ilkerkoksal/2020/04/29/the-rise-of-low-code-app-development/" rel="noopener noreferrer"&gt;more than 65%&lt;/a&gt; of application development activity will come from low code application development platforms.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.wsj.com/articles/SB10001424053111903480904576512250915629460" rel="noopener noreferrer"&gt;Software is eating the world&lt;/a&gt;, but low code and no code are making developers rethink how software is made.&lt;/p&gt;

&lt;p&gt;Of course, (some) developers tell a different story. According to an &lt;a href="https://evansdata.com/press/viewRelease.php?pressID=272" rel="noopener noreferrer"&gt;Evans Data report&lt;/a&gt;, one in five developers never use low code, and almost three-quarters of developers use low code less than half the time. And anecdotally, many developers express a similar sentiment to low code as &lt;a href="https://www.reddit.com/r/learnprogramming/comments/ba82qm/should_you_learn_how_to_use_lowcode_platforms/" rel="noopener noreferrer"&gt;Reddit user blahblahblah&lt;/a&gt; does below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2F9tY8fQgqAEbv-snvuFQZBR0kFjvh51e2KcDKhmFokrZnB6vGvGAw4dNV30A5U_3MES4RWjvi_A1i_rJE0uNYupL7wvBZduo0qTJrt2QN22WEGmaczF_v9jXlc1l5LWt9P2nPjDzW" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2F9tY8fQgqAEbv-snvuFQZBR0kFjvh51e2KcDKhmFokrZnB6vGvGAw4dNV30A5U_3MES4RWjvi_A1i_rJE0uNYupL7wvBZduo0qTJrt2QN22WEGmaczF_v9jXlc1l5LWt9P2nPjDzW" alt="reddit low-code"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this article, we're going to dig into open questions, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  What is low code?&lt;/li&gt;
&lt;li&gt;  What's the difference between low code and no code?&lt;/li&gt;
&lt;li&gt;  What are the major use cases for low code?&lt;/li&gt;
&lt;li&gt;  What are the benefits and drawbacks of low code?&lt;/li&gt;
&lt;li&gt;  What does low code say about the future of software development?&lt;/li&gt;
&lt;li&gt;  What are some good low code development platforms?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Throughout, we'll return to the thesis that though low code may not be &lt;em&gt;disrupting&lt;/em&gt; or &lt;em&gt;replacing&lt;/em&gt; software development, it is &lt;em&gt;transforming&lt;/em&gt; it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is low code? A primer
&lt;/h2&gt;

&lt;p&gt;Low code is the development of software via a visual, drag-and-drop interface. The logic is simple and the UI is intuitive, but the results are scalable, secure, and performant.&lt;/p&gt;

&lt;h3&gt;
  
  
  The three components of low code
&lt;/h3&gt;

&lt;p&gt;A low code development platform consists of three major components that are, by and large, common across all low code tools and platforms.&lt;/p&gt;

&lt;p&gt;A visual integrated development environment (IDE): This is the core of a low code development platform. It's usually a drag-and-drop interface that developers use to model workflows and declare logic. As necessary, developers can also use it to add hand-written code. Typically, developers use the IDE to create most of the app and then customize the last mile with hand-written code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fretool.com%2Fblog%2Fcontent%2Fimages%2F2021%2F06%2FLow-code.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fretool.com%2Fblog%2Fcontent%2Fimages%2F2021%2F06%2FLow-code.gif" alt="low-code Retool"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Connectors: Depending on the low code platform, various kinds of connectors plug the platform into a variety of back-end services, databases, and APIs. These provide extensibility and increased functionality. Developers tend to prioritize connectors because the usefulness of a low code platform is directly tied to what it integrates with. Some early low code platforms are short on connection functionality, leaving developers with with unnecessary workarounds or missed requirements.&lt;/p&gt;

&lt;p&gt;Application lifecycle manager: Again, depending on the low code platform, it might also include tools for debugging, deployment, and maintenance across testing, staging, and production. If a low code platform promises robust results that match those produced by hand-coding, then it needs to come with lifecycle management to match the standard software development lifecycle that developers run when creating software from scratch.&lt;/p&gt;

&lt;p&gt;Though low code platforms and tools can differ widely, they all tend to share these three components.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does low code do?
&lt;/h3&gt;

&lt;p&gt;The primary goal of low code is to reduce the amount of "hand-coding" (i.e., code done from scratch) and increase the amount of code reused and apps developed. Low code is highly composable, meaning that when you use the visual IDE to construct a component, it's easy to then reuse that component in different situations. You get the initial speed of using an IDE and then even more speed as you reuse the resulting components.&lt;/p&gt;

&lt;p&gt;The reason why it's called "low code" (as opposed to "no code," which we'll get into in the next section) is that low code development is split roughly 80:20 visual coding to hand-coding. You build about 80% of your app using a low code UI and then hand-code the rest---usually last-mile specifications, as necessary. In the below video, for instance, our developer advocate, Chris Smith, uses in-line JavaScript to get an order total for a MongoDB admin panel.&lt;/p&gt;

&lt;h3&gt;
  
  
  The future of low code is bright
&lt;/h3&gt;

&lt;p&gt;Developers have plenty of reasons to be skeptical of low code. Many have seen the rise of technology fads that similarly promised the reduction---or even the elimination---of traditional programming. The elders among us will remember Visual Basic and PowerBuilder.&lt;/p&gt;

&lt;p&gt;That skepticism is belied by the research. According to &lt;a href="https://www.mendix.com/resources/digital-disconnect-a-study-of-business-and-it-alignment/" rel="noopener noreferrer"&gt;Mendix research&lt;/a&gt;, 99% of organizations surveyed report that they'd benefit from the capabilities of low code platforms.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://retool.com/blog/state-of-internal-tools-2021/" rel="noopener noreferrer"&gt;Our own research&lt;/a&gt; shows that 89% of developers enjoy building with low code, 90% of developers believe low code meets their needs, and 89% of developers plan to keep building with low code. And, as we mentioned at the top of this article, Gartner predicts that &lt;a href="https://www.forbes.com/sites/ilkerkoksal/2020/04/29/the-rise-of-low-code-app-development/" rel="noopener noreferrer"&gt;more than 65%&lt;/a&gt; of application development activity will come from low code application development platforms by 2024.&lt;/p&gt;

&lt;p&gt;Companies, analysts, and developers agree: low code is here to stay. We're reaching an inflection point where the capabilities of low code technology are actually ready to meet their promised potential.&lt;/p&gt;

&lt;h2&gt;
  
  
  Low code vs. no code: The differences and similarities
&lt;/h2&gt;

&lt;p&gt;Let's bust a myth right from the get-go: low code and no code are &lt;em&gt;not&lt;/em&gt; the same thing. They share some similarities, but on close inspection, those similarities become superficial. At a fundamental level, the technologies are different.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is no code?
&lt;/h3&gt;

&lt;p&gt;If low code is the minimization of hand-coding, then no code is the elimination of hand-coding.&lt;/p&gt;

&lt;p&gt;No code also uses a visual workflow builder and IDE, but it doesn't require developers to hand-code at all, a feature that poses both advantages and disadvantages.&lt;/p&gt;

&lt;p&gt;At first glance, that difference seems minor. If anything, it seems advantageous for no code---why code a little when you could skip coding altogether? But it turns out that difference makes all the difference.&lt;/p&gt;

&lt;h3&gt;
  
  
  Low code vs. no code: the small differences
&lt;/h3&gt;

&lt;p&gt;The first differences you'll notice between low code and no code involve differences among target users, design, and UI. Though these differences aren't minor, they make low code and no code applications look slightly different.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Target user: Low code is for semi-technical business users and technical developers, whereas no code is just for business users. Since low code still involves some hand-coding, many low code tools still require software developers to either handle development or take it over the last mile.&lt;/li&gt;
&lt;li&gt;  Design: Low code platforms still depend on hard code for software architecture, whereas no code tends to have model-driven workflows and declarative logic.&lt;/li&gt;
&lt;li&gt;  UI: Low code provides greater flexibility, enabling developers to add hand-written code to visually developed components, whereas no code is a closed system that tends to lock users into the abilities of the no code platform in question. The ramifications of this lock-in vary depending on what platform you choose.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If these were the only differences, you could imagine low code and no code someday converging or a vendor offering a platform that effectively does both. This ignores the fact, however, that low code and no code are different at a fundamental level.&lt;/p&gt;

&lt;h3&gt;
  
  
  Low code vs. no code: the big difference
&lt;/h3&gt;

&lt;p&gt;No code abstracts away code, whereas low code retains the ability to code. Though that difference might seem small on the surface, the ramifications are profound.&lt;/p&gt;

&lt;p&gt;Low code is a natural extension of web frameworks, component libraries, and the long tradition of borrowing pre-built work and adding in nuances that are unique to your situation. Developers have always strived for more composability, and entire businesses have been built on this desire: think API-first companies like Twilio and package managers like npm.&lt;/p&gt;

&lt;p&gt;Low code is less a disruption and more a continuation of this tradition. Low code helps developers move faster, both by helping them make decisions and follow through on actions more efficiently. That speed, however, doesn't sacrifice anything---low code respects the fact that developers will still need to customize.&lt;/p&gt;

&lt;p&gt;The ability to customize is a DNA-level difference, and it has ripple effects. No code aims at a new audience with a new proposal: turn all of the code into UIs, logic, and simple steps, such that non-technical business users (or "citizen developers") can now "code."&lt;/p&gt;

&lt;p&gt;No code, by its very nature, is opinionated and inflexible. While both low code and no code manifest similarities (namely the drag-and-drop visual IDE mentioned above), they approach different problems and solve them so distinctly that the possible end results are entirely different.&lt;/p&gt;

&lt;h2&gt;
  
  
  5 low code use cases
&lt;/h2&gt;

&lt;p&gt;Low code use cases range from the complex (such as full-on app development) to the relatively simple (such as landing page design).&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Internal tools
&lt;/h3&gt;

&lt;p&gt;Internal tools aren't flashy, but developers spend a lot of time working on them. According to our research in &lt;a href="https://retool.com/blog/state-of-internal-tools-2021/" rel="noopener noreferrer"&gt;The state of internal tools in 2021&lt;/a&gt;, developers spend nearly a third of their time (30%) building internal applications.&lt;/p&gt;

&lt;p&gt;It's not that this work isn't impactful (it is; for companies with more than ten employees, one in three employees are using internal apps a developer has built). It's that internal tools aren't always how developers want to spend their time nor how businesses want to spend their development resources.&lt;/p&gt;

&lt;p&gt;With low code platforms, you can develop internal tools faster and even enable some non-developers to build them, too.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. UI design
&lt;/h3&gt;

&lt;p&gt;Some low code platforms let you build an intuitive user interface from drag-and-drop components. This is especially useful for back-end developers who may have to build dashboards but aren't familiar with UX best practices.&lt;/p&gt;

&lt;p&gt;This use case bleeds into others on the list. A popular internal tool, for instance, is a sales dashboard that helps sales reps track deal flow. The sales team might ask a back-end developer to make such a tool, and while the back-end developer can easily handle the data, they might not be able to present that data in an intuitive way.&lt;/p&gt;

&lt;p&gt;With low code, a back-end developer can easily spin up a UI that they can layer onto the data they retrieve.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Integration and automation
&lt;/h3&gt;

&lt;p&gt;Platforms like &lt;a href="https://www.uipath.com/" rel="noopener noreferrer"&gt;UiPath&lt;/a&gt;, &lt;a href="https://www.workato.com/" rel="noopener noreferrer"&gt;Workato&lt;/a&gt;, and &lt;a href="https://appian.com/" rel="noopener noreferrer"&gt;Appian&lt;/a&gt; provide ways to integrate apps and automate the processes that connect and flow between them.&lt;/p&gt;

&lt;p&gt;Many companies, large enterprises especially, are stuck with legacy infrastructure (think SAP, Oracle, Citrix) that they can't afford to rip out and replace. These companies, however, are increasingly feeling the heat from nimble startups relying on custom-built tools, SaaS apps, and APIs.&lt;/p&gt;

&lt;p&gt;With low code, enterprises can achieve some of that speed by connecting and automating those legacy systems. Enterprises can then adjust and iterate much like startups can, leaving them less vulnerable to disruption.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Basic app development
&lt;/h3&gt;

&lt;p&gt;Low code tools like &lt;a href="https://bubble.io/" rel="noopener noreferrer"&gt;Bubble.io&lt;/a&gt; enable non-developers to spin up entire web apps, and low code tools like &lt;a href="https://memberful.com/" rel="noopener noreferrer"&gt;Memberful&lt;/a&gt; enable non-developers to add specific features to their apps (in Memberful's case, membership).&lt;/p&gt;

&lt;p&gt;Some of the results of Bubble.io, according to their &lt;a href="https://bubble.io/showcase" rel="noopener noreferrer"&gt;showcase page&lt;/a&gt;, include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.teeming.ai/" rel="noopener noreferrer"&gt;Teeming&lt;/a&gt;, a cloud-based tool that helps remote teams bond via interactive work sessions&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://residentstreet.com/" rel="noopener noreferrer"&gt;ResidentStreet&lt;/a&gt;, a platform that connects people looking for "mid-term accommodations" (1-11 months) with furnished properties&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://incomee.co/" rel="noopener noreferrer"&gt;Incomee&lt;/a&gt;, an accounting tool for freelancers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This use case is one where the difference between low code and no code really matters. Be aware of the customization limitations of no code as your app scales.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. MVPs and prototypes
&lt;/h3&gt;

&lt;p&gt;The minimum viable product (MVP) methodology, originating with famed startup expert Eric Ries, asks developers and startups to ship products faster, get feedback earlier, and build with customers in mind. MVPs (and prototypes, a similar idea) are a great use case for low code.&lt;/p&gt;

&lt;p&gt;The idea is this: don't invest tons of development resources into an app or feature you're unsure of. When you're building an app from scratch, the necessary up-front investment is immense. You have to think about hosting, the back-end, the front-end, the UI, maintenance, monitoring analytics... the list goes on.&lt;/p&gt;

&lt;p&gt;Those are all distractions from what your primary focus needs to be at this early stage: your user and what they need. Low code helps you delay those important business decisions, so that you can make them later, when you have a stable business and customer traction.&lt;/p&gt;

&lt;p&gt;With low code, you can get most of the way toward your final product, test it with your customers, and then, and only then, make an investment you're confident in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why low code? Benefits and drawbacks
&lt;/h2&gt;

&lt;p&gt;Low code has a variety of benefits and drawbacks, all of which depend on which low code platform(s) you choose and how you use it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Low code benefits
&lt;/h3&gt;

&lt;p&gt;Though low code comes with many benefits, they generally come down to three core ones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Increase time to value (TTV)&lt;/strong&gt;&lt;br&gt;
Compared to hand-coding, low code development gets developers from idea to execution to production much faster.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://resources.kintone.com/citizen-developer-business-application-report-2017" rel="noopener noreferrer"&gt;Kintone research&lt;/a&gt;, developers using low code tools "get applications out the door faster than large IT departments. They turn around their required applications in a matter of weeks, or a couple of months. Only 17% report turnaround times exceeding three months."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Improve developer productivity and efficiency&lt;/strong&gt;&lt;br&gt;
Many low code platforms come with pre-built components, and most come with the ability to make components you can reuse, making low code development eminently composable. Developers can borrow, build, and reuse components as they go, making them more efficient over time.&lt;/p&gt;

&lt;p&gt;Improved productivity and efficiency is backed up by research, both in terms of sheer speed and the ability to meet previously unmet demand via improved efficiency:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://go.forrester.com/blogs/why-you-need-to-know-about-low-code-even-if-youre-not-responsible-for-software-delivery/" rel="noopener noreferrer"&gt;Forrester analyst John Rymer&lt;/a&gt; says that low code platforms "have the potential to make software development as much as 10 times faster than traditional methods."&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://go.caspio.com/state-of-custom-business-applications-2020?&amp;amp;_ga=2.46840167.1975902204.1623099469-1417118847.1623099469" rel="noopener noreferrer"&gt;Caspio research&lt;/a&gt; shows that 63% of organizations using low code platforms have the skills and resources to fulfill the demand for custom apps, whereas only 41% of organizations not using low code can say the same. Similarly, 61% (as opposed to 38%) of organizations using low code typically deliver custom apps on time, on scope, and on budget.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With low code, developers can ship faster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Better use of existing staff&lt;/strong&gt;&lt;br&gt;
Developers are in short supply.&lt;/p&gt;

&lt;p&gt;According to the &lt;a href="https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm#tab-6" rel="noopener noreferrer"&gt;Bureau of Labor Statistics&lt;/a&gt;, "employment of software developers...is projected to grow 22% from 2019 to 2029, much faster than the average for all occupations." Demand for software developers is already outpacing supply, despite the ever-increasing need for software. This is backed up by &lt;a href="https://www.techrepublic.com/article/cio-jury-83-of-cios-struggle-to-find-tech-talent/" rel="noopener noreferrer"&gt;TechRepublic research&lt;/a&gt;, which found that 83% of CIOs struggle to find tech talent.&lt;/p&gt;

&lt;p&gt;Low code allows already hired developers to move faster (as covered in the previous benefit), but it also allows non-developers, such as operations staff, to take part in development. Companies can produce more software with existing staff.&lt;/p&gt;

&lt;h3&gt;
  
  
  Drawbacks
&lt;/h3&gt;

&lt;p&gt;Low code isn't without its drawbacks, but you can defeat many of these by choosing a modern low code platform that fits your use case.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vendor lock-in
&lt;/h3&gt;

&lt;p&gt;Perhaps the top reason developers fear low code tools is the risk of vendor lock-in. Whereas hand-coding is inherently flexible and extensible, low code platforms have the potential to lock developers into a limited ecosystem.&lt;/p&gt;

&lt;p&gt;This drawback varies depending on which low code platform you choose. Legacy low code application development platforms, many of which resemble no code more than low code, can absolutely lock you into their ecosystems. Modern low code platforms, however, tend to be built on the aforementioned tradition of composability, meaning that there's an inherent respect for the need to customize.&lt;/p&gt;

&lt;p&gt;Retool, for instance, is built on Javascript and SQL, meaning developers versed in those languages can easily add on to what they develop in Retool.&lt;/p&gt;

&lt;h3&gt;
  
  
  Shadow IT and governance
&lt;/h3&gt;

&lt;p&gt;IT might be resistant to low code adoption.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://www.forbes.com/sites/jasonbloomberg/2017/07/20/the-low-codeno-code-movement-more-disruptive-than-you-realize/?sh=4db92168722a" rel="noopener noreferrer"&gt;Jason Bloomberg&lt;/a&gt;, an IT industry analyst, "IT has been telling business stakeholders for years that the six month/million dollar plan is the only way to build enterprise software," but now, &lt;a href="https://www.forbes.com/sites/jasonbloomberg/2017/07/20/the-low-codeno-code-movement-more-disruptive-than-you-realize/?sh=4db92168722a" rel="noopener noreferrer"&gt;according to Simon Chan&lt;/a&gt;, Founder and CEO of DigiVue Consulting, "the same systems can be implemented by smaller players at a fraction of the price and in a fraction of the time," which "has leveled the playing field."&lt;/p&gt;

&lt;p&gt;What might appear to be a level playing field to a business user, however, can appear to be a threat to IT. IT has long had to resist the encroachment of so-called "shadow IT," and a low code program might appear to add fuel to that fire. Imagine, the IT admin might fear, if employees were not only adopting SaaS tools without permission but were &lt;em&gt;building&lt;/em&gt; apps without permission?&lt;/p&gt;

&lt;p&gt;This isn't IT being controlling. There are serious ramifications, especially in terms of security, from letting more people build software. And they're not wrong --- according to &lt;a href="https://resources.kintone.com/citizen-developer-business-application-report-2017" rel="noopener noreferrer"&gt;Kintone research&lt;/a&gt;, more than one in four surveyed organizations have no citizen development policy of any kind in place. The problem is less with low code itself and more with how companies implement and scale low code programs. Eventually, governance becomes necessary.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scalability
&lt;/h3&gt;

&lt;p&gt;Some developers have an instinctual resistance to low code platforms based on the assumption that any code that isn't hand-written can't be robust enough to scale. This assumption isn't true---low code apps can scale to enterprise proportions---but the nugget of truth is that many low code platforms aren't built with scale in mind.&lt;/p&gt;

&lt;p&gt;Outsystems, for instance, in a surprising moment of &lt;a href="https://www.outsystems.com/blog/posts/what-is-low-code/" rel="noopener noreferrer"&gt;vendor honesty&lt;/a&gt;, notes that "When it's time to scale, integrate with existing systems, or perform under extreme conditions like a mobile banking app on Black Friday, the [low code] application could buckle under the weight of functional and nonfunctional requirements. If an application built with low-code needs updating or if the underlying technology needs changing, good luck."&lt;/p&gt;

&lt;p&gt;The solution here tends to be picking a low code platform that *can *develop apps that can scale. And scalability tends to come from leaning into low code's advantages. No code apps are much more likely to suffer from scalability problems because they aren't customized. Use low code to build your foundation but hand-code your way to scalability.&lt;/p&gt;

&lt;h2&gt;
  
  
  How low code will shape the future of software development
&lt;/h2&gt;

&lt;p&gt;Low code development will not replace traditional software development. Full stop. But it will change software development---and in some areas, the change will be dramatic.&lt;/p&gt;

&lt;h3&gt;
  
  
  Low code will add (more) abstraction
&lt;/h3&gt;

&lt;p&gt;Low code, understood historically, is another layer of abstraction between developer and code.&lt;/p&gt;

&lt;p&gt;You can trace the roots of low code back to the &lt;a href="https://www.techopedia.com/definition/24308/fourth-generation-programming-language-4gl" rel="noopener noreferrer"&gt;fourth-generation programming languages&lt;/a&gt; (think Visual Basic and PowerBuilder) and computer-aided software engineering (CASE), rapid application development (RAD), and business process management (BPM) tools from the 1990s. These early tools and platforms tried to fulfill the same promise modern low code does: build real apps in less time and with less code.&lt;/p&gt;

&lt;p&gt;It took another couple of decades for the brand name to form, however. The first popular instance of the phrase "low code" occurred in a &lt;a href="https://www.forrester.com/report/New+Development+Platforms+Emerge+For+CustomerFacing+Applications/-/E-RES113411" rel="noopener noreferrer"&gt;2014 Forrester report&lt;/a&gt; and has been on a steady rise since.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh6.googleusercontent.com%2FwK6K8ADGrKPs6bWBlDUaxJvIOLSJFrmXpTGmUlJlEShboZzgpvZgbF1Cj5Sk-iIV2NgFEtBZO-0vDQ_IhAp1cYKBBAPt2FSEJ6oJz0-mA0R22C1UstsVY-VrrbJQF8_-H1n__zqN" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh6.googleusercontent.com%2FwK6K8ADGrKPs6bWBlDUaxJvIOLSJFrmXpTGmUlJlEShboZzgpvZgbF1Cj5Sk-iIV2NgFEtBZO-0vDQ_IhAp1cYKBBAPt2FSEJ6oJz0-mA0R22C1UstsVY-VrrbJQF8_-H1n__zqN" alt="google trends low code"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Searches for "low-code app development platform" on Google Trends&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you want to get technical, you can trace low code back through the history of code, too. The history of code is itself a history of abstraction: every programming language is a more human-readable version of binary code. What's unreadable to us now, like FORTRAN, was a big step toward readability back in the day. As Nacho Iacovino, developer advocate at Clerk, wrote in a &lt;a href="https://retool.com/blog/nacho-iacovino-on-the-future-of-internal-tools/" rel="noopener noreferrer"&gt;guest post&lt;/a&gt; for us, even modern options like React are "a low(er)-code option, compared with the alternative of vanilla JavaScript which would take many more lines of code to achieve the same results."&lt;/p&gt;

&lt;p&gt;In the same way, low code is another step toward readability and up the ladder of abstraction. Viewed this way, low code isn't a departure from history so much as it is a continuation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Low code will add, not disrupt
&lt;/h3&gt;

&lt;p&gt;A major reason developers are skeptical of low code is the hype. A simple Google search reveals the scale of the hype. "Is low code the future" returns over 2 million results, and articles on the topic include titles like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Why Low-Code Automation Is The Tech Of The Future&lt;/li&gt;
&lt;li&gt;  Why low-code and no-code are the future of enterprise applications&lt;/li&gt;
&lt;li&gt;  The Future of Software is No Code and Low Code Programming&lt;/li&gt;
&lt;li&gt;  Low Code Is The Future Of Application Development&lt;/li&gt;
&lt;li&gt;  Low-code programming -- the next frontier in app development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fretool.com%2Fblog%2Fcontent%2Fimages%2F2021%2F06%2FLow-collage.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fretool.com%2Fblog%2Fcontent%2Fimages%2F2021%2F06%2FLow-collage.png" alt="low-code collage"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Realistically, low code isn't &lt;em&gt;the&lt;/em&gt; future; it's part of the future. Internal tool development, our specialty, provides a perfect example.&lt;/p&gt;

&lt;p&gt;Internal tool development (which developers spend 30% of their time doing) is an ideal use for low code. Though two out of three developers &lt;a href="https://retool.com/blog/state-of-internal-tools-2021/" rel="noopener noreferrer"&gt;default to building from scratch&lt;/a&gt; (instead of using a spreadsheet or a SaaS tool), 88% of developers that *do *build internal apps using low code plan to keep building that way in the future. In other words, most developers have a need that low code solves for but aren't using low code---but once they try low code, they keep using it.&lt;/p&gt;

&lt;p&gt;More than likely, low code won't disrupt, displace, or destroy software development. Instead, developers will try particular low code tools, especially ones specialized for specific use cases, and replace hand-coding development when it benefits them to do so.&lt;/p&gt;

&lt;h3&gt;
  
  
  Low code will expand the circle of software development
&lt;/h3&gt;

&lt;p&gt;According to &lt;a href="https://chiefmartec.com/2021/03/marketing-superpowers-ai-code-transform-every-marketer-maker/" rel="noopener noreferrer"&gt;Scott Brinker, VP of Platform Ecosystem at HubSpot&lt;/a&gt;, the best way to think of low code is to think of it as a way to expand the circle of people who can develop software.&lt;/p&gt;

&lt;p&gt;Low code, as well as no code, enables more people to build software. This bears out in the research so far. According to &lt;a href="https://resources.kintone.com/citizen-developer-business-application-report-2017" rel="noopener noreferrer"&gt;Kintone research&lt;/a&gt;, many non-IT low code developers are power users "embedded within line-of-business departments building the applications."&lt;/p&gt;

&lt;p&gt;Power users are becoming more powerful, so powerful that they can now develop software. According to &lt;a href="https://searchsoftwarequality.techtarget.com/news/252469924/Low-code-goes-mainstream-to-ease-app-dev-woes" rel="noopener noreferrer"&gt;John Rymer, an analyst at Forrester&lt;/a&gt;, he can "see maybe 100 million people---business people---engaged in producing software."&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fretool.com%2Fblog%2Fcontent%2Fimages%2F2021%2F06%2FLow-code.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fretool.com%2Fblog%2Fcontent%2Fimages%2F2021%2F06%2FLow-code.svg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That means that companies don't need to hire software developers for every software need. That doesn't mean that developer hiring will slow, but that companies can reallocate developer hiring away from some projects (say, internal tool development) and toward customer-facing features as well as complex and unique software development problems.&lt;/p&gt;

&lt;h2&gt;
  
  
  The impact of low code on startups and enterprises
&lt;/h2&gt;

&lt;p&gt;Often lost in the discussion of low code and its effects is context: low code looks very different to startups and enterprises.&lt;/p&gt;

&lt;h3&gt;
  
  
  Low code and startups
&lt;/h3&gt;

&lt;p&gt;Startups are time- and resource-strapped, which is the primary reason they adopt low code tools. With low code, their existing engineers can move faster and make a greater impact in three primary ways.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Internal tools will be easier to make&lt;/strong&gt;&lt;br&gt;
With low code tools, developers can re-focus from internal tool development toward customer-facing features. For startups, who may only have a couple of developers, this time and effort are precious. With product-market fit still on the horizon, early-stage startups need as many engineering resources as possible dedicated to iteration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Back-end developers will be able to develop better services&lt;/strong&gt;&lt;br&gt;
Back-end developers are well-versed in systems and functionality but not in UX design. With low code, even back-end developers can create pretty, intuitive apps and tools. The ever-elusive 10x full-stack developer becomes more attainable if you can enable back-end developers to create things only a front-end developer would normally be able to make.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Validation will come sooner in a startup's life&lt;/strong&gt;&lt;br&gt;
As we covered above, low code enables companies to rapidly build MVPs and prototypes. This is especially useful for startups, who may still be settling on a product and pursuing product-market fit. The right low code tool will also enable rapid iteration, such that startups can debut and improve products before dedicating much in the way of hand-coding.&lt;/p&gt;

&lt;p&gt;Curtis Cummings, a Senior Software Engineer at On Deck, said in an &lt;a href="https://retool.com/blog/new-developments-curtis-cummings-on-deck/" rel="noopener noreferrer"&gt;interview he did with Retool&lt;/a&gt;, "I've been on a couple of different projects in my consulting career where we had this perfect spec, we built it perfectly to spec, went out to users and it fell flat on its face because all the assumptions that backed up that spec weren't validated or grounded in user data."&lt;/p&gt;

&lt;p&gt;With low code, startups are less likely to fall on their faces.&lt;/p&gt;

&lt;h3&gt;
  
  
  Low code and enterprises
&lt;/h3&gt;

&lt;p&gt;Enterprises are not, generally, in want of resources like startups are, but they are often stuck with technical debt.&lt;/p&gt;

&lt;p&gt;Enterprise technical debt, driven by prior investments in now legacy technologies, is encouraging many enterprises to adopt low code and pursue modernization. There are three primary use cases for enterprises and low code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Improved agility&lt;/strong&gt;&lt;br&gt;
Low code tools, especially those from the RPA and workflow automation fields, will enable enterprises to move more nimbly. Enterprise technology stacks are often overly complex, old, and slow. Low code automation tools can reduce the negative effects of that complexity. These tools can automate the steps involved in the processes these legacy tools run.&lt;/p&gt;

&lt;p&gt;Software robots, offered by low code RPA tools, for instance, can &lt;a href="https://www.uipath.com/blog/rpa-use-cases-part-one-unattended-robots" rel="noopener noreferrer"&gt;run unattended&lt;/a&gt;, meaning they can operate in the background, 24/7, handling all the agonizingly manual processes legacy tools typically require.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Modernize and connect legacy technology&lt;/strong&gt;&lt;br&gt;
Enterprises are not only stuck with legacy technology; those legacy technologies are themselves often stuck in disparate silos. Connecting your ERPs to your CRMs and back again, for instance, can be a nightmare. Enterprises often face the choice of either living with it and being inefficient or hiring armies of consultants to fix it all, which is expensive.&lt;/p&gt;

&lt;p&gt;With low code, enterprises can modernize their legacy technology stacks without ripping them out and replacing them. Low code tools can layer on top of these tools and create a much more usable, intuitive interface. Business users can then access and use systems they previously would have had to request help from developers to use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Digital transformation&lt;/strong&gt;&lt;br&gt;
Forgive the buzzword, but for enterprises, digital transformation is a serious pursuit. Many enterprises are still operating on paper and, if not paper, so-called "digital paper" systems --- technologies that weren't designed with the internet and native digital capabilities in mind.&lt;/p&gt;

&lt;p&gt;In clinical research, for example, as product manager Stephanie Morillo points out in this &lt;a href="https://twitter.com/radiomorillo/status/1405707879810748416" rel="noopener noreferrer"&gt;Twitter thread&lt;/a&gt;, many organizations still use Excel. Rather than use a modern database tool, enterprises (and their employees) use a tool that lacks version control and can't handle the thousands of rows necessary for their purposes.&lt;/p&gt;

&lt;p&gt;If ever there was a need for low code, this is it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Low code is in your future (even if it isn't &lt;em&gt;the&lt;/em&gt; future)
&lt;/h2&gt;

&lt;p&gt;Big brain, hot take "thought leadership" on low code often relies on the phrase "the future of," as if software development --- an already complex and diverse field of technologies and methodologies --- will somehow evolve into one, simple thing. Well, it won't. That doesn't mean, however, that low code won't create incredible change.&lt;/p&gt;

&lt;p&gt;Low code will transform the field of software development by empowering developers to choose when and where they want to spend time hand-coding. With low code, developers can build less and architect more. As more developers adopt low code, the industry will shift in big, unpredictable ways.&lt;/p&gt;

&lt;p&gt;Full-time developers, armed with low code (or arming business users with low code), can re-focus from solving simple problems to solving complex problems. The effect of this reallocation is hard to understate and hard to predict. Developers&lt;a href="https://www.forbes.com/sites/glennsolomon/2020/06/23/why-developers-are-fueling-the-next-1-trillion-software-wave/?sh=1b904d451a31" rel="noopener noreferrer"&gt; run the world these days&lt;/a&gt; (see Stripe, Twilio, Atlassian, Datadog, MongoDB, etc.), so imagine if these &lt;a href="https://www.amazon.com/New-Kingmakers-Developers-Conquered-World-ebook/dp/B0097E4MEU" rel="noopener noreferrer"&gt;kingmakers&lt;/a&gt; shifted their internal tool development efforts (30% of their time) toward changing the world. And that's only one use case for low code!&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>coding</category>
    </item>
    <item>
      <title>On-prem vs cloud: Why you have more options than you think</title>
      <dc:creator>kevbosaurus</dc:creator>
      <pubDate>Wed, 16 Jun 2021 01:10:26 +0000</pubDate>
      <link>https://forem.com/kevbosaurus/on-prem-vs-cloud-why-you-have-more-options-than-you-think-2egn</link>
      <guid>https://forem.com/kevbosaurus/on-prem-vs-cloud-why-you-have-more-options-than-you-think-2egn</guid>
      <description>&lt;p&gt;The debate between on-premise vs cloud is nothing new. Every company has different needs, and developers have spent endless cycles debating the pros and cons of on-prem and cloud software to solve for their particular needs.Rather than try to end the debate, we wanted to provide a deeper context and frameworks for evaluating your options. That includes looking into the rise of self-hosted software, which has the potential to, if not end the debate, at least push it in a new direction.&lt;/p&gt;

&lt;h2&gt;
  
  
  On-prem vs. cloud: The debate in a nutshell
&lt;/h2&gt;

&lt;p&gt;A couple of decades ago, the debate between on-prem and cloud didn’t exist—simply because cloud computing wasn’t a thing yet. As cloud computing emerged and gained popularity in the mid to late 2000s, so did the debate about moving workloads from on-prem servers to cloud servers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Equipment ownership
&lt;/h3&gt;

&lt;p&gt;The primary difference between on-prem infrastructure and cloud infrastructure is that you own on-prem while you rent the cloud.On-prem infrastructure exists—you guessed it—on-premises in server rooms that a company builds and maintains. Cloud computing allows companies to host workloads on third-party servers. These servers aren’t really “in the cloud”—the biggest AWS data center in America, for instance, is in &lt;a href="https://datacenterfrontier.com/top-10-cloud-campuses/" rel="noopener noreferrer"&gt;Virginia&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://media.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%2F038x6lk6bpev51akf642.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F038x6lk6bpev51akf642.png" alt="data-center"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Essentially, when working with the cloud, you pay for infrastructure as though it were a bundle of different services—storage and compute among them. One of the advantages of this model is that you can pay for additional services (AWS offers a &lt;a href="https://aws.amazon.com/products/" rel="noopener noreferrer"&gt;whole bunch&lt;/a&gt;, such as analytics, containers, databases, and more. The public cloud is always at the ready, waiting for you to pay up and get more.&lt;/p&gt;

&lt;h3&gt;
  
  
  Maintenance
&lt;/h3&gt;

&lt;p&gt;The second major difference between on-prem and cloud is maintenance—particularly, the costs of that maintenance. On-prem infrastructure, by definition, is local and physical, meaning you need IT staff to buy, rack, and connect the servers that you need. And that’s just the setup. Then, you need them to manage the servers, which includes the management of hardware, software, security, and performance. If you want to expand, that’s another order and another busy IT person.&lt;/p&gt;

&lt;p&gt;On-prem software requires licensing and installation, and when that software needs updating (which it always does), then you again need IT to download and deploy updates. According to &lt;a href="https://www.zdnet.com/article/toolkit-calculate-datacenter-server-power-usage/" rel="noopener noreferrer"&gt;ZDnet&lt;/a&gt;, it costs $731.94 per machine per year just to power a server. That base price plus all the setup and maintenance costs can add up––and then you need to cool it all, which, according to &lt;a href="https://dataspan.com/blog/data-center-cooling-costs/" rel="noopener noreferrer"&gt;DataSpan&lt;/a&gt;, will be almost half your investment.&lt;/p&gt;

&lt;p&gt;Cloud infrastructure outsources all that setup and maintenance to a data center that handles setup and maintenance (and they can do so at scale if you pay up). By running workloads in the public cloud, companies can pay for storage and compute on an as-needed basis, meaning they can scale up or down depending on usage and company growth.&lt;/p&gt;

&lt;p&gt;With public cloud providers offering servers all over the globe, that scale also means global coverage at the click of a button. Plus, due to that global coverage, if a data center in one region goes down, a data center in another region can pick up the slack.&lt;/p&gt;

&lt;p&gt;And whereas on-prem infrastructure requires ordering, racking, and installing a server, public cloud servers provide near-instant provisioning, meaning scale-up happens about as fast as you can request it (i.e., pay for it). To sweeten the deal, public cloud providers also offer an array of cloud services that you either can’t get on-prem or would have difficulties getting on-prem, such as machine learning or quantum computing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Control
&lt;/h3&gt;

&lt;p&gt;Control is the most complex, gray-zone difference between on-prem and cloud. Theoretically, since you (the company) own and operate your on-prem servers, you have more control than you would if you handed over your servers to a third party.&lt;br&gt;
The costs of cloud computing make that clear. Entire businesses, such as &lt;a href="https://www.duckbillgroup.com/" rel="noopener noreferrer"&gt;The Duckbill Group&lt;/a&gt; (led by the inimitable, sarcastic &lt;a href="https://twitter.com/QuinnyPig" rel="noopener noreferrer"&gt;Corey Quinn&lt;/a&gt;), have sprung up to help businesses control cloud spend.&lt;br&gt;
&lt;a href="https://media.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%2Fgr2n5db36mwx2gtidg7l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fgr2n5db36mwx2gtidg7l.png" alt="duckbill spend"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AWS is notorious for runaway cloud spend. A recurring controversy, for instance, involves students spinning up AWS instances and unknowingly accumulating a bill worth thousands of dollars.&lt;/p&gt;


&lt;blockquote&gt;
&lt;p&gt;Hey friends,&lt;br&gt;&lt;br&gt;I have a panicked student in my DMs who’s accidentally racked up an $8k AWS bill. &lt;br&gt;&lt;br&gt;My suggestion of “talk to Support” is no good—apparently they won’t issue a billing adjustment. Anybody got better ideas, or know someone at AWS who can help them out?&lt;br&gt;&lt;br&gt;RT for reach?&lt;/p&gt;— Alex Chan (@alexwlchan) &lt;a href="https://twitter.com/alexwlchan/status/1399095011178958851?ref_src=twsrc%5Etfw" rel="noopener noreferrer"&gt;May 30, 2021&lt;/a&gt;
&lt;/blockquote&gt; 

&lt;p&gt;Cloud costs are just the beginning. Every other part of your cloud infrastructure falls prey to the same pattern—a pattern that’s in part inevitable due to the infrastructure not being yours.&lt;/p&gt;

&lt;p&gt;Ultimately, AWS (or Google Cloud or Microsoft Azure) can do whatever it wants with its servers and services, and you’re beholden to their whims. That lack of control makes many businesses uncomfortable.&lt;/p&gt;

&lt;p&gt;For some businesses, not owning their own infrastructure isn’t just uncomfortable—it’s illegal. Organizations that handle highly sensitive data (like medical or financial transactions) may be required by regulations such as HIPAA and FERPA to keep their business off the public cloud.&lt;/p&gt;

&lt;h2&gt;
  
  
  Startups and enterprises face different debates
&lt;/h2&gt;

&lt;p&gt;Startups and enterprises are coming into the on-prem vs. cloud debate with different priorities.&lt;/p&gt;

&lt;p&gt;Startups are starting from scratch and must consider agility, speed, and upfront cost; enterprises are starting with technical debt and must consider prior infrastructure investments. You can’t understand the debate, nor your place in it, until you understand the business context.&lt;/p&gt;

&lt;h3&gt;
  
  
  The startup perspective: Start small and scale as necessary
&lt;/h3&gt;

&lt;p&gt;Before public clouds (and AWS especially), startups had to raise entire funding rounds just to afford the server infrastructure that could support a minimum viable product (MVP). But the rise of the public cloud meant that even the scrappiest startup could test out a half-baked idea without too much expenditure.&lt;/p&gt;

&lt;p&gt;With public clouds, startups can start small and scale their cloud expenditure as they grow, meaning they only pay for what they use. This cost model makes the public cloud appealing to startups. As startups grow, however, they may experience vendor lock-in. If you started on AWS, it’s always going to be easier, logistically, to stay on AWS.&lt;/p&gt;

&lt;p&gt;Even if the costs rise—even if the costs rise a lot—you’d still have to compare those costs to the costs of switching, which includes any potential downtime as well as the opportunity costs of reallocating engineers to migration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Counter-example:&lt;/strong&gt; The startup perspective described above isn’t universal. Dropbox, for instance, a 14-year-old company, eventually moved off AWS and built its own data centers. Dropbox ended up saving almost &lt;a href="https://www.geekwire.com/2018/dropbox-saved-almost-75-million-two-years-building-tech-infrastructure/" rel="noopener noreferrer"&gt;$75 million&lt;/a&gt; over two years.&lt;br&gt;
&lt;a href="https://media.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%2Few50gwo4xmgfs5omp71l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Few50gwo4xmgfs5omp71l.png" alt="data center counter"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The enterprise perspective: “If it ain’t broke, don’t fix it”
&lt;/h3&gt;

&lt;p&gt;Enterprises (large companies that may have been around since before the Internet, much less cloud computing) invested in on-prem infrastructure before the public cloud was an option. As such, by necessity, most enterprises will have some measure of on-prem infrastructure to deal with.&lt;/p&gt;

&lt;p&gt;Migration to the public cloud is notoriously costly and difficult. The vendor lock-in that startups experience, mentioned above, is worse for enterprises attached to on-prem infrastructure they can’t easily replace. And, of course, this on-prem infrastructure isn’t sitting there. It’s operating and maintaining essential workloads. Replacing it all risks downtime and necessitates time.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://www.ciodive.com/spons/why-do-cloud-migrations-fail/600946/" rel="noopener noreferrer"&gt;Cloud Security Alliance research&lt;/a&gt;, 90% of CIOs have gone through failed or disrupted migration projects. Plus, only 25% met their deadlines for migrations. To complicate things further, a &lt;a href="https://www.fortinet.com/content/dam/fortinet/assets/analyst-reports/ar-2019-ihsm-fortinet-wp-q2.pdf" rel="noopener noreferrer"&gt;Fortinet study&lt;/a&gt; found that 74% of companies have actually moved applications back to on-prem from the cloud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Counter-example:&lt;/strong&gt; Despite the reasons above, many enterprises are still shifting to the public cloud. HSBC, for instance, a bank founded in 1865 that employs over 200,000 people, &lt;a href="https://aws.amazon.com/solutions/case-studies/hsbc/" rel="noopener noreferrer"&gt;migrated to AWS&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  CAPEX vs. OPEX
&lt;/h3&gt;

&lt;p&gt;So far, we’ve covered the debate in primarily technological terms, but there’s also a financial lens through which to view these arguments.&lt;/p&gt;

&lt;p&gt;You can slice through the startup vs. enterprise framing and translate the debate into purely financial terms: capital expenditures (CAPEX) vs. operational expenditures (OPEX).&lt;/p&gt;

&lt;p&gt;On-prem requires an up-front investment in server hardware (a CAPEX cost), whereas the public cloud scales up and down as you use it (an OPEX cost). Depending on your funding and how you want to account for infrastructure costs, either on-prem or cloud might be more appealing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rise of self-hosting (and an end to the debate?)
&lt;/h2&gt;

&lt;p&gt;For years, the on-prem vs. public cloud debate has assumed that the two approaches are contradictory and opposite. In recent years, however, a new infrastructure option has emerged: the private cloud. With the private cloud, you may be able to end the debate—and have your cake and eat it too.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is self-hosted software?
&lt;/h3&gt;

&lt;p&gt;Self-hosted software is software that you run on your own cloud infrastructure. In the case of a company that purchased a new email tool, you’d run the email software in your private cloud instead of using the SaaS version that is hosted on the public cloud.&lt;/p&gt;

&lt;p&gt;In a sense, you can get the best of both worlds. With a private cloud, you get the scalability of the public cloud but the control of on-prem. That means you can scale like a startup but remain in control like an enterprise.&lt;/p&gt;

&lt;h3&gt;
  
  
  The multi-cloud future
&lt;/h3&gt;

&lt;p&gt;The great on-prem vs cloud debate may end in a whimper instead of a bang. Nowadays, many companies use both private and public cloud infrastructure (a setup referred to as “multi-cloud”).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.flexera.com/blog/cloud/cloud-computing-trends-2021-state-of-the-cloud-report/" rel="noopener noreferrer"&gt;Flexera research&lt;/a&gt; found, for instance, that 92% of enterprises and 61% of SMBs (which includes startups) have a multi-cloud strategy.&lt;/p&gt;

&lt;p&gt;The future might not be any single option but an amalgamation of many options that evolve as companies grow and their needs change. Or once the next AWS-type revolution comes and upends everything again.&lt;/p&gt;

&lt;p&gt;Companies are increasingly offering self-hosted options. We here at Retool, for instance, now offer the ability to &lt;a href="https://retool.com/self-hosted/" rel="noopener noreferrer"&gt;self-host a Retool instance&lt;/a&gt;. The Retool self-hosted option is especially helpful if you have a lot of data that you can only access via a private network, a local network, or a virtual private network (VPN). Plus, you can use Docker, Kubernetes, Heroku, or Render for on-prem deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Re-evaluate your infrastructure needs from first-principles
&lt;/h2&gt;

&lt;p&gt;The cloud, especially for startups, has become something resembling a common-sense choice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Of course you deploy on AWS, the assumption goes, what else would you do?&lt;/strong&gt; Though the revolution AWS started can’t be understated, you also shouldn’t overstate its permanence. The changes the public cloud created are massive, and from its inception to the foreseeable future, deploying software in the public cloud (SaaS) will be a viable strategy for many companies.&lt;/p&gt;

&lt;p&gt;For an increasing number of companies, however, the private cloud is becoming an option worth thinking about. Much of technology, as in business and society, is cyclical—don’t assume the death of on-prem infrastructure until you evaluate your options from a first-principles perspective. &lt;/p&gt;

&lt;p&gt;The private cloud, especially, points toward the resurgence of on-prem. The future might be more local than you think.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>cloudnative</category>
    </item>
    <item>
      <title>The best React Native datepicker libraries</title>
      <dc:creator>kevbosaurus</dc:creator>
      <pubDate>Thu, 10 Jun 2021 17:39:30 +0000</pubDate>
      <link>https://forem.com/retool/the-best-react-native-datepicker-libraries-3dn9</link>
      <guid>https://forem.com/retool/the-best-react-native-datepicker-libraries-3dn9</guid>
      <description>&lt;p&gt;Date pickers are a common and essential component for many apps, especially those that facilitate event booking—like a hotel booking app—to aid seamless date selection. Date pickers improve app usability by reducing the complexities of date validation issues by ensuring that invalid dates cannot be entered, restricting date ranges, and eliminating date format confusion (for example, is &lt;code&gt;July 9, 2010&lt;/code&gt; or &lt;code&gt;September 7, 2010&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;The React Native framework used to provide React-Native date picker APIs for Android and iOS—&lt;a href="https://reactnative.dev/docs/datepickerandroid" rel="noopener noreferrer"&gt;DatePickerAndriod&lt;/a&gt; and &lt;a href="https://reactnative.dev/docs/datepickerios" rel="noopener noreferrer"&gt;DatePickerIOS&lt;/a&gt;—are now deprecated. Your choices now are to either build a date picker from scratch or use another date picker library.&lt;/p&gt;

&lt;p&gt;We researched and tried a handful of popular React-Native date picker libraries, narrowing down to four options based on factors that make a good library. Out of the top four libraries, we found the &lt;a href="https://github.com/react-native-datetimepicker/datetimepicker" rel="noopener noreferrer"&gt;React-Native DateTimePicker&lt;/a&gt; is the best; we’ll walk you through our reasoning for the selection.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to consider before choosing a library?
&lt;/h2&gt;

&lt;p&gt;We considered several factors in making our selection for the top React-Native date picker libraries and landed on the following:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Documentation:&lt;/strong&gt; Documentation is a necessity for every library, so you need to check if the library has a documentation file or site. Is the documentation detailed and written in simple language? Does it clearly highlight how to install and set up the library, how to use the library with some code examples, and have solutions to common issues or FAQs?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt; If many developers are actively using a particular library, then it’s likely to get the job done. Popularity indicators we looked at include metrics like the number of downloads recorded on the library’s &lt;a href="https://www.npmjs.com/" rel="noopener noreferrer"&gt;npm&lt;/a&gt; page, number of forks, stars, users, and contributors on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code update frequency:&lt;/strong&gt; If the codebase of a library is not frequently updated that means it is not actively maintained. Metrics you should look out for are: last commit date (anything greater than a year ago is a cause for concern), number of open vs. closed issues (the latter should be greater than the former), and date of the last version release.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Usability:&lt;/strong&gt; How easy is it to use the library? Do you have to learn any new technologies outside your existing tech stack? Does it support all platforms you need?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bundle size:&lt;/strong&gt; When adding a package, how much extra weight will this add? Will it significantly increase the size of your app? You can use &lt;a href="https://bundlephobia.com/" rel="noopener noreferrer"&gt;bundlephobia&lt;/a&gt; to check.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reputation of creators:&lt;/strong&gt; Who are the creators/maintainers of the library? What is their experience? Have they successfully built and maintained other open-source libraries?&lt;/p&gt;

&lt;h2&gt;
  
  
  Why React-Native DateTimePicker is the best date picker library
&lt;/h2&gt;

&lt;p&gt;As mentioned, we used the factors discussed above to assess several React Native date picker libraries, and &lt;a href="https://github.com/react-native-datetimepicker/datetimepicker" rel="noopener noreferrer"&gt;React-Native DateTimePicker&lt;/a&gt; stood out from the pack. It is the most popular, has the most downloads, and was created and is maintained by the React Native community—the same group that builds and maintains most popular packages in the React Native ecosystem.&lt;/p&gt;

&lt;p&gt;Here are detailed specs of this top-notch library:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documentation:&lt;/strong&gt; Documentation is available via the &lt;a href="https://github.com/react-native-datetimepicker/datetimepicker#readme" rel="noopener noreferrer"&gt;repo’s README.md on Github&lt;/a&gt;. It is elaborate, shows how to install, set up, and use the library’s ‘DateTimePicker’ component, and also discusses all accepted props&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt; 46 contributors, 1.2k stars, 16.2k users on GitHub, approximately 150k weekly downloads&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Code update frequency:&lt;/strong&gt; Since the first version was &lt;a href="https://github.com/react-native-datetimepicker/datetimepicker/releases?after=v2.1.1" rel="noopener noreferrer"&gt;released on 18 June 2019&lt;/a&gt;, new versions with are released at least once every month&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Usability:&lt;/strong&gt; Supports Android, iOS, and Windows. Supported by &lt;a href="https://docs.expo.io/" rel="noopener noreferrer"&gt;Expo&lt;/a&gt; — the official toolchain for building React Native apps&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bundle Size:&lt;/strong&gt; 188kb&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reputation of creators:&lt;/strong&gt; Created by and actively maintained by the React Native community&lt;/p&gt;&lt;/li&gt;
&lt;/ul&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%2Fy8s9ydadjr2afxkvgfbj.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%2Fy8s9ydadjr2afxkvgfbj.png" alt="React-Native DateTimePicker" width="800" height="760"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Notable React-Native date picker library options to consider
&lt;/h2&gt;

&lt;p&gt;Based on our assessment, we found other React-Native date picker libraries that are worth recommending as well. If React Native DateTimePicker doesn’t suit your needs, here are three other alternatives that are popular, have good documentation, and are also simple to use.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/mmazzarolo/react-native-modal-datetime-picker" rel="noopener noreferrer"&gt;React-native-modal-datetime-picker&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documentation:&lt;/strong&gt; Documentation is hosted on the &lt;a href="https://github.com/mmazzarolo/react-native-modal-datetime-picker#readme" rel="noopener noreferrer"&gt;repo’s readme.md on Github&lt;/a&gt;. It is straightforward, covers all the basics required to install, set up, and use the &lt;code&gt;DateTimePickerModal&lt;/code&gt; component from the library, alongside a description of all acceptable props and answers to popular FAQs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt; Approximately 100k weekly downloads, 2.2k stars, 9.1k GitHub users, 76 contributors&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Code update frequency:&lt;/strong&gt; The repo is active. Over 66 releases since its first release on October 6, 2016&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Usability:&lt;/strong&gt; Supports Android and iOS. Also, Supported by Expo. But, it uses &lt;a href="https://github.com/react-native-datetimepicker/datetimepicker" rel="noopener noreferrer"&gt;React-Native DateTimePicker&lt;/a&gt; under the hood, so it is dependent on it. It is a good alternative if you want to show your date pickers inside a modal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bundle Size:&lt;/strong&gt; 35.2kb (lightest weight of the bunch)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reputation of creators:&lt;/strong&gt; &lt;a href="https://mmazzarolo.com/" rel="noopener noreferrer"&gt;Matteo Mazzarolo&lt;/a&gt;, a software developer at inVision&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/henninghall/react-native-date-picker" rel="noopener noreferrer"&gt;React-native-date-picker&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documentation:&lt;/strong&gt; Documentation is hosted on the &lt;a href="https://github.com/henninghall/react-native-date-picker#readme" rel="noopener noreferrer"&gt;repo’s readme.md on Github&lt;/a&gt; and it covers all the basics required to install, set up, and use the ‘DatePicker’ component from the library, alongside a description of all acceptable props and answers to popular FAQs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt; It has 826 stars, 24 contributors, 1.5k GitHub users, and approximately 26,000 weekly downloads&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Code update frequency:&lt;/strong&gt; Since its first release on 8 April 2018, there have been 71 releases, with at least a new version with code updates and bug fixes every month&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Usability:&lt;/strong&gt; Supports Android and iOS. Not supported by Expo. It is ideal if you want a unified date picker design across your Android and iOS apps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bundle Size:&lt;/strong&gt; 157kb&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reputation of creators:&lt;/strong&gt; Henning Hall, JavaScript developer at SF Studios&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/stephy/CalendarPicker" rel="noopener noreferrer"&gt;React-native-calendar-picker&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Documentation: Documentation is available via the &lt;a href="https://github.com/stephy/CalendarPicker#readme" rel="noopener noreferrer"&gt;repo’s readme.md on Github&lt;/a&gt;. It is elaborate, shows how to install, set up, and use the library’s ‘CalendarPicker’ component, discusses all accepted props, and showcases several code examples to achieve different tasks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Popularity/Active community: 579 stars, 1.4k GitHub users, 38 contributors, approximately 5000 weekly downloads&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code update frequency: Over 31 version releases. Ever since the earliest release was made on March 10, 2018, at least 5 releases are made yearly to fix bugs and update the codebase.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Usability: Android and iOS. No time picker. Not supported by Expo. It is a good alternative if you just want a simple calendar interface for date picking across all platforms.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bundle Size: 99.6kb&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reputation of creators: &lt;a href="https://stephanimoroni.com/" rel="noopener noreferrer"&gt;Stephani Bishop&lt;/a&gt;, Senior software engineer at Netflix&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Getting started with React-Native DateTimePicker
&lt;/h2&gt;

&lt;p&gt;You’ve heard our take on the &lt;a href="https://github.com/react-native-datetimepicker/datetimepicker" rel="noopener noreferrer"&gt;React-Native DateTimePicker&lt;/a&gt;. Now, let’s give you an overview of how you can install and use it in your project. Before you get started, ensure you have XCode &amp;gt;= 11.6 and React Native version 0.60 or greater.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Install via npm /yarn&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install @react-native-community/datetimepicker --save
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Rebuild project&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx pod-install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Import and use&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React, {useState} from 'react';
import DateTimePicker from '@react-native-community/datetimepicker';

const App = () =&amp;gt; {

const [date, setDate] = useState(new Date());

const onChange = (event, selectedDate) =&amp;gt; {
 const currentDate = selectedDate || date;
 setDate(currentDate);
};

 return(
      &amp;lt;DateTimePicker
         value={date}
         onChange={onChange}
       /&amp;gt;
 )
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For more detailed instructions and examples, check out the library’s &lt;a href="https://github.com/react-native-datetimepicker/datetimepicker#readme" rel="noopener noreferrer"&gt;README.md&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A React-Native date picker library for every use case
&lt;/h2&gt;

&lt;p&gt;When sifting between different React-Native date picker libraries, based on factors like ease of use, active development, and popularity, then React-Native DateTimePicker is the pick of the litter.&lt;/p&gt;

&lt;p&gt;That said, as we’ve proven with our full list of libraries, there’s no dearth of popular, efficient, and highly usable options when it comes to React Native date picker libraries — regardless of your use case.&lt;/p&gt;

</description>
      <category>react</category>
    </item>
    <item>
      <title>Top React component libraries (2021)</title>
      <dc:creator>kevbosaurus</dc:creator>
      <pubDate>Fri, 28 May 2021 20:19:16 +0000</pubDate>
      <link>https://forem.com/retool/top-react-component-libraries-2021-na9</link>
      <guid>https://forem.com/retool/top-react-component-libraries-2021-na9</guid>
      <description>&lt;p&gt;Because of React’s ubiquity (&lt;a href="https://github.com/facebook/react" rel="noopener noreferrer"&gt;169k&lt;/a&gt; stars on GitHub), developers have a near-endless supply of UI libraries with custom components to draw upon to build applications. But not all React component libraries are created equal. Some are best for general purposes, others were created specifically for web development, and many are tailored for niche use cases like enterprise product production.&lt;/p&gt;

&lt;p&gt;We’ll review React component libraries in this post considering several factors like popularity, use cases, documentation, resources, support, etc.&lt;/p&gt;




&lt;h3&gt;
  
  
  Table of contents
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Material-UI&lt;/li&gt;
&lt;li&gt;Ant Design (AntD)&lt;/li&gt;
&lt;li&gt;React Bootstrap&lt;/li&gt;
&lt;li&gt;Grommet&lt;/li&gt;
&lt;li&gt;Rebass&lt;/li&gt;
&lt;li&gt;Blueprint&lt;/li&gt;
&lt;li&gt;Semantic UI React&lt;/li&gt;
&lt;li&gt;Retool&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Honorable mentions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fluent React UI&lt;/li&gt;
&lt;li&gt;Onsen UI&lt;/li&gt;
&lt;li&gt;Evergreen&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Material-UI
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;GitHub Stars&lt;/th&gt;
&lt;th&gt;Weekly NPM Downloads&lt;/th&gt;
&lt;th&gt;Stack Overflow Questions&lt;/th&gt;
&lt;th&gt;Origin&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/mui-org/material-ui" rel="noopener noreferrer"&gt;68k&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://www.npmjs.com/package/@material-ui/core" rel="noopener noreferrer"&gt;1,9M&lt;/a&gt; (May 2021)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://stackoverflow.com/questions/tagged/material-ui" rel="noopener noreferrer"&gt;12.5k&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Developed by Google in 2014, &lt;a href="https://material-ui.com/" rel="noopener noreferrer"&gt;Material-UI&lt;/a&gt; is a general-purpose customizable component library to build React applications. The folks at Google designed Material-UI as an adaptable system of &lt;a href="https://material.io/design/guidelines-overview" rel="noopener noreferrer"&gt;guidelines&lt;/a&gt;, components, and tools to make app building beautiful yet straightforward.&lt;/p&gt;

&lt;h2&gt;
  
  
  Material-UI components
&lt;/h2&gt;

&lt;p&gt;The Material-UI component library offers a wide range of options from app bars to time pickers.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd8bc8134lmgc9xqa4nke.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd8bc8134lmgc9xqa4nke.jpg" alt="Material-UI components" width="800" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google also provides guidelines for usage, design principles, dos and don’t, and best practices for each type of component. This makes it easy for developers to build well-designed apps regardless of intuition for design.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx77hotsxc93du58rzqm7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx77hotsxc93du58rzqm7.jpg" alt="Material-UI guidelines" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Material-UI themes and theming
&lt;/h2&gt;

&lt;p&gt;Material-UI offers several free and paid &lt;a href="https://material-ui.com/store/" rel="noopener noreferrer"&gt;themes&lt;/a&gt; to get started with. Paid themes start at $59 for a standard license and increase to up to $599 for an extended license. The key difference between standard and extended licenses is the ability to charge end users. Both are limited to the usage of the theme for a “single application.” Most themes offer a robust set of features, documentation, and support.&lt;/p&gt;

&lt;p&gt;For those who want complete control over design elements, Material-UI allows for custom theming to “systematically customize Material Design to better reflect your product’s brand.” Material Design is beneficial for applying consistent design across your app and making global design changes with minimal effort.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftiljbfou839sykkpnr53.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftiljbfou839sykkpnr53.jpg" alt="Material-ui customization" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Material-UI documentation and support
&lt;/h2&gt;

&lt;p&gt;Material-UI is well documented and supported. Documentation covers everything from installation to components to styling and guides for implementing utilities like server-side rendering and localization. &lt;/p&gt;

&lt;p&gt;For support, there’s plenty of free options like the Material-UI community, Stack Overflow, and GitHub. Material points technical questions to Stack Overflow, where more than 12.5k questions have been posted. GitHub is used exclusively as a bugs and feature requests tracker. On the paid side, Material-UI suggests purchasing a &lt;a href="https://tidelift.com/subscription/pkg/npm-material-ui" rel="noopener noreferrer"&gt;Tidelift subscription&lt;/a&gt; which offers “flexibility of open-source and the confidence of commercial-grade software.” At the rate of $200/hr or $1500 per day, “&lt;a href="https://material-ui.com/getting-started/support/#custom-work" rel="noopener noreferrer"&gt;Custom work&lt;/a&gt;” can be requested for help modifying Material-UI to meet specific requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apps and websites built on Material-UI
&lt;/h2&gt;

&lt;p&gt;We've grabbed a few screenshots from the Material-UI website below. See the full showcase of public apps using Material-UI &lt;a href="https://material-ui.com/discover-more/showcase/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmcnws05671uj88we4b83.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmcnws05671uj88we4b83.jpg" alt="Material-UI showcase" width="800" height="609"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Ant Design (AntD)
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;GitHub Stars&lt;/th&gt;
&lt;th&gt;Weekly NPM Downloads&lt;/th&gt;
&lt;th&gt;Stack Overflow Questions&lt;/th&gt;
&lt;th&gt;Origin&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/ant-design/ant-design" rel="noopener noreferrer"&gt;71.4k&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://www.npmjs.com/package/antd" rel="noopener noreferrer"&gt;610k&lt;/a&gt; (May 2021)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://stackoverflow.com/questions/tagged/antd" rel="noopener noreferrer"&gt;3.2k&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Ant Financial&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Ant Design (also referred to as AntD) brands itself as the "The world's second most popular React UI" although, it's unclear who they view as the most popular. AntD differentiates itself from other React component libraries as a design system for enterprise-level products. AntD has also developed a &lt;a href="https://ant.design/docs/spec/values" rel="noopener noreferrer"&gt;design philosophy&lt;/a&gt; based on four values: Natural, Certain, Meaningful, Growing. &lt;/p&gt;

&lt;p&gt;Notable companies that have bought into AntD's design philosophy include Ant Financial, Alibaba, Tencent, and Baidu. Ant Design was created by Ant Financial and was launched in 2016 — more in this &lt;a href="https://news.ycombinator.com/item?id=13053137" rel="noopener noreferrer"&gt;Show HN thread&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F28sskqugy4awxqkjndip.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F28sskqugy4awxqkjndip.jpg" alt="antd serp" width="800" height="99"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ant Design components
&lt;/h2&gt;

&lt;p&gt;AntD offers a set of more than 50 components that serve as building blocks for enterprise applications. They also recommend using other React third-party libraries for components that fall outside of the Ant Design specification, such as the &lt;a href="https://github.com/alibaba/hooks" rel="noopener noreferrer"&gt;React Hooks Library&lt;/a&gt; or &lt;a href="https://github.com/mac-s-g/react-json-view" rel="noopener noreferrer"&gt;React JSON View&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ant Design theming
&lt;/h2&gt;

&lt;p&gt;Ant Design doesn't offer the same pre-built theme options compared to a library like Bootstrap or Material. At the time of this writing, Themeforest offers 12 themes at prices ranging from $12 to $999. That's a pretty stark difference from Material themes on Themeforest, which has more than 1,500 themes built with Material Design. And Bootstrap has an order of magnitude more than Material with more than 30k themes listed on Themeforest.&lt;/p&gt;

&lt;p&gt;AntD offers &lt;a href="https://pro.ant.design/" rel="noopener noreferrer"&gt;Ant Design Pro&lt;/a&gt;, an out-of-box UI solution for enterprise applications. Ant Design Pro comes equipped with templates, components, and a corresponding design kit.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flx7yvl6gjuzybkxnb33x.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flx7yvl6gjuzybkxnb33x.jpg" alt="antd theme designer" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In addition to Ant Design Pro, AntD packages designs for &lt;a href="https://antv.vision/en" rel="noopener noreferrer"&gt;data visualization&lt;/a&gt;, &lt;a href="https://mobile.ant.design/" rel="noopener noreferrer"&gt;mobile&lt;/a&gt;, and &lt;a href="https://ant.design/docs/spec/illustration" rel="noopener noreferrer"&gt;graphic solutions&lt;/a&gt; so developers can start with a package based on a particular enterprise use case.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0hdarlm33ttz4vwaf1q2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0hdarlm33ttz4vwaf1q2.jpg" alt="antd packages" width="800" height="217"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ant Design documentation and support
&lt;/h2&gt;

&lt;p&gt;While AntD does have documentation, it doesn't offer the depth of documentation that a framework like Material-UI has. AntD's component documentation is easy to understand and includes examples and API properties for each component. AntD components also include internationalization support for dozens of languages and uses &lt;a href="https://lesscss.org/" rel="noopener noreferrer"&gt;Less.js&lt;/a&gt; for styling components.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4wb2da85obywjgtjjqqp.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%2F4wb2da85obywjgtjjqqp.png" alt="antd api" width="800" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While it doesn't appear that Ant Design offers any paid support options, they have an engaged community and many resources for self-learning. AntD uses &lt;a href="https://github.com/ant-design/ant-design/issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt; for bug tracking. AntD also facilitates community discussions via &lt;a href="https://github.com/ant-design/ant-design/discussions" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, &lt;a href="https://stackoverflow.com/questions/tagged/antd" rel="noopener noreferrer"&gt;Stack Overflow&lt;/a&gt;, and &lt;a href="https://segmentfault.com/t/antd" rel="noopener noreferrer"&gt;Segmentfault&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples of apps and websites built on Ant Design
&lt;/h2&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%2Famxc7qr0umuaooi7yzsp.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%2Famxc7qr0umuaooi7yzsp.png" alt="antd examples" width="800" height="151"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  React-Bootstrap
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;GitHub Stars&lt;/th&gt;
&lt;th&gt;Weekly NPM Downloads&lt;/th&gt;
&lt;th&gt;Stack Overflow Questions&lt;/th&gt;
&lt;th&gt;Origin&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/react-bootstrap/react-bootstrap" rel="noopener noreferrer"&gt;19.4k&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://www.npmjs.com/package/react-bootstrap" rel="noopener noreferrer"&gt;838k&lt;/a&gt; (May 2021)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://stackoverflow.com/questions/tagged/react-bootstrap" rel="noopener noreferrer"&gt;2.9k&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Twitter&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Initially named Twitter Blueprint, the Bootstrap framework was built by Mark Otto and Jacob Thornton at Twitter. Bootstrap predates React by a couple of years (Bootstrap’s initial release was August 19, 2011, and React’s was on May 29, 2013). Bootstrap started as an open-source CSS framework centered around helping developers build responsive, mobile-first front-end websites and applications. &lt;/p&gt;

&lt;p&gt;React-Bootstrap is a bit different but very similar to the original Bootstrap framework. React-Bootstrap replaces the Bootstrap JavaScript, and each component has been built from scratch as a proper React component, without unneeded dependencies like jQuery.&lt;/p&gt;

&lt;h2&gt;
  
  
  React-Bootstrap components
&lt;/h2&gt;

&lt;p&gt;React-Bootstrap’s &lt;a href="https://react-bootstrap.github.io/components/alerts/" rel="noopener noreferrer"&gt;component library&lt;/a&gt; skews toward web development. With less than 30 components, React-Bootstrap also doesn’t provide the breadth of component coverage that a Material-UI or AntD offers. Less can be more, especially for those familiar with Bootstrap and know it can accommodate their use case.&lt;/p&gt;

&lt;h2&gt;
  
  
  React-Bootstrap themes and theming
&lt;/h2&gt;

&lt;p&gt;Due to the widespread use of Bootstrap for web development, there are thousands of free and paid Bootstrap available. Generally, custom Bootstrap themes work with React-Bootstrap as long as Bootstrap defined classes and variants are used.&lt;/p&gt;

&lt;h2&gt;
  
  
  React-Bootstrap documentation and support
&lt;/h2&gt;

&lt;p&gt;While React-Bootstrap doesn’t offer any official support, there is a massive, active community and plenty of resources supporting Bootstrap. The React-Bootstrap website suggests starting with support in one of three places:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://stackoverflow.com/questions/tagged/react-bootstrap" rel="noopener noreferrer"&gt;Stack Overflow&lt;/a&gt; to ask specific, detailed questions&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://discord.com/invite/AKfs9vpvRW" rel="noopener noreferrer"&gt;Reactiflux Dischord&lt;/a&gt; to discuss via chat&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/react-bootstrap/react-bootstrap/blob/master/CONTRIBUTING.md#issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt; to report bugs&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Apps and websites built on Bootstrap
&lt;/h2&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%2Fpkr6xpc7jc3xbz22fnd1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkr6xpc7jc3xbz22fnd1.jpg" alt="bootstrap react examples" width="800" height="250"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Grommet
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;GitHub Stars&lt;/th&gt;
&lt;th&gt;Weekly NPM Downloads&lt;/th&gt;
&lt;th&gt;Stack Overflow Questions&lt;/th&gt;
&lt;th&gt;Origin&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/grommet/grommet" rel="noopener noreferrer"&gt;7.2k&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://www.npmjs.com/package/grommet" rel="noopener noreferrer"&gt;21.5k&lt;/a&gt; (May 2021)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://stackoverflow.com/questions/tagged/grommet" rel="noopener noreferrer"&gt;84&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Hewlett Packard Enterprise&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Grommet was &lt;a href="https://developer.hpe.com/blog/grommet-the-glue-that-binds-development-and-design/" rel="noopener noreferrer"&gt;developed by HPE&lt;/a&gt; and offers a more vibrant (and not so Google-y) look and feel compared to alternatives like Material-UI or AntD. From their marketing site copy, Grommet positions itself as “a React-based framework that provides accessibility, modularity, responsiveness, and theming in a tidy package.” &lt;/p&gt;

&lt;p&gt;Reading between the lines, Grommet is lighter weight, and from the looks of their website design, it also has bolder component designs.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5z57s8dp0vj1sr7hvtrq.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%2F5z57s8dp0vj1sr7hvtrq.png" alt="grommet layouts" width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Grommet components
&lt;/h2&gt;

&lt;p&gt;Grommet provides a bold and robust set of components to use. They categorize components into the following categories: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Layouts&lt;/strong&gt; — a system for layout of an app with components like headers, footers, grids, cards, sidebars and more. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type&lt;/strong&gt; — components for headings, markdown, paragraph, and text. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Color&lt;/strong&gt; — set color schemes for branding, accents, status, and neutral colors. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Controls&lt;/strong&gt; — components that let users interact with an app like menus, buttons, navbars, etc. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input&lt;/strong&gt; — components where users input things like text, check boxes, file uploads, etc. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Visualizations&lt;/strong&gt; — components for more rich visualizations like calendars, charts, avatars, etc. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Media&lt;/strong&gt; — components for video, images, and carousels. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Utilities&lt;/strong&gt; — catch-all for components that improve user experiences like keyboard shortcuts, responsive elements, infinite scroll, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grommet themes and theming
&lt;/h2&gt;

&lt;p&gt;While there are not a lot of pre-packaged Grommet themes available, Grommet does provide two useful tools for customizing a theme: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://theme-designer.grommet.io/Dashboard" rel="noopener noreferrer"&gt;Grommet theme designer&lt;/a&gt; —  an interactive demo admin panel to create custom Grommet themes by adjusting elements in the admin panel itself.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://designer.grommet.io/" rel="noopener noreferrer"&gt;Grommet designer&lt;/a&gt; — an interactive canvas that lets you build and save experiences with grommet components.&lt;/li&gt;
&lt;/ol&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%2F19u9k5ejoruv19yomdxc.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%2F19u9k5ejoruv19yomdxc.png" alt="grommet theme designer" width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Grommet documentation and support
&lt;/h2&gt;

&lt;p&gt;Grommet doesn’t offer any hands-on support. They do have an active &lt;a href="https://slack-invite.grommet.io/" rel="noopener noreferrer"&gt;Slack&lt;/a&gt; community, and, like other frameworks, bugs are submitted via &lt;a href="https://github.com/grommet/grommet/issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt;. In addition to that, Grommet provides resources, including a &lt;a href="https://codesandbox.io/u/grommetux/sandboxes" rel="noopener noreferrer"&gt;template/pattern library&lt;/a&gt;, &lt;a href="https://storybook.grommet.io/?path=/story/all--all" rel="noopener noreferrer"&gt;component library on Storybook&lt;/a&gt;, and a &lt;a href="https://codesandbox.io/s/github/grommet/grommet-sandbox" rel="noopener noreferrer"&gt;codesandbox&lt;/a&gt; for each component.&lt;/p&gt;




&lt;h1&gt;
  
  
  Rebass
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;GitHub Stars&lt;/th&gt;
&lt;th&gt;Weekly NPM Downloads&lt;/th&gt;
&lt;th&gt;Stack Overflow Questions&lt;/th&gt;
&lt;th&gt;Origin&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/rebassjs/rebass" rel="noopener noreferrer"&gt;7.3k&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://www.npmjs.com/package/rebass" rel="noopener noreferrer"&gt;68k&lt;/a&gt; (May 2021)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://stackoverflow.com/questions/tagged/rebass" rel="noopener noreferrer"&gt;10&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Brent Jackson&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Rebass was created by &lt;a href="https://jxnblk.com/" rel="noopener noreferrer"&gt;Brent Jackson&lt;/a&gt;, who is currently a front-end developer at Gatsby. React primitive UI components are at the core of the Rebass library, which are coupled with a &lt;a href="https://styled-system.com/" rel="noopener noreferrer"&gt;Styled-System&lt;/a&gt;. The Rebass Styled System is compatible with CSS-in-JS libraries and reduces the need to write custom CSS into an application using style objects instead of embedded CSS strings. As a result, developers can build faster and add a theme and design elements on top of Rebass primitives. Rebass is also very lightweight, with a footprint of about 4KB.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rebass components
&lt;/h2&gt;

&lt;p&gt;Rebass comes with a foundational set of primitive components that can be “&lt;a href="https://rebassjs.org/extending/" rel="noopener noreferrer"&gt;extended&lt;/a&gt;” to build a component library with a consistent API and styles defined in a design theme. Foundational include primitives for app structure (responsive boxes and flexbox layouts), text (heading, text, link, button), images, cards, and forms. The &lt;a href="https://rebassjs.org/forms/" rel="noopener noreferrer"&gt;Forms&lt;/a&gt; component includes many interactive sub-components like inputs, textarea, sliders, switches, and checkboxes. &lt;/p&gt;

&lt;p&gt;In addition to primitives, Rebass offers &lt;a href="https://rebassjs.org/recipes/" rel="noopener noreferrer"&gt;documentation on recipes&lt;/a&gt; for common use cases like grids, navbar, and image cards.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fndeeepf0vyctqanppv4e.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%2Fndeeepf0vyctqanppv4e.png" alt="rebass components" width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Rebass themes and theming
&lt;/h2&gt;

&lt;p&gt;While Rebass doesn’t have a library or 3rd-party ecosystem of pre-built themes, it does offer a lot of theming flexibility and customization. Themes are applied in Rebass using a &lt;a href="https://styled-components.com/docs/advanced#theming" rel="noopener noreferrer"&gt;ThemeProvider&lt;/a&gt; component. Rebass follows &lt;a href="https://github.com/system-ui/theme-specification" rel="noopener noreferrer"&gt;Theme Specification&lt;/a&gt; for defining theme objects and design tokens for use with UI components. Rebass is compatible with &lt;a href="https://theme-ui.com/home/" rel="noopener noreferrer"&gt;Theme UI&lt;/a&gt; and &lt;a href="https://github.com/styled-system/styled-system" rel="noopener noreferrer"&gt;Styled System&lt;/a&gt;, which both work with Rebass with no additional configuration required. &lt;/p&gt;

&lt;h2&gt;
  
  
  Rebass documentation and support
&lt;/h2&gt;

&lt;p&gt;Rebass provides thorough documentation centered around getting developers quickly up to speed on how Rebass works. As the concepts of primitive components, theming, and design systems are understood, developers using Rebass can fully customize and extend the library. There is no paid support or official Rebass communities listed in their documentation. &lt;/p&gt;




&lt;h1&gt;
  
  
  Blueprint
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;GitHub Stars&lt;/th&gt;
&lt;th&gt;Weekly NPM Downloads&lt;/th&gt;
&lt;th&gt;Stack Overflow Questions&lt;/th&gt;
&lt;th&gt;Origin&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/palantir/blueprint" rel="noopener noreferrer"&gt;17.8&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://www.npmjs.com/package/@blueprintjs/core" rel="noopener noreferrer"&gt;168k&lt;/a&gt; (May 2021)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://stackoverflow.com/questions/tagged/blueprint" rel="noopener noreferrer"&gt;345&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Palantir&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Blueprint is an open-source &lt;a href="https://blueprintjs.com/" rel="noopener noreferrer"&gt;React UI kit developed at Palantir&lt;/a&gt;. It differentiates from other React frameworks as being “optimized for building complex data-dense interfaces for desktop applications.” Not a huge surprise, given Blueprint’s origins out of Palantir.&lt;/p&gt;

&lt;h2&gt;
  
  
  Blueprint components
&lt;/h2&gt;

&lt;p&gt;In addition to its core component package, Blueprint separates component libraries based on use cases and significant dependencies.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmg8diakwrsr70ziaxbr2.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%2Fmg8diakwrsr70ziaxbr2.png" alt="blueprint components" width="800" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core components&lt;/strong&gt; — provide the essential components for any app built on Blueprint. This includes components from buttons to form controls to tooltips and trees.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Datetime components&lt;/strong&gt; — offer a complete set of components for building apps with date and time dependencies. These are components like a &lt;code&gt;DatePicker&lt;/code&gt;, &lt;code&gt;DateRangeInput&lt;/code&gt;, &lt;code&gt;DateInput&lt;/code&gt;, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Select components&lt;/strong&gt; — a package of components for selecting items from a list such as &lt;code&gt;Select&lt;/code&gt;, &lt;code&gt;MultiSelect&lt;/code&gt;, &lt;code&gt;Omnibar&lt;/code&gt;, &lt;code&gt;QueryList&lt;/code&gt;, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Table component&lt;/strong&gt; — robust table component the features cell and header rendering, virtualized viewport rendering, editable headers and cells, and more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Timezone component&lt;/strong&gt; — a &lt;code&gt;TimezonePicker&lt;/code&gt; for handling and selecting Timezones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Icon components&lt;/strong&gt; — a package of over 300 vector UI icons which can easily be modified by color, size, and effects.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkenpi0iaf4t9oufsed51.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%2Fkenpi0iaf4t9oufsed51.png" alt="blueprint icons" width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Blueprint themes and theming
&lt;/h2&gt;

&lt;p&gt;Blueprint not the framework to use if you’re looking for a variety of themes to start from. However, Blueprint does offer light and dark mode themes out of the box, and design elements like classes, color schemes, and typography are customizable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Blueprint documentation and support
&lt;/h2&gt;

&lt;p&gt;While Blueprint provides detailed documentation, it lacks community and support options. The &lt;a href="https://github.com/palantir/blueprint" rel="noopener noreferrer"&gt;Blueprint GitHub repo&lt;/a&gt; appears to be the most active place for reporting issues and getting support from contributors. There are also a few hundred &lt;a href="https://stackoverflow.com/questions/tagged/blueprint" rel="noopener noreferrer"&gt;Blueprint questions&lt;/a&gt; on Stack Overflow.&lt;/p&gt;




&lt;h1&gt;
  
  
  Semantic UI React
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;GitHub Stars&lt;/th&gt;
&lt;th&gt;Weekly NPM Downloads&lt;/th&gt;
&lt;th&gt;Stack Overflow Questions&lt;/th&gt;
&lt;th&gt;Origin&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/Semantic-Org/Semantic-UI-React" rel="noopener noreferrer"&gt;12.3k&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://www.npmjs.com/package/semantic-ui-react" rel="noopener noreferrer"&gt;176k&lt;/a&gt; (May 2021)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://stackoverflow.com/questions/tagged/semantic-ui" rel="noopener noreferrer"&gt;2.6k&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/jlukic" rel="noopener noreferrer"&gt;Jack Lukic&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Similar to Bootstrap-React, Semantic UI React is the React flavor of the Semantic web framework. Also, like Bootstrap-React, Semantic UI React is jQuery-free to make it fully React compatible. Because of its origins in aiding with responsive, HTML-friendly web design, Semantic for React is better suited for web development vs. application building.&lt;/p&gt;

&lt;h2&gt;
  
  
  Semantic UI React components
&lt;/h2&gt;

&lt;p&gt;Semantic UI React has a respectable library of over 50 components. Semantic UI acts as a layer on top of the React components and offers Semantic themes as CSS stylesheets.&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%2Fdp48jivfz2yrrdpwg3qc.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%2Fdp48jivfz2yrrdpwg3qc.png" alt="Semantic UI React components" width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Components grouped in the following categories:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Elements&lt;/strong&gt; — includes foundational components like buttons, dividers, lists, images, and headers. More specialized components like &lt;code&gt;image reveal&lt;/code&gt; and &lt;code&gt;rails&lt;/code&gt; for content that protrudes borders are also included in the Elements grouping.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Collections&lt;/strong&gt; — components like breadcrumbs, forms, grids, menus, and tables are included in the Collections category. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Views&lt;/strong&gt; — visual components like cards, advertisements, comments, feeds, etc., are included in the Views category. Note: that many of these components (e.g., advertisements) are unique to Semantic UI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Modules&lt;/strong&gt; — includes modular components like modals, popups, progress bars, and more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Behaviors&lt;/strong&gt; — &lt;code&gt;visibility&lt;/code&gt;, which provides a set of callbacks for when content appears, is the sole component in the Behaviors category.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Add-ons&lt;/strong&gt; — additional components like radio buttons, toggles, and sliders are included in this category.&lt;/p&gt;

&lt;h2&gt;
  
  
  Semantic UI React themes and theming
&lt;/h2&gt;

&lt;p&gt;When using Semantic UI React, it’s important to note that it does not have custom theming options and fully relies on the theming of Semantic UI. &lt;a href="https://semantic-ui.com/usage/theming.html" rel="noopener noreferrer"&gt;Semantic UI theming&lt;/a&gt; and design is based around Fredrick Brooks’s concept of “&lt;a href="https://books.google.com/books?id=0qG4TQi-e-4C&amp;amp;pg=PT234&amp;amp;lpg=PT234&amp;amp;dq=%22progressive+truthfulness%22+frederick+brooks&amp;amp;source=bl&amp;amp;ots=yrjNc6wnz8&amp;amp;sig=PJoYODuRku2A1kBoFOPfn4iGYnc&amp;amp;hl=en&amp;amp;sa=X&amp;amp;ved=0CCIQ6AEwAGoVChMImdSMpIOVxgIVCx-sCh3EQgBu#v=onepage&amp;amp;q=%22progressive%20truthfulness%22%20frederick%20brooks&amp;amp;f=false" rel="noopener noreferrer"&gt;progressive truthfulness&lt;/a&gt;.”&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Progressive truthfulness is perhaps a better way to build models of physical objects…Start with a model that is fully detailed but only resembles what is wanted. Then, one adjusts one attribute after another, bringing the result ever closer to the mental vision of the new creation, or to the real properties of a real-world object.&lt;br&gt;
&lt;strong&gt;Frederick Brooks, The Design of Design: Essays from a Computer Scientist&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The idea is to remove complication and analysis paralysis from web development. Rather than building from a blank slate, developers can specify how components should differ from the default theme using &lt;a href="https://lesscss.org/features/#variables-feature" rel="noopener noreferrer"&gt;CSS variables&lt;/a&gt; and let Semantic UI handle the rest.&lt;/p&gt;

&lt;p&gt;In addition to theming, Semantic UI React provides &lt;a href="https://react.semantic-ui.com/layouts/" rel="noopener noreferrer"&gt;layout examples&lt;/a&gt; for using grids, responsive design, sticky nav, webpage construction, etc. These layouts offer a useful starting point vs. starting from a blank slate.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F377fq68vvt68fn96d9mm.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%2F377fq68vvt68fn96d9mm.png" alt="semantic layout examples" width="800" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Semantic UI React documentation and support
&lt;/h2&gt;

&lt;p&gt;Semantic UI React provides thorough documentation. Most documentation of components includes code to try the component, &lt;a href="https://codesandbox.io/s/remx6?module=/example.js" rel="noopener noreferrer"&gt;codesandbox&lt;/a&gt;, and live examples. Within the &lt;a href="https://react.semantic-ui.com/elements/button/" rel="noopener noreferrer"&gt;Buttons component&lt;/a&gt; alone, there are 36 different button variations from a static button to floating groups of buttons — all come with code to copy/paste.&lt;/p&gt;




&lt;h1&gt;
  
  
  Retool
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; there is bias at play in this overview.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Retool is a platform for building internal applications. It comes with a complete set of powerful 50+ components out of the box. Because Retool is a platform and not just a component library, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;compose applications with &lt;a href="https://retool.com/components#Button" rel="noopener noreferrer"&gt;50+ drag-and-drop components&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;connect to &lt;a href="https://retool.com/integrations/" rel="noopener noreferrer"&gt;any data source or API&lt;/a&gt; to work with all of your data sources seamlessly in one app&lt;/li&gt;
&lt;li&gt;customize how your app works by &lt;a href="https://docs.retool.com/docs/javascript-overview" rel="noopener noreferrer"&gt;writing JavaScript&lt;/a&gt; anywhere inside of Retool&lt;/li&gt;
&lt;/ul&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%2Fg9nvwv9qtyti000cktgs.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%2Fg9nvwv9qtyti000cktgs.png" alt="retool platform" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Retool also lets you deploy applications as a cloud-hosted solution or on-prem and comes with enterprise requirements for security, reliability, and permissioning built-in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Retool components
&lt;/h2&gt;

&lt;p&gt;Out of the box, Retool comes with 50+ components to build internal applications. We also offer custom components if you need to load other interfaces into your applications dynamically. &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%2F4schl4feoudv6k0z7nxe.gif" 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%2F4schl4feoudv6k0z7nxe.gif" alt="retool components demo" width="800" height="566"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Retool components are grouped in the following categories:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Commonly used&lt;/strong&gt; — as the name implies, these are core components like buttons, tables, text, dropdowns, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inputs&lt;/strong&gt; — components that allow for user input and interactions. These include components like a checkbox, date range picker, rich text editor, slider, etc. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data&lt;/strong&gt; — these are components that aggregate data like a calendar, JSON explorer, and query builder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Charts&lt;/strong&gt; — build &lt;a href="https://retool.com/blog/introducing-our-new-chart-component/" rel="noopener noreferrer"&gt;interactive charts&lt;/a&gt; in your Retool apps while also providing the full flexibility and customizability of the Plotly.js charting library for more advanced use cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Display&lt;/strong&gt; — visual components that provide users with context such as a progress bar, alerts, timers, and video viewers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Retool themes and theming
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Style editors&lt;/strong&gt; — Style editors are available across all Retool plans and allow you to customize your Retool components within the Retool UI by editing the style properties (e.g., color, border-radius) of any component.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Themes&lt;/strong&gt; — Themes are available on the &lt;a href="https://retool.com/pricing/" rel="noopener noreferrer"&gt;Retool Pro and Enterprise plans&lt;/a&gt; and allow you to apply style customizations across any of your applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Custom CSS&lt;/strong&gt; — When inspector styles and themes don’t cover your needs, you can leverage CSS directly in Retool. Custom CSS styles can be applied across all applications within your org settings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Templates&lt;/strong&gt; — We also offer &lt;a href="https://retool.com/templates/" rel="noopener noreferrer"&gt;ready-made templates&lt;/a&gt; as a quick starting point for building internal tools from real-world use cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Retool documentation and support
&lt;/h2&gt;

&lt;p&gt;Compared to React components libraries, Retool offers far more extensive support and support. If answers can’t be found in Retool documentation, customers can turn to the following support channels:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Community forum&lt;/strong&gt; — &lt;a href="https://community.retool.com/" rel="noopener noreferrer"&gt;Retool’s Discourse forum&lt;/a&gt; is the best place to &lt;a href="https://community.retool.com/c/how-do-i/10" rel="noopener noreferrer"&gt;get tactical product help&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Power users Slack&lt;/strong&gt; — If you’re a Retool Power User, you can &lt;a href="https://retool.com/community/#power-users-slack" rel="noopener noreferrer"&gt;request access&lt;/a&gt; to our sort-of-exclusive Slack group for our most engaged developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reschool&lt;/strong&gt; — a &lt;a href="https://docs.retool.com/docs/reschool" rel="noopener noreferrer"&gt;learning course&lt;/a&gt; for getting started with Retool from scratch that includes basic SQL and JavaScript training. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Intercom&lt;/strong&gt; — use the Intercom chat within the Retool platform to for live support&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Email&lt;/strong&gt; — send an email &lt;a href="mailto:support@retool.com"&gt;support@retool.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enterprise support&lt;/strong&gt; — Retool customers on enterprise plans get access to a dedicated support representative.&lt;/p&gt;




&lt;h1&gt;
  
  
  Honorable mentions
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Fluent React UI
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;GitHub Stars&lt;/th&gt;
&lt;th&gt;Weekly NPM Downloads&lt;/th&gt;
&lt;th&gt;Stack Overflow Questions&lt;/th&gt;
&lt;th&gt;Origin&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/microsoft/fluent-ui-react" rel="noopener noreferrer"&gt;397&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://www.npmjs.com/package/@fluentui/react" rel="noopener noreferrer"&gt;44k&lt;/a&gt; (May 2021)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://stackoverflow.com/questions/tagged/fluent" rel="noopener noreferrer"&gt;1k&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Microsoft&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Fluent React UI is Microsoft’s design system adapted for React. It’s built on top of the Fluent UI design language, component specifications, and utilities. Fluent is the UI framework used in the latest versions of Microsoft applications like Powerpoint, Word, Outlook, etc.&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%2F4t8n6htz58oasbb3t0tx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4t8n6htz58oasbb3t0tx.jpg" alt="Fluent React UI" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Components&lt;/strong&gt; — Microsoft uses the name “&lt;a href="https://developer.microsoft.com/en-us/fluentui#/controls/web" rel="noopener noreferrer"&gt;Controls&lt;/a&gt;” instead of components. Either way, Fluent React UI offers a wide range of controls/components that are built with the React framework.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Theming&lt;/strong&gt; — Fluent React UI comes with a &lt;a href="https://fluentuipr.z22.web.core.windows.net/heads/master/theming-designer/index.html" rel="noopener noreferrer"&gt;theme designer&lt;/a&gt;, &lt;a href="https://github.com/microsoft/fluentui/wiki/Component-Styling" rel="noopener noreferrer"&gt;component styling guide&lt;/a&gt;, and a &lt;a href="https://github.com/microsoft/fluentui/wiki/Theming" rel="noopener noreferrer"&gt;theming deep dive guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Documentation and resources&lt;/strong&gt; — Microsoft and Fluent contributors maintain a &lt;a href="https://github.com/microsoft/fluentui/wiki" rel="noopener noreferrer"&gt;Fluent React UI wiki&lt;/a&gt; for advanced usage, building, and contributing to Fluent UI React. They also offer a &lt;a href="https://microsoft.github.io/frontend-bootcamp/" rel="noopener noreferrer"&gt;frontend bootcamp learning course&lt;/a&gt; which includes exercises with Fluent UI React.&lt;/p&gt;




&lt;h2&gt;
  
  
  Onsen UI
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;GitHub Stars&lt;/th&gt;
&lt;th&gt;Weekly NPM Downloads&lt;/th&gt;
&lt;th&gt;Stack Overflow Questions&lt;/th&gt;
&lt;th&gt;Origin&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href="https://github.com/OnsenUI/react-onsenui" rel="noopener noreferrer"&gt;130&lt;/a&gt; (React) &lt;a href="https://github.com/OnsenUI/OnsenUI" rel="noopener noreferrer"&gt;8.4k&lt;/a&gt; (original)&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://www.npmjs.com/package/react-onsenui" rel="noopener noreferrer"&gt;1.2k&lt;/a&gt; (May 2021)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://stackoverflow.com/questions/tagged/onsen-ui" rel="noopener noreferrer"&gt;1163&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Monaca&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Originally based on AngularJS with support for jQuery, Onsen UI offers an &lt;a href="https://onsen.io/react/" rel="noopener noreferrer"&gt;adapted framework for React&lt;/a&gt;. Onsen was developed by Monaca Software which specializes in mobile app development and is based out of Japan. Based on the mobile-first origin, the Onsen UI framework is well suited for building mobile apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Components&lt;/strong&gt; — Onsen UI comes with more than 100 components designed for mobile experiences.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F95pr5t81miuh29utgqc9.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%2F95pr5t81miuh29utgqc9.png" alt="onsen components" width="800" height="206"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Theming&lt;/strong&gt; — Onsen UI provides a &lt;a href="https://onsen.io/theme-roller/?customize" rel="noopener noreferrer"&gt;Theme Roller&lt;/a&gt; to customize themes for mobile platforms and styling, which can be downloaded and applied.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Documentation and resources&lt;/strong&gt; — Documentation for Onsen provides a &lt;a href="https://onsen.io/v2/guide/react/" rel="noopener noreferrer"&gt;getting started guide&lt;/a&gt; for React. Onsen UI also showcases several &lt;a href="https://onsen.io/samples/" rel="noopener noreferrer"&gt;samples to demo&lt;/a&gt; and a “&lt;a href="https://onsen.io/playground/" rel="noopener noreferrer"&gt;playground&lt;/a&gt;” to test your code and interactively learn the Onsen framework. There’s also a &lt;a href="https://community.onsen.io/" rel="noopener noreferrer"&gt;community forum&lt;/a&gt; to tap into help from others using Onsen.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2zu0n1q23uevko23o24j.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%2F2zu0n1q23uevko23o24j.png" alt="onsen samples" width="800" height="443"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Evergreen
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;GitHub Stars&lt;/th&gt;
&lt;th&gt;Weekly NPM Downloads&lt;/th&gt;
&lt;th&gt;Stack Overflow Questions&lt;/th&gt;
&lt;th&gt;Origin&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/segmentio/evergreen" rel="noopener noreferrer"&gt;10.8k&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://www.npmjs.com/package/evergreen-ui" rel="noopener noreferrer"&gt;7.2k&lt;/a&gt; (May 2021)&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;Segment&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://evergreen.segment.com/" rel="noopener noreferrer"&gt;Evergreen&lt;/a&gt; is a React UI Framework developed by Segment. It centers around a design system that was created for building “ambitious products” on the web.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyu82j3gnc4lsbgnidd8l.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%2Fyu82j3gnc4lsbgnidd8l.png" alt="segment evergreen" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Components&lt;/strong&gt; — Evergreen offers 30+ components built on top of a React UI Primitive. Evergreen also provides “patterns” which are common reusable combinations of components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Theming&lt;/strong&gt; — Evergreen ships with two themes: 1) A default theme that reflects Segment’s current brand, and 2) a classic theme from the first version of Evergreen. While there is no theme builder with Evergreen, it offers an extensible theming architecture to customize the look and feel of the components as needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Documentation and resources&lt;/strong&gt; — In addition to documentation, Segment has created an Evergreen Figma library available on &lt;a href="https://www.figma.com/@segment" rel="noopener noreferrer"&gt;Figma Community&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>react</category>
    </item>
    <item>
      <title>Finding the perfect React checkbox component</title>
      <dc:creator>kevbosaurus</dc:creator>
      <pubDate>Thu, 27 May 2021 04:59:02 +0000</pubDate>
      <link>https://forem.com/retool/finding-the-perfect-react-checkbox-component-4jlg</link>
      <guid>https://forem.com/retool/finding-the-perfect-react-checkbox-component-4jlg</guid>
      <description>&lt;p&gt;Many websites and applications use checkboxes as a critical way to help users select more than one option—whether they’re filling out a form, adding their preferences, or searching for the perfect product. &lt;/p&gt;

&lt;p&gt;If you’re using &lt;a href="https://reactjs.org/" rel="noopener noreferrer"&gt;React&lt;/a&gt;, you have a lot of options when it comes to building checkboxes into your application.&lt;/p&gt;

&lt;p&gt;You can build a React checkbox natively, but libraries like &lt;a href="https://getbootstrap.com/" rel="noopener noreferrer"&gt;Bootstrap&lt;/a&gt; and &lt;a href="https://material-ui.com/" rel="noopener noreferrer"&gt;Material-UI&lt;/a&gt; come with checkbox components that are easily implemented, and the excruciating pain of styling is already handled for the most part. In addition to these larger libraries, there are also several standalone components you can choose from.&lt;/p&gt;

&lt;p&gt;With all the possible options, it might take a while to research, identify, and evaluate which checkbox component might work better for a particular solution. Rather than sink all the time and effort into doing this painful research yourself, &lt;strong&gt;we’ve compiled several common checkbox use cases and helpful suggests for the React checkbox components that best fit the use case.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Simple checkboxes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Straightforward form requests &lt;br&gt;
&lt;strong&gt;Recommended Component:&lt;/strong&gt; DIY&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%2Fjo4ooajg2pn13ywaqlhf.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%2Fjo4ooajg2pn13ywaqlhf.png" alt="simple react checkboxes" width="500" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The native React checkbox component is a good choice when your application only has a few checkboxes and styling is not a priority. But once things get more complicated, you should definitely consider your options.&lt;/p&gt;

&lt;p&gt;It can be challenging to style the native React checkbox component (i.e., vanilla JavaScript) due to how many scenarios need to be taken into account. Does it need a disabled state? Does it need an error state? A success state? Can multiple boxes be checked at once? &lt;/p&gt;

&lt;p&gt;Not to mention, the native checkbox doesn’t respond well to CSS customization. This is such a problem that a common technique used to style native checkboxes is to &lt;a href="https://medium.com/@colebemis/building-a-checkbox-component-with-react-and-styled-components-8d3aa1d826dd" rel="noopener noreferrer"&gt;hide them&lt;/a&gt;, replace them with labels, and style the labels.&lt;/p&gt;

&lt;p&gt;Checkboxes can also have complicated presentation, error handling, and validation requirements. This could be a tree of checkboxes or requirements for one group of checkboxes be dependent on other values throughout the site.&lt;/p&gt;

&lt;p&gt;You also need to think about whether your checkbox component will be handled through React or the DOM. When there are complicated requirements like this, you are on your own managing that complexity and handling the UI states in a native component solution. &lt;/p&gt;

&lt;p&gt;Solving for these problems, especially if you need multiple checkboxes in an application, can result in having to write a massive amount of repetitive boilerplate code.&lt;/p&gt;

&lt;p&gt;Folks use Bootstrap and similar libraries because it makes their lives easier, and one of the primary ways these libraries do this is by providing an integrated, uniform system of components. &lt;/p&gt;

&lt;p&gt;If you’re using a library that includes a checkbox component, it’s a better choice than the native component because there will be less development lift in terms of styling and browser compatibility.&lt;/p&gt;

&lt;p&gt;It varies per library, but library checkbox components can alleviate many disadvantages of the native component. &lt;/p&gt;

&lt;p&gt;So, before choosing to use a standalone component, check your library’s documentation to make sure it doesn’t have the feature you’re looking for. In particular, library checkbox components are usually easier to style across browsers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trees of checkboxes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Multi-level configuration options&lt;br&gt;
&lt;strong&gt;Recommended Component:&lt;/strong&gt; &lt;a href="https://github.com/jakezatecky/react-checkbox-tree" rel="noopener noreferrer"&gt;react-checkbox-tree&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuydhfi349o7ctpx246wm.gif" 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%2Fuydhfi349o7ctpx246wm.gif" alt="trees react" width="270" height="212"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sometimes, a simple group of checkboxes will not suffice, and you need a multi-level tree of checkboxes. For example, you might need to have the user enable or disable a lot of configuration options. &lt;/p&gt;

&lt;p&gt;You could definitely implement a tree of React checkboxes yourself, but using the react-checkbox-tree component does a lot of the heavy lifting for you.&lt;/p&gt;

&lt;p&gt;One note, this component does require the use of the &lt;a href="https://www.npmjs.com/package/font-awesome" rel="noopener noreferrer"&gt;font-awesome library&lt;/a&gt;, which makes this solution the largest option (&lt;a href="https://bundlephobia.com/result?p=react-checkbox-tree@1.6.0" rel="noopener noreferrer"&gt;38.9kb&lt;/a&gt; minified for react-checkbox-tree and &lt;a href="https://bundlephobia.com/result?p=font-awesome@4.7.0" rel="noopener noreferrer"&gt;30.2kb&lt;/a&gt; minified for font-awesome) and therefore the slowest to load.&lt;/p&gt;

&lt;h2&gt;
  
  
  Groups of checkboxes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Simulating relational checkbox options&lt;br&gt;
&lt;strong&gt;Recommended Component:&lt;/strong&gt; &lt;a href="https://github.com/ziad-saab/react-checkbox-group" rel="noopener noreferrer"&gt;react-checkbox-group&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1pq3mzg8o9y3t44lequl.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%2F1pq3mzg8o9y3t44lequl.png" alt="group react checkboxes" width="584" height="212"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Usually, several checkboxes are logically grouped into one multiple-choice question, and you have to write some boilerplate code to make individual checkboxes appear related. &lt;/p&gt;

&lt;p&gt;For example, if you want the user to select fruits from one list and vegetables from another list, you have to present the checkboxes that way, validate the user’s selections, and then provide a way to obtain both results. The more of these checkbox groups you have, the more tedious it is to maintain the code and the longer it takes to download your application.&lt;/p&gt;

&lt;p&gt;It is fairly arbitrary to determine when application code becomes difficult to read or the application is loading too slowly, but using the react-checkbox-group component (&lt;a href="https://bundlephobia.com/result?p=react-checkbox-group@5.0.2" rel="noopener noreferrer"&gt;1.1kb&lt;/a&gt; minified) can help alleviate both of those problems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Indeterminate checkboxes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Non-boolean options&lt;br&gt;
&lt;strong&gt;Recommended Component:&lt;/strong&gt; &lt;a href="https://github.com/justredpaul/react-input-checkbox" rel="noopener noreferrer"&gt;react-input-checkbox&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgams7u6q6u2bowksavj0.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%2Fgams7u6q6u2bowksavj0.png" alt="indeterminate checkboxes" width="566" height="244"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A checkbox usually indicates a true or false situation, but sometimes, you want to allow no value to be selected at all for a checkbox; in other words, you need the checkbox to have a third indeterminate state.&lt;/p&gt;

&lt;p&gt;This situation might arise in nested checkboxes, where if all children checkboxes are checked, so is the parent, but if they are not all checked, the parent will remain in the indeterminate state.&lt;/p&gt;

&lt;p&gt;You also might want to force the user to explicitly choose a true or false option. If you’re using a framework, you should check to see if your framework’s checkbox already has an indeterminate status option. Otherwise, the react-input-checkbox component (&lt;a href="https://bundlephobia.com/result?p=react-input-checkbox@0.1.6" rel="noopener noreferrer"&gt;2.8kb&lt;/a&gt; minified) allows you to have an indeterminate option.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pretty checkboxes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Out of the ordinary, custom UIs&lt;br&gt;
&lt;strong&gt;Recommended Component:&lt;/strong&gt; &lt;a href="https://github.com/atomicpages/pretty-checkbox-react" rel="noopener noreferrer"&gt;pretty-checkbox-react&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffp06p8dgzbk23qxbj094.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%2Ffp06p8dgzbk23qxbj094.png" alt="pretty checkboxes react" width="674" height="119"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While the styling of a React checkbox is important, the main concern is usually providing a way for the user to select from multiple options. But if you’re especially concerned about the styling of your checkboxes or you’re looking for a checkbox-related feature not mentioned here, then pretty-checkbox-react (&lt;a href="https://bundlephobia.com/result?p=pretty-checkbox-react@3.1.0" rel="noopener noreferrer"&gt;5.5kb&lt;/a&gt; minified) might just be the component you are looking for.&lt;/p&gt;

&lt;p&gt;Some of the highlights for this component are radio buttons (single selections), display options (icons, scaling, sliders), property forwarding, and internationalization. You can also use hooks to abstract the presentation code from the logic code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing the right React checkbox depends on your needs
&lt;/h2&gt;

&lt;p&gt;You can build a React checkbox natively or use any of the myriad libraries where components are available in order to address different use cases, styling options, and browser compatibility. &lt;/p&gt;

&lt;p&gt;If you’re already using a JavaScript library, then your first move should be to check out what checkbox solution is already available to you. If it meets your needs, there’s no reason to weigh down your project with more packages.&lt;/p&gt;

&lt;p&gt;If you aren’t already using a library or your library doesn’t have a checkbox component, then you should check if the native checkbox component is enough for your needs. &lt;/p&gt;

&lt;p&gt;But if your use case requires many checkbox groups, trees of checkboxes, checkboxes with intermediate states, or significant styling, then using one of the standalone React checkbox components mentioned in this article is a good path to take.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best library for checkbox trees:&lt;/strong&gt; &lt;a href="https://github.com/jakezatecky/react-checkbox-tree" rel="noopener noreferrer"&gt;react-checkbox-tree&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Best library for styling checkboxes:&lt;/strong&gt; &lt;a href="https://github.com/atomicpages/pretty-checkbox-react" rel="noopener noreferrer"&gt;pretty-checkbox-react&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Best library for checkbox groups:&lt;/strong&gt; &lt;a href="https://github.com/ziad-saab/react-checkbox-group" rel="noopener noreferrer"&gt;react-checkbox-group&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Best all-around checkbox implementation:&lt;/strong&gt; &lt;a href="https://github.com/justredpaul/react-input-checkbox" rel="noopener noreferrer"&gt;react-input-checkbox&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
    </item>
    <item>
      <title>Best PostgreSQL GUIs in 2021</title>
      <dc:creator>kevbosaurus</dc:creator>
      <pubDate>Thu, 27 May 2021 04:27:46 +0000</pubDate>
      <link>https://forem.com/retool/best-postgresql-guis-in-2021-updated-2ef3</link>
      <guid>https://forem.com/retool/best-postgresql-guis-in-2021-updated-2ef3</guid>
      <description>&lt;p&gt;If you’re a modern web developer, chances are you’ve interacted with PostgreSQL (“Postgres” for short). It’s the &lt;a href="https://insights.stackoverflow.com/survey/2019#technology-_-databases" rel="noopener noreferrer"&gt;second most popular database&lt;/a&gt; among developers overall, and almost 70% say &lt;a href="https://insights.stackoverflow.com/survey/2019#technology-_-most-loved-dreaded-and-wanted-databases" rel="noopener noreferrer"&gt;they love working with it&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;PostgreSQL ships with a built-in CLI called psql, but nobody wants to write queries via the command line, even if you’re a veteran database administrator (DBA). This post will review the best PostgreSQL GUI tools available for querying, visualizing, and analyzing your Postgres data, as well as remotely accessing and navigating database servers.&lt;/p&gt;

&lt;h2&gt;
  
  
  1) pgAdmin
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.pgadmin.org/" rel="noopener noreferrer"&gt;PgAdmin&lt;/a&gt; is one of the most popular GUIs available for Postgres users. Database objects are immediately easy to find on a left hand menu. PgAdmin is on it’s fourth major version and supports all of PostgreSQL’s features while also being open-source.&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%2F46i7sx9nscqls96krdcd.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%2F46i7sx9nscqls96krdcd.png" alt="pg admin postgres gui" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strong Points&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PgAdmin’s greatest strength is that anybody can use it, anywhere. You can configure it to run on any cloud server and then access it from all of the major operating systems; Windows, Linux, and MacOS. &lt;/p&gt;

&lt;p&gt;PgAdmin runs as a web application, meaning it can be deployed on any server, including your computer. This is convenient if you’re running Postgres as a distributed database across multiple servers, as you can include PgAdmin on each. Admittedly, this is a feature more targeted at the Database Administrator (DBA) level than the Analyst or Engineer level, which involves more SQL than production database management.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Useful Shortcuts for your Editor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SQL Query Editors are where most Postgres users spend their time when manipulating data. PgAdmin’s SQL Editor provides an extensive list of useful &lt;a href="https://www.pgadmin.org/docs/pgadmin4/development/keyboard_shortcuts.html#sql-editors" rel="noopener noreferrer"&gt;shortcuts&lt;/a&gt; for quality of life improvements. They cover most of what you’d want to accomplish when writing queries that need maintenance friendly white space.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drawbacks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The main drawback of PgAdmin is installation barriers, especially for SQL developers who aren’t experts at the command line. Running a Postgres GUI as a web application from your terminal is something that newcomers should not be expected to figure out from the ground up. Managing multiple servers, databases, and the usage that comes with them, is definitely a more advanced terminal skillset.&lt;/p&gt;

&lt;h2&gt;
  
  
  2) Navicat
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Navicat is not as popular as PgAdmin but definitely comes with many of the features you would expect from software that makes talking to databases easier. Navicat is a paid tool and isn’t open-source, so it comes with many more features than the typical open-source tool. Unlike pgAdmin, for example, Navicat supports multiple SQL dialects, like MongoDB, MySQL, and PostgreSQL.&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%2Fh1ku80q99jf0av5vemyw.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%2Fh1ku80q99jf0av5vemyw.png" alt="navicat postgres" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strong Points&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Installation of Navicat requires no more than &lt;a href="https://www.navicat.com/en/navicat-monitor-installation-guide?ver=ubuntu" rel="noopener noreferrer"&gt;three lines&lt;/a&gt; of terminal commands in Ubuntu. It is easy to get up and running and has multiple features which make it a great choice for team collaboration. You can easily improve team productivity for the SQL your team writes via Navicat’s job scheduler.&lt;/p&gt;

&lt;p&gt;An add-on feature called Navicat Cloud also allows for Navicat SQL-specific team collaboration. This cloud friendliness extends to how easy it is to connect to data sources, like cloud databases, local flat files, or SSH tunneling and SSL.&lt;/p&gt;

&lt;p&gt;Navicat also comes with a powerful data modeling tool, which lets you visualize database structures and design schemas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Modern Aesthetic&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The aesthetic of Navicat’s GUI is slicker and more modern than pgAdmin’s. One of the neat things about Navicat is that it gives the user a choice of dark or light theme from the start (for those dark mode die hards out there). &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drawbacks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The main drawback to Navicat is the price. Cost may not be as much of an issue for a business looking to maximize their database users’ efficiency, but it could be frustrating if you’re an individual looking for a simpler query tool. The Navicat trial is only available for 14 days, and you have to buy licenses to be able to work with PostgreSQL or MySQL.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.navicat.com/en/store/navicat-for-postgresql#W" rel="noopener noreferrer"&gt;Navicat for PostgreSQL pricing consists&lt;/a&gt; of three tiers: non-commercial ($119), standard ($199), and enterprise ($299).\&lt;/p&gt;

&lt;h2&gt;
  
  
  3) DBeaver
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;DBeaver is open source like PgAdmin. However, it supports different types of databases like Navicat. DBeaver also has an enterprise version which provides advanced plugins for productivity. You can run DBeaver on all of the common Operating Systems; Windows, Linux, and MacOS, and import and export data from a variety of file formats, including CSV, HTML, XML, JSON, XLS, and XLSX. &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%2Frjuuzqm8vo9kdakxjkqc.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%2Frjuuzqm8vo9kdakxjkqc.png" alt="dbeaver" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strong Points&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At least for beginners, the best thing about DBeaver (at least in how it compares to the other GUIs so far) is that it runs as a desktop application. Database objects are easy to find on the left-hand side menu, and connecting to my local Postgres database was intuitive. No CLI experience is necessary for you to start.&lt;/p&gt;

&lt;p&gt;DBeaver, being open-source, has both free and paid options. An easy-to-sell concept: start with a deadline-less free DBeaver and transition into a paid tier as your organization’s needs scale.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drawbacks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;DBeaver’s main strength is also its main weakness: desktop applications only have as much power as your machine. To unlock the productivity levels you need in distributed development situations, you’ll have to turn to its enterprise option.&lt;/p&gt;

&lt;h2&gt;
  
  
  4) HeidiSQL
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.heidisql.com/" rel="noopener noreferrer"&gt;HeidiSQL&lt;/a&gt; is the only GUI on this list that was built exclusively for Windows. Just like DBeaver and Navicat, HeidiSQL can connect to different database drivers, like MySQL, Microsoft SQL Server, and PostgreSQL. HeidiSQL is free and open-source.&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%2Fjlmwfan6oxdgkvdqem8t.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%2Fjlmwfan6oxdgkvdqem8t.png" alt="HeidiSQL" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strong Points&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Like many Windows desktop applications, HeidiSQL is easy to download and install. If you’re siloed in Windows and your IT department is firm on that, HeidiSQL is a great option for connecting to a Postgres database.&lt;/p&gt;

&lt;p&gt;I was able to connect to a database with only a handful of credential fields. The console prints out the commands that the GUI executes in real time — much like a log. This visibility into the back end makes it a useful tool for debugging and troubleshooting database problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drawbacks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;HeidiSQL is pretty lightweight, so it’s missing some of the power features that advanced users might need, like a debugger, and has no cross-platform support. &lt;/p&gt;

&lt;h2&gt;
  
  
  5) Datagrip
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.jetbrains.com/datagrip/" rel="noopener noreferrer"&gt;Datagrip&lt;/a&gt; is a cross-platform integrated development environment (IDE) from the folks over at JetBrains (makers of IntelliJ, PyCharm, etc.). That means, you can use it on Macs, Windows, &lt;em&gt;and&lt;/em&gt; Linux. Unlike PgAdmin or Navicat, it is not a web application and can run as a local application like Spotify, VSCode, or RStudio.&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%2F2rf5ej75joyxv3200mt1.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%2F2rf5ej75joyxv3200mt1.png" alt="Datagrip GUI" width="800" height="564"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strong Points&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;DataGrip is intense, and it’s built from the ground up for power and customizability, ranging from dark themes to plugins for the many database systems and dialects available.&lt;/p&gt;

&lt;p&gt;As an Ubuntu (Linux) OS user, installing dependencies requires two bash CLI commands. Installing DataGrip only requires one. A single terminal with an open log remains open when I launch DataGrip. This terminal prints out log information about the app as it's running. You can run it in the background, but I like DataGrip’s balance between command-line usage and desktop application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drawbacks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With a range of plugins and up-to-date development, it’s no surprise that DataGrip is a paid tool at &lt;a href="https://www.jetbrains.com/datagrip/buy/#commercial?billing=yearly" rel="noopener noreferrer"&gt;$199 per year&lt;/a&gt;, per user, for the first year ($159.00 for the second year and $119.00 thereafter). Unlike pgAdmin or Navicat, DataGrip is not built to be an administrator web application that you can deploy on any cloud server. It’s made for querying.&lt;/p&gt;

&lt;p&gt;DataGrip is more than enough for many small businesses because a desktop application can help them solve most of their urgent database problems on one or a few computers. That said, another solution may be better for deploying and managing many Postgres DBs.&lt;/p&gt;

&lt;h2&gt;
  
  
  6) OmniDB
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://omnidb.org/" rel="noopener noreferrer"&gt;OmniDB&lt;/a&gt; is open-source software that works on Mac, Windows, and Linux. It’s focused on lightweight, no-frills, Postgres database management.&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%2F38nryojj3tm2qpktmhd8.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%2F38nryojj3tm2qpktmhd8.png" alt="OmniDB GUI" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strong Points&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Despite being open-source, OmniDB retains a lot of the SQL development features that a lot of the paid GUIs have, including features like SQL autocomplete, syntax highlighting, customizable charts for database metrics, and complete debugging tooling. Release notes show that OmniDB is most focused on Postgres.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drawbacks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;OmniDB is a lightweight tool, meaning it works great for one or a few SQL developers who need a free option for fundamental database work. It’s not, however, the best option for SQL developers who need a wide community of support, documentation, and at-scale deployment for their databases.&lt;/p&gt;

&lt;h2&gt;
  
  
  7) Beekeeper Studio
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.beekeeperstudio.io" rel="noopener noreferrer"&gt;Beekeeper Studio&lt;/a&gt; is a cross-platform open-source database management desktop app that works on Mac, Linux, and Windows. It supports a broad set of databases, including PostgreSQL, MySQL, SQLite, SQL Server, CockroachDB, and Redshift.&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%2F6tdlhc9fz8t4ilfcuj6w.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%2F6tdlhc9fz8t4ilfcuj6w.png" alt="Beekeeper Studio GUI" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strong Points&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Beekeeper Studio is focused on providing a smooth, fast, and easy-to-use interface, as opposed to a powerful, keyboard-shortcut-based nightmare. Typical tasks, like quickly updating a database table or running a SQL query, are super quick and simple.&lt;/p&gt;

&lt;p&gt;Another benefit: the Beekeeper Studio team is &lt;a href="https://www.beekeeperstudio.io/mission/" rel="noopener noreferrer"&gt;committed&lt;/a&gt; to staying open-source and never adding any user tracking or user monitoring. This commitment to privacy is a unique promise among the apps we’ve reviewed here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drawbacks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Beekeeper Studio doesn’t have as many bells and whistles as DBeaver or DataGrip, so if you’re a DBA or need sophisticated performance monitoring and profiling tools, you’re better off with something like DataGrip or DBeaver.&lt;/p&gt;

&lt;h2&gt;
  
  
  8) TablePlus
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tableplus.com/" rel="noopener noreferrer"&gt;TablePlus&lt;/a&gt; is a modern, native GUI tool for relational databases, such as MySQL, PostgreSQL, SQLite, and a few NoSQL databases like MongoDB. The TablePlus team is &lt;a href="https://github.com/TablePlus/TablePlus/issues" rel="noopener noreferrer"&gt;fairly active on GitHub&lt;/a&gt; — the only people behind the company being founder Henry Pham and Windows developer Raccoon Thai.&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%2Fresax0wkpxr9m34gix77.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%2Fresax0wkpxr9m34gix77.png" alt="TablePlus GUI" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strong Points&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;TablePlus is slick. It provides a customizable user interface (UI), meaning you don’t have to use Mojave at all. You can customize your configurations and their appearance as much as you like.&lt;/p&gt;

&lt;p&gt;That slickness, however, doesn’t belie an unsophisticated tool. A standout among many TablePlus features is its database security functionalities. When you use TablePlus, the connection between you and your database is end-to-end encrypted. That encryption means no data is sent to a TablePlus server. Additionally, TablePlus comes with built-in SSH and ensures your database credentials are stored securely in your device’s keychain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drawbacks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Despite the slickness of its UI, &lt;a href="https://www.capterra.com/p/170642/TablePlus/" rel="noopener noreferrer"&gt;some TablePlus users&lt;/a&gt; have pointed out how difficult it is to carve out a unified UX. An advantage to TablePlus is that it supports a wide range of databases, but a weakness of that approach is that the UX of all of them can suffer. Luckily, if you’re using it as a Postgres GUI, you’ll likely find the support you need. Users noted it suffered more when it came to things like Redis.&lt;/p&gt;

&lt;h2&gt;
  
  
  9) QueryPie
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.querypie.com/en" rel="noopener noreferrer"&gt;QueryPie&lt;/a&gt; is a cross-platform database IDE for Mac, Windows, and Linux. QueryPie promises to provide data access governance, from the cloud to on-premises to a variety of other platforms up to and including various SQL tools.&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%2Fsw9s5hjq45lx0y8jy7nm.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%2Fsw9s5hjq45lx0y8jy7nm.png" alt="QueryPie GUI" width="800" height="515"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Strong Points&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;QueryPie stands out for a few different features, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Auto-complete, giving you the ability to write your queries faster.&lt;/li&gt;
&lt;li&gt;Multi-query, multi-results, giving you an intuitive UI that makes query search and execution faster. You can also view multiple query results simultaneously.&lt;/li&gt;
&lt;li&gt;In-line data edit, giving you the ability to edit query results and table structure directly and easily.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;QueryPie also has some unique features when it comes to &lt;a href="https://www.querypie.com/blog/why-you-should-use-querypie-as-a-sql-client-for-snowflake/" rel="noopener noreferrer"&gt;Snowflake&lt;/a&gt;, so if you’re interested in expanding beyond Postgres, QueryPie is worth considering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drawbacks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The QueryPie team announced its MVP in 2019, and &lt;a href="https://www.indiehackers.com/product/querypie" rel="noopener noreferrer"&gt;updates have been sparse since&lt;/a&gt;. On their blog, a majority of recent posts date back to early 2020. Though the tool appears robust and useful, you may want to look elsewhere if you’re looking for a product that comes with more tutorials and up-to-date content.&lt;/p&gt;

&lt;h2&gt;
  
  
  10) SQLGate
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.sqlgate.com/" rel="noopener noreferrer"&gt;SQLGate&lt;/a&gt; is an integrated tool for database management and development. It promises to simplify how you construct and operate databases. It works with Oracle, SQL Server, MySQL, MariaDB, Tibero, DB2, and, of course, PostgreSQL. Together, &lt;a href="https://www.sqlgate.com/" rel="noopener noreferrer"&gt;according to SQLGate&lt;/a&gt;, these databases make up 83.2% of the database management system (DBMS) market, meaning using SQLGate will allow you to manage most of the DBMS tools out there.&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%2Fhbwvc9t8bao8s79593ah.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%2Fhbwvc9t8bao8s79593ah.png" alt="SQLGate GUI" width="800" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strong Points&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SQLGate has a few features that make it especially useful for database operators and analysts (though SQLGate also says it’s useful and accessible to developers, planners, and marketers, too).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Direct database connections, meaning you can connect without any complex Postgres client installations.&lt;/li&gt;
&lt;li&gt;Big data processing, giving you the ability to quickly export query results (even massive amounts of them) to Excel.&lt;/li&gt;
&lt;li&gt;Ultralight design, proven by the fact that the entire app and all of its functions are contained in less than 50MB.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Drawbacks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pricing, like Navicat, is SQLGate’s main drawback. SQLGate is the most expensive tool on this list, coming in at $300 for an indie developer license and about $500 (you have to contact them for specifics, so it could be higher) for an enterprise license. With the amount of open-source and cheaper options on this list, you should take a close look at the unique benefits this Postgres GUI option provides — or else look elsewhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  11) Retool
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://retool.com" rel="noopener noreferrer"&gt;Retool&lt;/a&gt; is a web-based tool for building internal tools and applications on top of your data. It connects to all modern databases (Postgres, MySQL, MongoDB, and even Oracle) and any REST API, as well as third-party APIs like Stripe and Twilio.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strong Points&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Retool connects to pretty much anything, which is useful if you’ve got more than one data source to work with. You can access and work with your Postgres DBs and your MongoDB collections in the same GUI, all from your browser. Retool also puts a GUI wrapper over write operations so you can avoid accidentally writing &lt;code&gt;DROP TABLE&lt;/code&gt; and getting yelled at.&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%2F01ufqvko7nn98zc82cxx.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%2F01ufqvko7nn98zc82cxx.png" alt="Retool PostgreSQL GUI" width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Retool saves engineering time, too, as proven by our customer stories. &lt;a href="https://retool.com/blog/avo-story/" rel="noopener noreferrer"&gt;Just look at Avo&lt;/a&gt;, which saved hundreds of hours of engineering time by implementing Retool.&lt;/p&gt;

&lt;p&gt;If you’re building tools on top of your data, Retool saves you time by providing the reusable components you need: tables, buttons, text inputs, and even custom components. Retool is cloud-hosted, so the GUI is accessible from any major operating system and any major browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drawbacks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Retool isn’t specifically focused on Postgres (like OmniDB), and is missing some advanced features like a query debugger.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing between these PostgreSQL GUIs
&lt;/h2&gt;

&lt;p&gt;Which is the best PostgreSQL GUI? The answer is: it depends. If you’re a single analyst looking to move into transparent and reproducible workflows with a single instance of a database, then DBeaver, Beekeeper Studio, DataGrip, or HeidiSQL are your best bets.&lt;/p&gt;

&lt;p&gt;If you are part of a larger team, however, then paying for Navicat may be the best option because of Navicat’s team collaboration focus.&lt;/p&gt;

&lt;p&gt;pgAdmin is the only PostgreSQL native GUI — plus, it’s totally free and scales easily across multiple servers. pgAdmin makes for a great choice for Postgres-focused DBAs. That said, a need for distributed servers usually only arises for skilled developers who can tackle this kind of configuration.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://retool.com" rel="noopener noreferrer"&gt;Retool&lt;/a&gt; shines when you’re working with multiple data sources. Modern developers rarely stay in one ecosystem like Postgres. As an organization grows, data workers have a growing list of stakeholders who need and want visibility for their metrics. Integrating multiple data sources with clicks and transforming with SQL is my preferred method of data manipulation because it minimizes developer time and maximizes domain-specific knowledge about your own data.&lt;/p&gt;

</description>
      <category>postgres</category>
    </item>
    <item>
      <title>The best MongoDB GUIs in 2021 (Updated)</title>
      <dc:creator>kevbosaurus</dc:creator>
      <pubDate>Sun, 23 May 2021 21:28:10 +0000</pubDate>
      <link>https://forem.com/retool/the-best-mongodb-guis-in-2021-updated-18j4</link>
      <guid>https://forem.com/retool/the-best-mongodb-guis-in-2021-updated-18j4</guid>
      <description>&lt;p&gt;&lt;a href="https://www.mongodb.com/" rel="noopener noreferrer"&gt;MongoDB&lt;/a&gt; is a NoSQL database that &lt;a href="https://insights.stackoverflow.com/survey/2019" rel="noopener noreferrer"&gt;more than a quarter of developers&lt;/a&gt; use in some capacity. What makes MongoDB and other NoSQL DBs attractive is flexibility; instead of being held to a rigid schema that scales vertically, you can evolve your schema as you grow and scale horizontally. MongoDB went public in 2017 and is worth more than $17 billion today.&lt;/p&gt;

&lt;p&gt;Document DBs work through nested key-value pairs instead of relational tables and columns. You’re going to need to parse data for your front-end eventually, and with document DBs, your data is already stored in the right format (give or take a .map or .reduce). Working with MongoDB through the command line isn’t exactly a cakewalk: This post will walk through the best MongoDB GUIs available for reading from and writing to your MongoDB clusters.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Mongo Shell Versus a MongoDB GUI
&lt;/h2&gt;

&lt;p&gt;The most basic way to access MongoDB is through &lt;a href="https://docs.mongodb.com/manual/mongo/" rel="noopener noreferrer"&gt;the &lt;code&gt;mongo&lt;/code&gt; shell&lt;/a&gt;; you can use it to query, update data, and complete admin tasks. &lt;/p&gt;

&lt;p&gt;It’s included in the MongoDB Server installation, so you’re all set as long as you’re comfortable with shell commands. Traversing objects and writing long queries in the command line can get annoying fast, so using the shell is usually best for quick peeks or admin tasks.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&amp;gt; use sample_analytics
    switched to db sample_analytics
&amp;gt; db.transactions.find({})
   {
   "_id": "5ca4bbc7a2dd94ee581625eb",
   "account_id": 50948,
   "limit": 10000,
   "products": [
     "InvestmentStock",
     "Commodity",
     "Brokerage"
   ],
   "transaction_info": [
     {
       "_id": "5ca4bbc1a2dd94ee58161e14",
       "account_id": 50948,
       "transaction_count": 6,
       "bucket_start_date": "1991-05-08T00:00:00.000Z",
       "bucket_end_date": "2015-10-13T00:00:00.000Z",
       "transactions": [
         {
           "date": "2015-10-08T00:00:00.000Z",
           "amount": 2311,
           "transaction_code": "sell",
           "symbol": "nflx",
           "price": "104.9154457571513461289214319549500942230224609375",
           "total": "242459.5951447767609039374292"
         },
         {
           "date": "1995-12-15T00:00:00.000Z",
           "amount": 4828,
           "transaction_code": "buy",
           "symbol": "aapl",
           "price": "1.102632231847472166208490307326428592205047607421875",
           "total": "5323.508415359595618454591204"
         },
         ...
       ]
     }
   ]
 },


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

&lt;/div&gt;

&lt;p&gt;It’s definitely possible to query your Mongo data exclusively from the command line, but if you’re working with even medium-sized datasets, GUIs offer a helpful alternative. &lt;/p&gt;

&lt;p&gt;MongoDB GUIs provide a user interface for your MongoDB database that gives you the ability to visualize data and edit queries without the use of shell commands (or with them — more on that later).&lt;/p&gt;

&lt;p&gt;The best MongoDB GUIs share similar features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A visual query editor&lt;/strong&gt;: Click or drag-and-drop elements to create queries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Query autocomplete&lt;/strong&gt;: Auto-suggestions for collections, fields, methods, and operators.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An aggregation framework&lt;/strong&gt;: Build queries out step-by-step, test along the way, then export into usable code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server and query analytics&lt;/strong&gt;: Insights into query and server performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Relational database to MongoDB data transfer&lt;/strong&gt;: Automate tedious and error-prone data transfers between database types.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Below is a list of the best MongoDB GUIs that 2021 has to offer. Each one has features that set it apart from the rest. The best one for you will depend on the scope of your project, the features you need, and your budget.&lt;/p&gt;

&lt;h2&gt;
  
  
  MongoDB Compass
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2F24kcok28nhrpt1gc5ly3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F24kcok28nhrpt1gc5ly3.jpg" alt="MongoDB Compass"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(Image courtesy of MongoDB Compass &lt;a href="https://github.com/mongodb-js/compass/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; Repository)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The creators of MongoDB (Mongo) have their own GUI called &lt;a href="https://www.mongodb.com/products/compass" rel="noopener noreferrer"&gt;Compass&lt;/a&gt;. It’s platform-agnostic and provides a graphical view of your database without the need to use a query language. MongoDB &lt;a href="https://www.mongodb.com/blog/post/compass-now-free-for-all" rel="noopener noreferrer"&gt;recently announced&lt;/a&gt; that the fully featured Compass GUI is completely free for everyone to use. Plus, the repo is now open-source on &lt;a href="https://github.com/mongodb-js/compass" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Some notable MongoDB Compass features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Schema visualization&lt;/strong&gt;: Compass visually displays your collections to help you better understand your datasets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CRUD visual editor&lt;/strong&gt;: Perform CRUD operations within the UI, no need to type queries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Geospatial data&lt;/strong&gt;: Create queries on map data using an intuitive UI with generated results in both graph and JSON document form.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validation&lt;/strong&gt;: Write JSON Schema validation rules using an editor that suggests BSON data types and validation keywords as you write&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Winning feature: Compass Plugins&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the best features of the MongoDB Compass GUI is that it has an API for adding plugins. The Compass community has built tons of cool plugins that can generate data for testing, inspect database users, and even check the shard status of the database. If there’s a feature you want but a plugin isn’t available yet, you can build your own using their &lt;a href="https://github.com/mongodb-js/compass-plugin" rel="noopener noreferrer"&gt;plugin template&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  TablePlus
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fjolfsctvbk6eum78dqyv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fjolfsctvbk6eum78dqyv.jpg" alt="Table Plus"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(Image courtesy of TablePlus)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tableplus.com/" rel="noopener noreferrer"&gt;TablePlus&lt;/a&gt; is a modern, native GUI tool for relational databases like MySQL, PostgreSQL, SQLite, and NoSQL databases like MongoDB. The TablePlus team consists of founder Henry Pham and Windows developer Raccoon Thai. The team, as well as the community, is also &lt;a href="https://github.com/TablePlus/TablePlus/issues" rel="noopener noreferrer"&gt;fairly active on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Some notable TablePlus features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Customizable UI&lt;/strong&gt;: There’s no need to turn to Mojave. With TablePlus, you can customize your configurations and their appearance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;In-line edits&lt;/strong&gt;: Edit data rows and table structure with a single click&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Winning feature: database security&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;TablePlus promises secure connections. The connection between you and your database is end-to-end encrypted –– no data is sent to a TablePlus server. Additionally, TablePlus ensures database credentials are stored securely in your device’s keychain and comes with built-in SSH. TablePlus also supports multi-step authentication and native libssh.&lt;/p&gt;

&lt;h2&gt;
  
  
  Robo 3T
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2F9rmm4pvyyrnrvjnu4rvl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F9rmm4pvyyrnrvjnu4rvl.png" alt="Robo 3T"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(Photo courtesy of Robo 3T &lt;a href="https://blog.robomongo.org/robo-3t-1-3/" rel="noopener noreferrer"&gt;blog&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://robomongo.org/" rel="noopener noreferrer"&gt;Robo 3T&lt;/a&gt; is an open-source, platform-agnostic, lightweight GUI for MongoDB. Formerly known as Robomongo, the company was bought in 2017 by 3T Software Labs and rebranded (Robo 3T also made it open source).&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/Studio3T/robomongo" rel="noopener noreferrer"&gt;project&lt;/a&gt; continues to be developed and has 8K stars on Github. In that vein, one of the best parts of using this GUI is the large community of users. Loads of tutorials, guides, and forums are available if you get stuck – just search.&lt;/p&gt;

&lt;p&gt;Some notable Robo 3T features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Code autocomplete&lt;/strong&gt;: While Robo 3T doesn’t have the autocompleting prowess of IntelliShell (see Studio 3T below), it does have a useful runtime autocomplete feature that works through an internal virtual machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fast UI&lt;/strong&gt;: All operations are done asynchronously, which means the application will never block you from working by freezing up.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Winning feature: embedded Mongodb shell&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Many of the MongoDB GUIs have &lt;em&gt;emulated&lt;/em&gt; &lt;code&gt;mongo&lt;/code&gt; shells, but this GUI has an &lt;em&gt;embedded&lt;/em&gt; &lt;code&gt;mongo&lt;/code&gt; shell. The embedded shell provides increased functionality over an emulated shell because emulators generally run on top of a provided API, whereas an embedded shell works directly with MongoDB.&lt;/p&gt;

&lt;h2&gt;
  
  
  Studio 3T
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2F0lfzpqkqk760uwyvrne5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F0lfzpqkqk760uwyvrne5.png" alt="Studio 3T"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(Photo courtesy of&lt;a href="https://studio3t.com/" rel="noopener noreferrer"&gt; Studio 3T&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://studio3t.com/" rel="noopener noreferrer"&gt;Studio 3T&lt;/a&gt;, formerly MongoChef, is the robust, professional version of Robo 3T owned by the same parent company, 3T Software Labs. Studio 3T is more than just a MongoDB GUI: it’s also an IDE and client. There is no free version of this software (unless you count Robo 3T), and the Core pricing level starts at $149/year per user. Even then, the Core level lacks features that pricier ones have, like SQL import/export, SQL queries, and the schema explorer.&lt;/p&gt;

&lt;p&gt;Some notable Studio 3T features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IntelliShell&lt;/strong&gt;: A smart, built-in &lt;code&gt;mongo&lt;/code&gt; shell with autocomplete that supports Javascript standard library functions, collection and field names, operators, and methods.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three ways to view data&lt;/strong&gt;: Once you have retrieved your data from the database, you can view it in three different formats:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Table View&lt;/strong&gt; formats the data into rows and columns.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tree View&lt;/strong&gt; formats the data into expandable hierarchies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JSON View&lt;/strong&gt; formats your data as JSON documents.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Code generation&lt;/strong&gt;: Export queries into Node.js, Python, Java, C#, PHP, Ruby, or the &lt;code&gt;mongo&lt;/code&gt; shell language.&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Data import&lt;/strong&gt;: Support for data imports from SQL databases, Oracle, and Sybase.&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Winning feature: four ways to query MongoDB and view data&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Out of all MongoDB GUIs, Studio 3T provides the most ways to query your database. You can query using:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;SQL queries&lt;/strong&gt;: Query MongoDB using the SQL query language (super cool!)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The &lt;code&gt;mongo&lt;/code&gt; shell&lt;/strong&gt;: Built-in IntelliShell technology that provides robust autocomplete features &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Aggregation Editor&lt;/strong&gt;: For building up complicated queries&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Visual Query Builder&lt;/strong&gt;: A drag-and-drop editor for building out queries (fun fact: can be used side-by-side with IntelliShell)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Given this volume of query methods (including less “technical” ones), Studio 3T is usable for anyone, no matter their familiarity with document-based databases, query languages, or command lines.&lt;/p&gt;

&lt;h2&gt;
  
  
  NoSQLBooster
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2Ftkok8z42q8s72qx1ik5u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Ftkok8z42q8s72qx1ik5u.png" alt="NoSQLBooster"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://nosqlbooster.com/" rel="noopener noreferrer"&gt;NoSQLBooster&lt;/a&gt; is a shell-centric GUI with a broad range of features that come with a paid license. The free tier is missing many of the features that make this GUI so great, like code completion and the visual query builder. NoSQLBooster does not work through a subscription model, so once you pay for a license, it’s yours forever (or until you want to update your version).&lt;/p&gt;

&lt;p&gt;Some notable NoSQLBooster features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IntelliSense&lt;/strong&gt;: Similar to Studio 3T’s IntelliShell, this language service appears as a tooltip while you type to suggest completions, methods, properties, variables, keywords, collection names, field names, and operators.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive samples&lt;/strong&gt;: In-app tutorials with prewritten queries and descriptions for learning how to use MongoDB.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A notable part of IntelliSense is the &lt;a href="https://nosqlbooster.com/codeEditing#TonsofSnippets" rel="noopener noreferrer"&gt;built-in snippets&lt;/a&gt; that offer code completion for operations like SQL to MongoDB data conversions and date ranges. You can also create your own snippets to save time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Winning feature: NPM packages in the MongoDB shell script&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The best feature of NoSQLBooster is the unique ability to add any NPM package into the MongoDB shell script. In fact, this GUI already comes with a number of useful and popular utility modules — like &lt;a href="https://lodash.com/" rel="noopener noreferrer"&gt;lodash&lt;/a&gt;, &lt;a href="https://momentjs.com/" rel="noopener noreferrer"&gt;moment&lt;/a&gt;, &lt;a href="http://bluebirdjs.com/docs/getting-started.html" rel="noopener noreferrer"&gt;bluebird&lt;/a&gt;, &lt;a href="https://www.google.com/search?client=firefox-b-1-d&amp;amp;q=ShellJS" rel="noopener noreferrer"&gt;ShellJS&lt;/a&gt;, and &lt;a href="https://mathjs.org/" rel="noopener noreferrer"&gt;math.js&lt;/a&gt; — in the global scope, ready to use. &lt;/p&gt;

&lt;h2&gt;
  
  
  HumongouS.io
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fpzrl0xgcvx97e44h0zq4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fpzrl0xgcvx97e44h0zq4.png" alt="HumongouS.io"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(Image courtesy of &lt;a href="https://www.humongous.io/" rel="noopener noreferrer"&gt;HumongouS.io&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.humongous.io/" rel="noopener noreferrer"&gt;HumongouS.io&lt;/a&gt; is a fully online MongoDB GUI. Since it’s online, HumongouS.io allows users to collaborate pretty seamlessly. Instead of using it as just a GUI, you can set it up as a more fully-featured internal admin tool. You then don’t need to share database credentials but can instead invite people to collaborate with you from the app. You can even access your data on a mobile device.&lt;/p&gt;

&lt;p&gt;Some notable features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Smart filters&lt;/strong&gt;: Create filters that you can use to display your collections as chips, which enables quick access&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Charts and dashboards&lt;/strong&gt;: Easily create charts and dashboards to track the metrics that are important to you&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Winning feature: widgets for customization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With HumongouS.io widgets, you can customize how your data displays and use those widgets to pull data from specific reference collections as needed. There are viewer, form, and layout widgets. Viewer widgets let you represent data in more meaningful ways than default string values.&lt;/p&gt;

&lt;p&gt;Form widgets are, according to HumongouS.io’s documentation, “&lt;a href="https://www.humongous.io/docs/widgets/form-widgets" rel="noopener noreferrer"&gt;the building blocks of forms&lt;/a&gt;.” They’re also customizable, meaning you can match them to any data type in your database. &lt;/p&gt;

&lt;p&gt;Layout widgets give you an alternative to the default table view, allowing you to display specialized data.&lt;/p&gt;

&lt;h2&gt;
  
  
  NoSQL Manager
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fzw1ay5io58qscsj6qq3m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fzw1ay5io58qscsj6qq3m.png" alt="NoSQL Manager"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(Image courtesy of &lt;a href="https://www.mongodbmanager.com/" rel="noopener noreferrer"&gt;NoSQL Manager&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.mongodbmanager.com/" rel="noopener noreferrer"&gt;NoSQL Manager&lt;/a&gt; is a shell-based MongoDB GUI tool. NoSQL Manager makes it easy to navigate, view, and edit documents, as well as set limits to maximize performance. You can manage, as the name implies, a lot of things, including collections and their indices as well as users, roles, and functions. It offers support for MongoDB Enterprise, MongoDB on Azure Cosmos DB, and Amazon DocumentDB.&lt;/p&gt;

&lt;p&gt;Some notable features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Wide support&lt;/strong&gt;: NoSQL Manager supports replica sets, sharded clusters connections, and standalone hosts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Document viewer&lt;/strong&gt;: The NoSQL Manager document viewer and editor offer Tree, Table, and JSON view modes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSH tunneling&lt;/strong&gt;: NoSQL Manager offers SSH tunneling for MongoDB connections&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Imports&lt;/strong&gt;: Import tables from your MySQL and SQL Server databases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Winning feature: autocompletion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NoSQL Manager comes with a MongoDB UI Shell that offers code autocompletion, syntax highlighting, and hints. Autocompletion takes much of the guesswork out of MongoDB management, helping you by autocompleting things like the collection names and methods in MongoDB Shell commands. As you type into the Shell, NoSQL Manager uses context clues to provide collection or method completion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonus: Retool
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2Flr840p2z55yx9qk6gueq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Flr840p2z55yx9qk6gueq.png" alt="Retool"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.retool.com/" rel="noopener noreferrer"&gt;Retool&lt;/a&gt; is a internal tools platform where you can build any GUI for MongoDB (see template). Retool makes it possible to drag-and-drop visual components to avoid boilerplate code and connect to anything with a REST or GraphQL API, meaning you can build a full-featured MongoDB GUI—and include any CRUD operations—in just a few hours. &lt;/p&gt;

&lt;p&gt;Some notable Retool features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Speed&lt;/strong&gt;: Connecting Retool to MongoDB takes just a few minutes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Schema inspection&lt;/strong&gt;: Visually view your data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Save and share queries&lt;/strong&gt;: Keep your queries handy for multiple uses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Turn your queries into useful tools&lt;/strong&gt;: go from query to table, search, and button without writing frontend code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Winning feature: Customizable front end for visualizing data&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can use Retool’s pre-built components—including tables, buttons, text inputs, and search bars—to not only view your data but do any CRUD operations you need to keep your business going. Once you connect your data sources, you design your frontend with their drag-and-drop component tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Best MongoDB GUI for Your Project
&lt;/h2&gt;

&lt;p&gt;As with any tool, the best MongoDB GUI for you depends on what you’re trying to accomplish. &lt;/p&gt;

&lt;p&gt;If you want to completely avoid the command line, MongoDB’s Compass is probably the most fully featured and natively integrated GUI out there. If you want a simple application that has a well-supported community, Robo 3T is the best GUI. If you’re familiar with SQL and want to keep writing queries in everyone’s favorite query language™, NoSQLBooster is going to feel slick. If you’re looking to easily share queries or turn your queries into tools, &lt;a href="http://www.retool.com/" rel="noopener noreferrer"&gt;check out Retool&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>mongodb</category>
    </item>
    <item>
      <title>The best React Native map libraries for time-strapped developers</title>
      <dc:creator>kevbosaurus</dc:creator>
      <pubDate>Wed, 21 Apr 2021 18:51:13 +0000</pubDate>
      <link>https://forem.com/retool/the-best-react-native-map-libraries-for-time-strapped-developers-cic</link>
      <guid>https://forem.com/retool/the-best-react-native-map-libraries-for-time-strapped-developers-cic</guid>
      <description>&lt;p&gt;When it comes to React Native map libraries, there are dozens to choose from. Rather than wasting your time combing through reviews, comparing library stats, and testing out sample code, we’ve created this simple guide to compile all of the top options in one place.&lt;/p&gt;

&lt;p&gt;After trying out a handful of libraries ourselves, we’ve narrowed the field down to the top five that we think shine above the rest:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/alex3165/react-mapbox-gl" rel="noopener noreferrer"&gt;react-mapbox-gl&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/visgl/react-map-gl" rel="noopener noreferrer"&gt;react-map-gl&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/brh55/react-native-open-maps" rel="noopener noreferrer"&gt;react-native-open-maps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/tiaanduplessis/react-native-google-maps-directions" rel="noopener noreferrer"&gt;react-native-google-maps-directions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/react-native-maps/react-native-maps" rel="noopener noreferrer"&gt;react-native-maps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, the most highly-rated pick of the bunch is &lt;a href="https://github.com/react-native-maps/react-native-maps" rel="noopener noreferrer"&gt;react-native-maps&lt;/a&gt;. In this guide, we’ll take you through the reasoning behind our selection by comparing &lt;strong&gt;react-native-maps&lt;/strong&gt; to the other finalist libraries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's start by exploring why react-native-maps scored so highly in this review.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The most popular React Native map library
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fxvqcofjl8mj2wksgv6zu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fxvqcofjl8mj2wksgv6zu.png" alt="React Native map library"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;npm trends: Comparing react-native-maps, react-mapbox-gl, react-map-gl, react-native-open-maps, and react-native-google-maps-directions&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A quick comparison of the libraries on &lt;a href="https://www.npmtrends.com/react-native-maps-vs-react-mapbox-gl-vs-react-map-gl-vs-react-native-open-maps-vs-react-native-google-maps-directions" rel="noopener noreferrer"&gt;npm trends&lt;/a&gt; will show that, at the time of writing, &lt;strong&gt;react-native-maps&lt;/strong&gt; was used more than any other library, based on the number of downloads. This is a good metric to base a decision on as it suggests that more developers find the library suitable for their projects.&lt;/p&gt;

&lt;p&gt;An average total of 115,000 downloads per week signals how many of the apps you see in app stores are derived from &lt;strong&gt;react-native-maps&lt;/strong&gt;. Of course, &lt;strong&gt;react-map-gl&lt;/strong&gt; also follows closely in the number of downloads, but we’re not making our argument based solely on how many developers use the library; we also care about stars. ⭐&lt;/p&gt;

&lt;p&gt;Reviews from developers are a more convincing metric to support decision-making, so we took a peek at the stars that each of our sample elements has attained on &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fih5kx6lglsjxx4g0z4if.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fih5kx6lglsjxx4g0z4if.png" alt="react reviews"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;npm trends: Statistics for chosen React Native map libraries&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;While &lt;strong&gt;react-native-maps&lt;/strong&gt; and &lt;strong&gt;react-map-gl&lt;/strong&gt; are neck-and-neck when it comes to downloads, &lt;strong&gt;react-native-maps&lt;/strong&gt; is starred two times more often than react-map-gl. From these results, you can quickly deduce that react-native-maps has more promoters. However, there's plenty more to consider than just popularity.&lt;/p&gt;

&lt;p&gt;Another statistic to watch is the last update timestamp. Over time, our pick has received regular updates. This reassures you that whatever app you create and merge with the library will get the latest themes, features, and enhancements, courtesy of the community's contributions. Having a modern app adds to how much users enjoy it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Documentation and support for React Native map libraries
&lt;/h2&gt;

&lt;p&gt;If you're going to commit your efforts to building apps with a library, it must have some good documentation. This way, you don't have to write emails, make calls, or even bother other developers on social media for support. Docs make it easy to get started building apps using guidelines from the creators of the tool and the community surrounding it.&lt;/p&gt;

&lt;p&gt;Communities are the most efficient way of troubleshooting any bottlenecks you might encounter when using libraries. As to why we enjoyed using &lt;strong&gt;react-native-maps&lt;/strong&gt;, we compared each of our five picks' communities. As expected, our preference trumps the rest with the following numbers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;react-native-maps&lt;/strong&gt; has 109,000 active users and 400 official contributors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;react-mapbox-gl&lt;/strong&gt; has 3,400 known users and 72 active contributors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;react-map-gl&lt;/strong&gt; has just over 11,500 users and is supported by 125 contributors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;react-native-open-maps&lt;/strong&gt; has less than a thousand (874) users and just 10 contributors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;react-native-google-maps-directions&lt;/strong&gt; has 775 users and nine contributors.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to get started with react-native-maps
&lt;/h2&gt;

&lt;p&gt;The comparison part of this teardown is over and done with. By now, you’ve heard our take on &lt;strong&gt;react-native-maps&lt;/strong&gt;. So, let's explore the various ways you can do that. Before you get started, make sure you're using the latest version of React Native available from its creators (Facebook).&lt;/p&gt;

&lt;p&gt;Installing &lt;strong&gt;react-native-maps&lt;/strong&gt; is as simple as things get with Node Package Manager. Simply run &lt;strong&gt;npm i react-native-maps&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When the installation process ends successfully, you can import components from the maps library into your existing projects. You can even have map views as the basis for your brand-new apps if that's what you're going for. If any of the code shared in this post fails to run on your instances, refer to the documentation for the alternative commands that match your environment variables.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;react-native-maps&lt;/strong&gt; library comes packed with default component APIs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;Marker /&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;MapView /&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;Polygon /&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;Overlay /&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;Heatmap /&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;Geojson /&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;Callout /&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;Circle /&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;Polyline /&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You'll find comprehensive documentation for each of these on the &lt;a href="https://github.com/react-native-maps/react-native-maps/tree/e67f773da8ce4a955fb2e4d69e6ca867c1ff95d8/docs" rel="noopener noreferrer"&gt;library's repo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The timely calling and placement of these components make for a customized implementation of the react-native-maps library. As the foundation for any map, the actual map should at least be rendered on screen. Let's go through the best way to get this done and set the canvas for customizations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Initiate MapView
&lt;/h3&gt;

&lt;p&gt;Now that we have the library at our mercy, we can import any of its APIs into our mobile app. To draw a map on the canvas of your app, run this command:&lt;/p&gt;

&lt;p&gt;import MapView, { PROVIDER_GOOGLE } from 'react-native-maps';&lt;/p&gt;

&lt;p&gt;This alone is not sufficient to get the map you require. You'll get a blank canvas unless you specify its source by filling out the &lt;strong&gt;Provider&lt;/strong&gt; property. Your options there would be "MapKit" or "GoogleMaps" for iOS and Android, respectively. Regardless of your choice here, you'll need an API access key from them. Get these from the &lt;a href="https://developers.google.com/maps/documentation/javascript/get-api-key" rel="noopener noreferrer"&gt;Google console&lt;/a&gt; and your &lt;a href="https://developer.apple.com/documentation/mapkitjs/creating_a_maps_identifier_and_a_private_key" rel="noopener noreferrer"&gt;Apple Developer ID&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can also specify the region first loaded when the map renders. For this, the region prop should be initiated. Here's how:&lt;br&gt;
&lt;a href="https://media.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%2Fgrw6bi0k5tq1eukyx2zr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fgrw6bi0k5tq1eukyx2zr.png" alt="mapview API"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Setting the initial region for the MapView API&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;With this set, your map should load with an initial location defined each time. Nothing fancy, but as promised, this gives you a good starting point to make awesome apps. This very React Native map library is what Airbnb uses to display prices using callouts and is a core feature of their system.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why you should consider react-native-maps library
&lt;/h3&gt;

&lt;p&gt;If you’re looking for a React Native map library for your app, consider starting your search with &lt;strong&gt;react-native-maps&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;This library is wildly popular among other developers, continually supported by contributors, and brimming with useful documentation. All of these factors together make for an easy development process, which really should sound like music to our ears.&lt;/p&gt;

</description>
      <category>react</category>
      <category>reactnative</category>
    </item>
    <item>
      <title>Using the react-native-push-notification library for your React Native notification needs</title>
      <dc:creator>kevbosaurus</dc:creator>
      <pubDate>Thu, 15 Apr 2021 16:02:37 +0000</pubDate>
      <link>https://forem.com/retool/using-the-react-native-push-notification-library-for-your-react-native-notification-needs-3a54</link>
      <guid>https://forem.com/retool/using-the-react-native-push-notification-library-for-your-react-native-notification-needs-3a54</guid>
      <description>&lt;p&gt;Notifications are critical to the mobile experience. Not only are notifications an important way to interact with your users, but they also serve to grow &lt;a href="https://airship.medium.com/7-mobile-engagement-statistics-that-show-push-notification-roi-f664409943a2" rel="noopener noreferrer"&gt;user engagement and retention&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;But notifications on a mobile platform can get complicated. In addition to “local” or “in app” notifications that you might want to display while the user is actively using your application, you might want to also use “push” notifications that bring users back when they aren’t using your application. &lt;/p&gt;

&lt;p&gt;To make matters more complicated, the mechanisms for providing push notifications on Android and iOS devices are different. If you have simple notification needs, a notification library may not be necessary. However, the more complicated your notification needs, the more useful a library becomes to help manage them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There are a number of React Native notification libraries to choose from, and this post will spotlight one of the leading options: react-native-push-notification.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why react-native-push-notification is a popular React Native notification library
&lt;/h2&gt;

&lt;p&gt;To start, the react-native-push-notification library supports local and push notifications, and uses a platform-independent approach to adding new features. This can be a huge advantage for developers who want speed to value now and flexibility for their future notification needs.&lt;/p&gt;

&lt;p&gt;Given that react-native-push-notification is the most popular library, you can expect more complete documentation and helpful resources as you explore how to solve problems with a quick web search. &lt;/p&gt;

&lt;p&gt;Although there are plenty of choices when it comes to third party React Native notification libraries (or even building your own), react-native-push-notification is a top option thanks to its popularity, support of both mobile platforms and notification types, many features, and a wealth of available documentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to consider before building notifications from scratch or choosing a library
&lt;/h2&gt;

&lt;p&gt;If you were sure you only needed a particular type of notification on a particular platform, it might make sense to create your own solution from scratch. Even in that case though, using a proven library allows you to save time by not replicating somebody else’s work. And since your application’s needs may change over time, it may be worth using a library that supports many notification types across many platforms, even if you don’t initially need to.&lt;/p&gt;

&lt;p&gt;The APIs for sending local and push notifications are different, and to make things spicier, the APIs for doing both for Android and iOS are different, too. In addition, there are multiple mechanisms for sending push notifications. Since a library already exists to deal with all of these issues, in most cases, it makes sense to use a library rather than create your own solution.&lt;/p&gt;

&lt;p&gt;When selecting which library to use to address a particular need, an easy way to start is to explore the most popular solution available. When a library is popular, that means many of those users already researched other possible solutions for the problem you’re trying to solve and decided on that library (the react-native-push-notification library, in this case). And the more popular a library is, the better it tends to be supported and the better its documentation.&lt;/p&gt;

&lt;p&gt;It can sometimes be difficult to gauge how popular something is, but React libraries are downloaded from official repositories, and the download statistics are publicly available. Developers can also explicitly rate a library via stars if they like it, and those statistics are also publicly available. &lt;/p&gt;

&lt;p&gt;Specifically, react-native-push-notification has over 5,600 stars, while the closest competitor (&lt;a href="https://github.com/wix/react-native-notifications" rel="noopener noreferrer"&gt;react-native-notifications&lt;/a&gt;) has less than half that number. The &lt;a href="https://www.npmtrends.com/react-native-push-notification-vs-react-native-onesignal-vs-react-native-root-toast-vs-react-native-notifications" rel="noopener noreferrer"&gt;raw report&lt;/a&gt; has more information, but as you can see from just the download statistics below, it is clear that react-native-push-notification is by far the most popular React Native notification library.&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%2F9k2naanw2rlkdrqa2am9.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%2F9k2naanw2rlkdrqa2am9.png" alt="npmtrends" width="800" height="408"&gt;&lt;/a&gt;&lt;br&gt;
Source: &lt;a href="https://www.npmtrends.com/react-native-push-notification-vs-react-native-onesignal-vs-react-native-root-toast-vs-react-native-notifications" rel="noopener noreferrer"&gt;npmtrends&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The main reason this library is so popular is that it presents a unified way to support both notification types on both platforms, but it is also chock full of features. These include scheduled notifications, as well as the ability to add custom badges and sounds.&lt;/p&gt;

&lt;p&gt;Even though using a library makes dealing with React Native notifications simpler, there is still a fair amount of complexity that needs to be worked through. This is mostly because the mechanisms for sending push notifications are profoundly different, which adds a thick layer of complexity to an already complex problem. &lt;/p&gt;

&lt;p&gt;On top of that, the way you register a device to receive notifications is vastly different between Android and iOS devices. So, documentation and support become even more important because of the inherent complexity that no library can completely eliminate. The &lt;a href="https://github.com/zo0r/react-native-push-notification" rel="noopener noreferrer"&gt;GitHub page&lt;/a&gt; for the react-native-push-notification library provides excellent support and documentation.&lt;/p&gt;

&lt;p&gt;You can also find more robust and helpful documentation to walk you through any issues you might encounter with the react-native-push-notification library. Some specific resources include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Main website&lt;/strong&gt;: &lt;a href="https://github.com/zo0r/react-native-push-notification" rel="noopener noreferrer"&gt;https://github.com/zo0r/react-native-push-notification&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Push notification tutorial&lt;/strong&gt;: &lt;a href="https://blog.logrocket.com/how-to-create-and-send-push-notifications-in-react-native/" rel="noopener noreferrer"&gt;https://blog.logrocket.com/how-to-create-and-send-push-notifications-in-react-native/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local notification tutorial&lt;/strong&gt;: &lt;a href="https://dev.to/adriantwarog/how-to-perform-local-push-notifications-on-react-native-without-remote-providers-like-firebase-or-onesignal-4034"&gt;https://dev.to/adriantwarog/how-to-perform-local-push-notifications-on-react-native-without-remote-providers-like-firebase-or-onesignal-4034&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Common mistakes&lt;/strong&gt;: &lt;a href="https://javascript.plainenglish.io/5-possible-reasons-your-notifications-are-not-working-react-native-d5c5a35ae3f" rel="noopener noreferrer"&gt;https://javascript.plainenglish.io/5-possible-reasons-your-notifications-are-not-working-react-native-d5c5a35ae3f&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;General support&lt;/strong&gt;: &lt;a href="https://stackoverflow.com/search?q=%22react-native-push-notification%22" rel="noopener noreferrer"&gt;https://stackoverflow.com/search?q=%22react-native-push-notification%22&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Honorable mentions for React Native notification libraries
&lt;/h2&gt;

&lt;p&gt;Even though react-notify-push-notification is the most popular option in most situations, there might be other situations where a different library may be a better fit. All of the options mentioned here also meet our criteria for being active and well supported.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/wix/react-native-notifications" rel="noopener noreferrer"&gt;react-native-notifications&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This library is a close runner-up to react-notify-push-notification but offers fewer common features, is larger, and will take longer to load. Few common features mean there will be more code in your application doing roughly the same thing based on what platform the application is running on.&lt;/p&gt;

&lt;p&gt;A significant advantage of this library is that it is sponsored by a well established company (&lt;a href="https://www.wix.com/" rel="noopener noreferrer"&gt;Wix&lt;/a&gt;), which means it is highly likely to continue to be updated and supported in the future. Another advantage is that it has more platform-specific features (Android vs. iOS), so if you want to take full advantage of the notification features available for one or both platforms, then you might want to use this library.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/OneSignal/react-native-onesignal" rel="noopener noreferrer"&gt;react-native-onesignal&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This library allows local notifications and push notifications via the &lt;a href="http://www.onesignal.com" rel="noopener noreferrer"&gt;OneSignal&lt;/a&gt; service. Because using OneSignal bypasses the normal push notification mechanisms, this library is much easier to use and much smaller. Using this library also provides for a unified notification system if you support more than one application or more than one mobile platform.&lt;/p&gt;

&lt;p&gt;The main disadvantage to using this library is that a OneSignal account is required, and while some limited functionality is free of charge, significant use of the service costs money. The pricing structure, &lt;a href="https://onesignal.com/pricing" rel="noopener noreferrer"&gt;available here&lt;/a&gt;, is fairly complicated, but the free option is really only useful for push notifications to mobile platforms. &lt;/p&gt;

&lt;p&gt;If you’re sure you will only ever need mobile push notifications or you are in a position to pay for the expected volume of notifications, then you might want to use this library.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/magicismight/react-native-root-toast" rel="noopener noreferrer"&gt;react-native-root-toast&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is a relatively easy-to-use library that allows only local “toast” notifications. Toast notifications are simple, allow no user interaction, and can be set to expire after being displayed for a certain amount of time.&lt;/p&gt;

&lt;p&gt;If you are sure you only need local notifications, then this library may be a better choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  It’s time to stop worrying—start using the react-native-push-notification library today
&lt;/h2&gt;

&lt;p&gt;Notifications, and especially push notifications, can be a critical and differentiating part of your mobile app experience. There are some &lt;a href="https://www.braze.com/blog/push-notification-best-practices/" rel="noopener noreferrer"&gt;best practices&lt;/a&gt; to follow, but the main point is that the best notifications are timely, personal, and actionable.&lt;/p&gt;

&lt;p&gt;When done properly, notifications can &lt;a href="https://www.webiotic.com/benefits-of-push-notifications/" rel="noopener noreferrer"&gt;increase user satisfaction and retention&lt;/a&gt;, so it is definitely an advantage to implement notifications in your application. Unfortunately, React Native notifications are difficult and usually require you to use a library. &lt;/p&gt;

&lt;p&gt;For most situations, the library you want to use is react-native-push-notification. It supports both local and push notifications, both major platforms, is free to use, has many features, and is well-supported and documented.&lt;/p&gt;

</description>
      <category>react</category>
      <category>reactnative</category>
    </item>
    <item>
      <title>2021 Internal Tools Developer Survey Results</title>
      <dc:creator>kevbosaurus</dc:creator>
      <pubDate>Wed, 17 Mar 2021 23:25:49 +0000</pubDate>
      <link>https://forem.com/retool/2021-internal-tools-developer-survey-results-4pke</link>
      <guid>https://forem.com/retool/2021-internal-tools-developer-survey-results-4pke</guid>
      <description>&lt;p&gt;During my time leading growth marketing Segment, I remember a handful of engineers spending a few months building a customer dashboard to provide our sales, success, and marketing teams with visibility into product usage, billing, engagement, etc.&lt;/p&gt;

&lt;p&gt;This dashboard vastly improved the efficiency of our go-to-market side of the business and was also beautifully designed.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A LOT&lt;/em&gt; of work went into shipping just this one of many internal tools we used at Segment. And that type of work is often unnoticed by the public.&lt;/p&gt;

&lt;p&gt;To shed some light (and recognition) on the engineering effort that goes into building internal tools, we (Retool) asked more than 650 developers.&lt;/p&gt;

&lt;p&gt;Here are the summarized results:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Developers spend more than 30% of their time building internal applications&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That number jumps to 45% for companies with 5000+ employees. And on top of that, 4 out of 5 teams plan to keep or increase this level of investment over the next 12 months.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Why are internal tools and apps so important? And why do developers spend so much time on them?&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;We surveyed 650 developers and builders (&lt;a href="https://try.retool.com/hubfs/The-State-of-Internal-Tools-2021.pdf" rel="noopener noreferrer"&gt;see full PDF report here&lt;/a&gt;) and they had one clear goal in mind: &lt;strong&gt;making teams across the business more productive.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The insights in this post were gathered from a public survey of 650 developers and technical leaders in Feb-Mar 2021. Check out our PDF report for a deeper breakdown of respondents by industry, country, and role.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  The case for internal tools
&lt;/h3&gt;

&lt;p&gt;Great customer experiences are often backed by a lot of hard back office work. What might appear as effortless student loans, corporate cards, or distanced learning frequently includes a lot of manual tasks and repetitive operations to get just right.&lt;/p&gt;

&lt;p&gt;Companies build internal applications, also known as internal tools or back office apps, to give every team the tooling they need—from static dashboards to weekly scripts—to keep the business moving. At their best, internal apps help teams work the way they want. At their worst, internal apps consume more resources than they hoped to save. In either case, developers are spending a lot of time on internal apps.&lt;br&gt;
&lt;a href="https://media.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%2F02ckqv5gfgiglebxvbts.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F02ckqv5gfgiglebxvbts.png" alt="percent of time on internal tools"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  COVID increased developer time spent on internal tools
&lt;/h3&gt;

&lt;p&gt;As COVID-19 forced developers to re-evaluate their most important priorities, &lt;strong&gt;87% of developers increased or maintained their time spent&lt;/strong&gt; on internal apps in response to the pandemic.&lt;/p&gt;

&lt;p&gt;And it’s not strictly developer time being invested. More than &lt;strong&gt;57% of companies reported at least one full-time employee dedicated to internal tools&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media.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%2F7oeuzwbbjcyzlge2cbtj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F7oeuzwbbjcyzlge2cbtj.png" alt="time spent on internal tools"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most of that headcount (42%) ends up being engineers, with some operations, data, product, and design folks, too. As companies grow, that overall investment in internal tools also grows. &lt;strong&gt;77% of companies with 500+ employees have dedicated teams for building and maintaining internal apps&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;From an industry perspective, companies in financial services are the most likely to invest fully in internal apps—&lt;strong&gt;2 out of 3 financial services companies reported a dedicated headcount to internal tools&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media.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%2Fxn8t20bwjyjfxlvpi0vq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fxn8t20bwjyjfxlvpi0vq.png" alt="full time employees"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Working in finance often includes sensitive financial data and rigorous manual processes, a recipe that can lead these companies to prefer internal apps over pre-built SaaS (especially in the cloud) for better control over data and workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  What exactly are they building and why?
&lt;/h3&gt;

&lt;p&gt;Developers build internal apps for both technical and non-technical teams, and most of these apps help manage, edit, share, or use the data most relevant to their function—i.e. CRUD on top of your data sources.&lt;br&gt;
&lt;a href="https://media.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%2Fakymtwslle5wu3k81xy4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fakymtwslle5wu3k81xy4.png" alt="types of internal tools"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And these internal apps are being created to support several teams. Customer support might need a refund dashboard or an admin panel to update user records in their database. Sales might need a custom CRM for data entry. Engineering might need a PR approval queue connected to GitHub.&lt;br&gt;
&lt;a href="https://media.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%2Fryl9r3s9062v6gb8a5xw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fryl9r3s9062v6gb8a5xw.png" alt="end users of internal tools"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In any case, developers are building a lot of internal apps and, it turns out, they are servicing a large portion of their colleagues. &lt;strong&gt;For companies with &amp;gt;10 employees, 1 in 3 employees are using internal apps a developer has built&lt;/strong&gt;. That’s super impactful!&lt;/p&gt;

&lt;p&gt;That high usage bar means that it’s more important than ever to be able to measure how these apps are performing, and what return on investment they’re getting. Our survey shows that when it comes to measuring ROI, developers care most about improving employee productivity (54%), reducing business costs (33%), and increasing employee satisfaction (28%).&lt;/p&gt;

&lt;p&gt;All together, these ROI metrics suggest developers want to create leverage across teams. But the top challenges they report—time, impact, ownership—reflect the struggle to find balance. Internal apps need to solve big problems across the company without weighing down the developers who build and maintain them.&lt;br&gt;
&lt;a href="https://media.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%2Fek3qzw1cj36y9g1jklmj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fek3qzw1cj36y9g1jklmj.png" alt="internal tool challenges"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The technology choices behind internal apps
&lt;/h3&gt;

&lt;p&gt;No matter the size of the company or the industry, &lt;strong&gt;2 out of 3 developers default to building from scratch&lt;/strong&gt;, as opposed to using a spreadsheet or a SaaS tool.&lt;br&gt;
&lt;a href="https://media.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%2Fbvfha4ow5dv488m4qeml.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fbvfha4ow5dv488m4qeml.png" alt="building from scratch"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While rolling your own apps (React, Django, etc.) gives developers flexibility and complete control, it’s the most time consuming and resource intensive (obviously). And given that &lt;strong&gt;55% of developers struggle to find the time&lt;/strong&gt; to build internal apps in the first place, it’s no surprise that custom-built tooling is not the most loved option available.&lt;br&gt;
&lt;a href="https://media.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%2Foqm5403r1yzozk8hid43.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Foqm5403r1yzozk8hid43.png" alt="time for building internal tools"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is where low and no-code apps come in. These platforms can give developers the flexibility of something home-grown, but without the setup and infrastructure costs that take time and effort. Developers who use low/no code platforms report being more satisfied, successful, and loyal when compared to developers who chose any other technology option for building internal apps.&lt;/p&gt;

&lt;p&gt;And while only 38% of developers surveyed actually use low/no code, the &lt;strong&gt;large majority (88%) of those that built internal apps using low/no code plan to keep building this way in the future&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media.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%2F45a96239oiluoyjjf603.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F45a96239oiluoyjjf603.png" alt="developer experience"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Internal apps are deeply connected
&lt;/h3&gt;

&lt;p&gt;Developers are connecting internal apps to all kinds of data sources—&lt;strong&gt;75% are connected to internal databases&lt;/strong&gt;, 67% are connected to internal APIs, and roughly half are connected to 3rd party apps (e.g. Salesforce, HubSpot, Zendesk).&lt;br&gt;
&lt;a href="https://media.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%2Fizmsvuthwixhpleeyrbe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fizmsvuthwixhpleeyrbe.png" alt="internal tool extensibility"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This deep integration across a variety of data sources is one of the main benefits of internal apps. By helping teams design how data comes together, developers are helping each team break from tool-centric approaches to actually work the way they want to work.&lt;/p&gt;

&lt;p&gt;And as developers at every company continue to build and maintain more and more for internal apps, only time will tell what new technology preferences—and challenges—arise.&lt;/p&gt;




&lt;p&gt;If you’re interested in seeing a more detailed breakdown of trends and technology preferences, &lt;a href="https://try.retool.com/hubfs/The-State-of-Internal-Tools-2021.pdf" rel="noopener noreferrer"&gt;get the full report here&lt;/a&gt;. And, if you're interested in building internal tools, &lt;a href="https://retool.com" rel="noopener noreferrer"&gt;checkout Retool here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>news</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
