Skip to content
timodwhitPublic

About

A journal for those who want simplicity.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Ink

A lightweight journal that is meant to not get in the way of thought and just let you write.

The main goal of this small project is to provide me a quick way to see chronological notes, similar to a chat with myself.

This is meant to be like a pocket journal on your phone. You are meant to see your past thoughts, keep the journal numbers low and just write.

TODO

See issue queue.

Development and checks

Use the latest Node.js LTS (nvm install --lts, then nvm use --lts; .nvmrc also selects LTS), install pnpm 12.9.1, then run:

pnpm install --frozen-lockfile
pnpm dev

Database-backed features require DATABASE_URL in .env.local and the tables from src/lib/schema.sql. The current app embeds that connection in its browser bundle; use a disposable development database. A server-side authentication and database boundary is needed before using this architecture with production data.

pnpm lint
pnpm build
pnpm test

pnpm test runs both suites; pnpm test:integration and pnpm test:browser run them individually. Browser tests use Google Chrome (pnpm exec playwright install chrome if needed) and build and serve the production app.

Both suites execute SQL against fresh, isolated PGlite PostgreSQL databases loaded from src/lib/schema.sql. Integration tests exercise the actual services, helpers, and route actions. Browser tests intercept only the Neon HTTP transport and execute its SQL in PostgreSQL rather than fabricating query results. No external database or credentials are needed. They cover password hashing, account uniqueness, foreign keys, ordering, exact text and timestamps, ownership checks, atomic cascades, reload persistence, failed saves and retries, pending writes, cancellation, focus mode, and downloads.

The GitHub Actions CI workflow selects LTS Node from .nvmrc, installs from the frozen pnpm lockfile, and runs lint, test type-checking, integration tests, and production browser tests. Local checks here use nvm use --lts.

These tests verify application and PostgreSQL behavior, but do not cover live Neon transport outages or replace server-side authorization. The current browser database architecture still requires a server-side boundary before production use.

About

A journal for those who want simplicity.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages