From a890de31da5792508a5fd67774e7ea74944615ae Mon Sep 17 00:00:00 2001 From: Shahid Raza Date: Sat, 9 May 2026 11:58:13 +0530 Subject: [PATCH] =?UTF-8?q?chore(social):=20rewrite=20=E2=80=94=20develope?= =?UTF-8?q?r-blog=20voice,=20visual=20variety,=20Kalam=20body?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Third attempt at the same post. Two prior attempts both wrong: v1 (for-the-ones-who-lose-things): drifted into marketing — benefits lists, audience segmentation, CTA verbs. v2 (what-we-hand-to-machines): overcorrected into a beige philosophy essay — Cormorant Garamond italic paragraphs, no code, no diagrams, no opinions. What this version (another-notes-app) actually does: - Body font is now Kalam (handwritten but readable for prose). Caveat is reserved for short accents only (1-3 word emphasis). Cormorant Garamond is removed from body usage; only the inode wordmark still uses it. - Inter sans-serif used for big page titles and stack-card names to give visual variety against the Kalam paragraphs. - Visual variety on every page: 2 terminal blocks (demo + install), 1 sketchy embedding scatter visualisation, 1 architecture diagram with adapter pattern boxes + arrows, 1 stack-card grid, hand-drawn ✗ marks for the pain pages. - Voice is dry-witted developer talking to developer. Real opinions, real takes on Notion / Obsidian / 1Password without punching down. "please don't ask me to add a kanban board." kind of energy. - Real terminal output for `inode add` / `inode ask` (page 4) and real install commands you can copy-paste (page 10). SKILL.md updated to reflect both lessons: - Type discipline section now mandates Kalam for body, Caveat accent-only, Cormorant banned for body. Includes the Google Fonts string to copy. - New "Visual variety" section requires at least 3 of: terminal block, architecture diagram, stack-card grid, comparison page, embedding scatter, hand-drawn pain list. - Voice rules section lists banned phrases and the dry-wit register. - Counter-examples section points at both v1 and v2 by name with a one-line diagnosis of each, so future invocations of the skill know what to avoid. --- .claude/skills/social-post/SKILL.md | 280 +++-- social/another-notes-app.html | 1341 ++++++++++++++++++++++ social/for-the-ones-who-lose-things.html | 1190 ------------------- 3 files changed, 1538 insertions(+), 1273 deletions(-) create mode 100644 social/another-notes-app.html delete mode 100644 social/for-the-ones-who-lose-things.html diff --git a/.claude/skills/social-post/SKILL.md b/.claude/skills/social-post/SKILL.md index 47111e2..cc08c13 100644 --- a/.claude/skills/social-post/SKILL.md +++ b/.claude/skills/social-post/SKILL.md @@ -1,100 +1,214 @@ --- name: social-post -description: Generate a paper-and-ink carousel HTML post for the inode project, focused on story and meaning rather than feature pitches. Use when the user wants to share what the project is FOR, who it's FOR, or why it exists — not what it does or what's coming next. +description: Generate a paper-and-ink carousel HTML post for the inode project, in the voice of a developer talking to other developers — dry wit, real code, opinionated takes, and visual variety (terminal blocks, architecture sketches, stack callouts). Use when the user wants to share what the project is and convince a developer to spend 5 minutes on it. NOT for marketing pitches and NOT for plain philosophy essays. --- -# Social post generator (story-style) +# Social post generator (developer-blog style) ## What this skill is for -Generate a 1080×1080 carousel HTML in `social/` for posts about *meaning* — -what the tool exists for, who it's for, why anyone would care. The reader -is the protagonist; the project is the supporting character. +A post a developer reads through because: + +1. They recognize the pain in the first 2 pages. +2. The author shows technical chops fast (real code, real stack, real + commands). +3. They can *see* the thing working (terminal output, architecture). +4. The voice has personality — dry wit, opinions, mild sarcasm — without + being a marketing pitch or a beige philosophical essay. + +If a developer would close the tab thinking *"yeah, I'd actually try +this,"* the skill did its job. ## What this skill is NOT for -- **Dev logs / debugging stories** → write manually using `social/day-2-debug-and-ship.html` as the model -- **Feature launches / roadmaps** → use `social/post-templates.html` as the model -- **Technical breakdowns** → not the right tone - -If the user asks for one of those, decline this skill and offer the -manual path instead. - -## Process - -1. **Get the angle.** Ask the user in one sentence who the reader is — - not the demographic ("developers"), the *moment* ("the dev who lost a - stripe key at 11pm"). Skip if they've already given it. If they say - "you decide," default to: *the engineer who has 7 untitled notes apps, - none trusted.* - -2. **Read the design system.** Open `social/post-templates.html` and - `social/day-2-debug-and-ship.html`. Reuse verbatim: - - The entire ` + + + +

