Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
163 changes: 163 additions & 0 deletions docs/future-work/FEATURE-IDEAS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
## 1. “Now Mode” — single-task gravity

**What it is**
A lightweight mode that collapses the app into *one task*:

> *The current region’s Must-Do.*

Everything else visually steps back.

**Why it’s powerful**

* Most task apps help you *see everything*
* This helps you *ignore everything*

**How it could work**

* Triggered manually (button) or automatically (entering a region)
* UI behavior:

* Only the Must-Do is fully opaque
* Complementary/Misc blur or dim
* Backlog disappears entirely
* Optional micro-actions:

* “Mark started”
* “Take a note”
* “Complete”

**Why this makes Charstack shine**

* Turns the philosophy into a *felt experience*
* Competes more with Focus apps than with task managers
* Perfectly aligned with your **North Star behavior** (finish the Must-Do)

This is not a timer. It’s **attention gravity**.


## 2. Friction as a feature: “Are you sure?” moments

Most apps remove friction everywhere. Charstack can *add it selectively*.

### Example: Backlog Pull Friction

When pulling a task from Backlog into Today:

Instead of just assigning it, show one short prompt:

> “Which region will this *replace*?”

User must choose:

* Morning / Afternoon / Evening
*(and implicitly accept capacity pressure)*

**Why this works**

* Forces trade-offs (which is the whole thesis)
* Prevents overloading Today
* Makes backlog rescheduling intentional, not impulsive

You already enforce capacity technically; this makes it **cognitively explicit**.


## 3. A tiny but sharp daily ritual: “Close the Day”

Not analytics. Not stats. A *ritual*.

**What it is**
A short, optional end-of-day flow (30–45 seconds max):

1. Show:

* Must-Dos completed vs not
2. Ask **one** question:

* “Do you want to try this Must-Do again tomorrow?”

* Yes → auto-carry
* No → backlog
3. Done.

**Why it stands out**

* Turns rollover from a silent background process into meaning
* Builds emotional closure without gamification
* Encourages self-honesty instead of streak-chasing

This fits cleanly with your existing rollover system and deferred states.


## 4. Region personality (subtle, not cute)

Each region already exists. You can give them *behavioral bias* without adding settings.

Examples:

* **Morning**

* Must-Do visually louder
* Complementary slightly locked until Must is done (optional)
* **Afternoon**

* Neutral, fastest interactions
* **Evening**

* More forgiving visuals
* Backlog pull is encouraged
* Completion animation softer, calmer

**Why this matters**

* The day *feels* different as it progresses
* No user configuration required
* Makes the app feel intentional, almost thoughtful

This is hard to copy because it’s experiential, not functional.


## 5. “Drop it” as a first-class action

Most task apps treat deletion as failure. Charstack can normalize *letting go*.

**Idea**
When a task has rolled into Backlog multiple times:

* Surface a gentle option:

* “Drop this”
* Not “delete”, not “archive”

Optional copy:

> “Looks like this hasn’t fit your day yet.”

**Why it shines**

* Reduces guilt-driven backlog hoarding
* Reinforces the app’s anti-bloat stance
* Aligns with the idea that not all tasks deserve tomorrow

No metrics. No shame. Just permission.


## 6. One opinionated widget (not many)

Instead of multiple widgets, ship **one extremely focused one**:

**Widget concept**

* Shows:

* Current region
* Must-Do title
* One action: ✓ complete

That’s it.

**Why**

* Widgets are about *glance + act*
* This reinforces “what should I be doing right now?”
* Avoids turning the widget into another list

227 changes: 227 additions & 0 deletions docs/future-work/TASK-CREATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,227 @@
# Design principle (anchor this first)

> **Typing should answer only one question:**
> *“What is the task?”*
>
> Everything else should be inferred, gestured, or optional.

If task creation ever asks the user to *think in steps*, it loses.

---

## 1. Tap-anywhere to add (region-as-input)

### What’s wrong today

* You must target the small bar
* It visually reads as a *form*, not an affordance

### Better: “Empty space is intent”

**Behavior**

