summaryrefslogtreecommitdiff
path: root/memos/WM-030.txt
diff options
context:
space:
mode:
authornetop://ウィビ <paul@webb.page>2026-04-11 14:24:49 -0700
committernetop://ウィビ <paul@webb.page>2026-04-11 14:24:49 -0700
commit8c34d810af95fae0ef846f54370a8c88bfab7123 (patch)
tree436beaf30f7b2b3f15741dd54a37e313964d1f7d /memos/WM-030.txt
initial commitHEADprimary
Diffstat (limited to 'memos/WM-030.txt')
-rw-r--r--memos/WM-030.txt107
1 files changed, 107 insertions, 0 deletions
diff --git a/memos/WM-030.txt b/memos/WM-030.txt
new file mode 100644
index 0000000..8c5c5cf
--- /dev/null
+++ b/memos/WM-030.txt
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+Document: WM-030 P. Webb
+Category: Project 2018.02.24
+
+ Socii Dispatch 03
+
+Abstract
+
+ Ship often!
+
+Body
+
+ I have been cranking out features and improvements over the past
+ month. As I gear up for a major feature release, I'd like to quickly
+ run through what's in production now and what I've learned since my
+ last dispatch.
+
+ 1. Top 8
+
+ From the ashes of Myspace comes a feature I've missed dearly in
+ every social network since. Why is this important to me? Well,
+ sometimes I forget my friends' usernames. I never forget a face.
+ With Socii you can change your username whenever you want so for
+ people you *really* want to keep in contact with (outside of
+ real-life phone numbers and such), adding them to your top 8 is
+ the way to go.
+
+ 📸[🎶 I'm bringing Myspace back, yeah!][IMG1]
+
+ 2. Performance
+
+ Three notable changes fall under this section.
+
+ First, I got rid of the WebP decoder[1] (and fixed an issue that
+ arose on account of me doing too much in one commit). It was a bit
+ slow in development which should have made me realize it'd be MUCH
+ too slow for production (even the WebAssembly-based/-compiled
+ decoder I found wasn't good enough). Blink-based browsers (Chrome,
+ Opera, Vivaldi, &c) were unaffected but Firefox and Safari
+ suffered *greatly*. Personally, I use Firefox as my main browser
+ so I felt this pain and *hated* it.
+
+ 📸[Bye bye WebP…for now][IMG2]
+
+ Second, I implemented pagination. Prior to this, the hub (homepage
+ of the actual network[2], not the marketing site[3]) was loading
+ every. Single. Post. It was a friggin' *mess* tbh. Now, I'd like
+ to have done this in my GraphQL service but I don't understand
+ enough about it to implement cursor-based paging so the solution I
+ came up with is kinda hacky. It works *for now* but I'm on the
+ lookout for tutorials or code samples that implement *proper*
+ GraphQL pagination with `graphql.js` (even the official "how
+ to[4])" site is devoid of this information).
+
+ Finally, I created a custom script bundler to minify and combine
+ front-end JavaScript so there would be far less render-blocking
+ scripts to deal with. All the bundling frameworks like Rollup,
+ Webpack, &c, do too much while also not being flexible enough to
+ do what I wanted to do.
+
+ I'm still working on improving performance. No one wants to visit
+ a sluggish site, it's a waste of your time.
+
+ 3. Timelines
+
+ You can now toggle between the global timeline and your top 8
+ timeline (well, if you've *added* anyone to that list).
+
+ 4. Responsiveness
+
+ As a front-end designer, it hurt me to publish something that
+ didn't work well at smaller browser widths/breakpoints. I was
+ *finally* able to get a *lot* of the stylistic things that were
+ bothering me taken care of. Looking at these screenshots though, I
+ gotta rethink the post footer. It looks too fat, I think both bits
+ of info can fit on the same line.
+
+ 📸[Ooh, dat sweet responsive network][IMG3]
+
+ Things I've learned
+
+ 1. Ship small features often. Not only do you get a sense of
+ progression, but you can find issues quickly should you
+ accidentally push errors into production.
+ 2. Image uploading ~~in a performant way[5]~~ that performs well
+ with WebSockets is harder than I thought. I *think* I have
+ something figured out but I have some non-Socii work to catch
+ up on before I test my theory.
+
+ That's all for now, see ya! 🕸
+
+References
+
+ [1] <https://hub.socii.network/NetOpWibby/status/jdnns5gm000zhxbk97iymsgc>
+ [2] <https://hub.socii.network>
+ [3] <https://socii.network>
+ [4] <https://www.howtographql.com>
+ [5] <http://boulter.com/blog/2004/08/19/performant-is-not-a-word>
+ [IMG1] <https://🔥.pixels.wtf/blog/image/2018/socii-dispatch-03-a.jpg>
+ [IMG2] <https://🔥.pixels.wtf/blog/image/2018/socii-dispatch-03-b.jpg>
+ [IMG3] <https://🔥.pixels.wtf/blog/image/2018/socii-dispatch-03-c.jpg>