Tweet
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
roadmap.ship-nix.com 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 github.com/ship-nix/roadm…
#buildinpublic #shipnix
✅ Simple table with mock data and a description card below to explain the method

Git diff:
github.com/ship-nix/roadm…

#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
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
after reading @arvidkahl's "Zero to Sold", I'm going to test a prioritization framework

think I have the tendency to select the most challenging task and not think too deliberately about impact or demand

really liking the simplicity of the "DIE method" #buildinpublic
✅ Low hanging evening fruit: Load server data instantly into Elm view, so no more loading flickering/layout shift.

Seemlessly hydrates with IHP DataSync realtime data which is really nice because updating state = just subscribing to changes in db row.

#shipnix #buildinpublic
✅ Delete NixOs custom image automatically when user deletes ship-nix account since hosting custom images costs a couple of cents per month #shipnix #buildinpublic
✅ Add server-validation to form for adding DigitalOcean credentials, including when DigitalOcean API complains #shipnix #buildinpublic
Make sure #shipnix is still usable for non-github users and that relevant views print correctly #buildinpublic