* Tapping anywhere inside a region card (or bucket section) opens inline input *at that location*
* The cursor appears exactly where you tapped
* Keyboard slides up immediately

**Why it works**

* Matches iOS Notes & Reminders muscle memory
* Removes UI targeting friction
* Makes regions feel *alive*, not containers

**Bonus**

* Tap inside:

* Must area → defaults to Must
* Complementary list → defaults to Complementary
* Misc list → defaults to Misc

No picker. No decision.

---

## 2. Bucket selection via **directional gestures**, not UI

This is the biggest win.

### Pattern: type → swipe → release

**Flow**

1. User types task title
2. Before hitting return:

* Swipe **up** → Must
* Swipe **right** → Complementary
* Swipe **down** → Misc
3. Release = create task

**Visual feedback**

* Background tint subtly shifts as you swipe
* Haptic tick when crossing into a bucket
* Bucket label briefly appears near cursor

**Why this is excellent**

* Zero UI chrome
* One-handed
* Fast for power users, discoverable for normals
* Feels *very* iOS (mail swipe muscle memory)

You can still show the picker for accessibility—but gestures become the fast path.

---

## 3. Press-and-hold to “pour” tasks into a region

This one’s subtle and powerful.

### Long-press anywhere in a region

**Behavior**

* Long-press on region background
* Keyboard appears
* You can **type multiple lines**
* Each line becomes a task on release

Example:

```
email Sam
review PR
send invoice
```

→ creates 3 Misc tasks by default

**Why this matters**

* Brain dump mode without switching context
* Feels like jotting notes, not task management
* Power users *will* use this constantly

Optional:

* First line auto-Must if region empty
* Or long-press near Must slot biases Must

---

## 4. Inline “promote/demote” via drag, not edit

Creation doesn’t end at creation. Adjustment must be just as fluid.

**Behavior**

* Drag a task vertically across bucket boundaries
* As it crosses:

* Haptic feedback
* Bucket label morphs
* Drop = reassigned

**Why this helps creation**

* Users stop caring about choosing perfectly up front
* They’ll dump tasks quickly and refine by feel
* Reduces anxiety during entry

This pairs beautifully with fast, sloppy input.

---

## 5. One global gesture: **pull down to add**

Instead of a + button.

**Anywhere in Today view**

* Pull down slightly
* Inline input appears at the top of the *current region*
* Keyboard follows finger

**Why**

* Matches pull-to-search / pull-to-refresh muscle memory
* No visual clutter
* Works even when scrolling

Power users learn it. Casual users never need to.

---

## 6. Voice—but scoped and opinionated

Voice shouldn’t be “add a task.” That’s generic and unreliable.

### Make it region-aware

Examples:

* “Add to Morning: call Alex”
* “Evening must: write outline”
* “Backlog: idea about onboarding”

**Key rules**

* No confirmations
* No dialog
* Task just appears, lightly animated

This isn’t a primary input. It’s an *escape hatch* when hands are busy.

---

## 7. The “always ready” state (this is psychological)

When the app opens:

* Cursor should be **one tap away**
* No mode switching
* No visual ceremony

Consider:

* First tap anywhere = ready to type
* Keyboard appears faster than expected
* App subtly communicates: *“I’m ready when you are.”*

That alone changes how the app feels.

---

## What NOT to do (important)

Avoid:

* Dedicated “Add Task” screens
* Floating action buttons (Android smell)
* Mandatory priority selection
* Too many visible controls
* Gamified entry (badges, points, etc.)

Your audience doesn’t want help *adding* tasks.
They want **no resistance** between thought → capture.

---

## If I had to bet on a stack (minimal, high impact)

If you only implement **three things**, I’d pick:

1. **Tap-anywhere inline input**
2. **Swipe-to-choose bucket while typing**
3. **Drag to promote/demote after creation**

That alone would make Charstack feel *materially different* from every other task app.

If you want, next we can:

* Sketch a concrete gesture map (what gesture works where)
* Pressure-test discoverability vs power
* Or design the haptics + animations so this feels *Apple-level* instead of gimmicky

Loading