Trying something new - feature designs
The hardest part in programming is modelling data and defining operations on it
I’m going to try something new for a while. On a bi-weekly basis, I’m going to publish design documents, where I take some hypothetical feature, and then describe a data model that would enable implementing it. I will also define the operations on the data, and how they contribute to bringing this feature to reality.
The amount of code will be minimal. The idea is that any programmer, even if they are not very experienced, can use this design document to implement the feature on their own.
The first item I’m thinking of is basic authentication: account creation, email verification, password encryption, password reset, login, validating sessions, etc.
I’ve noticed a lot of people don’t know how to implement it and instead rely on third party services, which frankly I think is pathetic. It’s not that hard, and if you can’t bother to do it properly, I have to question whether you can get anything at all done.
The next item I’m think of is basic integration with LemonSqueezy: managing product ids, validating & activating license keys, using the license key as an alternative form of email verification, supporting multiple modes: subscription, lifetime access, credit based access, and trial period access.
If you’re interested in these kinds of topics, stay tuned.