<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Baserow</title>
    <description>The latest articles on DEV Community by Baserow (@baserow_io).</description>
    <link>https://dev.to/baserow_io</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%2F1015012%2Fcf57d790-e8e0-4198-937a-372e8d8ca120.png</url>
      <title>DEV Community: Baserow</title>
      <link>https://dev.to/baserow_io</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/baserow_io"/>
    <language>en</language>
    <item>
      <title>Baserow 1.32: Dashboards, enhanced Airtable import, SSO for Application Builder, and more - Open Source Airtable Alternative</title>
      <dc:creator>Baserow</dc:creator>
      <pubDate>Wed, 19 Mar 2025 13:19:33 +0000</pubDate>
      <link>https://dev.to/baserow/baserow-132-dashboards-enhanced-airtable-import-sso-for-application-builder-and-more-open-3k1a</link>
      <guid>https://dev.to/baserow/baserow-132-dashboards-enhanced-airtable-import-sso-for-application-builder-and-more-open-3k1a</guid>
      <description>&lt;p&gt;We're excited to announce one of our biggest updates yet! In this release, we're introducing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dashboards (Beta): Create custom dashboards with summary and bar chart widgets&lt;/li&gt;
&lt;li&gt;Enhanced Airtable Import (out of beta): Seamlessly migrate your entire workspace while preserving views and settings&lt;/li&gt;
&lt;li&gt;SSO for Application Builder: Simplified access management for enterprise users&lt;/li&gt;
&lt;li&gt;Application Builder Updates: New Menu element and pre-designed theme templates&lt;/li&gt;
&lt;li&gt;Grid View Media Export: Easy file and image downloads from your tables&lt;/li&gt;
&lt;li&gt;Row Merging on Import: Update existing records with imported data when matches are found&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plus many more improvements to performance, collaboration features, and user experience!&lt;/p&gt;

&lt;p&gt;More information at: &lt;a href="https://baserow.io/blog/baserow-1-32-release-notes" rel="noopener noreferrer"&gt;https://baserow.io/blog/baserow-1-32-release-notes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Do you have ideas for how to make Baserow even better? Most features come directly from community feedback. Drop us a note at the forum or tweet us to share your thoughts.&lt;/p&gt;

&lt;p&gt;Try out Baserow 1.32: &lt;a href="https://baserow.io" rel="noopener noreferrer"&gt;https://baserow.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitLab repository: &lt;a href="https://gitlab.com/baserow/baserow" rel="noopener noreferrer"&gt;https://gitlab.com/baserow/baserow&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Our community: &lt;a href="https://community.baserow.io/" rel="noopener noreferrer"&gt;https://community.baserow.io/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>productivity</category>
      <category>database</category>
      <category>news</category>
    </item>
    <item>
      <title>Baserow Developer Challenge</title>
      <dc:creator>Baserow</dc:creator>
      <pubDate>Fri, 16 Feb 2024 20:58:36 +0000</pubDate>
      <link>https://dev.to/baserow_io/baserow-developer-challenge-a58</link>
      <guid>https://dev.to/baserow_io/baserow-developer-challenge-a58</guid>
      <description>&lt;p&gt;We’re launching the first-ever Baserow Challenge! The challenge is to create a new Baserow app that increases productivity while using the Baserow API. This is a great opportunity to showcase your development skills, creativity, and have fun while building with Baserow. Build it, and you could win a &lt;a href="https://www.playstation.com/es-es/ps5/"&gt;Sony PlayStation 5!&lt;/a&gt; 🤯&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenge details
&lt;/h2&gt;

&lt;p&gt;You have 17 days to create a new application using Baserow as a backend. The challenge starts at 09:00 am CET on Thursday, February 22nd, 2024.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here are the guidelines:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Submit your work by 11:59 pm CET on Sunday, March 10th, 2024.&lt;/li&gt;
&lt;li&gt;Develop anything you want—a project, app, tool, extension, workflow, integration, or plugin—as long as it’s created around the Baserow API (Baserow is used as the backend), and makes some type of workflow more productive.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prizes
&lt;/h2&gt;

&lt;p&gt;There are three categories for which prizes will be awarded:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1st place: Sony PlayStation 5 and a Baserow swag box&lt;/li&gt;
&lt;li&gt;2nd place: $100 gift card&lt;/li&gt;
&lt;li&gt;3rd place: $100 gift card&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Submission
&lt;/h2&gt;

