Ledger is a small transaction analysis tool. The user can import bank transaction dumps in
csv format from Neon. A small query language
allows quickly searching for transactions and getting aggregations at a glance. Automated
filters categorize transactions for analysis. Charts give insight into spending or income
by category and over time. As with other applications in this series, ledger runs locally
in the browser and offers the ability for sync and backup via S3 credentials.
Technologies involved: Typescript, SolidJS, S3, Caddy
The latest app implementing the local-first concepts originally developed for
rest.quest: Jour is a minimalistic journaling app that
stores data locally in the browser, optionally synchronizing it to an S3-compatible
bucket. Originally intended as a lab journal to keep track of thought processes at work,
jour is now in use as a general purpose journal that invites the user to use it with its
low friction of entry.
Technologies involved: Typescript, SolidJS, S3, Caddy
A very minimalistic snippet management web app. This app is another iteration on the
concepts developed for rest.quest and
go: State is kept on the local device, but can be
synchronized optionally using an object storage bucket. The single page app relies heavily
on shortcuts.
Technologies involved: Typescript, SolidJS, S3, Caddy
A tiny and opinionated bookmark management web application. This app is leaning strongly
on concepts developed for rest.quest: State is kept on
the local device, but can be synchronized optionally using an object storage bucket. The
single page app relies almost solely on shortcuts and can be used as a lightning fast
redirect tool using the browser keyword search.
Technologies involved: Typescript, SolidJS, S3, Caddy
My personal website. Custom designed and built with SolidJS and Astro. It's deployed on a
small VPS using Caddy as a web server.
Technologies involved: Typescript, SolidJS, Astro, Caddy
A minimal and opinionated todo web application. The user interface is designed to remove
friction when adding projects or tasks. The state is primarily stored locally in the
browser. Optionally, the user can supply object storage credentials to synchronize the
state across multiple browsers. The application is implemented using SolidJS to keep the
bundle size small.
Technologies involved: Typescript, SolidJS, S3, Caddy
An end-to-end encrypted note taking application. The web application features a
wysiwyg markdown editor and advanced formatting including tables. Content is encrypted using a private
key that is only stored in the browser. By encoding the decryption key in the hash of the URL,
it's possible to share notes without the server ever seeing the data in plain text. The backend
stores encrypted content in PostgreSQL.
Technologies involved: Rust, Typescript, React, Jotai, PostgreSQL, Web Crypto API, AES, Caddy, Docker