Dominik Hofer
@dominik
Coder, Pixel Pusher, Blogger, Runner, Student. Crafting billow.so @ trueform.agency at day. Building @morgen.blue and tinkering with my personal website at night. 🦋 at://dominik.social 📌 Switzerland
Worked a bit more on the art direction/branding for @morgen.blue. I really like this “dreamy” look I ended up with and even built myself a little tool where I can generate more similar background visuals like these. #buildinpublic
As always, it’s the simplest productivity techniques that work the best. https://dominikhofer.me/ticking-boxes
I really like how @morgen.blue’s ”discover” page is coming together. Especially the expand interaction 🪄 #buildinpublic
A stack of emails and text messages and one question: Who committed the murder and why? https://dominikhofer.me/the-appeal
And what makes them look iconic. https://dominikhofer.me/how-metro-maps-evolved
Which world cup countries would qualify for the knock-out stages based on their per-capita CO2 emissions. via @republik.ch
Folded my first #origami crane today because I needed a break from studying 😶🌫️ Let's hope it brings me luck for the exams :)
I always imagine a little gopher inside the web server frantically hitting a red "danger" button when reading sentences like this 😂 #golang
Last Tuesday, I completed my latest PACT. https://dominikhofer.me/30-days-of-building-morgenblau
The source detail page is also coming along nicely. #morgenblau #buildinpublic
Saving posts in Morgenblau has landed, which also means that a second lexicon is now officially in use. #morgenblau #buildinpublic
Published a lexicon for the first time 🥳 Well, four actually + the permission set. Which means that the permission screen now looks really clean :) Link to the lexicons: pdsls.dev/at://did:plc... #morgenblau #buildinpublic
The sources tab now is a bit more polished and shows post frequencies and when the last post was published so you can quickly spot noisy or abandoned feeds. #morgenblau #buildinpublic
Decided to remove the “Create” part from the app. Instead, the menu now looks like this: Discover: People & sources to follow Sources: Manage/view individual sources Library: Saved articles and ones shared by your network Digest: “Feed” with daily buckets #morgenblau #buildinpublic
Feed entries in Morgenblau are now grouped into daily digests so you don’t have to worry about neither unread counts nor overwhelm when opening it. Hope this gives more of a “newspaper”- instead of an “infinite feed”-feeling. #morgenblau #buildinpublic
Codebase pretty much halved and the app is way more performant and “ATproto-native” now. Very happy with how this migration turned out: D #morgenblau #buildinpublic
YouTube videos now also open in a clutter-free interface inside of Morgenblau. Soooo much better than the native ui 😮💨 #morgenblau #buildinpublic
The reader becomes usable 🥳 Extraction for feeds without embedded content also works pretty well (see second article that I open in the demo). #morgenblau #buildinpublic
Started with the visual polish today. Always makes me more excited to work on an app when it starts to actually look good. #morgenblau #buildinpublic
Feed fetching works. As you can see, I only focused on the backend part of the feature 🙃 #morgenblau #buildinpublic
Summer-ish vibes 📍 Zurich, District Zurich, Zurich, Switzerland, Zurich, CH #GrainSocial https://grain.social/profile/did:plc:fthx2gjakdj4ynxxu5vysjty/gallery/3ml4spqwrqu2k
Started to work on the “Add Source” flow. Save to PDS already works, the UI still needs a bit of polish. #morgenblau #buildinpublic
Morgenblau is now being powered by Laravel + Inertia + React. Probably worth it's own blog post about the why behind the decision, but the TLDR is: Laravel is just my favorite framework and where I'm most productive in :) #morgenblau #buildinpublic