&lt;p&gt;To submit your project, please &lt;a href="https://baserow.io/form/UUxoQm4wtrghLLLuK5ilxt3jmsCgDLLg4XxMy9Eg9bY"&gt;fill out this form&lt;/a&gt; by 11:59 pm CET on Sunday, March 10th, 2024. All submission materials must be in English.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to submit:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;App built with Baserow (URL to your app and documentation)&lt;/li&gt;
&lt;li&gt;Link to a repository&lt;/li&gt;
&lt;li&gt;Text description explaining the features and functionality of your app&lt;/li&gt;
&lt;li&gt;Screenshot demonstrating the app's capabilities&lt;/li&gt;
&lt;li&gt;2-3 minute demo video (optional)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Guidelines
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;You must use Baserow as a backend.&lt;/li&gt;
&lt;li&gt;You must publish the source code of your application.&lt;/li&gt;
&lt;li&gt;You should create a working software application (it does not have to be fully completed, but it should be an app that can be launched).&lt;/li&gt;
&lt;li&gt;Your project should be created during the event or include significant updates if you have previously built it.&lt;/li&gt;
&lt;li&gt;You can use any programming language or framework.&lt;/li&gt;
&lt;li&gt;Bonus points if you include a simple video demonstrating the app and how it works.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Community help
&lt;/h2&gt;

&lt;p&gt;If you have any questions about the Baserow API or need assistance when building your application, you can seek help here in the Baserow community forum. Navigate to the category &lt;a href="https://community.baserow.io/c/developer-challenge/21"&gt;#DeveloperChallenge&lt;/a&gt; and ask for help by making a new post there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting started
&lt;/h2&gt;

&lt;p&gt;Once the challenge starts, we'll share the app ideas and problem statements related to productivity. This way, you can decide what to build if you're not sure about any ideas. Moreover, we'll share a video tutorial on how to navigate Baserow's code base and work with the Baserow API. It will help you get started smoothly!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://bsrw.io/3fWJeT"&gt;Participate and win!&lt;br&gt;
&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>hackathon</category>
      <category>backend</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Baserow for Developers: January Developer Digest</title>
      <dc:creator>Baserow</dc:creator>
      <pubDate>Mon, 06 Feb 2023 15:36:31 +0000</pubDate>
      <link>https://dev.to/baserow/baserow-for-developers-january-developer-digest-1blf</link>
      <guid>https://dev.to/baserow/baserow-for-developers-january-developer-digest-1blf</guid>
      <description>&lt;p&gt;Baserow for developers is a digest that equips you with the most important product updates and developer news. In the first edition, learn about Baserow’s engineering culture, new technical features, and our latest developer job opportunities.&lt;/p&gt;

&lt;h2&gt;
  
  
  New technical features and updates
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Frontend/Backend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Added a new the &lt;code&gt;List&lt;/code&gt; vuejs component that can be used to create list like this one:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmoykdi11i409fd8gwf9k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmoykdi11i409fd8gwf9k.png" alt="Image description" width="688" height="265"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added a new DataType instance, MemberDataType, which allows plugins to inject data into member responses. You can customize the member response content and show more information in the member tables this way.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added a simple way to check permissions for plugins. You can use the Baserow permission system to check permissions in your plugins too. Here’s an example for the backend check.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nc"&gt;CoreHandler&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;check_permissions&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# The user who is doing the action.
&lt;/span&gt;        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;operation_name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# Must be the name of a registered operation.
&lt;/span&gt;        &lt;span class="n"&gt;group&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;group&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# The group in which the operation takes place.
&lt;/span&gt;        &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;context_object&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# An optional object to give the context of the operation.
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This instruction will return &lt;code&gt;True&lt;/code&gt; if the operation is allowed by all registered permission managers and raise a &lt;code&gt;PermissionDenied&lt;/code&gt; exception if not. More comprehensive doc is coming.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added a new permission manager registry to allow devs to register their own way to hook on the permission checking feature. You can define your own rules when validating the user action. For instance you can define a permission manager that allow a user to have all the permissions on a table if he has created it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Dev experience
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Added &lt;code&gt;isort&lt;/code&gt; and the &lt;code&gt;make sort&lt;/code&gt; command in the Makefile, so to stop worry about import order and minimize merge conflicts.&lt;/li&gt;
&lt;li&gt;Added the vscode configuration, so new devs using vscode as editor can start from setup their env pretty quickly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get inspired by these discoveries
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;How Single Sign On works and how we developed it.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Single Sign On is a critical feature for medium/big enterprises in order to have a central identity authority where admins can decide who may use which software.&lt;/p&gt;

&lt;p&gt;To allow different users, we had to develop our integration with some well known Single Sign On services.&lt;/p&gt;

&lt;p&gt;We started with Okta and OneLogin as supported providers, since they have a very dev-friendly environment with great documentation and the possibility to quickly create custom connectors to test out our code with some real use-case scenario.&lt;/p&gt;

