Start with a single messy Heptabase card
Okay, let me just say this: every time I open Heptabase with the intention of building something structured, I start with a total mess. One Heptabase card titled something like “Upcoming Blog Research (DO NOT TOUCH)” — and yes, I always end up touching it anyway. I dump everything in there: screenshots of Tweets, a URL to a random Notion doc, a half-written paragraph that probably came from a dream or a lunch conversation. Not pretty, but real 🙂
The point of this first card isn’t to be smart or organized. It’s to have a non-scary space to start the thought process. Think of it like a big shoebox for all your thoughts. I usually use bullet points to rapid-type every idea I have in my head. No order. No hierarchy.
Then — once I’ve hit that critical mass of “ugh I can’t even find things anymore” — I start pulling out separate cards and tagging them. One card might be for “tools I might link to,” another for “examples from real life,” another just labeled “bugs.” Doesn’t have to be perfect. If you think in trees and folders, this stage will feel chaotic. If you think like a cluttered desk person, welcome home.
Create a visual web of research topics
After I’ve fragmented my thoughts into smaller cards, I switch to whiteboard mode in Heptabase. Drag them into a cluster. This is important: don’t try to sort too soon. I drag timelines near timelines, thoughts near thoughts, and questions that overlap just sit next to each other awkwardly like a bad family reunion.
Heptabase links are bidirectional, but my brain isn’t, so I manually connect cards with arrows. Like, real directional arrows I draw with the connector tool. For example:
– “Zapier Webhooks Behavior” → points into → “Why Double-Fires Still Happen”
– “Substack Topic Alignment” ← from ← “Sentiment Jumps in Comments”
When a topic feels too big, I break it down. One card titled “ClickUp Automations Not Triggering” quickly became three cards when I realized I was mixing up real ClickUp failing vs my Zap being badly configured vs the webhook testing tool returning JSON I didn’t understand. I basically treat each cluster as a messy family of thoughts, not clean tags.
Tables don’t work natively in Heptabase like in Notion, but I started adding my own markdown-style tables inside text blocks on a card to track which ideas had sources:
“`
| Idea | Source Card | Status |
|——————————-|——————|————|
| Free blogging tools that failed | ToolsThatBroke | Drafted |
| SEO tweaks from indie hackers | HackerNotesMarch | Needs Edits |
| How I wrote 8 posts in 4 hours | TimeTrackingReview | Done |
“`
It’s low-tech but helps a ton when you revisit your whiteboard later and wonder what half your thoughts even meant 😛
Tag and link cards only after clusters make sense
Here’s a mistake I kept making — and by mistake, I mean I’ve made it at least five times in the last month — I tried to tag everything with perfect labels *while* I was still brainstorming. Bad idea.
Heptabase lets you tag any card, and it’s tempting to go wild — so you end up with tags like “marketing,” “AI,” “automations,” “reflections,” “blogplanq3” and they all kinda get muddied. What worked better for me was building the connected card clusters *first*, then stepping back and tagging the cluster as a set.
For example, I had one cluster touching on Zap testing failures. Cards inside included:
– “Webhook fired unexpectedly again”
– “Why does Zap history say ‘Success’ but email not sent”
– “Workaround using Delay Until fields”
I tagged the whole set with “Zapier troubleshooting,” and then smaller tags like “random bugs” or “retry logic” only went on the very specific cards. It meant when I searched later, I wouldn’t end up with 40 hits on the word “Zapier” but would get clusters with some internal coherence.
Same thing with backlinks. I used to auto-link any card that mentioned another card’s title, because hey, connection! But that created loops my brain couldn’t follow. Now I only manually link cards that form a *why* relationship. “I did this” → “because of this.” Anything else, I just use whiteboard proximity.
Split background research into three card types
I finally cracked a system that worked for separating background research from my own thoughts — after blurring them together in ten separate whiteboards :). I use three card types:
1. **Fact Cards** — these include direct quotes, screenshots, or stats from real sources (like official blogs, product pages, or support communities). Label them with the source name: e.g., “Notion Homepage Copy May”
2. **Interpretation Cards** — these are my takes, even if wildly speculative. I literally write “I *think* this feature is meant to…” to keep myself aware it’s not confirmed
3. **Action Cards** — steps I want to take, integrations I plan to try, or test posts to write
The fact that each card can link back and forth is great, but I still screw it up if I mix those categories. So I color-code them using the built-in Heptabase highlight system:
– Blue title = Fact
– Yellow title = Interpretation
– Green title = Action
There’s no semantic enforcement, just vibes 🙂 but it helped me stop confusing “I think this works” from “this definitely works.” Especially when I come back a week later wondering why I thought Airtable was going to solve my blog topic clustering…
Draft directly inside relevant research cards
Now here’s where things get fast. Instead of opening a new doc outside of Heptabase or switching to Notion (guilty), I start writing post ideas *inside* the Action cards. That way the research trails aren’t something I reference separately — they grow with the draft.
If I’m writing a post about “How to fix inconsistent Notion API behaviors,” I’ll find the Action card that says “Use Zapier delay + filter to prevent double-fire on item create,” and I’ll write the rough post beginning *right there.*
Then I look at what’s linked. Probably links to Fact cards like “Notion API rand_id bug forum post” or Interpretation cards like “Why Notion may duplicate triggers due to ghost DB entries.” I reference these directly as I write, then clean up later.
I never export directly from Heptabase into WordPress or Ghost. That’s asking for formatting pain. Instead, I just copy the clean draft text out of Heptabase, paste it into a local Markdown editor to do spacing checks, and only then paste into my CMS. Why this step? Because Heptabase inserts smart formatting around certain snippets, and it can mess up styled text in markdown-based editors.
Use timestamped test journals for broken workflows
This is my secret weapon — and it started as a joke. I have a Heptabase card called “Broken Stuff I Keep Testing TODAY” and I date each section. Like a daily test log. Looks like this:
“`
=== May 2nd ===
– Retested the same webhook from ChatGPT plugin → Zapier → Slack.
– Webhook fired once. Zap said success. Slack: nothing?
– Added logging step. Found that ChatGPT payload was empty on second test?
=== May 3rd ===
– Tried using Make instead. Same result. Seems like $db_id is blank on repeat calls
“`
I don’t clean these up. The chaos *is* the insight. A week later when I forget why I changed a Zap that now seems overcomplicated, I trace it back to these reality logs.
Adding timestamps is simple: just type “===” before the date. Doesn’t link to anything fancy. But these timeline-style cards have saved me more times than fancy diagrams.
Export for writing only when the structure clicks
I’ve tried exporting too early — copying a raw dump of cards into a document expecting to just “write it up.” Big mistake. I now wait until the structure makes intuitive sense *on the whiteboard*. That means:
– All cards are grouped meaningfully (not accurately, just meaningfully)
– Arrows or text links show cause-and-effect between ideas
– At least one path feels like a thread I can follow
Then and only then, I duplicate the key Action cards and rename the copies with a title like “Draft Post Webhook Drift.” Inside that card, I collapse all the earlier clutter (Heptabase has a nice toggle feature on bullet collapses) and start freewriting.
The beauty here is the research never goes away. It doesn’t get archived into some read-only document. It lives right below the draft itself. So if I forget why a headline worked or what claim I wanted to prove — it’s 3 cards and 1 click away.
Reset the mess every 3 weeks with a clearout map
After about 3 weeks, my Heptabase has turned into the digital equivalent of a chalkboard that’s been erased and redrawn twelve times. Tags are stale. Links point to dead ideas. Drafts are half-done. Feels like file drawer purgatory ¯\_(ツ)_/¯
So I build a Clearout Map. One board titled “Clear May 2–18” with three lanes:
– **Archive**: done, used, or dead drafts
– **Refactor**: needs to be refolded into simpler structures or retagged
– **Keep Alive**: still in progress or still feels exciting
I physically move cards between the lanes. The friction is good. It makes me confront my own overcomplications. Sometimes an entire chain of 9 linked cards can be replaced with one bullet: “This webhook bug wasn’t real.”
No automation here. No AI sorting. Just taking the time to sweep the mental workshop.