Baserow 1.23: Application Builder, rich text, new website

Baserow 1.23 release notes blog post banner

Baserow 1.23: Create it. Scale it. Own it.

The day we’ve all been waiting for is finally here: Baserow 1.23 with the application builder public beta is now live. You can now use Baserow as a single platform that provides the flexibility to create scalable databases and applications—without coding.

In this release, we’re not only rolling out our new product—the application builder, but also a new website, and some new features for our database too, including rich text formatting for the long text field type.

Let’s take a closer look at what’s new in Baserow 1.23:

Build full-scale applications with the new application builder

screenshot Baserow application builder

The application builder marks a new chapter for Baserow, bringing us a huge step closer to our mission of creating the first open-source no-code toolchain. It’s currently in beta, but it already allows you to create custom software applications for various purposes, such as building websites, client portals, internal tools, dashboards, and more.

The builder is based on five core concepts:

Pages: Think of pages like tables in a database. Every app can have multiple pages. Each page has a unique name and its web address (URL). You can make new pages and see all the pages for your app on the left sidebar in Baserow.

Elements: Elements are the core components of pages that shape how your applications look and how users can interact with them. These include elements like titles, text, or images. You stack them on a page to build it. When you click an element in the page editor, the right sidebar shows options for that element so you can change how it looks and works.

Data Sources: The data sources allow your pages to connect to external data, like a Baserow table. You can pick a table and view to connect. You can also set filters for those views. Currently, you can only connect a Baserow database, but we plan to add more options like SQL, Airtable, getting data from any API, and many more.

Events and Actions: Certain elements can trigger events when users interact with applications. For example, when someone submits a form or clicks a button. You can set what actions happen when these events occur. Actions could be adding a new row to a Baserow table, opening a page, or going to a URL.

Domains: Before you publish your app, you need to add a domain. You can create a new domain using a subdomain or a custom domain name. Add one, then press “Publish” to make everything go live.

To start building, select the “+Create new“ button in the left panel, then click on the “Application“ option.

Watch a brief video walkthrough of the application builder.

Rich text formatting

screenshot rich text formatting long text field type

Now, you can style and format the content of the long text field type in various customizable ways. This includes style choices like using italics, bold text, bulleted and numbered lists, as well as adding headings or code blocks. This creates a bit of a mini doc for your rows.

You can format your text using Markdown keyboard shortcuts, or an editing toolbar that appears when you open a row in the long text field.