&lt;p&gt;We also had to develop our custom code since most of the Django libraries out there start with the assumption that an application just have the need for one external IdP (Identity Provider), while we want admins to create different integrations based on the domain instead, so that the &lt;code&gt;acme.com&lt;/code&gt; company could use Okta for example, while &lt;code&gt;contoso.com&lt;/code&gt; could use a different IdP hosted on OneLogin.&lt;br&gt;
It has been very interesting to try and study most of the open source libraries out there,  dive deep on what we really need and architect one of the simplest implementations we could actually build to fit our needs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;How to implement a flake8 plugin to check for custom rules.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In Baserow, we have a convention to leave an empty line after the python docstring and before the code.&lt;br&gt;
Unfortunately enough, there was no way to enforce our style-guide-enforcement tool (flake8) to check for this custom rule out of the box, so it was quite easy to forget both for the developer and the reviewer, adding a low-value checkpoint to remember and check every time.&lt;/p&gt;

&lt;p&gt;Creating a new &lt;code&gt;flake8&lt;/code&gt; plugin was fun and it turns out to be a good time-saver too, since now we can completely forget about that convention because both our preferred IDE and the pre-commit check will immediately show the error about our conventions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;📌 &lt;strong&gt;Interesting to know!&lt;/strong&gt; Use registries to extend and introduce new functionality, either directly in the codebase or via plugins. Baserow has many registries, you can for example add a new field type via &lt;code&gt;baserow.contrib.database.fields.registries.field_type_registry&lt;/code&gt;. More information can be found in the developer documentation here: &lt;a href="https://baserow.io/docs/plugins%2Ffield-type" rel="noopener noreferrer"&gt;https://baserow.io/docs/plugins%2Ffield-type&lt;/a&gt;. You’ll also find more examples on how to add custom view types, filters and more. Baserow has 19 registries in total.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to handle Context Switching? Interview with the Baserow dev, Alex.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What was the biggest challenge while working on RBAC?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;RBAC in general is a super complicated topic where we often ended up with long formed discussion about difficult topics. There was also a lot of co-dependency since we were 4 devs working on the same feature. Because of that, it was hard at times to understand where everyone is at and what everyone's understanding is going forward (it could have been much worse though).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;How you managed to deal with context changing?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Keeping notes on the MRs or in a local file to remind yourself where you were at with a certain topic.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;What tips would you give on how to avoid the negative effects of context switching?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Ideally, you should avoid context switching all together since it does overwhelm you and make you less productive. But if it is unavoidable then it’s best to accept that you will lose some time because of it, and that is okay. Notes and schedules can also help.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Useful links to check
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://mokkapps.de/newsletter/" rel="noopener noreferrer"&gt;https://mokkapps.de/newsletter/&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.packtpub.com/free-ebook/django-restful-web-services/9781788833929" rel="noopener noreferrer"&gt;https://www.packtpub.com/free-ebook/django-restful-web-services/9781788833929&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=fke3NYdnPBs" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=fke3NYdnPBs&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Developer job opportunities
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;DevOps Engineer:&lt;/strong&gt; &lt;a href="https://baserow.io/jobs/devops-engineer" rel="noopener noreferrer"&gt;https://baserow.io/jobs/devops-engineer&lt;/a&gt;.&lt;br&gt;
&lt;strong&gt;Senior Full Stack Developer:&lt;/strong&gt; &lt;a href="https://baserow.io/jobs/experienced-full-stack-developer" rel="noopener noreferrer"&gt;https://baserow.io/jobs/experienced-full-stack-developer&lt;/a&gt;.&lt;br&gt;
&lt;strong&gt;Front-end Developer:&lt;/strong&gt; &lt;a href="https://baserow.io/jobs/front-end-developer" rel="noopener noreferrer"&gt;https://baserow.io/jobs/front-end-developer&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stay connected
&lt;/h2&gt;

&lt;p&gt;💬 Follow us at &lt;a href="https://twitter.com/baserow" rel="noopener noreferrer"&gt;@baserow&lt;/a&gt; on Twitter for staying in the known of all company updates and news.&lt;br&gt;
⌨️ Join the &lt;a href="https://community.baserow.io/" rel="noopener noreferrer"&gt;Baserow community forum&lt;/a&gt; to chat with other developers and the Baserow team.&lt;br&gt;
⭐️ Star Baserow on &lt;a href="https://gitlab.com/bramw/baserow" rel="noopener noreferrer"&gt;GitLab&lt;/a&gt; to show your appreciation of our work.&lt;/p&gt;

&lt;p&gt;What would you like to see in the next digest edition? Do you have any insights, struggles, and/or useful links you want to share with the rest of the community? Let us know by responding to this post. &lt;/p&gt;

</description>
      <category>announcement</category>
      <category>devto</category>
      <category>offers</category>
      <category>web3</category>
    </item>
  </channel>
</rss>