inode · another notes app · binary.semaphore

+ +
+ + +
+ + + + + + + +
+ +
+ +
+ + a CLI knowledge base +
+ +
+ +
+ another
+ notes app. +
+ +
+ no, but seriously — + read the next page. +
+ +
+ a single Go binary · runs offline · finds your stuff + using the same trick ChatGPT uses, except your stuff + stays on your laptop. +
+ +
+ + +
+ +
+ + + +
+ +
+ +
+ + it's 11pm — +
+ +
+ +
+ you've been here. +
+ +
+ +
+ ⌘K in Notion → "stripe" → 47 hits, none of them
+ the actual key. +
+
+ +
+ +
+ ⌘F in Obsidian → grep through 200 markdown files → still nothing. +
+
+ +
+ +
+ ssh prod, deep breath, regenerate the token
+ for the third time this quarter. +
+
+ +
+ +
+ "I'll just write it down" → opens 6th notes app this year. +
+
+ +
+ if any of this stings — + keep reading. +
+
+ + +
+ +
+ + + +
+ +
+ +
+ + earning the next 9 pages +
+ +
+ +
+ I know you scroll past "AI notes" posts. +
+ +
+ I do too. +
+ +
+ +
+
so before you do —
+
+ this is a CLI. it's local. + it doesn't talk to the cloud unless you tell it to. + and unlike most things with "AI" on the label, + this one actually finds your stuff. +
+
+
+ +
+ ↳ next page: a screenshot. proof, not promises. +
+
+ + +
+ +
+ + + +
+ +
+ +
+ + two commands. +
+ +
+ +
+ proof, not promises. +
+ +
+ save anything in plain English. ask the same way. +
+ + +
+
+ + ~/notes — inode add +
+
+ $inode add "stripe test key sk_test_9xKl4mC7f, expires Aug" + category=credentials  tags=[stripe, test, payment] + sensitive · AES-256-GCM encrypted · saved as #a1f4d9c2 +
+
+ +
+ ↳ a few weeks later, you forgot the exact phrasing. +
+ + +
+
+ + ~/notes — inode ask +
+
+ $inode ask "the stripe key for staging" + stripe test key, expires Aug + sk_test_••••••••mC7f (use --reveal to unmask) + ── matched 1 note · #a1f4d9c2 ── +
+
+ +
+ no folders. no tags. no schema. you just typed. +
+
+ + +
+ +
+ + + +
+ +
+ +
+ + in case you're wondering — +
+ +
+ +
+ yes, I tried
everything else. +
+ +
─── ─── ─── ─── ─── ─── ─── ─── ─── ─── ─── ─── ───
+ +
+ +
+ Notion — great for meetings. + terrible for memory. its search treats your knowledge graph + as a haystack you funded. +
+
+ +
+ +
+ Obsidian — wants me to learn a graph database. + I just want my keys. +
+
+ +
+ +
+ 1Password — perfect for passwords. + not for the bash command from last June. +
+
+ +
+ +
+ Apple Notes — where memories + go to be slowly forgotten. +
+
+ +
+ eventually I wrote my own. +
+
+ + +
+ +
+ + + +
+ +
+ +
+ + the trick, in 60 seconds +
+ +
+ +
+ the only ML idea
you need. +
+ +
+ Search engines look for letters. You look for meaning. + Embeddings + are how you teach a computer that "meaning" is just a list of 1024 numbers. +
+ + +
+ + + + + a 2-D slice of a 1024-D space + + + + + + + credentials + + + + + + + bash commands + + + + + + + decisions + + + your query "stripe key" lands here → + + +
+ +
+ that's the whole trick — + notes that mean similar things land near each other, even if they share no words. +
+
+ + +
+ +
+ + + +
+ +
+ +
+ + how it's wired +
+ +
+ +
+ under the hood. +
+
+ adapter pattern. swap any layer without touching core. +
+ + + + + + + + CLI · cmd/ + add · ask · list · delete + + + + + + + + + + Core · internal/core/ + RAG pipeline · encryption · tagger + + + + + + + + + + + + + + + + DB Adapter + SQLite + sqlite-vec + + + + + Embedding + Ollama · Voyage + + + + + LLM + Ollama · Claude + + + + all on your machine, by default + + + interfaces, not services. + swap SQLite for Postgres later + without rewriting core. + + + + + Phase 1 ships today. + Phase 2 (multi-user / Postgres) + drops in via the same interface. + + +
+ + +
+ +
+ + + +
+ +
+ +
+ + opinionated choices +
+ +
+ +
+ the stack. +
+ + +
+ +
+
Go
+
single binary · cross-compile · no runtime to install
+
+ +
+
SQLite + sqlite-vec
+
vector index in a regular file. scp it if you want.
+
+ +
+
Ollama
+
LLM and embeddings, both local. free. offline.
+
+ +
+
AES-256-GCM
+
for the secrets. Argon2id derives the key.
+
+ +
+
OS Keychain
+
for the key that decrypts the keys. mac · linux · win.
+
+ +
+
no Postgres.
+
no docker. no account. no API key needed to start.
+
+ +
+ +
+ total cost: $0. total dependencies you can't see: 0. +
+
+ + +
+ +
+ + + +
+ +
+ +
+ + honest scope +
+ +
+ +
+ what it isn't. +
+ +
+ + not a Notion replacement. + Notion is a Notion replacement. +
+ +
+ + no team mode. + one machine, one user. teams are someone else's problem. +
+ +
+ + no auto-import from your apps. + dumb in, dumb out. you put things in, you get things out. +
+ +
+ + no waitlist. no marketing site. + no growth team. +
+ +
+ + no telemetry. + I genuinely don't know if anyone is using this. +
+ +
+ ↳ the trades are the point. +
+
+ + +
+ +
+ + + +
+ +
+ +
+ + if you want to try. +
+ +
+ +
+ five minutes. +
+
+ copy-paste, in order. +
+ +
+
+ + step 1 — local LLM + embeddings +
+
+ $brew install ollama + $ollama pull llama3.2 + $ollama pull nomic-embed-text +
+
+ +
+
+ + step 2 — the binary +
+
+ $go install github.com/shahid-io/inode@latest +
+
+ +
+
+ + step 3 — try it +
+
+ $inode add "your first note" + $inode ask "what was that thing" +
+
+ +
+ no API key. no account. no migration script. +
+
+ + +
+ +
+ + + +
+ +
+ +
+ + the only earnest page. +
+ +
+ +
+ the honest part. +
+ +
┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄
+ +
+ I built this for myself.