Here are the most popular Markdown keyboard shortcuts supported by Baserow:

  • Type ** on both sides of your text to bold it.
  • Type * on both sides of your text to italicize it.
  • Type ` on each side of your text to create inline code.
  • Type ~ on both sides of your text to strike it through.
  • Type - at the beginning of your text to create a bulleted list.
  • Type 1. to create a numbered list.
  • Type [ ] or [x] to create a task list.
  • Type # to create an H1 heading.
  • Type ## to create an H2 sub-heading.
  • Type ### to create an H3 sub-heading.

We’ll be adding more styling options such as hyperlinks, mentions, and images in future releases.

Rich text formatting is only available for the long text field type. To add a new field, click the plus sign (+) next to your existing fields. Then, select the “Long text“ field and check the box “Enable rich text formatting.”

Duration field type: formula field support and new formats for days

duration field type screenshot

Our formula field type now supports the duration field type. This means you can now use a duration field to do simple mathematical operations, like adding and subtracting, directly.

We’ve also improved the duration field type by introducing new formats. Previously, we only supported formats that displayed hours. However, we believe formats displaying date intervals in days will enhance formulas such as today() - field('date'). And, we added new formats for days:

  • d h for days and hours
  • d h:mm for days, hours, and minutes
  • d h:mm:ss for days, hours, minutes, and seconds

To add a duration field type, click the plus sign ”+ Add a field” to the right of your existing fields and select “Duration” field from the list. New formats can be selected in the field configuration.

Filtering and sorting for editor role and lower

In our Enterprise plan, we have enabled filtering and sorting capabilities for users with the editor role and lower in the collaborative views. These specific configurations will only be visible to these particular users and won’t be saved as a general setting for all collaborators.

New field type: Password

enter image description here

The password field type is a write-only field. It lets you set a password for each row. This password is stored as a hash and is never shown.

This field is currently only useful in combination with the application builder. We will soon introduce API authentication functionality for broader possibilities.

Formula field: Create strong calls-to-action with buttons

screenshot formula field buttons

Baserow’s formulas let you make buttons in your table. These buttons look like real buttons. When you click them, they open a link. The link comes from values in your rows. This feature lets you make strong calls to action right inside tables.

To create a button:

  1. Open your Baserow database and navigate to the table where you want to create a formula field with.
  2. Click on the ”+ Add a field” button to add a new field.
  3. Choose “Formula” as the field type. A formula editor will appear.
  4. In the formula editor, type the button function and build your formula.

New website that reflects Baserow’s rebrand

Baserow new website screenshot

As part of our overall rebranding, we’ve updated our logo, colors, fonts, styling — everything! The redesign gives the website an entirely new appearance. It now has a cleaner look and feel, and is structured to be more information-rich than before.

Be on the lookout for new pages, new content, and more up-to-date resources directly on our site.

Company news

Webinar for Product Managers and Product Ops

Our new “Streamline Product Operations with Baserow” webinar is scheduled for March 21st, 2024!

We will cover the following topics:

  • An overview of the Baserow open source platform and its distinguishing features compared to traditional SaaS tools.
  • Key features and best practices for gathering user feedback, prioritizing tasks on your roadmap, and keeping stakeholders informed in real time. Live demos of the product will be provided.
  • Q&A session

RSVP here, and see you there!

New roadmap

New year, new ambitions! The 2024 roadmap is live; check it out. We’ll also be improving existing features and adding the AI field in Baserow.

Integration with Activepieces

Activepieces now supports Baserow! Here’s how to combine the power of no-code and open source with Baserow and Activepieces.

Developer Challenge

The first #BaserowDeveloperChallenge is open until March 10th! Build a new app with Baserow as the backend for a chance to win a PlayStation 5.

Learn more and register here!

Community activities

Code contributions

Today we want to thank Alexander Nieddu for contributing a merge request to resolve a bug Datetime_format formula function that adds spaces at the end of the strings. Alexander, your enthusiasm is highly appreciated!

We extend another heartfelt thank you to Kieran Wild for identifying, alerting, and helping to fix the broken Baserow deployments to Render.com. Your invaluable contribution is greatly appreciated, Kieran!

Community tutorials and events

What’s next

The next big features on the roadmap include the AI field, locking views, improvements to copy and paste functionality, and other features suggested by the community.

If you have any questions about the new updates, please leave them in our official community forum. We’re happy to answer them!

All changes, including bug fixes

New features

  • Introduced new password field type. #2123
  • Support ad hoc filtering in grid view for editor roles and lower #2329
  • Support ad hoc sorting in grid and gallery views #2361
  • Add ad hoc filtering support for editor and lower for gallery and kanban views #2375
  • Add rich text formatting and Markdown support to the long text field. #622
  • Clean up UserLogEntry table entries #1792
  • Add segmentControl UI component #1918
  • Add support to reference duration fields in the formula language. #2190
  • Add formats with days to the duration field. #2217
  • Allow custom public share URLs #2292
  • Use primary row value in email notifications instead of just row ids #2293
  • Show billable label only to workspace admins #2295
  • Added instructions on how to deploy Baserow to Railway. #2308
  • Update Django to 4.1.X #761
  • Added instructions on how to deploy Baserow to Digital Ocean Apps. #998
  • Prepared Cloudron, all-in-one Docker image, and Heroku for having multiple application builder domains.
  • Allow form view prefill of multiple link to table entries #2024
  • Show the button formula as a clickable button. #2089
  • Add group by support for the duration field type #2191
  • Implement Sentry integration (FE/BE) via environment variables. #2205
  • Allow string values for link row field and multi select #2250

Bug fixes

  • Fix the number of workspaces in the admin dashboard. #1195
  • File import will now ignore spaces around text values #2305
  • Resolve the issue where table import options vanish upon interacting with the form that displays these options, disrupting the table import process. #2326
  • Fix bug blocking grid view access after creating a lookup to a duration field. #2333
  • Adjusted the title height in the row modal to accommodate long text. #2334
  • Fix a bug blocking users to add row color conditions if the primary field has no compatible filters. #2341
  • Use the correct get_human_readable_value when creating row related notifications. #2345
  • Return an empty body instead of a string with a HTTP 204 status code #2348
  • Prevent editor and lower roles from creating aggregations #2369
  • Sanitize filter values to remove nul characters #2398
  • Fix bug where the period field update can result in a deadlock when it has multiple dependencies.
  • Keep space for title in the row edit modal #1734
  • Avoid dangling snapshots #1793
  • Remove trailing spaces from datetime_format formula #2131
  • Fix get_adjacent_row bug causing not returning the correct adjacent row in certain situations. #2273
  • Fixes for Render deployments after changes for their plans. #2275
  • Fixes bug where the context menu was displaced if there was a vertical scrollbar (e.g. form form). #2286
  • Fix higher_than and lower_than frontend view filters for formula fields. #2289
  • Nullify single select field for KanbanView if it’s been trashed. #711
  • Fix cannot read properties of undefined workspace when navigating to a table that you don’t have access to.
  • Fix bug where combined database and table level roles would not be respected when listing permissions.
  • Introduce Airtable import remove invalid surrogates JSON loads fallback.
  • Fixed a bug where the SENTRY_DSN env var was ignored.
  • Fixed bug where row was overwritten on update. It now only updates read-only data. #1405
  • Fixed bug where it was not possible to update a row that was still being created. #1507
  • Introduce en-x-icu collation for basic fields #1603
  • Fix bug when clicking browser’s back button didn’t close Row edit modal. #2140
  • Fix a bug that prevent s manually reordering rows if a filter is applied on a hidden field. #2175
  • Dont propagate ViewDoesNotExist in updating index task #2202
  • Return proper exception when share_id is invalid #2203
  • Fix bug where the source argument was passed to the child serializer when user_field_names=True. #2268
  • Fix bug causing Baserow to use empty jwt secret by default when running baserow from docker compose. #2160
  • Fixed incorrect handling of row moved warning.

Refactors

  • Optimize usage counters tasks to run only for updated tables. #1297
  • Refactored cache clearing logic to target only dynamic models, preserving the global cache for all models.
  • Update axios and posthog-jw frontend libraries
  • Redesign checkbox component #1918
  • Refactor avatar UI component #1918
  • Refactor badge component #1918
  • Change analytics blacklist to whitelist #2204
  • Refactor pagination component #1918
  • Change cookie values stored for last remembered view ID to shorter ones. #2105

Breaking API changes

  • New formulas returning a date_interval/duration are sent as number of seconds instead of a formatted string. #2190