[PAID] Baserow Database - An Airtable Alternative

Baserow Database

Hello everyone, I hope you’re all good. Today I am launching a database extension for Baserow. It is an open source database and an Airtable alternative. This database bring all features that Airtable brings. This extension helps you to strore and get data with Baserow. This extension have mostly same block as of Airtable have. That’s why it is easy to use and customise. This extension allow you to store almost all languages(I have tried only with Hindi , English and Vietnamese) and it stores these languages.

Thanks @michael_ngo for sponsoring this extension.

Let’s see its blocks and thier documentation.

All Blocks

Properties

image

Documenation

There are 9 events , 10 methods and 6 properties blocks.

component_event (4)

This event raises when a column got. Values is a list of data and response is a JSON body that is return by baserow.

component_event (5)

This event raises rows are got. Response content will be a JSON body that is returned by server and total rows will be number.

component_event (6)

This event raises when a particular row got. Values is a list of cells that is return by server.

component_event (7)

This event raises when name of all columns are got. Names is a list of all columns name that you table contains.

component_event (8)

This event raises when you use Create Row block and row is created in your table. Response will be a JSON body returned by the server.

component_event (9)

This event raises when a row or cell is updated. Response will be a JSON body returned by the server.

component_event (10)

This event raises when any error occurs.

component_event (11)

This event raises when a row is deleted. If the row is deleted then response variable will return Row Deleted.

component_event (12)

This event raises when a row is moved to a particular index. Response will be a JSON body returned by the server.

component_method (2)

This block helps you to create a row in table. Columns names and values must be list. If you entered any value wrong in column name then baserow will store null value to that row. If the row is created then Row Created event will be triggered.

component_method (3)

This block helps you to get the column with column name and a limit that you want to recieve. Note:- Baserow has a limit of 200 maximum records so if you tried to get more than 200 then Error Occurred event will be triggered.

component_method (4)

This block helps you to get all the columns names that your table contains. GotColumnsNames event will be trieggered with a list of all cloumns names.

component_method (5)

This block helps you to fetch a particular row in your table. Got Row event will be triggered with a list of all values ot that row.

component_method (6)

This block helps you to delete a particular row from your table. RowDeleted event will be triggered if row deleting success.

component_method (7)

This block helps you to fetch such rows that contains given text. for ex, I have three rows in my table

Firstname Lastname Age
Jill Smith 50
Eve Jackson 94
John Doe 80

And I used this block and searched Jill then the first row will be fetched and GotAllRows event will be triggered and if you searched j then all the rows will be fecthed as all row contains J letter in their cells. It is a type of filter that Baserow offers.

component_method (8)

This block helps you to fetch all the rows of table with a limit size. GotAllRow event will be triggered with a JSON response body and a integer that contains total number of the rows present in your table.

component_method (9)

This block helps you to move a particular row to a particular index. for ex I have three rows with id 1,2,3

ID Firstname Lastname Age
1 Jill Smith 50
2 Eve Jackson 94
3 John Doe 80

If I want to move the last row to the top of the table then I wills imply pass the id of the last row to row Id parameter and first row’s id to before Id parameter then the updated result will be like below.

ID Firstname Lastname Age
3 John Doe 80
1 Jill Smith 50
2 Eve Jackson 94

RowMoved event will be triggered with a JSON response body. I hope you got this.

component_method (10)

This block fetches the all row in ascending or descending order of a particular column. column Name parameter accept the column name that you want to filter. And technique parameter accept string in which order you want to filter the row, There are two properties avaliable for technique.

for exampe,

ID Firstname Lastname Age
1 Jill Smith 50
2 Eve Jackson 94
3 John Doe 80

If you want to fetch the rows in ascending order of age simply pass the Ascending property to technique parameter and Age to column Name parameter. And the data will be fetched in acsending order of Age column like this.

ID Firstname Lastname Age
1 Jill Smith 50
3 John Doe 80
2 Eve Jackson 94

GotAllRows event will be triggered with a JSON response body and total number of the rows of table. I hope you got this.

component_method (11)

This block helps you to set or update the cell of a particular row of given id, column Name and the cell value. Row Updated event will be triggered when it will updated.

image

Two properties for defining the techique while fetching rows with technique.

image

This block is for setting or getting the Table name.

image

This block is for setting and getting the token. It is main thing for authenticating with your database. You need to generate it within your account.

I hope you understood the documentation.

Usage

Let see usage of blocks

Creating a Row

blocks - 2021-08-03T122656.274

Make sure to enter the token and table id before you use any block.

Response

{
   "id":3,
   "order":"1.00000000000000000000",
   "Name":"Sumit",
   "Last name":"Kumar"
}

Creating row with Hindi language

blocks - 2021-08-03T123039.887

You can also use other languages for string data.

Response

{
   "id":4,
   "order":"2.00000000000000000000",
   "Name":"सुमित",
   "Last name":"कुमार"
}

Creating row with Turkish language

blocks-1

Response

{
   "id":6,
   "order":"4.00000000000000000000",
   "Name":"ç, ş , ö , ü , ı ,ğ",
   "Last name":"Turkish"
}

Creating row with Vietnamese language

