Every venture needs internal tools. A CRM, an inventory dashboard, a reporting system, an operations tracker. Most founders either pay developers to build custom tools or subscribe to 5–8 SaaS products to cover the same functionality at ₱20,000–₱80,000 per month.
We use Supabase as the database and API layer, n8n as the automation and workflow layer, and either a simple Retool/Appsmith front end or a custom Next.js dashboard for the interface. The combination handles 80% of the internal tooling needs across our 8 ventures. Here is the practical guide.
By Diosh Lequiron, PhD, MBA, CSM — President & CEO, HavenWizards 88 Ventures OPC Last updated: May 9, 2026
Why Supabase + n8n Works for Internal Tooling
The standard internal tool problem: you need a database, an API to access that database, authentication, and some way to trigger actions when data changes. This used to require either a custom backend build or a combination of tools that don't talk to each other cleanly.
Supabase solves the database, API, and auth problem in one platform. n8n solves the automation and workflow problem. Together they cover the backend infrastructure of most internal tools without requiring a dedicated backend developer.
What Supabase provides:
- PostgreSQL database (real SQL, not a limited NoSQL approximation)
- Auto-generated REST API for every table (instant read/write access with auth)
- Real-time subscriptions (when a row changes, connected clients are notified)
- Row Level Security (RLS) — control exactly what each user can see and modify
- Storage (for files, images, documents)
- Auth (email/password, magic link, OAuth)
What n8n provides:
- Workflow automation triggered by Supabase webhooks, schedules, HTTP requests
- Data transformation between Supabase and external services
- Notification delivery (email, SMS, Slack)
- Integration with payment gateways, logistics APIs, and any tool with an HTTP API
What you still need:
- A front end for the data interface (Retool, Appsmith, or a simple React/Next.js app)
- If you're non-technical: a developer for the front end, or a no-code tool like Retool
The 5 Internal Tools We Built with This Stack
Tool 1 — Operations Dashboard (All Ventures)
What it does: Single-pane view of key metrics across all active ventures. Order counts, pending tasks, automation error counts, team alerts.
How it works:
- Supabase: Each venture has tables for its key operational data. The dashboard queries across multiple tables using Supabase views (SQL views that aggregate data from multiple tables into a single queryable interface).
- n8n: Runs every hour to aggregate metrics, write summary records to a
daily_metricstable, and alert on threshold breaches (error count > 5, order processing time > 2 hours, etc.) - Front end: Custom Next.js dashboard. In the early version, we used Retool to build this in hours, then migrated to a custom dashboard for more control.
Build time: First Retool version: 4 hours. Custom Next.js version: 2 days with one developer.
Cost: Supabase free tier + n8n self-hosted infrastructure = ₱0 for the tool itself beyond our existing server costs.
Tool 2 — Farmer CRM (Bayanihan Harvest)
What it does: Database of all registered farmers with their crop data, harvest schedules, order history, and communication log.
How it works:
- Supabase:
farmerstable with full profile,cropstable linked by farmer_id,orderstable,communications_logtable. - n8n: Farmer registration webhook writes to
farmers→ triggers onboarding SMS → creates first crop profile. Communication log entries are created automatically when SMS notifications are sent. - Front end: Retool interface for the operations team. Allows search by barangay, crop type, or harvest month. Can manually trigger SMS from the interface.
Build time: 2 weeks including data migration from the original Google Sheets tracking.
What we learned: The Retool interface was fast to build but slow to load with 300+ farmer records. We added Supabase indexes on the columns most frequently used in WHERE clauses (barangay, primary_crop, status). Query time dropped from 800ms to under 100ms.
Tool 3 — Content Pipeline Tracker (HW88 Internal)
What it does: Tracks every piece of content from brief to published, including pipeline phase, word count, review status, and publish date.
How it works:
- Supabase:
content_piecestable. Each row is one article with columns: title, slug, status (brief | draft | review | approved | published), word_count, author, target_publish_date, published_at. - n8n: When a content brief is created → writes a record to content_pieces with status="brief". When draft is complete → status updated to "draft". When review is complete → status updated to "review" or "approved".
- Front end: Simple Retool dashboard showing all pieces by status, filtered by month.
What the team uses it for: Weekly content planning meetings. The dashboard shows what's in what phase, what's overdue relative to target publish date, and what was published in the last 30 days.
Tool 4 — Inventory Management (AHA eCommerce)
What it does: Real-time inventory count across SKUs, with automatic reorder triggers and discrepancy alerts.
How it works:
- Supabase:
inventorytable (sku, quantity_on_hand, quantity_reserved, reorder_threshold, reorder_quantity),inventory_transactionstable (every receipt, sale, adjustment, and return is logged as a transaction) - n8n: Every 30 minutes, polls Shopify API for recent orders → deducts sold quantities from
inventory→ checks if any SKU is at or below reorder_threshold → if yes, creates a reorder request and sends Slack notification. - Front end: Shopify admin for the storefront view; Retool dashboard for the warehouse view.
The problem this solved: We had a SKU reach zero inventory on Shopify while our internal Supabase count showed 12 units. The discrepancy was from a manual adjustment that updated Supabase but not Shopify. Fix: n8n now syncs both directions — Shopify is the source of truth for the storefront; Supabase is the source of truth for warehouse. The sync runs every 30 minutes; discrepancies flag for human review rather than auto-correcting.
Tool 5 — Venture Performance Report Generator
What it does: Every Monday morning, generates a performance summary for each active venture and posts it to our leadership Slack channel.
How it works:
- Supabase: Each venture has a
weekly_metricstable that operations teams populate each Friday. - n8n: Runs at 7 AM Monday → queries each venture's
weekly_metricsfor the most recent entry → formats the data into a structured Slack message → posts to the #venture-ops channel.
What it replaced: A manual process where someone assembled a metrics spreadsheet from 4 different systems every Monday morning. That took 45–60 minutes. The automated version takes 0 minutes and is more consistent.
How to Start: A First Internal Tool in One Day
If you're non-technical but want to understand the capability, this is the path to a first internal tool in one working day.
What you'll build: A simple contact/lead tracking database with automatic Slack notifications when a new lead is added.
Tools needed: Supabase (free), n8n Cloud (free trial), Slack.
Step 1 (30 minutes) — Create a Supabase project and table:
- Sign up at supabase.com. Create a new project.
- Go to Table Editor → Create a new table called
leads. - Add columns: name (text), email (text), company (text), inquiry_type (text), created_at (timestamp with default now()).
- Go to API → your table now has a REST API endpoint. Copy the URL and your anon key.
Step 2 (30 minutes) — Create an n8n workflow:
- Sign up at n8n.io (Cloud) or set up self-hosted.
- Create a new workflow.
- Add a Webhook trigger node → copy the webhook URL.
- Add a Supabase node → connect with your project URL and service role key → Action: "Insert" → table: "leads" → map the incoming webhook data to the table columns.
- Add a Slack node → connect your Slack workspace → post to a channel with a message that includes the lead's name and inquiry type.
Step 3 (30 minutes) — Connect a form:
- Create a Google Form or Tally.so form with the fields you want (name, email, company, inquiry type).
- Set the form to send submissions to your n8n webhook URL (Google Forms: use a Google Apps Script; Tally.so: native webhook support).
Test it. Submit the form. The lead appears in Supabase. The Slack notification arrives. You have a working lead tracking system with no SaaS subscription.
Total cost: ₱0 (within free tier limits).
Supabase Features Most Founders Miss
Row Level Security (RLS): This is how you control who can see what. With RLS, a sales team member can see only their own leads; a manager can see all leads. This is built into Supabase using SQL policies — no separate permission system required. Enable RLS on every table that contains any sensitive data.
Realtime: Supabase tables can push updates to connected clients in real time. When a new order comes in, a connected dashboard updates immediately without polling. We use this for the live operations dashboard during high-volume periods.
Edge Functions: For simple server-side logic (webhooks that need validation before data insertion), Supabase Edge Functions run TypeScript/JavaScript in a Deno runtime close to your database. We use these for webhook signature validation before letting external data touch our tables.
Database Webhooks: Supabase can call an n8n webhook automatically when a row is inserted, updated, or deleted. This eliminates the need for polling — n8n is notified the moment data changes, rather than checking every 5 minutes.
Frequently Asked Questions
Do I need a developer to build with Supabase and n8n? For Supabase: You need SQL knowledge to design tables and write queries. Basic SQL is learnable in 2–3 days. For n8n: non-technical users can build simple workflows; complex workflows with code nodes need a developer. For the front end: you need a developer (or use Retool/Appsmith for a no-code interface).
How does Supabase compare to Firebase? Supabase uses PostgreSQL (relational, SQL). Firebase uses Firestore (document, NoSQL). For structured business data with relationships (orders → customers → products), Supabase's relational model is easier to query correctly. Firebase is better for real-time mobile apps with simple data structures.
What's the Supabase free tier limit? 500MB database storage, 5GB bandwidth, 50,000 monthly active users for auth, 500MB storage. Sufficient for development and early production. Paid plans start at $25/month for growing projects.
Can Supabase handle production load? Yes. Supabase is PostgreSQL. Companies process millions of rows per day on it. Row Level Security and proper indexing are the critical operational requirements for production use.
What happens if n8n goes down? Workflows don't execute during downtime. For mission-critical workflows, use n8n's built-in queue mode or add retry logic. For truly critical operations, add a manual fallback process.
Getting Started Checklist
- Supabase account created and first project set up
- Identify one internal process that requires data storage + notification
- Design the table: what fields, what data types, what relationships
- Enable Row Level Security before adding any sensitive data
- Connect n8n with Supabase service role key
- Build trigger → action workflow for the identified process
- Test with real data, not sample data
- Add error handling: notification to Slack if the workflow fails
- Build the read interface: Retool query or simple frontend
- Document the tool for the team: what it does, how to use it, who to contact if it breaks
