130 comments

[ 3.2 ms ] story [ 80.5 ms ] thread
FYI, we require that you oauth in via a Google account purely for authentication right now. We don't request permissions for your email, calendar, contacts, or other data--only your name, email, and profile picture (which is used in the UI). We're working on support for email/password based signup, as well as oauth support for other services.
Should I be able to access the templates after I auth or do I need an invite?
If you click through the link in this HN post ( https://airtable.com/invite/a3sz9t7b ) it has an invite code embedded in the URL. Once you're signed in, if you visit airtable.com/templates you will be able to browse through and directly add a template to your workspace. You can also visit airtable.com/templates without an invite code and browse (but not add)
This looks beautiful! Love the database model, which reminds me of Salesforce's flexibility with an AWESOME front end. Really excited to see how people use it.
Looks pretty great. I'm not sure if I have a use case personally, but seems quite well-executed. Any plans for an Android app?

Also, minor note. On the fifth step of the tour, the word "seperate" is misspelled.

(comment deleted)
Thanks for checking it out! Yes, an Android app is on the roadmap for the near future. Thanks for the heads up, will fix the typo in the next deploy. If you want some inspiration for uses cases, we do have a template gallery here: https://airtable.com/templates
For someone who has spent a lot of time in Excel hacking things together this looks very useful.
This looks great - actually it could be exactly what we need to manage our overbearing CRM spreadsheet. Looking forward to that account invite - would start using it today!
Sounds like Airtable would be pretty ideal for that. You can import that CRM spreadsheet to get started! You can actually start today, just click the "Get it started" button here: https://airtable.com/invite/a3sz9t7b
This is the absolute best for structured data... been a beta user and hooked on the mobile app now. It's basically replaced evernote for me.
This looks fantastic! I was drooling during the demo video - you've improved on so many things from the standard spreadsheet at once.

If I could make a request for the API: it's almost impossible to get a simple JSON serialization of a table in Google Spreadsheets. There are so many times where I just want to make a really simple MVP with a backend data source, but don't want a full-fledged Firebase database. If I could just stick my data in an Airtable sheet and point my Javascript to load it and create the page dynamically, that would be ideal.

Thanks very much! Re: API, yes absolutely. Our web and mobile apps already use an internal API that uses RESTful JSON routes for reading tables, updating rows, etc. If you want to chat more about it or discuss the specifics of what you need from the API, you can reach me directly at howie@airtable.com
Read-only JSON data from Google Sheets is tricky only because of (1) finding the right URL and (2) ignoring all the cruft.

If you are looking to update the Sheet too I've not explored that far; otherwise let me know which of the above you're having trouble with!

You should give prismic.io a spin. You basicaly define data format in as JSON, CRUD interface is generated just from data description. The data you you add is also JSON you can easily retrive. You can query the data with predicates. Did a few projects with it, didn't need a database, or create a CRUD, such a relive.
How does this compares to products like Bento (RIP) and Filemaker?
Hi, the biggest differences between us and Bento/Filemaker/MSAccess (and even older products like Ashton Tate's dBase, Lotus Approach, etc) are:

1) Airtable is seamlessly realtime and instantly shareable with collaborators (which we believe is highly important for most use cases).

All those other products required desktop software installation, and sharing a DB with multiple users required involved setting up a networked shared drive with a file that was concurrently accessed by multiple users.

2) Airtable supports a full fledged mobile, simple-to-use interface. Mobile access is increasingly important, and none of those products provided a mobile interface (with the exception of Bento). Our mobile app instantly syncs all your changes with the web interface, or other shared collaborators.

3) Airtable supports the speed of data entry of a grid based interface on the web, while maintaining database structure (typed columns, 1 row = 1 record) which means we can alternately display records as cards (on mobile) or in the future, points on a map, events on a calendar, etc. Many of the other products forced you to use a form-based interface for record creation/editing, rather than allowing grid-based editing.

4) More modern paradigm. We support features like @mentions, row comments, direct file uploads from dropbox/box/google drive, etc, that add a useful collaboration layer on top of just the raw data.

At first I thought it was just a prettier, easier to use version of Excel. Then you showed me the filtering and I had an "Aha" moment. Excel is quick and easy, but it's hard to ask questions about your data. Databases make it easy to ask questions, but it's not quick and easy. You guys seem to have taken the best of both worlds, added in some super simple short-cuts, and there's a mobile app to boot. Kudos!
Great... but could be useless without an API.
Hi Kolev! We do have plans to release an API (by end of this year or early next). If you're interested in getting early access and providing feedback on the features you would need, please fill out this form: https://getforma.wufoo.com/forms/q1ijurhh1cp2kfu/ Or, reach out to me directly at howie@airtable.com
Just did! Thanks!
This could be a tremendous hit, even without the API. There's billions managed via Excel spreadsheets [citation needed] and Airtable seems to bridge the "spreadsheet-ux/database-power" gap well for those use cases.
Nice! Are you gonna automate checks for each submitted link or this is a one-time thing?
No plans to automate. I would have emailed the OP but couldn't see any contact details in their profile.

Detected via a Firefox extension [1] (there are several on AMO). Given the nature and severity of the vulnerability, and how widespread it still is (I get an alert every few days), I'm surprised everyone doesn't use one.

[1] https://addons.mozilla.org/en-US/firefox/addon/foxbleed/

You can reach me at howie @ airtable.com It's fixed now if you try again
Here's one use case: i tried importing a 500+ row wine spreadsheet into it (it has columns like type, producer, name, vintage, rating, source etc).

I had to save the file as CSV and import it -- or at least that's what I thought, but filepicker seems to support picking from google drive. I don't know if it would have accepted a spreadsheet.

Your app seems sluggish to scroll compared to Google Docs at that size, and the record density seems low (I see 29 records per page vs 50 on Google Docs). This is using Chrome 38 on Linux.

The "link to another table" seems interesting, but my data came denormalized so I have a column with e.g. 10 different repeated values on 500 rows. Maybe it would be nice to automatically clean that up somehow. For example, I could Copy the column and have a some Paste (unique values only) option. Maybe the dialogue that comes up (suggesting to expand the spreadsheet) could even tell you about that. Or maybe there could be an option to convert a text field to a separated linked table.

I had some conditional formatting set up via Google Docs, which could be nice to have here; e.g. red wines have a red background in that wine type table.

I don't have a simple primary key -- it's really a composite of {wine producer, wine name, vintage}. The app didn't mind importing non-unique values into that first column. I don't know what the alternative might have been -- an auto-generated primary key?

Having said all of the above, I really like Google Docs and it will take some amazing features to make me switch to anything else. Multi-user planning and documentation via docs is great -- I have a shopping list everyone can update and I can see it change real time on the phone in the shop while someone is changing it from their desktop, and it's always up to date.

Thanks a lot for your feedback, these are definitely things we're looking to tackle.

We're planning on improving scrolling performance soon, it's definitely a priority for us to improve our performance for large datasets.

As for the linking, we definitely want to do more to help you normalize your data. We can also infer column types to help with the import process. Doing this type of thing on paste is an interesting idea.

We have some ideas for how to make it so that you don't need a primary column. One thing that you can do now is make the primary column a formula, and then reference other columns to generate a key.

If you're interested in talking about the challenges of creating a performant spreadsheet, I've built a javascript-based spreadsheet backed by a database that's more performant than Google Docs/any open source table available on the internet. I'd be happy to share the techniques.

Edit: reach me at shri (at) freshvc (dot) com

Awesome! Thanks for offering, we would love to hear your thoughts. I'll send you an email.
Redis would be a good idea to move that data around.
Are there any plans to make this scriptable with say Javascript?
We're going to release an API in the near future ( https://airtable.com/api ), but that would be used for server-side integrations (ie you must deploy your own server to host your own code talk to Airtable's servers).

We do want to support some form of scripting that would be hosted on OUR servers, but that's further out on the roadmap. We also have plans to support external integrations and triggers via Zapier/IFTTT.

