Buildin Storage Research

🔍 Buildin Storage Research for Giantkin

Hey Giantkin! We looked into Buildin’s extensibility to see if we can solve your file storage issue. Great news — this is very feasible! Buildin has a surprisingly mature API we can leverage to offload your files to cheaper, unlimited cloud storage.


📊 Your Storage Tiers (AppSumo Deal)

TierPriceStorageSingle File Limit
Tier 1$49100 GB5 GB
Tier 2$139250 GB5 GB
Tier 3$309500 GB5 GB
Tier 4$469750 GB5 GB

✅ What Buildin Offers (API & Extensibility)

Buildin has a full REST API at https://api.buildin.ai/v1 that’s heavily modeled after Notion’s API. Here’s what we found:

  • Two plugin types: Internal Plugin (embedded UI) and External Application (standalone, OAuth2)
  • Full CRUD on Pages, Blocks, and Databases
  • Block types include: Images, Videos, Audio, Files, Folders, Embed File, Embed Web Page
  • External URL support is already baked in — cover images use the {"external": {"url": "https://..."}} pattern (same as Notion)
  • MCP integration available (for AI tool chains like Cursor)
  • Bot/token auth with granular permissions: readContent, insertContent, updateContent

🏗️ Offloading Strategy Options

Option A: “External URL Swap” ⭐ (Most Practical)

Since Buildin’s API supports external URLs in blocks (following the Notion pattern), the approach would be:

  1. Upload files to Cloudflare R2 or AWS S3 (cheap, fast, virtually unlimited)
  2. Use Buildin’s API to create/update blocks with external URLs pointing to R2/S3
  3. Files render normally in Buildin but don’t count against your storage quota

This is essentially what Notion power users do — and Buildin copies that exact pattern.

Option B: “Storage Migration Tool” (For Existing Files)

We’d build a companion script/app that:

  1. Scans your Buildin workspace via API for large file blocks
  2. Downloads them
  3. Re-uploads to Cloudflare R2/S3
  4. Patches the Buildin blocks to reference the new external URLs
  5. Frees up your Buildin storage automatically

Option C: “Upload Proxy” (For Ongoing Use)

A lightweight web app or Buildin External Application plugin that:

  1. You drag files into it (or use a simple upload form)
  2. Files go directly to R2/S3
  3. Returns a Buildin-ready embed block or link you paste into your workspace

🎯 Our Recommendation

We’d recommend combining Options A + B:

  1. A simple CLI tool or web app that takes files, uploads them to Cloudflare R2 (S3-compatible, generous free tier, no egress fees), and returns the public URL
  2. A migration script using Buildin’s API to scan your existing workspace and swap out large files to external storage
  3. Going forward, you upload large files through the tool first, then embed the URL in Buildin

Why Cloudflare R2? It offers 10 GB free storage, zero egress fees, is S3-compatible, and dirt cheap beyond the free tier. Perfect fit for this use case.


⚠️ One Thing to Verify

While the API structure strongly indicates external URL support for file/image blocks (it’s identical to Notion’s pattern and cover images already use it), we’d want to do a quick proof-of-concept with your actual Buildin account to confirm:

  • ✅ Image blocks accept external URLs via API (highly likely given the Notion-mirror pattern)
  • ✅ File blocks accept external URLs via API (same)
  • ✅ Embed blocks work with R2 public URLs (very likely)

If you can create a Bot token in your Buildin workspace, we can test the API directly to confirm before building anything.


📋 Technical Reference

Buildin API Endpoints

EndpointMethodDescription
/v1/pagesPOSTCreate page/record
/v1/blocks/{id}GETGet single block
/v1/blocks/{id}/childrenGETGet block children
/v1/blocks/{id}/childrenPATCHAppend child blocks
/v1/blocks/{id}PATCHUpdate block
/v1/blocks/{id}DELETEDelete block
/oauth/tokenPOSTExchange access token (OAuth2)

Bot Permissions Available

PermissionDescription
readContentRead workspace content
insertContentCreate new content
updateContentUpdate existing content
readUserWithEmailRead user info (with email)
readUserWithoutEmailRead user info (without email)

🤝 Next Steps

Whenever you’re ready, Giantkin, here’s what we need from you to move forward:

  1. Create a Bot token in your Buildin workspace (Settings → Integrations → Create Internal Plugin)
  2. Share the token with Frank so we can run a quick proof-of-concept
  3. We’ll confirm external URL support works, then build the tool for you

This research was prepared by Hurt Ridge Labs. Questions? Get in touch.


🚨 Client Decision Point: File Privacy Architecture

Date: March 18, 2026 • Status: Awaiting Your Decision

✅ What We Built So Far

Your Buildin Storage Offloader is live and working! Every 15 minutes it scans your Buildin workspace, detects internally-stored files, migrates them to your NextCloud, and swaps the Buildin block to reference the NextCloud URL instead. Your Buildin storage stays clean.

⚠️ The Privacy Question

In the current setup, your files briefly pass through our N8N server during migration. The data flow looks like this:

☁️ Buildin CDN (cdn2.buildin.ai)
    │
    ↓ Download (HTTP GET)
    │
🖥️ OUR SERVER (N8N) ← file is in memory here briefly
    │
    ↓ Upload (WebDAV PUT)
    │
☁️ Your NextCloud (giantkin.nextfiles.cloud)

Files are never stored on disk on our server — they pass through memory for a few seconds — but we believe you deserve to make the call on whether that’s acceptable. Here are your options:


📋 Your Options

Option A: Keep Current Setup ✔️ (Simplest)

Files briefly transit our server’s memory during migration. Nothing stored, nothing logged. This is already live and working.

ProsCons
Already built and runningFiles briefly touch our server memory
Zero effort from youRequires trust (which we appreciate!)
No additional cost

Option B: Cloudflare Worker on OUR Account ⭐ (Recommended Private Option)

We deploy a tiny streaming relay on our Cloudflare account. Your files stream directly from Buildin CDN through Cloudflare’s edge network to your NextCloud — never touching our server at all. You don’t need to set up anything.

☁️ Buildin CDN
    │
    ↓ Stream (never buffered)
    │
⚡ Cloudflare Worker (our account, streams only)
    │
    ↓ Stream directly
    │
☁️ Your NextCloud

🖥️ Our N8N server only sends commands — never sees file data
ProsCons
Files never touch our serverSmall additional build effort (half day)
Nothing for you to set upYour NC credentials stored in our Cloudflare
Cloudflare free tier covers this
Full automation maintained

Option C: Cloudflare Worker on YOUR Account (Maximum Privacy)

Same as Option B, but the Cloudflare Worker runs on your own Cloudflare account. Your credentials never leave your own infrastructure. We’d help you set it up.

ProsCons
Maximum privacy — your infra onlyYou need a Cloudflare account (free)
We help you set it upSmall initial setup effort from you
Full automation maintained

Option D: Manual Migration (You Run It)

We provide you with a simple script you run on your own machine whenever you want to migrate files. Our system only flags files needing migration — you execute the transfer.

ProsCons
100% your controlNot automatic — requires manual runs
Nothing on any third-party infraMore effort on your end

🎯 Our Recommendation

Option B gives you the best balance: fully automated, files never touch our server, and you don’t have to set up anything new. We handle the Cloudflare Worker on our end.

But this is your data and your call. Let us know which option you’d like and we’ll get it done! 🚀

— Frank & the Hurt Ridge Labs team