Replace the very large info box with a paragraph and a link #shipnix #buildinpublic

I do kind of love the humble aesthetics of unpolished Bootstrap 🙂
Make very primitive page view for each feature for more in-depth description #buildinpublic #shipnix
Actually it was too easy to fix the correct ordering, so I couldn't wait 😄 I guess it's an actual MVP now.

Will just fix it up with a bit of coloring after dinner!

#shipnix #buildinpublic
✅ Now actual data is shown on the dashboard and DIE score is calculated #shipnix #buildinpublic

Going to fill up with a bit of food first, and later fix the ordering so we can call this a completed MVP withing 24 hours🙂
✅ Push functionality for actually calculating the DIE score and show the actual data on front page…

#shipnix #buildinpublic
Make conversion functions of enums to ints so they can be calculated.

I guess idiomatic Haskell way would be to use numeric instances, but I found it too much hassle for so little.

So I just made these simple functions.

#buildinpublic #shipnix
Turn enum values very easily into <select> options with `CanSelect` instance. Very little code required in IHP!

I guess enums are a bit frowned upon in some contexts, but they fit really nicely into Haskell/IHP and have not failed me so far.

#buildinpublic #shipnix
Deploy changes and database is automatically migrated #buildinpublic #shipnix
Also add the same environment variables in production, with a bit more challenging credentials #shipnix #buildinpublic
Protect admin application with simple basic auth, since I am the only one creating and editing features.

Set username and password via environment variables so no actual secrets leak into source code.

Locally, simply admin/pass will do fine!

#buildinpublic #shipnix
Add database structure for features

Unsure if I should have gone with integers instead of postgres enums

Decided to try enums first as they will provide better constraints and be better typed in Haskell land

#buildinpublic #shipnix
Generate an Admin application in IHP which is where I will be managing the features #buildinpublic #shipnix
Set `IHP_BASEURL` to domain instead of IP address so app navigation will function properly #buildinpublic #shipnix
✅ Add roadmap site to to track uptime every minute #buildinpublic #shipnix is live with https enabled 🎉 Easy! Going to eat now and continue later #buildinpublic #shipnix
Domain seems to have propagated properly, so try enable https via #NixOs declaration…
#buildinpublic #shipnix
✅ Simple table with mock data and a description card below to explain the method

Git diff:…

#buildinpublic #shipnix
I have decided to give the default Bootstrap 5 shipped with IHP a chance. Haven't touched bootstrap since I first learned web development #buildinpublic #shipnix