I would recommend The Lean Startup by Eric Ries. It’s a classic that introduced the MVP concept to the world.
And for a bit of different approach, Make by Pieter Levels. This also recommends trying a lot of ideas and seeking what sticks, but perhaps with a more straightforward approach.
I've developed a command-line password manager and authentication application in Rust. Here are the key features:
1. Uses KeePass file format for secure credential storage
2. Supports One-Time Passwords (OTP) for two-factor authentication (2FA)
3. Provides a convenient CLI interface for retrieving 2FA codes
The project, named Passlane, offers a streamlined approach to password management directly from the terminal. It's particularly satisfying to generate 2FA codes via command line!
Yes, makes sense! I would need to change it to output only the password without all the extra info that only makes sense for humans - could work in this script mode when provided with an additional command line option.
About using it for storing keys of other shell scripts/commands: What kind of special functionality this would require? Would you like to, for example, use passlane to extract the password of some script and then pipe it to that script? Perhaps adding that kind of functionality would make sense.
I use the Passlane CLI for accessing and managing my passwords. Passlane stores the data in a keepass file that I have in Dropbox so that I can access it from multiple devices. On my phone I access it with Keepassium.
Yes, I had some feature in an earlier version that I wanted to add and the example code I was looking at was async and that made me think that I have to go to that route and also include an async runtime (Tokio). Once I was there, I ended up using async versions of some other dependencies as well.
Later on I then realized that in my CLI app I’m not gaining anything from it as there is no need for any parallel prosessing. It was just making my code more complex.
Reading this makes me want switch jobs. I want to again work somewhere where in the morning I wake up and feel excited to work, instead of feeling forced to work on some stuff that does not interest me at all.
I originally wrote the CLI to learn Rust. It became a functional CLI tool for generating and managing passwords. Once I had the CLI working and usable, I wanted to have the passwords available also on my phone and on my iPad and I ended up creating an online vault with a web UI and an API.
The CLI can now use the online vault API for storing/retrieving the password data. There is also a webapp that you can use to access the passwords using a web browser - I use that on my phone.
The passwords are stored AES 256 encrypted, and only decrypted in the client using your master password. The master password is never sent online.