+1 for IFTTT. It would be great to create Airtable files from third party sources: forms, emails, other apps, etc.
Very impressed.

Spreadsheets have never quite "clicked" with me, but this did. It exposes a lot of functionality that your average person would want out of a spreadsheet in a much friendlier way.

I am really curious on the "database" side though, can this handle a couple of tables with 10k rows linking to one another? Maybe an API that allows me to return JSON with some query language? If so, would be a great tool for CRM like tools and any small/medium data set where a nice UI for editing would come in handy

Thanks for your comments! We're actively working on performance improvements needed on both the client side and server side, but right now it would be very sluggish at that scale. We do have immediate plans to expose an API, probably sometime early 2015.
(comment deleted)
Gorgeous work — and from poking around in the console a bit, it looks as though you're using the latest version of Backbone.js.

Any interest in having Airtable featured on the list of example apps on the Backbone homepage? If yes, drop me a line...

(comment deleted)
Couldn't find your email listed (PS your site ashkenas.com seems to be down right now). Can you email me at howie @ airtable.com?
Ah yes, it is. I'm jashkenas at gmail. Thanks!
The "instantly syncs updates with all users" bit caught my eye. I always wonder how people go about implementing that.

Asana works that way, and they have their own framework named Luna that does some functional reactive magic. Meteor, which I've been working with a lot lately and have really enjoyed using, was also created by some ex-Asana people, and enables the same type of real-time synced updates.

I was just wondering if you could share anything about your technology stack or how you accomplish the real-time updates. Are you using Meteor?

Websocket would be the solution to doing that, especially cross platform. Meteor is built on top of websockets, just saying...
You couldn't be more wrong. Yes, websockets would make this easier and more seamless than (say) polling, but the "big deal" is that your entire model changes from:

- There's a source of truth (server) and a single client at a time, ever.

To:

- There can be up to hundreds of clients at the same time, all having write access to the same data.

Meaning:

- Your old fashioned models don't quite cut it - you need something to handle changes happening locally [having to be propagated to the server/network ("committed") and potentially be rejected or changed], and at the same time receive remote updates, apply them to the local objects.