blocks

Response

{  
   "id":5,
   "order":"3.00000000000000000000",
   "Name":"Tôi là người việt nam",
   "Last name":"Vietnamese"
}

Getting the Data

blocks - 2021-08-03T123341.504

I have tried here getting data of Hindi language for showing you.

Response
I recieved a list of values in Hindi (सुमित कुमार).

Searching Data

blocks - 2021-08-03T123613.248

There are two rows in which one of them contain S letter so I am going to search it

Response

{
   "count":1,
   "next":null,
   "previous":null,
   "results":[
      {
         "id":3,
         "order":"1.00000000000000000000",
         "Name":"Sumit",
         "Last name":"Kumar"
      }
   ]
}

Important Note

There are some important thing that you must know before going to use it.

Row Id != Row Number. Mean row id is given by baserow database when you create the rows. And it is the unique identity of a row. For ex, first row of your table’s Id will be 1 if you delete it then the next newly created row’s Id will be 2 not 1. So make sure to use correct I’d while updating and fetching the data. You can extract the row id of the newly created row from the JSON response received from Row Created event

You can use dictionary block for decoding the responses received by the event blocks.


Version 3

Version 3 of the extension is here.

Feature

Now you can filter your data with some available filters in the extension.

Block Added

component_method (1)

This block will helps you to fetch the data with given filter. Filter will be applied to the given field id with max record. Value accept the Filter valoue. For ex, if you’re using euqal filter then the value should be the string that you want to fing equal to. If not needed then you can leave it as an empty string. Got All Rows event will be triggered when the block got the values.


image

These are the available properties for defining the filters. You can see here the usage of filters in docs.

Usage

blocks (4)

This block will fetch the rows of table where field_252 is equal to sumit. You can use more filters in same way

Block Changed

component_event

Fields parameter has added in Got Columns Names block. It returns a list of your fields id.


blocks (6)

Get Columns block has updated now and it is able to fetch multiple columns at a time. Pass the list of columns names to columns Names parameter and Got Columns event will be triggered with all list of values in a list.


blocks (7)

Values parameter returns now list in list as I said above. You can get the list as shown in above blocks. Or you can use List block to extract the list from the JSON response.


image

Table Name is renamed to Table Id now for preventing confusion.


New Icon

image

Extension has baserow icon now :sweat_smile:


Make a backup of your project before importing the new version of the extension. As there are many block and their paramater changed so it may cause break in your blocks


Price

Paytm/UPI :- ₹350
PayPal :- 6$

PM me to buy the extension :upside_down_face:

Credit

Thanks to @Shreyash for his super powerful :muscle:Rush .

Suggestion and issue are welcome

More filters and features are coming in future so Get ready for it.

If you like the extension then like the topic
Thank You All

Donate

If you like my work then donate if you can :slightly_smiling_face:

22 Likes

Really Really! It’s Done By You, Nice Creation.

Best of luck. :heart:

Great extension! I use Baserow myself.

I played with the apis and it is working great.
Did you know it is developed by a Dutchman :netherlands: like myself :crazy_face:

Is your extension working with the database you can get on baserow.io? What if you put Baserow on Heroku or host it yourself?

7 Likes

Thank you!

Great! :sunglasses::joy:

Yes it works on baserow.io.

I didn’t know that it can also hosted ourself. I think, it will not work then.

What is different between airtable & Baserow ??

Does baserow Provide any Additional Benefit compare to airtable ?

You get unlimited rows in Baserow where in airtable you can only have 1200 in free version.

1 Like

Nothing at all. Almost both are same.
But as I tried both I felt that baserow is more faster than airtable. Also, In capacity baserow is almost free.

Not only rows, you get unlimited tables and group also and much features.

Check here it’s Pricing

1 Like

image

I think that if you would add the possibility of adding an url that would be enough.

1 Like

Superb…nice extension

1 Like

Baserow have any limit like api request?

You can always look at the baserow site for information. I use the hosted SaaS version that is free for now. As far as i know there is no api request limit. Early premium is not available yet.

For now. It states on the website.

Please provide an alternative payment method.

For foreigners, only PayPal is available. And it is working fine for me and others. I think there is issue with you.

Can you make it work with self hosted Baserow?

@Peter has suggested me to implement and get it worked with self hosting. Now I am working on it and will try to add this ASAP.

Thank you

4 Likes

Cool. I’m interested

Hello क्या ऐसा कर सकते हैं,

Get Column : xyz
Mx record: 10

Then Get Column: xyz
Mx record: Start at postion 10 +10

But one condition, not repeat call 1 to 10 Direct get 10 to 20

हमे इंग्लिश नही आती और हिंदी भी नहीं आती, हमे सिर्फ मराठी आती है। तो इंग्लिश लिकने में गलती हो सकती हैं। समझने की कोशिश करो।

Hi,

English is the official language of the community. So you must post in English.As you said you dont know English then you can use translator.

Well, It is not possible in extension. But I think it can possible in Baserow (I am not sure). If it is possible then I will add this in upcoming update.

Thank You

you may set the page =2 and size =10 in the Query parameters

Snipaste_2021-08-04_12-29-50