Nicole Tietz-Sokolskaya
65ad20d197
Refactors Pique to use Diesel for the backing database layer instead of the previous choices of SeaORM and Fjall (with a custom DB on top of the KV store). This choice was made to speed up development. I found SeaORM much more challenging to discover things in than Diesel, and with Fjall I was getting mired in building things that already exist. This is a migration to a boring choice, and that's the right decision for this moment in time. Among other things, the diff stats wind up being `47 files changed, 926 insertions(+), 950 deletions(-)` when you exclude lockfile changes and markdown changes. This validates that the code is not significantly more or less verbose, but is simply structured differently. So we're not giving anything up in brevity. I decided to structure query calls into their own submodules, called `q` (short for `query`). I shortened the names to make it easier to type and make lines shorter, which may be a controversial take, but I think that it will wind up being worth it and will be easy to get used to. I also renamed `Context` to `Provider`, because I think `Context` implies things like cancellation, while `Provider` implies giving access to resources, which is more precisely what's going on here. Reviewed-on: #2 |
||
---|---|---|
_docs/decisions | ||
_experiments/2024-03-02-database-benchmark | ||
frontend | ||
migrations | ||
src | ||
static | ||
templates | ||
.adr-dir | ||
.env.example | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
diesel.toml | ||
Makefile | ||
package-lock.json | ||
package.json | ||
README.md | ||
rust-toolchain.toml | ||
rustfmt.toml | ||
tailwind.config.js |
Pique
Pique is project management software that is a delight to use!
This project is in very early stages, so here's what you need to know:
- It's being developed by Nicole / ntietz as a side project
- It's not production ready!
- It's not open-source and contributions are not welcome
- It will be free to use while it's in development, but will likely transition to paid plans pretty quickly. I hope to always offer some paid plan, but that is if I can do it without burning my budget.
If it's not open-source, why can you see this? Simply because I (Nicole) find it much better and easier to work in the open. The code is available because there is utility in that. It has few drawbacks. If someone wants to steal it, they can, but that's pretty illegal. Eventually it might wind up open-source, or as a coop, or just as a solo dev project. I don't know, but openness is a core value for me, so here we are.
If you want to use it, and there is not a plan available yet, just let me know. My personal email is me@ntietz.com and I can get you set up.
Workflow and setup
Rust
This project uses Rust. Setup the toolchain on your local machine as per usual. We use nightly, and installation and management using rustup is recommended.
DB (Diesel)
We use Diesel for database interaction. You'll want the CLI, which you can install with the following command. This will install it for your user on your system, including support for SQLite.
cargo install diesel_cli --no-default-features -F sqlite-bundled
Tailwind
We use Tailwind for our styling. You'll want to install the CLI:
npm install -D tailwindcss
Docs
Decisions are recorded in ADRs1 using a command-line tool to create and manage them. You can install it with:
cargo install adrs
See the adrs docs for more infomration on usage.
-
Archictecture Decision Records are a lightweight way of recording decisions made on a project. ↩︎