+ + I'm sharing it because someone else might recognize the shape + and want the same thing — not because it's a startup, + not because there's a waitlist, not because I have a Notion + template to upsell.

+ + The only thing I want is for my notes to outlive + my employer's SaaS bill. +
+ +
+ + +
+ +
+ + + +
+ +
+ +
+ + that's all. +
+ +
+ +
+ github.com/shahid-io/inode +
+ +
+ MIT +  ·  + no telemetry +  ·  + you owe me nothing +
+ +
+
─────────────────────────────────────────
+
+ if it helps + — open an issue, send a PR, or just
+ read the source. it's not very long. +
+
+ +
+ please don't ask me to add a kanban board. +
+ +
+ + +
+ +
+ + + + + + diff --git a/social/for-the-ones-who-lose-things.html b/social/for-the-ones-who-lose-things.html deleted file mode 100644 index e028820..0000000 --- a/social/for-the-ones-who-lose-things.html +++ /dev/null @@ -1,1190 +0,0 @@ - - - - - - inode — for the ones who lose things · binary.semaphore - - - - - - - - - - -

inode · for the ones who lose things · binary.semaphore

- -
- - - - ← carousel-ready · or grab one below - -
- - - - - - - -
- -
- -
- - a quiet manifesto -
- -
- -
- this is — -
- -
- - for the ones
- who lose things. -
- - - -
- -
- keys, decisions, that one command,
- the link you swore you'd remember —
- a tool for that. -
- -
- - -
- -
- - - -
- -
- -
- - it's 11pm — -
- -
- -
- three scenes you've lived. -
- - -
-
i.
-
- a deploy needs a stripe key right now. you wrote it down somewhere - — slack DM? 1Password? a sticky? — but the search you try gives you - last quarter's invoices instead. -
-
- - -
-
ii.
-
- someone asks "why did we pick postgres again?" — - and the rationale exists, you typed it out in a thread three months - ago. you can't find the thread. -
-
- - -
-
iii.
-
- the one bash command that fixed the thing — ffmpeg - with the right twelve flags. you saved it. you have no idea where. -
-
- -
- the same shape, every time. -
-
- - -
- -
- - - -
- -
- -
- - it's not your fault. -
- -
- -
- what's actually happening — -
- -
- knowledge work means
- producing knowledge
- faster than we can
- keep it. -
- - - - - -
- every doc, decision, debugging note becomes
- a tiny tributary that joins a river you can't search.
- it's a tools problem, not a discipline problem. -
-
- - -
- -
- - - -
- -
- -
- - the gap — -
- -
- -
- you don't remember the words. -
- -
- you remember the shape — - what it was for, how it felt, the rough thing you were trying to do. -
- - -
-
- -
-
keyword search asks —
-
- "what exact letters did
you type in your note?" -
-
-
-
- -
-
semantic search asks —
-
- "what did you mean,
roughly?" -
-
-
-
- -
- one of those two questions matches how brains actually work. -
-
- - -
- -
- - - -
- -
- -
- - two ML ideas, plain words -
- -
- -
- what AI actually changed. - - - -
- - -
-
-
-
embeddings —
-
- a way to turn meaning into a number. two phrases that mean similar - things end up close together in space, - even if they share no words. -
-
-
- - -
-
-
-
LLMs —
-
- a way to read fuzzy intent. you ask in your words, the model - translates between how you remember - and what you wrote down. -
-
-
- -
- -
-
three years ago —
-
- this needed a research budget. today both pieces run on a laptop, - for free, on a model you can download tonight. -
-
-
-
- - -
- -
- - - -
- -
- -
- - a confession — -
- -
- -
- i built this because i couldn't trust
- my own memory anymore —
- and the alternatives wanted me to
- loan my brain to a server. -
- -
- every cloud notes app is a quiet bargain: you get search, they get - your knowledge graph. for some things — meeting notes, brainstorms — - that bargain feels fine. for the things you actually depend on, - it doesn't. -
- -
- - -
- -
- - - -
- -
- -
- - posture, not feature -
- -
- -
- local-first isn't a marketing word here. -
-
- it's the thing that's load-bearing. -
- -
-
- - - your notes live on your machine — a single SQLite file you can read with any tool. - -
-
- - - sensitive values are AES-256-GCM encrypted at rest; the key sits in your OS keychain. - -
-
- - - the LLM and the embedding model can run on your laptop too — Ollama, free, offline. - -
-
- - - if a company shuts down tomorrow, you still have it. - -
-
- -
- a tool that doesn't outlive its dependencies isn't yours. -
-
- - -
- -
- - - -
- -
- -
- - no jargon — -
- -
- -
- how it actually works. - - - -
- -
-
1.
-
-
you save the way you'd say it —
-
- no folders, no tags, no schema. just type the thing. the model reads - it once, picks a category and tags, encrypts the secrets, and stores - a vector of "what this means" alongside. -
-
-
- -
-
2.
-
-
you ask the way you'd ask —
-
- your question gets turned into the same kind of vector. SQLite finds - the closest matches. the LLM reads them and tells you the answer in - your words. -
-
-
- -
-
3.
-
-
nothing leaves your laptop —
-
- unless you choose otherwise. defaults run Ollama locally. no API - keys required to start. -
-
-
- -
- that's it. that's the whole thing. -
-
- - -
- -
- - - -
- -
- -
- - the honest part -
- -
- -
- what this doesn't do. -
- -
- a tool that's honest about its limits is one you can actually use. -
- -
-
- - - it's not a Notion replacement. there's no rich text, no kanban, no calendars. - -
-
- - - there are no team vaults yet. one person, one machine. - -
-
- - - it can only know what you told it. there's no auto-import from your apps. - -
-
- - - local LLMs are slower than cloud LLMs. that's a fact, not a bug. - -
-
- -
- these are the trades. you should know them up front. -
-
- - -
- -
- - - -
- -
- -
- - if any of these are you — -
- -
- -
- this was built for — -
- -
-
-
-
- the dev who has seven untitled notes apps, none trusted. -
-
-
-
-
- the freelancer juggling client API keys across 4 stacks. -
-
-
-
-
- the IC whose decisions live in slack threads they can't search. -
-
-
-
-
- the on-call engineer who needs that one runbook, fast. -
-
-
-
-
- anyone who's regenerated a token because they couldn't find the original. -
-
-
- -
- - -
- -
- - - -
- -
- -
- - small reliefs — -
- -
- -
- what you stop carrying. -
- -
- ·  "where did i write that down."
- ·  "is that key in slack DMs or 1Password."
- ·  "i'll just regenerate it."
- ·  "i swear past-me knew this." -
- -
- it doesn't fix you.
- it just stops asking you to remember things you can't. -
- -
- - -
- -
- - - -
- -
- -
- - if any of this rang true — -
- -
- -
- this is being built
- in public · in the open ·
- at zero cost. -
- -
- no waitlist. no marketing site. no telemetry.
- a single binary, an ollama model, your own machine. -
- - -
- -
-
try it · watch it · break it ·
-
github.com/shahid-io/inode
-
- v0.1.0+ -
- -
- ↳ thanks for staying through 12 pages. -
- -
- - -
- -
- - - - - -