Skip to content

nym/objectiveswift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Objective Swift

Voice-first:

Say the name, ‘next field’, say the description, and then the words ‘Add Objective’

Objective Swift is a focused, voice-first objective tracker. Capture objectives quickly by keyboard or voice, move them through a simple active → complete → deleted lifecycle, and trust they’re stored safely — with the interface staying out of your way.

Screenshots

docs/screenshots/home.png

docs/screenshots/objectives.png

Run =just test= to regenerate these.

How it works

Objectives are created with a title and an optional description, then live on a card grid until completed or deleted. Completing a card flashes it green and greys it out; the state persists across reloads. Each page shows ten objectives, newest first.

Voice input

Every text field has a microphone button powered by the browser’s built-in SpeechRecognition API — no API key, no server round-trip, no Whisper. Transcription is instant and free. The mic button is hidden automatically on browsers that don’t support it (Firefox, or non-HTTPS origins).

Voice commands work mid-sentence:

  • “next field” — submits the title field and jumps focus to description, starting a new recording there
  • “add objective” — submits the form from whichever field you’re dictating into

Design

The home page opens with a brief introduction and an animated pulsing microphone graphic. The objectives page uses a column card layout and supports light and dark modes via a toggle in the header.

Getting started

The dev server listens on port 3000 and Storybook on port 6006.

  • Application: http://localhost:3000/
  • Storybook: http://localhost:6006/

devenv (recommended)

With Nix and devenv installed, one command starts everything — database, migrations, dev server, and Storybook:

devenv up

Manual setup

Start PostgreSQL separately, then:

just db-migrate
just dev

Export DATABASE_URL first if your Postgres connection differs from the default:

export DATABASE_URL="postgres://app:please@127.0.0.1:5432/app_dev"

Common tasks

just          # type-check + full test suite (unit + e2e)
just dev      # start dev server on port 3000
just check    # TypeScript type checking only
just test     # vitest unit tests + Playwright e2e tests
just fmt      # format source files
just storybook       # Storybook on port 6006
just db-migration    # generate Drizzle migration files
just db-migrate      # apply pending migrations
just psql            # interactive psql session

Stack

  • React 19, React Router 7, TypeScript, Tailwind CSS 4
  • Express 5, Drizzle ORM, PostgreSQL 17
  • Playwright (e2e), Storybook (component dev)
  • pnpm, devenv / Nix

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors