summaryrefslogtreecommitdiff
path: root/memos/WM-031.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-031.txt
initial commitHEADprimary
Diffstat (limited to 'memos/WM-031.txt')
-rw-r--r--memos/WM-031.txt111
1 files changed, 111 insertions, 0 deletions
diff --git a/memos/WM-031.txt b/memos/WM-031.txt
new file mode 100644
index 0000000..fdb3d13
--- /dev/null
+++ b/memos/WM-031.txt
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+Document: WM-031 P. Webb
+Category: Project 2018.04.17
+
+ Socii Dispatch 04
+
+Abstract
+
+ If you want something done right…
+
+Body
+
+ In the almost two months since my last dispatch I moved my life from
+ New England to Tennessee, started working on a new product, and
+ learned of a couple other social networks in development. This might
+ be a long read, make yourself comfortable.
+
+ 1. Why Move?
+
+ The rent was too damn high! Also, with my skills I can work
+ anywhere. Why not live in a place where the weather is (generally)
+ better and the price of living is more agreeable?
+
+ 2. New Product
+
+ While working on Socii, I made the conscious decision not to add
+ an analytic script for two reasons:
+
+ 1) *I* use ad blockers and it is safe to assume that the people
+ who would join Socii do too. Therefore, my analytic script
+ would be blocked. Why bother adding one in the first place?
+ 2) Gauges (the analytics provider for all my other sites) has been
+ sold at least three times. They could get sold to Google or
+ Facebook at some point and I am fundamentally opposed to using
+ their products.
+
+ However, this became a hindrance at some point because Socii would
+ error on a route and crash (unhandled promise rejections are
+ bad!). I started thinking about having a service that could plug
+ into my codebase with *minimal change* while also showing me where
+ things happen.
+
+ Enter Chew (analytics you can count on)!
+
+ 📸[Homepage of Chew][IMG1]
+
+ It works by capturing the request object in your (Express 4)
+ middleware and sending the relevant data to Chew. I spent a couple
+ weeks working on this and it's *just about* ready for private
+ testing (basically, me using it on my own sites and fixing bugs
+ that occur). All you need to get started is a free Chew account
+ and two lines of code in your Express-based app: importing the
+ Chew npm package and a single line in your middleware.
+
+ As usual, I learned some things along the way and I look forward
+ to applying these new learnings to Socii. I tend to refactor (and
+ write more code comments) as I develop so I can help my future
+ self when something needs fixing (or removal, I love when I can
+ remove code).
+
+ Naturally, I used Socii as a base for Chew and came up with a very
+ basic SaaS boilerplate:
+
+ 📸[My SaaS boilerplate, 1.0][IMG2]
+
+ The left side refers to self-explanatory services while the right
+ side shows you the URLs each service would be reachable at.
+
+ The admin console is new to me and I haven't actually created one
+ yet but I like the idea of a master interface being made available
+ to admin users, instead of embedding admin controls inside the
+ app. Separation of concerns, yes. More stuff to manage? Of course!
+ The tradeoff is worth it to me.
+
+ Thanks to the power of Nginx and reverse proxies, you can run all
+ of these on the same physical server! Probably shouldn't have the
+ CDN there though. For Socii, I have a service that optimizes
+ images before placing them in storage (DigitalOcean Spaces, their
+ version of Amazon S3).
+
+ Once I have Chew launched and the notifications feature launched
+ in Socii, I'll start working on open-sourcing my SaaS boilerplate.
+ I just realized this is a great time to segue.
+
+ 3. Social Networks
+
+ I frequent HackerNews and commented on a post[1] where someone
+ listed their social network feature wishlist. Of course, I plugged
+ Socii because it will match (most of) what they want when it is
+ feature-complete. I fully expect downvotes and was pleasantly
+ surprised to see the opposite occur! Furthermore, other people
+ working on social networks reached out to me via LinkedIn and
+ email. Unfortunately, aside from initial introductions I haven't
+ conversed with these folks. I hope that changes soon, we could all
+ learn from each other.
+
+ It is quite obvious that "social" is on the mind of everyone and
+ I'm glad that people are trying their hand at improving
+ the Internet. 🕸
+
+References
+
+ [1] <https://news.ycombinator.com/item?id=16821172>
+ [IMG1] <https://🔥.pixels.wtf/blog/image/2018/socii-dispatch-04-a.png>
+ [IMG2] <https://🔥.pixels.wtf/blog/image/2018/socii-dispatch-04-b.png>