- You're going to have conflicting writes. You don't want to have global locking in such a system, no matter how fine-grained (cell, in this case, I suppose); enter: Merge conflict resolution code (you'll have fun with that). Does it happen on the server? Client? How are conflicting writes resolved? Can the client handle just about any write having to be cancelled, and instead accept another change to the object?

- Saving history states for all (ok, most) of your data, so that things can be rolled back. Kind of necessary when you can have a spreadsheet shared by 100 people, and any of them could delete the entire thing.

Do these features ring a bell? Yes, we're talking about a distributed version control system here, but "you just saying" that all it is, is bidirectional communication? That's why you're being downvoted.

First off, we're huge fans of both Meteor and Asana. I spoke with Geoff @ Meteor a couple years ago when we were first starting to build out the Airtable product and was very impressed by their approach and vision.

We've closely followed the developer blogs of both those projects (and in Meteor's case, their source code). With those learnings, we built our own realtime database engine that supports relational data (which Meteor doesn't yet support) and also some other major features like the ability to undo any user action out of order (like git revert), which is necessary to support undo in a multi-user context (because the last thing that you did may not be the last change globally if other people are concurrently making changes). Undo is a particularly challenging feature to implement in a structured relational database context, because it can't be reduced to a set of simplistic character insertion operations as is the case for a google word doc, or a spreadsheet (which is a simple 2d array of values without type constraints, foreign key relations, etc).

Very impressive, one more congratulation from me. And a couple quick questions:

How do you handle conflicts? E.g. If two users change the same scalar value (of an integer cell, let's say) at the same time. Do you accept one and throw a warning back to the unlucky users?

How much to you cache locally? I had begun a framework such as this at some point, with the ultimate goal of being usable offline via the localStorage cached version (and sync upon connect), so I have a good idea of how much pain you must have gone through sorting this out :)

You wrote your own real-time database engine. You're nuts! (in a very good way). Have you written anything about this? It would be interesting to hear both about the database and the experience of "rolling your own" at such a low level.

You guys need a dev blog.

Hi, yes--we definitely want to get a dev blog up and start talking about some of this stuff!

Re: conflicts, in the case of a scalar value, last in wins, and the system (if you consider the server and each client as nodes in a distributed system) is eventually consistent (i.e. everyone will eventually see the exact same state). In that particular case, we show the other user's profile picture and highlight the cell to flag that change so you realize somebody else is editing at the same time as you.

Nice. There is probably an argument to be made for a notification when you update something and someone else also updates it and your update loses (i.e. small time difference updates or conflicts + your client wasn't last)

Although to be fair, I suppose "undo" covers this. Can you undo an action taken by someone else? (User A commits "aa", User B commits "bb", User A commits "yy"; Can User A, undo to both "bb" and "aa"?)

Edit to add: Looking forward to the dev blog.

>Undo is a particularly challenging feature to implement in a structured relational database context, because it can't be reduced to a set of simplistic character insertion operations as is the case for a google word doc, or a spreadsheet.

I personally hit this roadblock while trying to build a revision management system for a spreadsheet like Google Drive has. I had a pretty fragile implementation that works within a tangled mess of has-many relations. It was a tough time generalizing the whole mess. I'm looking forward to your insights on this particular problem on your future developer blog! Congratulations.

Reminds me of the RelateIQ look and feel.
Why does it require Google auth?
We require that you oauth in via a Google account purely for authentication right now. We don't request permissions for your email, calendar, contacts, or other data--only your name, email, and profile picture (which is used in the UI). We're working on support for email/password based signup, as well as oauth support for other services.
Hi Andrew! It's cumbersome but at some point you might want to consider LDAP/AD for enterprises who want to hook into it as well.
Well-polished product.. can you u talk a little bit about the design and the front end. what did you use for the UI design and front end. it is clean..
We have a custom frontend framework that supports realtime data synchronization. We use some pieces of other frameworks, like Backbone's routing and events library. Andrew Ofstad (@aofstad) is our design lead, and created the aesthetic framework (he previously lead the Maps redesign at Google).
This looks like a nice product. Software companies have been struggling to make a mass-market database program ever since Lotus 1-2-3 (the "3" was a database), but the spreadsheet remains king, despite the fact that for storing structured data, it is almost as bad as a Word document with macros. So I'll be rooting for you.

One complaint: Referring to your Basic plan as being "Free forever" is a bit disingenuous. In my opinion, the FTC ought to prohibit use of this term by tech companies located in the 650 and 415 area codes.

>Referring to your Basic plan as being "Free forever" is a bit disingenuous

How so? I haven't had a company ever tell me this then start charging. Oftentimes they go out of business, but that is a different problem. :)

I'm not sure if the "forever" keyword was ever involved, but two examples that spring to mind are Google Apps and Dyn, both of which have discontinued their free tier.
Not sure about Dyn, but if you had created a Google Apps prior to them removing the free tier - you still have it for free... new customers don't get to use it free but existing free customers are still free.
By the area codes provided by EvanMiller (415 = San Francisco, 650 = Palo Alto) I don't think he meant "free first, then they started charging". I think he meant "got acquired" / "pivoted" "went out of business".
Let's see. There was Apple's iTools, .mac, MobileMe, and now iCloud service (sort of one big evolving service, with some bits chopped off or replaced at various points in time), which has gone from free to paid to freemium.

There's Google Apps for your Domain, which killed off its free service in favor of the $5/user per month service.

Ning shut down their free service and switched to a paid only model.

DynDNS also shut down their free service, only offering paid.

How many more examples do you need?

I recall those being free. I don't remember any of them being marketed as "Free forever". If you have even one example that you can document as being falsely advertised as "Free forever"...
I can't speak to the rest, but I still have free Google Apps for my personal domain. They're no longer offering it for new customers, but those who signed up when it was free still have it.
> Software companies have been struggling to sell a mass-market database program ever since Lotus 1-2-3 [that is not Access]

There, I fixed it for you. (disclosure: I worked on a similar tool, had a friend, one of the best programmers I know, who built a similar tool, worked on an ERP system that addressed many of the same use cases, and I started Skysheet, YC W09, with gruseom).

btw, what's up with SkySheet?
(comment deleted)
It appears you make reasonable comments, so you should know that you're dead d--b.
MS office has been non-optional for the workplace computer for decades, so any tool has to compete with "free-as-in-had-to-buy-it-anyways".
Access is great as a personal, single-user database, but how much software has been written to expand it past that limitation in small businesses? Also, Access isn't available for Mac. And Access doesn't run on your iPhone/iPad. I don't entirely disagree with your comment, but I do think there's room and demand in the market for something like AirTable.

I've personally been dabbling with similar idea for years. Guess I should have invested my time and money in getting it to market.

> Access is great as a personal, single-user database, but how much software has been written to expand it past that limitation in small businesses?

There were (and in all probability still are) many multi-user Access projects in use by small businesses.

> I don't entirely disagree with your comment, but I do think there's room and demand in the market for something like AirTable.

So you don't entirely disagree with a bunch of people who have failed to find this imaginary demand, but you think the demand is there? There is demand for business applications for verticals, and for general ERP functions like timesheets and payroll. The demand for an Access-like or "better spreadsheet" product is all of the "Oh yeah, it sounds cool" variety that never results in sales.

> Software companies have been struggling to make a mass-market database program ever since Lotus 1-2-3 (the "3" was a database)

Not really; there were several post 1-2-3 mass-market database programs that had considerable success (dBase, Paradox, Access, FileMaker), though of those only Access is still successful.

> In my opinion, the FTC ought to prohibit use of this term by tech companies located in the 650 and 415 area codes.

Is this part of an East Bay / San Jose economic development plan?

Impressive!

can you tell us more about the stack used?

Thanks! We use node on the backend, and have our own realtime database engine that supports relational data, and out-of-order undo. We also have a custom frontend framework that consumes the realtime changes pushed from all other clients.

See more in my other comment: https://news.ycombinator.com/item?id=8374468

Great concept, implementation look very nice, change your intro video. You're giving me a product tutorial when what I want is to understand the use cases and benefits. I don't care about how to use it (yet), I want to know why to use it. Also, please lose the background music - very distracting in a tutorial.
Excellent point. The video totally misses the "why" of this product.

Very difficult to get non technical peeps just suddenly ditch spreadsheets.

I think a focus on a specific use case i.e job would be better approach. Seems to be to broad in terms of the jobs that it is addressing.

I will look into this more so good job.

The tour seems a little broken in that the callouts sometimes appear in locations for "menu items" before the menu appears but is still very informative.

See image before menu: http://bit.ly/1xq1XYI And image after menu: http://bit.ly/1rprJrk

Thanks for letting us know, will look into it now
This really looks very nice!

After defining 3 tables with related records, some thoughts:

- Trying to enter some records, I pressed space in the checkbox column, "zoom view" appeared instead of changing the value (enter changes the value), I understand that this is a convention in your system, but what's the point of the zoome checkbox? :)

- Detail view shows checkbox columns, as checkbox - name and another value-changing checkbox below, waste of space - record with 4 column takes almost all modal window.

- Changing value of checkbox with enter, disallows submitting detail view, so there is no submit, but then I cannot simply discard changes made in the detail view, when I press ESC - data still changes. To revert changes, I had to press ctrl-z several times.

- I noticed that of the entered characters changed to ?, I'm not shure how cannot replicate it, but entering some strange character, and clicking around does the trick.

- I think you should consider adding standard spreadsheet/browser keyboard shortcuts: F2, alt+down.

- Make page up / page down work.

- Adding related record, could automatically open new detail window - creating unnamed row seem pointless.

Good luck!

Thanks for the feedback! Good points - will add these to our queue for features