Skip to content

bobertyy/cooldown

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cooldown

Overview

This repo contains all the components for the cooldown app. This app aims to provide users a way to define actions that have a "cooldown" period, that notifies them when they can re-perform the action. An example would be "watering the flowers - 48 hour cooldown", it is important to note that just because the 48 hour cooldown has completed doesn't mean the user will re-attempt the action in the near future.

Architecture decisions

  • Keep features simple first: implement read-only listing before mutations.
  • Keep domain and presentation separate in the web app: hooks own fetching/state, components render.
  • Use the Blocked UI paradigm for frontend feature composition (blocks, boundaries, and feature groups).
  • Use SQLite in the API for fast local persistence and simple deployment.
  • Use SQLx for database access and Axum for HTTP routing in Rust.
  • Use TanStack Query + TanStack DB in the web app: Query fetches remote data, DB stores/query local collection state.
  • Use Radix UI standard components for UI building blocks.
  • Prefer explicit typing and helper functions over as casts; treat assertions as a last resort.

Blocked UI docs

Blocked UI reference docs for this repo are in .codex/blocked-ui-docs/.

  • Start at .codex/blocked-ui-docs/00-index.md.
  • Agent-facing implementation rules are summarized in AGENTS.md.

Structure

.
├── deploy
├── infra
├── api
├── README.md
└── web-app

Production deployment

Production deployment is split into:

  • infra/opentofu: Hetzner infrastructure as code (server, firewall, volume, SSH key)
  • deploy: Kamal app configs for API and web services

See:

  • infra/opentofu/README.md
  • deploy/README.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors