Show HN: Sqwok – A social chat alternative to Twitter and Reddit (sqwok.im)
That was a great experience and in the past year I continued to develop the site to bring it to a level of stability and maturity that I felt necessary for it to have a chance to succeed.
Sqwok is all about answering the question: Can we have better open conversations on the internet?
I wasn’t satisfied with the existing means of discussing topics such as culture, history, politics, and technology through threaded comments, and was simultaneously impressed with Slack bringing the IRC experience to the browser for a more general but enterprise focused audience. I wondered why not create an open Slack-like chat app for general discussion? Not gamers or enterprise but rather for people to have open, kitchen-table discussion on the matters of the day (or just for fun!).
I set out to build this because I wanted to use it myself and felt that existing chat apps weren't designed for open public discourse in the way Reddit/Twitter are but for threaded comments & mostly unidirectional communication.
This past year I’ve been very grateful to have a group of people continuously show up, offer support of the site and the idea, encouraging me to continue. Without those people I would have probably gave up!
But alas I want to see this through and I believe now is the moment to make it happen.
Since the last Show HN I’ve added:
- markdown support in chat messages, post text, and user bio in profile (soon coming to full text post).
- User profiles including bio, location, photo avatar, and chronological post listings.
- New “who’s online” list that shows the top 10 ppl online and helps steer people to active conversations.
- @mentions now work in posts, user bios, as well as chat messages.
- Email notifications to be alerted when someone @mentions you.
- Settings pages with ability to change password, delete account, and manage notification settings.
- Upgraded image handling to support higher res photos with upcoming features allowing enhanced viewing.
- Major refactor of the chat handling to stabilize it and fix many bugs with presence, locations, etc.
- Many improvements to the codebase, frontend, backend, UI, tests, etc
- Updated mobile web UI that drops you straight into the chat in a single view.
- Ability to toggle full width chat view on desktop.
- Live message counts displayed on the post list items that are updated in realtime.
- Updated location handling for realtime location display.
- Backend stability & aggregate analytics.
Through Sqwok and particularly through the last Show HN I've met & got to know numerous people living across the entire Earth from Laos to Europe to Africa, all through a silly piece of software that for some reason seemed like the thing to work on.
Truth be told there is much, much more I want to do with this. I believe now is the perfect time with the state of existing social networks and I’m hoping to find more people to support the site and help drive it to the next level.
Let me know if you have any questions,
Thanks!
129 comments
[ 2.9 ms ] story [ 174 ms ] threadI've never done anything like this before so a lot of unknowns!
The backend is python/starlette/marshmallow running serverless on lambda behind apigateway. It uses many other lambda/sqs functions, dynamodb, iot for websockets.
The frontend is an ember.js octane app with ssr via fastboot.js in cloudfront lambda@edge.
Have you tried running it on, like, a $20/month VPS?
First bit of feedback is about the Loading text after sign-up : "Reticulating splines.." while it's cool and makes me smile inside I do believe it might not cause the same effect to the majority of the population. If your goal is to scale beyond HN you might consider making it as non-threatening as possible to the lay-man
Any suggestion for replacement?
Another suggestion is to ask people if they want notifications to threads they've replied in. It's ok for this to be false by default. HN doesn't have this.. the argument I've heard is that people want it this way in order to not be "wired in" to HN because they feel they spend enough time already but not even having the option is not great IMO, especially in your case.
You want to give people the option to be wired in to your platform, that's the fastest way it will grow. If you want to be ethical you can make it as easy as pie to turn off notifications for a post. Not sure if you can do this straight in the notification or not but at least when they follow the notification you can give them a corner screen pop-up or something to disable notifications for this post if they've set the default settings to always get notified
Maybe just making the “…” dance to indicate that it’s loading would remove any doubt that the page is doing something for those users that might not understand it. I personally love apps that have some charisma!
It has been awhile since I played SimCity 2000! (great game)
Local first software can still be synced with CRDTs
1. Why don't you have a pirate parrot as a logo? Sqwoooook
2. Are you planning to support the fediverse protocols?
Most newer social networks always aim for decentralization (e.g. mastodon instances) and I'm wondering what the USP of squok is - compared to say, another mastodon instance. I'm not judging your idea, I'm trying to find out why users will use sqwok over say, e.g. all the reddit forks that have been started in the past.
Usually people need some unique incentive to migrate to new platforms, let it be a safe(r) space or mutual interest.
Every time some instance gets popular it's basically locked down afterwards and people tend to forget about it.
On the flip side-- what if it were the case that Mastodon's onboarding, server setup, maintenance, moderation options, and overall UX are so poor that it cannot gain traction, even when a history of four "major events" would otherwise have delivered it a massive userbase by now?
Honestly, even if the interface was constrained to a HN aesthetic, if a social media alternative were as fast as git and as easy to install and get up and running, I'd use it in a heartbeat.
It’s still a confusing process though. Some kind of “find your friends” might help, if we could get people to participate in a big database of “this is my Twitter and this is/are my Mastodon(s)”. Ideally this would be on joinmastodon.org along with the instance picker.
While that’s vaguely a step in the right direction, it’s not even in the ballpark of how much friction needs to be removed to get non-nerd adoption. The general populace would stop using social media before they used any of the current federated offerings. Selling non-technical people on the tech when it’s less fun, harder to reason about, and more annoying is a non-starter.
The only design that would stand a chance would start with the absolute optimal user onboarding and usage path and begrudgingly degrade when absolutely technically necessary. That’s what the commercial offerings will do, and most people are fine with compromising their privacy and control of their data feed.
No spoonful of sugar, no medicine no matter how beneficial.
And there is not way to automatically follow lists of people either, so I cant even use curators. That is especially insane, given that there are curators who create lists of interesting people, you just have to click one by one to follow...
The algorithm is entirely based on "how many users did use this hashtag/share the post/share the URL/interact with account in the past week".
I joined to some instance just fine. The problems start after that. UX is laggy, buggy and unintuitive. Algorithms don't help to find people to follow. People curate some lists of people to follow, but there is no way to automatically follow the whole list. Interaction between instances should work in theory, but in practice it's very very clunky.
I wanted to design it for general open discussion on the web from day one.
The language of the site is designed for a general audience as opposed to say gaming or enterprise.
Sounds like "small talk". But who likes small talk so much they would use a service specifically for it?
I fear in lieu of a more compelling USP it will have a hard ceiling as "a small online friend group", which is fine, just not something that will grow beyond a profitless hobby project.
I'm mentioning them because those also focus on small talk or general discussions for everyone, but found their niche in hyper locality.
They basically show you what people write in (I think) 10km distance in an endless stream. So it's something like an anonymous hyperlocal twitter, with pretty much all kinds of random stuff that you can imagine. Too much downvoted comments are hidden, similar to HN and reddit.
It is apt that this is the number 1 question; because it is a very important one. I want to know this too OP.
As per the rest of your comment to OP; I agree with your premise. It's a good question to ask. I remember when Reddit was still new and Digg was the place to be for some random news. And of course let's not forget the countless forums that still exist today even in some cases. Digg still runs; but it's... not the same anymore. And so your question is quite apt, because the reason why I joined up with Reddit long ago; was because it had everything I wanted from both Twitter and Digg. Sort of. It's closer today than it used to be, but even if the UI is better or anything like that; it doesn't matter if the users are toxic.
And thus I wish to bring my own question into this fray for OP as well.
3. What's to keep your community from devolving into the same toxicity of any other community thus far? It may be sort of a same question different pile; but I think this particular matter needs its own special consideration.
To put it simply. What's to keep your community from becoming the next political soap box? What's keeping it to discussion only in such matters, and not full on agitprop via internet communities?
P.S. "Mods/Admins" as an answer doesn't count, since I think we can all agree that they can be biased.
The main reason I closed it was I felt disoriented when I opened the threads. Since it brought me to the end of the chat I had to scroll to the top to catch up (which has some loading lag) so it felt like I had to do too much work to get engaged. Perhaps the opening post could be pinned at least?
The other part I got kind of lost with was the lack of a back button to return to the topics. Using the browser isn’t an issue, but the way the UI is presented it seemed like it would be there but I didn’t see it.
Congrats on a cool project! It’s nice to see some fresh takes on social.
> Since it brought me to the end of the chat I had to scroll to the top to catch up (which has some loading lag) so it felt like I had to do too much work to get engaged. Perhaps the opening post could be pinned at least?
I hadn't thought of pinning the top message once it's been buried but that's not a bad idea. Or just adding a "to the top" button?
> The other part I got kind of lost with was the lack of a back button to return to the topics. Using the browser isn’t an issue, but the way the UI is presented it seemed like it would be there but I didn’t see it.
I take it you were on mobile? That's good feedback I have to think about.
Thank you!
I also second the request for a more obvious way to get back to the list of topics (and when the list of topics has become huge, back to the same position in the list where I was). This is desktop. I clicked the Sqwok logo upper left and it seemed to do it but it was a blind guess.
There should be a button that appears when you've scrolled up that says "return to bottom", but agree need the reverse to jump to the top!
Maybe just a simple "Home" link in the global header next to the logo?
I've been experimenting with (B) a lot lately as a superior UX for the user. It makes clicking into individual views ultra-cheap since the user can always close the modal and continue scrolling with zero downtime.
While we tend to moan about modals done poorly (new Reddit), being able to deep dive on this sort of UX is something we get to do in rich clients (web clients, phone clients, desktop clients, ...) that we can't do when we're stuck rendering statelessly from the server. It's a pattern used widely in non-web clients.
Anyways, nice work. The list of features in your OP is not easy.
I was thinking it'd be nice to have a way to render a route, or maybe it's just in a modal as you say, and keep it around while you navigate other parts of the app. That way you can pop it back to the top when needed and it maintains state and doesn't need to rerender.
Is that sort of what you are talking about? Sounds like you've implemented it with success? Def sounds appealing!
Thank you for the comments, appreciated!
Afaict this is just a bunch of ad-hoc chatrooms built off user generated topics. I am not interested in reading the entire feed of strangers' thoughts, give me a way to see the 'best'. Having to sift through the uninteresting messages to find the good ones is why forums have largely died.
That is the differentiating factor that made Reddit and Twitter (implemented eventually) popular, and you're missing it.
My main goal was getting the core chat piece working solid before building stuff around it, but I appreciate the feedback and hear you!
Also known as an algorithmic "feed"?
It promotes the same clickbait ragebait mentality that ads do.
Tools to dynamically manage visibility of certain voices in the stream could be interesting. Like what if text size/color scaled with vote score - so annoying voices would shrink until hardly visible. Global per user weight score mixed with a personally configurable list of score offsets for any user previously interacted with could be neat. If you like what someone is saying, their future messages show up more clearly.
When I browse through the rooms, the only messages visible on the screen are whatever was said recently - the only way to get 'caught up' is scroll through the entire thing. What is shown often doesn't seem connected to the topic. could be interesting to load the top N messages of the channel's entire history with 'expand' options in between each one which loads the top M messages within that range.
uBlock Origin has prevented the following page from loading:
https://8j3zhg4q.r.us-east-1.awstrack.me/L0/https:%2F%2Fsqwo...
Because of the following filter:
||awstrack.me^
It's using aws pinpoint for transactional email, have you ever encountered that before from other sites?
I've mostly had success getting design help from friends who are designers (for my current app, I have an experienced designer friend who works 3-5 hours a week prettying up the UX that my engineering team puts together) and immediately everyone we interact with thinks our app is super sexy, the best, and want to use it even if it's less capable than what they were using before, despite us not really having invested that much into design (I'd link it, but it's a B2B enterprise app with no public face).
Where to find designers: I've mostly had success from my extended network, but there are lots of talent on Upwork, Dribbble, and definitely there are people who really are good; but unfortunately there's also a ton of people who have no idea what they're doing, and unless you have some way to vet them, you'll have a hard time wading through the noise. With design, it seems that practitioners either "got it" or they don't, and if you don't, you'll probably hurt the project you're working on more than you'll help it (wasting development time for something that ultimately isn't even a benefit to users/business).
There's also expensive talent aggregators like Toptal, though haven't really used those before. I also see new talent aggregators like Pallet [1], which looks interesting, though no idea how good those are, and not sure if you're prepared to pay the entry fee.
I mostly appreciate designers who:
- are able to explain why one design is better in terms of actual usability + business impact, not just because they think it looks nicer
- can make designs that are flexible to the real uses of users - e.g. don't make a design that only works on mobile or only works on desktop, whatever they come up with can deal with both if your users will use both (which this app definitely would)
- make designs in a methodical way, i.e. viewing the UI as a system that you can set general guidelines on. The spatial/visual relationships between elements is a reflection of how different information in your app relates to one another, not just a purely aesthetic thing (aka "Information Architecture")
- are able to communicate the work clearly; usually that means well-annotated wireframes in Figma for my team, and are available to do some live visual QA sessions when things are unclear.
- can prove that they are able to make steady and incremental progress at least at the pace that my developer team can keep up with, i.e. we're not blocked on design work. My current designer can do that with just a few hours a week. His rate is admittedly expensive, but the results with so few hours are undeniable.
Hope that gives you something to work from!
[1] https://ridd.pallet.com/talent/welcome
Not every site has to be done in "modern" style with card UI, big touch-friendly buttons and Corporate Memphis graphics.
I think it would be very valuable if you could create subthreads on each thread. Right now you have a huge blank space besides the chat which just doesn't make much sense.
I love the design of the app, feels old school but very nice. It's also very fast. I couldn't find the source code though, is it a proprietary platform? I know it's not decentralised so that's a bit disappointing. But looks good!
The site isn't open source, although I've thought maybe parts of it could be later.
The reason for the blank space is I originally was coming from an angle of news consumption where you could see the meta information of an article, images, summary, etc, alongside a live conversation such as here: https://sqwok.im/p/Q8OggZt9zQX4iA
But when a post is just text it doesn't make as much sense... maybe it could auto calibrate for text only posts? Need to think about it, but thank you for the feedback!
Seems to be some weird behavior with swipe gestures on a laptop. I can't swipe to navigate forward or back on a page. And if I pinch to zoom, I can't really move the page around very well.
You could also just drop in something like Sentry.io. You can add a Feedback button that emails/slack messages you.
1: "talk, ponder,free your mind" is a very bad slogan. it's telling me what to do, instead of suggesting it, and also the last bit is absolute nonsense in this context - I hope it's a placeholder
2: this looks a lot like reddit. get out of here fast
3: come on, at least try to read the titles of these "threads" to see if there's anything interesting
4: nothing interesting, nothing unique, there's science stuff here but that's probably derived from HN traffic
5: quit
It's fundamentally a place for open live discussion and may not be appealing as much for casual reading (yet).
The core focus so far has been building a solid chat foundation but planning to enhance other aspects of the site soon.
The content of the site is set by the people there, and since it's essentially starting from zero that means there isn't a large base of content yet, nor even a way to filter yet.
What sort of topics/content are you looking for?
I remember my biggest problems were making the comments appear pretty, with embedded images and emojis (I think I had to rehost graphics).
I'd love to help beta test a discord version if you're looking for testers.
In Reddit everything is threaded. In Twitter you respond to specific Tweets. Here, you just have an unorganized list of every comment. So as a casual, I don't feel compelled to participate in conversations that have already started, which is most of them, so I lose interest in engaging with this.
The primary driver in building this was first to create a way to easily hop into a live conversation around a topic with anyone.
This has been a bootstrapped one-person project so far and it also comes down to how much I can handle building at a time, and what to prioritize to walk the fine line from 0 -> 1.
I def agree and plan to add ways to add context to conversations and make it easier to navigate through the history of ones already in progress.
Threaded conversations and upvote buttons!
Chats work well with family and friends, but with this many users interacting I feel it's very difficult to follow a conversation. I just end up scrolling up and down trying to get some context.
Thank you!
> thank you for sharing this feedback and linking to it here on HN! It will make it easier for me to find again.
I think this reply further highlights the need for permalinks and threads. :)
The problem for me is chat is synchronous. You have to sit there staring at it to participate in conversations. As a result, since I now have kids/job/etc. I basically can't participate in communities which are primarily chat based (like Discord, IRC, and so on).
The only communities I still participate in actively are those on reddit, precisely because I can engage at my leisure rather than having to respond in near real time. I feel it's the closest we have to mailing lists and forums of old.
Hints:
1. Maybe it breaks because there is more JavaScript than there should be and it makes the site brittle across browsers.
2. Both top and bottom sticky bars. I routinely use uBlock Origin to hide them on all the sites that use one of them. Both is rare but it won't be the first time. Rationale: I never subscribe to those sites and I get there either by search results or by HN posts so I'm not interested in their menus.
But this is about real time conversation, and I agree there's much to be done to improve it!