01App shell · light · IdeaFlow Team 02App shell · dark mode 03Group settings · members 04Create group dialog 05Tag detail · #competitor 06Promote tag to team 07Note inline action menu 08Autocomplete · variations 09Inline hashtag · A/B/C 10Slack import · all states 11Empty states 12Compact sidebar 13Group context bar (alt) 14Notification preferences 15Onboarding · first group
01 App shell · light · IdeaFlow Team stream selected Tab row, right detail panel showing members + group meta
IF
IdeaFlow Team
8 members · 214 notes shared with this group · you are an owner
📌 group: IdeaFlow Team × + tag, author, date newest first
J Jacob Cole you 2 hours ago

Met with the team at Lattice today. Building basically the same hashtag-based capture we are, but for HR. IF#competitor IF#customer — could be both. Showed interest in OEM-ing the editor.

Action items: send the API doc, follow up Tuesday.

IFIdeaFlow Team ·2 replies
S Sarah Kim yesterday

Design review for the new sidebar — see Figma. Pinged @jacob + @david for sign-off. IF#design

IFIdeaFlow Team
J James Park ↗ Slack · #biz Apr 12 2024

also #biz #wins awesome IF#customer IF#userinterview with Founder's Pledge — 70-person org, pays $30k/yr for Salesforce. Inline-tag UX was the deciding factor. IF#salesforceuser

IFauto-shared via tag ·4 thread replies
02 App shell · dark mode · same layout, dark palette Notestream supports dark via .dark class on root — same tokens flipped
IF
IdeaFlow Team
8 members · 214 notes
J Jacob Cole you 2h

Met with Lattice. IF#competitor IF#customer — interested in OEM.

IFIdeaFlow Team
J James Park ↗ Slack Apr 12 2024

Founder's Pledge interview. IF#customer IF#userinterview

IFauto-shared via tag
03 Group settings · members, roles, invite, danger zone Opens from group row gear · or Settings tab in stream
IF
IdeaFlow Team
8 members · 44 hashtags · 214 notes shared
Identity
How this group appears to members.
IF
Name
Description
Handle
Members
8 people · 1 owner, 5 editors, 2 viewers
J
Jacob Cole
Owner
S
Sarah Kim
Editor
D
David Liu
Editor
J
James Park
Editor
A
Anika Roy
Viewer
K
Kim Mendez
Pending
Hashtags owned by this group
Notes you tag with these auto-share to IdeaFlow Team. Remove a tag to make it private again.
IF#customer × IF#competitor × IF#design × IF#roadmap × IF#userstory × IF#potentialhire × IF#bug × IF#tweak × + 36 more
Import from Slack →
Danger zone
Irreversible. Notes already shared remain visible to members.
Archive group
Hides from sidebars; can be unarchived. Notes stay shared.
Leave group
You will lose access to group-shared notes you don't own.
Delete group
Removes the group permanently. All members lose access. Notes revert to private.
04 Create group · dialog Triggered by [+] on Groups section header · or [+ New group] in share picker
New group
A group is a shared stream of notes. You can add tags + members later.
IF
Name
Members will see this name in their sidebar.
Icon
IF
F
BC
FP
G
B
IF
+
Pick a color · or upload image · or use an emoji 🦊
Add members (optional)
They'll receive an email invite. You can add more anytime.
Default privacy
2 invites will be sent.
05 Tag detail · #competitor (owned by IdeaFlow Team) Opens from clicking a tag in sidebar or in a note body
#competitor
IF Owned by IdeaFlow Team
46 notes 8 contributors created Oct 2022 most recent 2 hours ago
🏷 tag: #competitor × group: IdeaFlow Team × newest first
J Jacob Cole you 2h

Lattice — same hashtag-capture but for HR. IF#competitor IF#customer

D David Liu ↗ Slack Mar 2 2024

Roam dropped smart-blocks — different framing, same atomic-capture. IF#competitor

S Sarah Kim ↗ Slack Feb 14 2024

Mem dropped pricing. Now free up to 10 notes/day, then $10/mo. IF#competitor IF#pricing

06 Promote tag to team · flow for converting a private tag to a group tag Two states · shown when user picks "Change group" on a tag with no defaultGroupId
Move #strategy to a group?
This tag is currently private. Moving it shares all 23 existing notes that use this tag.
Group
What happens to existing notes
8 members will gain access to these notes.
Moved
#strategy now belongs to IdeaFlow Team. 23 notes shared.
🦊
Notify the group?
Members will see a sidebar badge "23 new notes" on IdeaFlow Team — or you can stay quiet.
What you've done
✓ Set SharedHashtag(#strategy).defaultGroupId = ideaflow_team
✓ Backfilled 23 notes with NoteSharing(GROUP, ideaflow_team, VIEWER)
✓ Indexed tag in IdeaFlow Team sidebar
07 Note inline action menu · share / change group / privacy Opens from ⋯ on note hover · primary surface for changing a note's group
J Jacob Cole you 2 hours ago

Met with Lattice. IF#competitor — could OEM the editor.

IFIdeaFlow Team

Why this menu

The menu is the primary surface for changing a note's group membership after it's been written. Multi-select supported — a note can live in multiple groups.

Interaction notes

  • Checkbox-style group rows — toggle to add/remove from group
  • "Make private" removes from all groups in one click
  • "Publish publicly" is mutually exclusive with private
  • Auto-shared-via-tag notes show the tag as the reason in a tooltip when hovering the group check
  • Removing a group requires confirm if the note was auto-shared via a team tag (else it'd re-share next render)
08 Hashtag autocomplete · variations Same component, three states · light · dark · cross-group
Talked to a prospect. They want something that's not a giant wiki. Following up Friday. #comp
IF
#competitor 46 usesIdeaFlow Team
IF
#competitive-research 8 usesIdeaFlow Team
🔒
#compose 3 usesprivate to you
BC
#completed-read 12 usesBook Club
↑↓ nav insert team glyph = auto-shares
Need to schedule follow-up with their VP eng — #book
BC
#bookclub-may 4 usesBook Club
IF
#book 44 usesIdeaFlow Team
🔒
#bookmark 9 usesprivate to you
↑↓ nav create new tag
09 Inline hashtag rendering · three approaches side-by-side Open question from v1 — pick one (or a hybrid) before shipping
A · Always show glyph
Met with Lattice. IF#competitor — same hashtag-capture for HR. Showed interest in IF#customer. Action: send IF#design doc.
Pros: attribution always clear · scannable at a glance
Cons: heavy when many team tags in a note · visual repetition
B · Glyph on hover
Met with Lattice. IF#competitor — same hashtag-capture for HR. Showed interest in IF#customer. Action: send IF#design doc.
Pros: clean default · attribution on demand
Cons: hidden info · doesn't work on touch · less skim-friendly
(hover a tag above to preview)
C · Underline only
Met with Lattice. #competitor — same hashtag-capture for HR. Showed interest in #customer. Action: send #design doc.
Pros: minimal visual weight · still distinguishable from private tags
Cons: attribution requires hover/click · weakest signal
Recommendation: A on first occurrence per note, then collapse to C (underline) for subsequent uses of the same tag in the same note. Best of all three — keeps attribution visible without the visual repetition.
10 Slack import · Config → Dry run → In progress → Complete Four states. Lives in Settings → Import or as a wizard route

State 1 · Config

Source: ~/Downloads/slack-export/

110,083
messages scanned
2,880
with hashtags
~14k
+ thread replies
1,202
distinct hashtags

Target group

IF
IdeaFlow Team
8 members

Scope

Author mapping

7 of 9 Slack users matched.

✓ jacob@ideaflow.io → Jacob Cole
✓ sarah@ideaflow.io → Sarah Kim
⚠ alex.bot — no match (skip)

State 2 · Dry run preview

Would create 2,880 root notes + 14,302 reply notes. Would create 247 SharedHashtag rows. No changes written.

✓ 247 tags will be created ✓ 2,880 root notes ⚠ 318 messages from unmapped users (will skip) ⚠ 12 messages exceed 100KB (will truncate)

Top tags this will create

#bug · 283
#tweak · 260
#teamstream · 197
#idea · 101
#usecase · 91
#tradle · 79
#feature · 65
#customer · 46

Sample notes that will be created

James Park · #biz · Apr 12 2024

awesome #customer #userinterview with Founder's Pledge

David Liu · #competitors · Mar 2 2024

Roam dropped smart-blocks. #competitor

Jacob Cole · #general · Nov 9 2023

Met Anika at conference — ex-Notion. #potentialhire

State 3 · In progress

Importing into IdeaFlow Team — do not close.

1,247 of 2,880 root notes 43%
≈ 6 min remaining · rate 4.2 notes/sec
Tags created247 / 247 ✓
Root notes1,247 / 2,880
Reply threadsqueued

Live log

[12:04:02] ✓ Created group IdeaFlow Team (id: 0193-...)
[12:04:03] ✓ Created 247 SharedHashtag rows · defaultGroupId set
[12:04:04] ✓ Backfilling channel: #general (1,243 msgs, 87 tagged)
[12:04:14] ✓ Channel #general — 87 root notes · 142 reply notes
[12:04:15] ✓ Backfilling channel: #biz (892 msgs, 134 tagged)
[12:04:31] ✓ Channel #biz — 134 root notes · 298 reply notes
[12:04:32] ⚠ Channel #random — message UTSAVZ exceeds 100KB, truncating
[12:04:33] ✓ Backfilling channel: #competitors (412 msgs, 89 tagged)
[12:04:48] ✓ Channel #competitors — 89 root notes · 167 reply notes
[12:04:49] ✓ Backfilling channel: #design (1,108 msgs, 156 tagged)
[12:05:01] ⚠ alex.bot author unmapped, skipping 12 messages
[12:05:15] ✓ Channel #design — 156 root notes · 312 reply notes
[12:05:16] · Continuing: #eng (next channel, 8.4k msgs)…
State 4 · Import complete
Took 11 min · all 2,880 notes + 14,302 replies imported · 247 tags created · 7 of 9 users mapped
✓ 2,880 root notes ✓ 14,302 reply notes ✓ 247 hashtags ⚠ 318 messages skipped (unmapped author) ⚠ 12 messages truncated (>100KB) ⏎ Undo within 24h
11 Empty states · no groups · group with no notes · group of one First-run, fresh-group, and solo-user cases
No groups yet
👥

Create your first group

Groups let you share streams of notes with specific people. Family, your team, a book club.

Group with no notes
📝

No notes shared yet

Notes appear here when you tag them with a team hashtag or explicitly share with IdeaFlow Team.

Group of one
🦊

You're the only member

This group has just you. Invite others — or use it as a private label-set if you want.

12 Compact sidebar · narrow window or mobile Groups become tappable icons with hover label, retains active indicator
IF
IdeaFlow Team
214 notes
J Jacob Cole you 2h

Met with Lattice. IF#competitor · could OEM the editor.

13 Group context bar · alternative pattern (secondary, optional) If sidebar feels too dense — a top bar lets you switch group context without giving up sidebar space
Context: 🔒 Private IFIdeaFlow Team S D J Sarah, David, James FFamily BCBook Club + New
IF
IdeaFlow Team · Stream
8 members · 214 notes
J Jacob Cole you 2h

Lattice intro. IF#competitor

S Sarah Kim yesterday

Sidebar redesign Figma ready. IF#design

Trade-off: ctx-bar pattern surfaces group-switching like Slack workspaces but burns vertical space and competes with the filter chip row. Best for users in 5+ groups; the sidebar-list pattern (frames 01/02) is better for 1–4 groups. Could ship sidebar as default and let users opt into the ctx bar.
14 Notification preferences · per group Opens from group row gear → "Notifications" or from settings
IF
Notifications · IdeaFlow Team
Control what reaches you — sidebar, system, email.
Activity that notifies you
New note in this group
Sidebar unread badge · system notification if Notestream is in background
@mention in a group note
Always notifies regardless of group setting
Reply to your note
When someone threads a reply on a note you wrote
New member joins
Sidebar badge only
Tag added to group
When someone promotes a tag to this group
Delivery channels
In-app (sidebar badges)
Always on
macOS notification center
Banner when Notestream is in background
Email digest
Daily summary if you haven't opened the app · digest hour: 8am
Slack mirror
Echo group activity to #notestream-ideaflow · requires Slack bot v2
15 Onboarding · first group ever (zero-state migration) Existing Notestream users — surfaces once after Groups ships

Share streams of notes with people you trust

Groups are new in Notestream. They let you share entire streams instead of one note at a time. Two minutes to set up.

Name your first groupe.g. your team, family, a book club
Invite a few people2 invites sent · they get email + Notestream notification
3
Pick hashtags to share by defaultTag a note with one of these and it auto-shares to the group
4
Optional: import past notesFrom Slack export, IdeaFlow transcripts, or other markdown sources
J you now
Met someone at the conf. IF#potentialhire
S Sarah
Customer interview notes from yesterday. IF#customer
D David
Roam's new feature — different framing, same problem. IF#competitor
File: mockups/groups-v2.html · All chevrons and tabs are clickable.