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)
| Tier | Price | Storage | Single File Limit |
|---|---|---|---|
| Tier 1 | $49 | 100 GB | 5 GB |
| Tier 2 | $139 | 250 GB | 5 GB |
| Tier 3 | $309 | 500 GB | 5 GB |
| Tier 4 | $469 | 750 GB | 5 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:
- Upload files to Cloudflare R2 or AWS S3 (cheap, fast, virtually unlimited)
- Use Buildin’s API to create/update blocks with external URLs pointing to R2/S3
- 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:
- Scans your Buildin workspace via API for large file blocks
- Downloads them
- Re-uploads to Cloudflare R2/S3
- Patches the Buildin blocks to reference the new external URLs
- Frees up your Buildin storage automatically
Option C: “Upload Proxy” (For Ongoing Use)
A lightweight web app or Buildin External Application plugin that:
- You drag files into it (or use a simple upload form)
- Files go directly to R2/S3
- Returns a Buildin-ready embed block or link you paste into your workspace
🎯 Our Recommendation
We’d recommend combining Options A + B:
- 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
- A migration script using Buildin’s API to scan your existing workspace and swap out large files to external storage
- 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
| Endpoint | Method | Description |
|---|---|---|
/v1/pages | POST | Create page/record |
/v1/blocks/{id} | GET | Get single block |
/v1/blocks/{id}/children | GET | Get block children |
/v1/blocks/{id}/children | PATCH | Append child blocks |
/v1/blocks/{id} | PATCH | Update block |
/v1/blocks/{id} | DELETE | Delete block |
/oauth/token | POST | Exchange access token (OAuth2) |
Bot Permissions Available
| Permission | Description |
|---|---|
readContent | Read workspace content |
insertContent | Create new content |
updateContent | Update existing content |
readUserWithEmail | Read user info (with email) |
readUserWithoutEmail | Read user info (without email) |
🤝 Next Steps
Whenever you’re ready, Giantkin, here’s what we need from you to move forward:
- Create a Bot token in your Buildin workspace (Settings → Integrations → Create Internal Plugin)
- Share the token with Frank so we can run a quick proof-of-concept
- 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.
| Pros | Cons |
|---|---|
| Already built and running | Files briefly touch our server memory |
| Zero effort from you | Requires 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
| Pros | Cons |
|---|---|
| Files never touch our server | Small additional build effort (half day) |
| Nothing for you to set up | Your 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.
| Pros | Cons |
|---|---|
| Maximum privacy — your infra only | You need a Cloudflare account (free) |
| We help you set it up | Small 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.
| Pros | Cons |
|---|---|
| 100% your control | Not automatic — requires manual runs |
| Nothing on any third-party infra | More 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