1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
Document: WM-026 P. Webb
Category: Project 2018.01.19
Socii Dispatch 01
Abstract
Updates with Socii's development
Body
For the past month I've been hard at work, developing basic social
network features. Namely, account and post creation and editing your
profile. To be honest, it's not glamorous work but I've been having a
blast doing it. Here's what's been completed thus far.
1. Profile
📸[First look at your profile][IMG1]
On your profile, you'll see your avatar in whatever shape you
choose from available options which are a triangle (the default),
circle (classic), square (old-school), diamond, and inverted
triangle. Below your avatar in the first sidebar, you'll find your
name and username.
When you sign up for Socii, you're automatically logged in and
given a generated username based on your email address so feel
free to change it if something like `paul927465` doesn't quite fit
you. Anecdotally, I've noticed that as people go through life
changes they tend to want user/name changes as well so I've made
Socii unreliant on usernames on the back-end. Friends and
followers would want to know if you go from `SuperAwesomeMegaTon`
to `netop://~tonton` and I'm building a notification system to
accommodate that.
There are currently no limits on username changes and I can
conceivably see how harassment could occur with it. You'll be
equipped with proper muting and blocking tools should you
unwittingly connect with an annoying person.
In the other sidebar, you'll see something called "top 8". Older
readers will remember the *glory* that was MySpace and I wanted to
bring that back as I found it useful.
Sometimes I just want to visit a friend's page and I forget what
their username is (and, if you follow a lot of people who post
more often than your friend(s), you'll miss their posts). I sure
know what my friends *look* like though and it'll be pretty sweet
to see which shapes they choose for their avatars.
And of course you'll find your personal stream of posts. Within
each post block is a menu indicator that contains actions for
editing your post, quick copying of the direct link to the post,
pinning the post to your profile, and deleting the post. If you
want to like your own post for some reason, you can definitely do
that. You can also create threads by responding to your own posts.
2. Post creation
📸[Post creator, clean][IMG2]
📸[Post creator with a code snippet][IMG3]
📸[That rendered code snippet…wish it had color][IMG4]
Socii supports Markdown! I'm using a customized version of
Showdown[1] to enable it. The eye icon in the footer of the post
creator allows for previewing what your post will look like when
it's live. The character limit is 150 for reasons that will become
apparent in a couple months, after I ship a major
(secret) feature.
However, your post can be up to *5,000 characters* long if you so
choose! 😰 That'd be *extremely* annoying to attempt scrolling in
a feed so posts longer than 150 characters will be truncated by
default with a button to expand it should anyone want to read the
entire thing. The question mark icon will give you quick tips on
how to use Markdown to add a bit of flavor to your posts.
If you'd like to read a long post but don't have time at the
moment, you can save that post for future reading.
📸[Respond to your own post to create a thread][IMG5]
For the moment, only one post status type is available and that is
"publish". Forthcoming updates will bring three more: drafts,
queues, and schedule. Similarly, the only post creator mode
available is "text" but future updates will bring photo, audio,
and video options.
3. In progress
There's still a good amount of work to get done. For starters,
there's no way for you to change your avatar and that's the
*first* thing I do when joining a new service. I also want to get
notifications and the global/top 8 feeds working. I think being
able to toggle between what everyone is talking about versus
whomever in your top 8 is talking about will be neat.
I want to be more open about developing Socii for a
couple reasons:
1. I want this social network to be good for people.
2. I develop in a vacuum and while I share updates with a couple
people IRL, I think other people could benefit from what I'm
learning in the process.
3. External reminder of what I have accomplished. Most people can
agree that we accomplish things but beat ourselves up for that
*one* thing we didn't do. That's demoralizing and I don't want
to stop before Socii gets into people's hands.
With that said, I'm making a new commitment to releasing Socii at
the end of this month for alpha access to members of my mailing
list. If you haven't joined yet, you can find it at
socii.network[2]. For more information about Socii, you can read
this post[3] or check out the manifesto on Socii's official
marketing page.
4. Things I've learned
I figured it'd be a good idea to share what I've learned since my
last blog post about Socii:
1. I'm tired of rounded corners everywhere. I've removed
`border-radius` from all the Sass files.
2. GraphQL is awesome. However, I've been building REST APIs for
the past month and have two microservices to handle things thus
far and that means I'm not transitioning to GraphQL until maybe
version 1 of Socii is solidified. 😤 Wish I learned of it
sooner (it's basically a better way to do REST and talk
to servers).
3. Styling with `:root`. This[4] is how everyone will have
customized profile pages. I don't know why every example I've
seen it used has root styles overriding each other. I try to
write my CSS in a way that doesn't have style overrides because
it's a hassle to deal with. If you have `:root.user` styling,
just have `:root:not(.user)` for your default styling. Easy.
That's all for now, see ya! 🕸
References
[1] <https://github.com/showdownjs/showdown>
[2] <https://socii.network/welcome>
[3] </WM-023>
[4] <https://developer.mozilla.org/en-US/docs/Web/CSS/:root>
[IMG1] <https://🔥.pixels.wtf/blog/image/2018/socii-dispatch-01-a.jpg>
[IMG2] <https://🔥.pixels.wtf/blog/image/2018/socii-dispatch-01-b.jpg>
[IMG3] <https://🔥.pixels.wtf/blog/image/2018/socii-dispatch-01-c.jpg>
[IMG4] <https://🔥.pixels.wtf/blog/image/2018/socii-dispatch-01-d.jpg>
[IMG5] <https://🔥.pixels.wtf/blog/image/2018/socii-dispatch-01-e.jpg>
|