[{"data":1,"prerenderedAt":71},["ShallowReactive",2],{"project-airtable-as-backend":3},{"id":4,"title":5,"body":6,"description":53,"extension":56,"meta":57,"navigation":58,"path":59,"seo":60,"sortOrder":61,"stem":62,"tagline":63,"thumbnails":64,"titleColor":69,"__hash__":70},"work\u002Fwork\u002Fairtable-as-backend.md","Airtable as Backend",{"type":7,"value":8,"toc":52},"minimark",[9,14,22,28,42,47],[10,11],"hero-image",{"alt":5,"src":12,"subtitle":13,"title":5},"\u002Fimages\u002Fwork\u002Fairtable\u002Fthumb.png","Nuxt + Airtable",[15,16,18],"title-block",{"subtitle":17},"A one-time event site. APIs, auth, and the whole data layer.",[19,20,21],"p",{},"I built the backend",[23,24,25],"side-note",{},[19,26,27],{},"Under NDA. No screenshots, just the technical work.",[29,30,31,39],"text-block",{},[19,32,33,34,37],{},"I took on a project with a fixed launch date: a one-time event site with registration, info, and a hub element. They needed someone to build out all the backend functionality: APIs, auth, and the connection between the frontend and their data. The client was already familiar with Airtable and wanted to use it as the data layer.",[35,36],"br",{},[35,38],{},[19,40,41],{},"I started with Airtable itself. I designed the full base from scratch: tables, linked records, field types, the whole schema. On top of that, server-side APIs behind session auth and middleware, so the frontend never touched the data directly and every request was gated. A single field-map translated between Airtable's column names and the domain model, which turned out to matter a lot: the client kept changing their mind about what fields they needed, and adding or removing one became a one-line change instead of a hunt through the codebase. On the frontend side, I wrote all the composables that consumed those APIs and wired them into the static site, so the data flow from Airtable to the rendered page was end-to-end mine.",[23,43,44],{},[19,45,46],{},"Airtable is not a database, and you feel it eventually: no joins, no aggregation, no transactions, rate limits you have to engineer around. For an event in the hundreds with a fixed shelf life, those limits didn't bite. The layer I built was designed so that if the project ever outgrew Airtable, the backend could be swapped without touching the frontend.",[29,48,49],{},[19,50,51],{},"I'm a full-stack engineer, and that means the unglamorous parts too: setting up a client's database by hand, wiring auth middleware into a site that'll be taken down in a month, checking ownership on every mutation for an event that happens once. All of it's the job.",{"title":53,"searchDepth":54,"depth":54,"links":55},"",2,[],"md",{},true,"\u002Fwork\u002Fairtable-as-backend",{"title":5,"description":53},4,"work\u002Fairtable-as-backend","Backend for [REDACTED]",[12,65,66,67,68],"\u002Fimages\u002Fwork\u002Fairtable\u002Fthumb-lightgrey.png","\u002Fimages\u002Fwork\u002Fairtable\u002Fthumb-red.png","\u002Fimages\u002Fwork\u002Fairtable\u002Fthumb-green.png","\u002Fimages\u002Fwork\u002Fairtable\u002Fthumb-yellow.png",null,"QhhNeT7pWLBCJLmAVZsJtlYSjrS3RIVeOu2ax5zmVtk",1776963590459]