Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Struct – A Feed-Centric Chat Platform (struct.ai)
298 points by jdplex 10 months ago | hide | past | favorite | 134 comments
Hi HN! I’m Jason, a product designer at Struct Chat.

At Struct, we're frustrated by the clutter, distractions, and inefficiencies plaguing existing chat platforms like Slack and Discord.

We've built a radical new chat platform that leverages threads, feeds, and AI to help alleviate these problems, and give you back more time in your day.

Struct uses a thread-first approach to keep conversations on-topic. It applies AI-generated titles and summaries to help you decide what's worth your attention. Threads are then organized in a real-time feed, keeping all your conversations up-to-date and at the ready, eliminating the need for channel hopping.

Comprehensive search tools make finding things a breeze, and Strucbot, our AI assistant can answer questions based on what it’s learned from prior threads. It can even proactively respond when it notices repeat requests, providing quick answers so you don’t have to. Structbot is fully GPT-4 enabled, so you can riff with Chat GPT and your peers (generate code, ask questions, all the good stuff) without ever switching apps.

Struct is available on Linux, Windows, Mac, and even works as a Slack interface. Give us a try and let us know what you think.




Countless tools have promised to highlight "what's worth my attention". None of them have worked for me or my team. What's different on Struct?

A few questions I jotted down while watching the video on Struct's landing page:

1. the concept of channels seems to be important on Struct as channels are the starting point of threads/feeds. Could you clarify the concept of channels on Struct? Is it just a concept to group users? Can you also chat on channels?

2. Conceptually how do you handle the fact that only the threads on the realtime feed are visible to the user? Maybe there's a low-signal high-activity thread that takes space and hides the high-signal low-activity thread which results in users missing important information or reminders.

3. Tags are crucial for filtering threads, is there a way to "police" the tags? Using tags usually grow into a mess of similar-but-not-the-same collection of text. Think of JIRA tags.

4. How to handle threads created independently by different users but discussing the same topic?

5. Not a question, but I'd be interested in knowing more about private conversations between two parties. It's mentioned only briefly in the video.

Hopefully these questions don't come out as overly critical. The tool definitely has potential.


Good points. Let me try and address those.

1. Channels for Struct are just groups of people. You engage with a channel, just like you'd engage with a user. You start a thread, and then mention users or channels to define access for that thread. You don't go to a channel to chat.

2. A thread can only take so much space on the feed. The height per thread is fixed. So, both the threads you mentioned could be in the feed, visible to the user. We'd also add a way to archive or mute a thread for some time, that should help with cleaning up that feed.

3. There's a limit on how many tags can be added per thread. Tags help with adding context, and more importantly, very useful for creating custom feeds. We use them for tracking task priorities, which converts our Struct into a lightweight task management system. Nothing to beat Jira, but it's nice to have just one platform for all discussions.

We'd allow tags to be merged. That should deal with similar tags growing parallely, creating confusion. And perhaps, we can also limit new tag creation to moderators. Many controls are possible.

4. You can merge similar threads. You can also select a bunch of chats in a thread and fork them into a new thread. We'd maintain links between threads. Coming soon.

5. To do a private conversation (DM), just mention the users you want to DM with. For example, mentioning @struct would invoke a DM between you and the bot. Mentioning yourself would create a "self-DM" (useful for TODOs, or just remembering stuff, or as a starter thread which you later mention other users/channels to expand reach).

Keep the questions coming. I know the market is filled with chat platforms, and Struct might feel like "yet another". But, I've looked and waited for years for other platforms to do what I thought should be obvious, but they didn't. And that's why I decided to build Struct.


> You can also select a bunch of chats in a thread and fork them into a new thread. We'd maintain links between threads. Coming soon.

Just want to chime in and say this is an essential feature IMO, I hope it’s prioritized.


Absolutely! We already have one chat message fork working. Backend supports multiple message forks as well. So, very close.


The problem is that everyone wants to screen their calls but no one wants _their_ call screened.

People will keep finding ways to steal your attention if they want it (starting new threads, etc).


This would be a bigger problem in community use cases. We're going to introduce a trust level system to tackle this, inspired by Discourse:

https://blog.discourse.org/2018/06/understanding-discourse-t...


In the time you wrote this interview you could also just have tried the app yourself


I think that rather avoids one of the best parts of hacker news - getting the vision/justifications from the creator directly.


This is one of the first Slack competitors that has caught my attention. I really think you're on to something here. I have one thought after watching the video (other than a generally positive feeling about it):

It feels, somehow, less personal. Where Slack rooms felt like digital _rooms_, this gave me the feeling of an office bulletin board. I'm imagining being a new employee at a company that is fully bought in on Struct, and somehow I feel like developing personal connections with my coworkers would be more difficult. I don't really get why, that's just my first impression from the demo.

Otherwise, as a currently funemployed but past SV eng leader, I would have loved to have had this at my last company while dealing with all of the communication chaos that entails.


Founder here. Jason (OP) and I think about this a lot. The balance of cluttering everyone's names on the left panel, v/s making it feel like you're in the same room as these people.

If you look at feed based platforms, they tend to get very asynchronous (almost forum like). And so our design for the real-timeness of the feed was to emphasize the fact that you're in this room with these people, and they're talking right now. It's really fun when a new thread pops up, or a new chat emerges in the feed. That is exciting.

I think perhaps it would help to show a list of online people, so you feel like starting a conversation. Or, perhaps, just seeing other people participate would help. There's surely room to optimize to get the conversations going.


yeah, you've hit it on the head – I think what I felt was missing in the demo was a feeling of presence. a hard thing to capture. anyways, awesome job and good luck!


Thanks! We'll be brainstorming ways of making user presence felt, while keeping it clean.


+1 for human presence. I agree with the commenter upthread that it feels off-puttingly impersonal. Show me the faces!

Otherwise, I totally get the problem you're trying to solve so I poked it and quite liked it.

As someone with 2091 years worth of Slack convos (and Slack wanting me to upgrade to export them) can you let me know how you handle imports and exports?


You can install the Struct bot in Slack: https://struct.ai/install-slack -- This would by default pick up the last 3 months of conversations (we do this to decrease the unpaid load on GPT). You can ping us and we can help sync it from the beginning of whatever history Slack shows.

We don't have an exporter yet, but can surely put one together which provides a SQL / CSV formatted output (or whatever works best for users). We would never charge for exports.


I can imagine a series of useful threads always at the ready for onboarding new people.

But I hear you, ensuring new employees to feel warm and welcomed is crucial for every organization. Especially true for orgs that lean more remote.

Orgs can still use @random channels, @club-channels and you could set up an @annoucements to have spaces for fun links and bulletin materials, and other ways to get to know your peers.

@struct we lean pretty work-focused, we love building. But we should bring the fun too!


This is killer. Love the idea of focused threads while still having channels. Really like the design of everything, too.

Only question: long-term plans? Before I commit a lot of data to something like this it'd be good to know it's not a VC flip and dump.


Manish, founder here.

We intend to keep Struct running. Struct is built with a small of 3: Backend, Designer and Frontend. It's not that capital intensive.

We have a roadmap of features that we're excited to get to, combining both teams and community usecases:

- Enable audio / video calls, webinars. - Various spam control systems for community. - Improving the AI bot and recall, making it cheaper to run. - Index the docs shared on Struct, so AI can respond to questions from there as well (obv while maintaining access control) - the list goes on.

The thing is. What excites me about Struct is that, it combines a bunch of use cases for us.Struct is replacing two chat platforms (team and community), a task management system, a ChatGPT, my personal TODO list, a publicly indexable knowledge-base for us.

It's amazing what you can do when you can trust a system to not forget.


3 people for this product is highly impressive.


3 people is insanely lean for something that looks this polished.

Try and maintain that for as long as you can.


This looks promising. Can you please re-work on the pricing presentation? Honestly, I'm not smart enough to do the math and worry if I might hit an explosion on discussion and pay the price for it. Give examples, present it in a tabular format, perhaps with examples. Please don't make me think.

Also, what's with minimum 6-character requirement for a Struct name? Anything from 4-characters should be fine, right -- there are no more international standards beyond 3-characters!

Edit: A small request, please make the App Icon solid like all the other macOS Apps.


Yeah, good point. We have data from orgs who're using Struct.

Short story: It's significantly cheaper compared to Slack. Struct charges 9.97 per month. And we only charge for AI usage, not number of users or threads or chats.

Base price comes with 200K tokens free, which is enough for most small orgs, if they're only using it to generate thread titles and summaries.

In fact, that's the average token usage by Typesense, one of our users. Apache Druid is around 400K tokens per month. 1K tokens cost 3 cents, so 200K tokens would cost $6 (on top of the base price). Both use Struct as a knowledge-base.

When we start enforcing monetization, we'd allow users to set a cap on monthly spend, so there're no surprises. Beyond the base price, it can be as cheap as you want.


Awesome. Thanks. Great work.

I signed up to try it out and use it personally before deciding for the other team/company. I would really wish to retain org name to 5-characters. ;-)

Update: I can actually change the URL from inside Struct. It would still be nice to be able to choose that during the sign-up steps.


You might have found a loophole, ser. Enjoy the exploit!


Congrats for your product !

BTW: I'm old enough to remember the "forums' days"... and actually, it really seemed to me that you just rediscovered forum (you know... threads that are bumped when there an update)

The only major differences I saw was:

- the UI is more "chat-like" / "facebook-like"

- forums where statically structured by an admin... but it looks like there no real way to structure your threads in folder or things like that (important on big orgs with lots of different subjects concurrently)

On the other side, mails may be (more or less) structured by "conversation" (sadly it's not a strong standard so not reliable) and conversation may be structured by personal folders

- there's "AI" and that's quite tiring these days. I see the point of having a dynamic summary of a thread... but

    * either your threads are 'chat-like' so with simple content... and no summary is needed

    * or your threads are 'mail/forum-like'... and I'm not sure how it will work (sincerly)

Sooooooo... I'm not sure to know what to think about it. Is it "just" a marketing 'chat-like' with 'AI buzzword' app ? Or did I miss something that make it really fundamentally different from forum threads or email conversation ?


Struct is quite inspired by Discourse. It's a unique blend of forum and chat application.

So, you know, every forum, including email, has threads and feed. But, forums are asynchronous, not designed around real-time chat. The challenge when applying concept of threads and feeds to a chat platform is that you need to make it real-time. And that's the hard thing that Struct is tackling -- with the real-time feed design that we have.

I disagree a bit about, "if it's chat, it doesn't need summary". I've been part of enough conversations which go on and on, to know that's not true. Even with the small team we run, we have threads which have like 100s of chat messages, going back and forth. Having summaries really help.

Or, at the very least, you'd appreciate the titles, so your feed would make more sense.

You can structure your threads using tags, and create feed around those tags. That'd be the equivalent of "folders". (Reminds me of when Gmail came out and people had to learn to map their labels on SMTP folders)

The difference in a Struct thread, v/s say a Discourse thread would be this. Struct emphasizes short form, real-time, back and forth communication. Discourse emphasizes long form, well-thought through, one-off posts. Former is chat, latter is forum.

This is long topic, but something I think about a lot. Designing Struct is hard exactly because of this balance between structure, knowledge and being real-time.


OK, so the point is the "real time" interactions

Actually, at work, I'm either in 2 situations:

- I need a quick answer for a simple problem ==> chat (because it's more about getting a simple info and I need it now if possible, or the sooner)

- I need a complete/correct/thoughtfull answer ==> email (because I need someone to really think about it before answering and that person is not available all the time and has other things to do too... so quality of answer is worth waiting)

It may happen that complex email need some clarifications... but if the subject is complex, it usually requires a meeting

It may happen too that a simple answer lead to a complex question... but then we're back at email.

So, I'm not sure that your tool would fit my way of working and/or the places I work for. Moreover, I'm quite sure that "realtime" is one of the WORST possible way of working because it's giving other people a way to manage your time at work (interrupting, etc.)


Real-time platforms cause interruptions, yes. But, that's where we are today with Slack.

So, we're starting off from that point. Let's take real-time chat platforms, and reimagine how we can make them more efficient. More useful. Less noisy. That's the idea for Struct.

The list of people we email is different from the list of people we chat with. In a team, that means, team comms happen on chat platform. And external comms happen on emails. Within a team using a chat platform, it's unlikely that people would chat, and then say, hold on, let me send you an email. If that happens, that's very rare.

What's a lot more likely is you jump from a chat conversation into a video call. Hence, the need for a nice integration with video service (like Slack has huddle).

So, for a certain set of people (your team or community), you're going to use the chat platform. And therefore, the chat platform should be built to enable conversations with good retrieval and focus -- so it can be used for complex conversations. Struct hits that pretty well.


Actually, I think that a real features for chat would be the ability to allow "different speeds":

- some questions requires "urgent" answers (for example: missing info in a meeting)

- some interactions may be processed "in the flow", during the day, when time is available

- some interactions are "human noise", people just chatting

Right now, with teams & others, everything may be "urgent" so you'll have to check and see (so interrupting your work)

Moreover, when it's not urgent, you may decide to answer later... and just forget it (because it's not a new message anymore)

So maybe that's a place where AI could help: show only what's urgent... and reminds at a later time for other kinds of chats

Just an idea


The reason Slack and Teams feels so "urgent", is because there's little going back to reply to an older conversation. Everything is so ephemeral on these platforms, that either you reply now, or it's a goner (slight exaggeration, but mostly true).

Struct's feed system is naturally designed to surface latest, unread conversations. So even if when I've been away for days, I just come back and go thread by thread, like cleaning an inbox. It's a lot smoother system, and you miss nothing.


> I see the point of having a dynamic summary of a thread...

That was a really cool feature in Discord, for a while: The AI always completely missed the point of the discussion and made hilariously awful summaries that provided entertainment for hours.


It's hard to do summaries for chats in channels. Just not enough focus in them to be useful.

Could also be the model that they were using. I've tried a few and found GPT4 to be most accurate. GPT4-Turbo is still a question mark.


"Create a feed for your CEO's threads and stay in sync with your company's latest vision and goals. Jump in the conversation with the right answers and get that promotion you deserve. "

This made me smile with a little sad smile, as i again and again understand it is not important what you do it's important who sees you doing that :)


Talking as an engineer who learnt management by building a startup: Do things. But also, make them visible.

I remember my days at Google (first job). I used to just build and build... and had a hard time trying to convey why what I was building was important. In fact, my first manager skipped over me, and promoted the entire rest of the team (still hurts). When I switched teams (and manager), they told me I was 2 levels below where I should be at.

Long story short: Get into those conversations. Don't be overbearing, but have your presence known.


Isn't that part of the tasks of a manager, making sure to be up to date with what your subs are doing? It's really not in the interest of a company to incentivize employees to waste time on marketing themselves to their supervisors. I see this very often, but I think it is just showing that most managers are not doing a good job in this regard.


If a tree falls in the forest… If a developer goes the extra mile…


runForThread.executeReq.Get.messages: executeReq.client.Do: Get "https://api.openai.com/v1/threads/thread_*******/messages?li...": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

Hope one day new products don't need to depend on OpenAI...


Arr.. we should clean up the error messaging a bit. Not to hide OpenAI, but just make it appear nicer.

I like OpenAI. GPT4 works really well. Some others we tried were cheaper, but the quality wasn't as good.


I'm honestly considering sometimes to ban .ai domains on my router until the whole thing has gone back to normal.

But seriously, this thing actually looked very interesting until the point where I read "... and AI" :-/ Guess I'm not the target audience.


BTW I think this is brilliant because summarization is one of those things where AI works really well.

Out of curiosity, I wonder if you could share some of the tech you used? Any dgraph or badger under the hood by any chance? :-) How about hosting? Big three or something else? K8s or no? Elastic Search? etc.

Edit: Also curious if struct is supposed to online scrape slack/discord or become and standalone chat app now/in the future.


The Stack is this:

- Go - Postgres - OpenAI (biggest bill producer is this) - React / Next.JS - Loops.so for Emails - Imgproxy for handling images - Microsoft E5 for embeddings (not OpenAI) - Typesense for Search (also a user of Struct) - Figma (design) - Framer (website) - Server on Hetzner

Badger wouldn't have made sense to use instead of Postgres. I'm thinking of using Badger for other purposes. I do use ristretto and roaring bitmaps a lot internally.

Struct has a very nice integration with Slack. So, you can actually use Struct as a Slack interface. Essentially, your peers can be using Slack, while you could responding to them via Struct - think Superhuman for Gmail.

We have a good integration with Discord too. Both are being used by OSS companies to generate public knowledge bases from their Slack/Discord conversations.

[1]: https://github.com/struct-chat/embedding


If OpenAI is your biggest expense maybe I can help. Have reduced LLM cost for several companies by factors of 10 and more. Email in bio.


Sometimes I wonder if we are trying to optimize productivity in the wrong way. Maybe the bigger gains are not from having tools that help us manage the clutter in communication, but instead it might be on having less communication altogether and still be effective at getting the right things done.

For example, I don't want to optimize my meetings' notes so that I can have tens of meetings and keep track of it. I want to have less, but more effective, meetings.

Just a thought that I have.


Could not agree more. As an industry, we're stuck in the "Magic Button" paradigm, where AI does something cool, but only if you tap the Magic Button.

AI can obviously generate automatic summaries from meeting transcripts, so why can't it follow up on the next steps/action items? If a next step is for Janine to set up a meeting with Carlos, why can't it just reach out to Carlos for her to set it up?

We're thinking way too small.


Fair point. We can all do with less meetings. I think tools like chat platforms / loom are all aimed at reducing the number of meetings we need to do.

Though, you do have to abide by Metcalfe's law. Most modern work happens in teams and therefore, you have to pay the price of O(N^2) communication, where N = size of the team.

I don't see communication decreasing overall. We just have to use the right tools to be more effective at it.


This is awesome. Discord is the worst for trying to search and follow threads of information. Seems like I'm always answering the same questions over and over again.


Discord will inevitably add LLM-based search like Slack AI just announced, and you won't have that problem anymore.


I know Discord is already trying some AI stuff out like Summaries, but AI search doesn't seem like the kind of thing that Discord would add, given their audience and that they took down Clyde AI.


I don’t see this going after discord but Slack or teams perhaps?


Founder here. Struct is designed for both teams and communities. Because the problems affecting Slack and Discord are the same. We already have a bunch of community features, like publicly indexable knowledge base from threads, public-to-internet channels -- which are being used by many OSS companies (list on home page).

Teams is a different product. Companies who use Teams are there because they have tight integration with Microsoft Office, which is the USP there.


We switched from Slack to Teams because we were going all in on Office 365 and Teams is included.... so why pay for Slack? But, honestly, we don't use a lot of the integrations, except for maybe the Sharepoint access when adding attachments which is, admittedly, pretty nice.

We also don't use Threads in Teams. Things got lost trying to jump back and forth between the "Chat" tab and the "Teams" tab. So now, we just create a new chat conversation for each project we're working on and add the relevant participates and rename the chat to the Jira Ticket #. That provides enough context/summary for what the chat is about.

All that said, Struct looks really nice and I could see it benefitting our team. Especially the AI portion. We have chats going back years for long-lived projects that get shelved and then picked back up later. Being able to interact with a ChatBot to help find answers within these chats would be killer. I assume there are no plans for a Struct for Teams though.


Perhaps a good start would be to create a Struct org, for communicating within the team?

We'd surely look into Teams integration at some point. Though, I'm not sure how many takers would be there for Teams/Struct integration. My perception is that Teams users tend to be medium-to-large businesses who are tied to Microsoft Office, and would be very hard to sell to. I might be wrong.


I'm sure you're probably spot on. Going to take a deeper look at Struct regardless; it's intriguing.


Interesting how we've almost come full circle back to message boards, maybe time for phpbb/vbulletin to reappear? Next-gen will call it "Slow Chat" :)


I hear ARPANET was the real deal. j/k


Looks very cool, planning on giving it a try. Also appreciate transparency around pricing.


Thanks! Yeah, we've been thinking about fair pricing for a long time.


I think this product is useful only 1) if you have a lot of channels aka if you work in an enterprise setting, and 2) you get ping'ed a lot.


I'm biased. But, hear me out. We're a team of 3, and we think it's way more useful than Slack would have been.

As mentioned elsewhere, Struct is replacing two chat platforms (team and community), a task management system, a ChatGPT, my personal TODO list, a publicly indexable knowledge-base for us.

It's nice when you don't have to treat your chat platform as an ephemeral, knowledge void.


I haven’t had the chance to try yet, but trying to use slack in a fully remote company means I’m very frustrated in keeping up with what’s important, and remembering in which room or 5-person ad hoc DM some discussion took place in.

So I hope this is good, and I hope Salesforce (slack) backs a big money truck up to your houses to make you an offer you can’t refuse, because I specifically need this slack thing you mentioned and I don’t think they’re that friendly to third-party tools (as in clients). So I worry that if something is to fix Slack, it’ll have to have connections in-house.


Like the home page - like the animated graphics.

Like that you have a section on privacy, quite confused about the statement there though.. like, "you'll only see results from threads you're authorized to view"

So it sounds privacy is a main thing.. but the gist of this tool is that it pushed chat data to openai servers? and I;m assuming it's not a self hosting option, it's a saas on your servers?

I would look more into how it actually does whatever if I didn't see the privacy issues, there was a self hosted system to connect with a self hosted llm or something.

c 2023 in footer


OpenAI has strict privacy rules in place. Being on a business account, any of the data that we send to OpenAI wouldn't be used for training.

It's a SaaS. Over the next few months, we'll be going through the SOC2 compliance process.

Will update the footer, thanks for catching.


Slack's chat interface feels fine to me. What would prevent me from switching off Slack is losing my Slack integrations/the Slack developer APIs. How does Struct address this?



> We’re forced into clicking through multiple channels just to catch up on our team’s latest updates. Combine this with the always-growing list of new channels, and information starts to get really scattered.

This is one of those problem statements that just doesn't resonate for me at all. I really like things separated into the different buckets so I have a good idea how to find it again later.

The idea of combining stuff into one feed is kind of a nightmare for me.


It's really about choice.

In Struct, you can create custom feeds, which can filter threads by channels / users/ tags, etc. You have that choice. In Slack, every one of these entities (and permutations for DMs) stands alone. It's set in stone, unchangeable.

That itself is a big win.

In fact, feeds are everywhere. That's how we consume almost all internet. RSS, News, Facebook, Twitter/X, Instagram. Feeds scale, they are powerful, they work. Instead, Slack has us jumping around channels and DMs for drips of messages, playing Whac-A-Mole.


It seems like you're trying to convince me that I'm using the internet wrong :)

I like the channel based structure of Slack. It gives me a confidence that I can always go back and find any message, it won't disappear, or be unfindable.

I don't like the "filtered feed" model of Facebook and Twitter, because I'm never sure what has been filtered out. And the fact that everyone is getting a different view makes it hard to develop or maintain shared understanding with others.

Feeds are fine when it doesn't matter if you miss stuff - jump into Hacker News, read some of the latest posts, then disappear for a bit. Not so good (for me) when missing things matters.


Ok. I should clarify. Struct doesn't do anything "smart" with your feed. It's the threads matching the boolean filters that you define (all threads has no filters), sorted by updated at timestamp desc order.

There might be interest in building a smarter feed which uses recommendation algorithms (and therefore have different views for different people, assuming same channel membership), but that's not what Struct feeds are today.


Ah cool, thanks for the clarification.


In my experience Slack becomes buckets within buckets, so I still rely on the 'feed' - i.e. the 'threads' aggregator to find which one of the dozen sub-buckets are actually discussing X and Y.

Not to mention the infinite buckets with similar topics and names.


Looks super cool! Having a few issues with Win10: i) Antivirus kept blocking the installer, so had to manually add an exception ii) Can't log in using the desktop app. After creating an account using email and adding the code sent to my email I get an ERR_TOO_MANY_REDIRECTS.

Also a bit curious about the Windows app - seems to be running on Microsoft Edge? Why did you end up choosing Edge?


It's built on Tauri, so it picks the system default browser I think. We had applied for getting an EV certificate for the Win desktop app, but it's taking time to get that process done for some weird reason.

I'll get the FE dev to look at the too many redirects issue. Seems strange. Does it open fine on your Edge browser: https://app.struct.ai?


Hello. Just an idea but could be nice to have the app embedded into your website as a demo, so we can interact with it ourselves.


Good point. Actually, you can join our Struct org: https://chat.struct.ai/join/DXVTmseDdBkeA6mG

Chat there!


* Desktop only


I installed the chatbot on my discord but it’s not indexing anything, do I need to sign up for a trial or something like that?

It’s my own little discord server so I have a super low volume of messages :-)

https://bembem.struct.ai/


Manish, founder here.

On Discord, the bot only picks up Discord threads, not the chats in a channel. Could that be it? Unless there's some issue with sync.


That must be it! I don't really have any threads I don't think. Oh so Struct uses that as boundary to summarize? Makes sense, although a lot of Slack and Discord servers don't really use threads. Like, the golang one in Slack specifically asks people to NOT use threads, out of some usability concern, I think (screen readers or something).


Yeah. We now pick up chats from channels in Slack, and convert them into threads. Somepoint we'd do the same for Discord too.

Chats in channels are too diverse to act like threads. Jury is out on how good those threads look.


That's one of the best landing pages I've seen recently. Congratulations on the launch!


Flying high on this comment!


Thanks! Kudos to Jason (OP). One of the best designers I've had a privilege to work with.


I really like the UI, it's exactly how I use and share notes within my colleges for years with my current system. Is there anyway that I can bring my own model ( integrating with my data stored on struct ) to answer my questions?


Worth a conversation for sure. Maybe find a time to chat? https://struct.ai/schedule-demo

Or, you can jump in here and we can have a discussion: https://chat.struct.ai/join/DXVTmseDdBkeA6mG


Can’t recommend enough Zulip.

First-class topics, tools for organizing messages between streams & topics, open-source self-hostable, no engagement of ML out of the box (but probably possible thanks to Python plugin support), Vim-like keyboard shortcuts.


I was about to say the same thing - I use Zulip at current employment - and after you get used to it it’s pretty great software that already solves all the problems struct aims to (without the AI nonsense)


Founder of Struct here. I looked at Zulip before starting Struct. And I'm sorry -- I don't think it's the same. Threads in Zulip are really sub-channels, and the idea of a unified feed like "All Threads" doesn't exist -- at least, that was my perception of Zulip. And just looking at the site right now, it feels the same as before. I could be wrong.

Struct is different. It's a reimagination of what a chat platform would look like if you were to completely give up the idea of chats in a serial log of channels (IRC, Slack, Discord), and embrace threads and feeds whole-heartedly. When everything is a thread, the platform can work remarkably well for users.


> the idea of a unified feed like "All Threads" doesn't exist

I believe it does. You get a feed of all messages; and still organized by a topic, quite conveniently.

I don’t use it, though, since from anywhere in GUI I can immediately jump to the next unread message, irregardless of topic or stream, simply by pressing “n” on keyboard (preceded by Esc if I happened to be typing; my draft is saved reliably).


Indeed, Zulip has several views along the lines of "All threads", designed for different use cases and user preferences:

- https://zulip.com/help/inbox

- https://zulip.com/help/recent-conversations

- https://zulip.com/help/all-messages


> unified feed like "All Threads"

I don't understand why I'd need or want this. I saw it in the video and was horrified. Multiple feeds updating as I'm watching them is just too much going on.

When I'm chatting, I don't want to pay attention to 10 different things at once. I'm most productive when I am working on one task (with a single topic), which may require me to refer back to Slack periodically.

Struct looks like it has two differentiating features: 1) it surfaces irrelevant distractions in the All Threads channel, and 2) it creates the tl;dr summary. The former seems actively harmful to productivity, and the latter seems like it could be useful.


You could create a focused custom feed. For example, I have one for "tasks assigned to me". That's what I set to when I'm focused working.

That's the beauty right -- you can control and filter what you see. As opposed to channel based interactions, where your boundaries are set in stone on channel creation.


But I don't currently use Slack as a task manager and don't want an unstructured task manager with no due dates or tags.


Yup. That's the point I'm making. Slack is used as ephemeral messaging system, a knowledge void. Struct aims to proves that more is possible.


Gmail threads can also be task managers. That doesn't mean they're the right UI for it.


Looks cool, but unfortunately another company that treats single sign-on as a luxury feature, not a core security requirement by jacking the price way up to get SAML support. Companies really need to stop doing this.


I see it as an open-source product that you are free to run in whatever fashion you like, behind SSO or not. For a place for contributors to chat about an open-source project, for example, it’s hard to see how SSO is a must.

Demanding SSO from Zulip would be like demanding SSO from self-hostable Discourse, Jitsi, etc.


Single-sign-on is a large and painful feature to develop, that most people don't need, and that the companies that need it are willing to pay for. It's the perfect candidate for a higher-tier pricing structure. This makes much more sense than tiering on a feature that everyone needs.


Sso should be the default really. And as a starting point every language has openid connect implemented. Yes it needs work but surely better than the average password reuse?

For large and small companies surely the best way to maintain their users


SSO in 2017? Sure. In 2024? No way.


Add this to sso.tax


This product is way better than Slack IMO! We have so much information lost in Slack and hard to summarize the key insights with so much data dump! Kudos Struct team, what an exciting product we will test it with our slack integration.


Nice, a culmination of everything I hate about Slack and Teams in a single product!


1. OpenAI and the whole baggage of training on company data should be optional. Titles and summaries might not be that important and could be provided by the user.

2. Never ever will I buy anything from a company that looks like it's hiding where it's from and who's behind it. No, your profile pictures and a bunch of names do not count. This whole website could be scam for all I know.

This might be my European (German in particular) point of view, but here, every non-private website must have a full imprint with the company's name, registration number, address, and the Terms of Privacy need to have the full address of the responsible entities (usually the company plus a data protection officer). This is a good thing! We need transparency in businesses who collects money and since GDPR is very relevant for my own business, I want to evaluate how easy it is to get the necessary paperwork (data processing agreement) between your company and mine. Right now, you're hiding behind a hey@whatever email address, zero transparency.


We'll be sure to go through all those details, as we work towards compliances.


Something that has always stopped us from migrating away from Slack is the integrations. We have 10s of integrations on Slack and those are a pain to migrate. Any thoughts or plans on how you would support that?


Yeah, that's what we're going to focus on next. Identify the top 5-10 integrations to build.

Would love to learn what integrations you use, and in what capacity. Based on my interactions, it's really only a few integrations that 80% Slack users use.


Looks great, but hard to make the swap from slack without apps/bots/api. I'm sure you thought about it, but a slack-compatible bot api will probably really help with adoption.



Slack has a big app marketplace, which is helpful. Do you have plans to add something like that to Struct?


Yes. We'd be documenting Struct APIs. And also we want to identify the top 5-7 most popular Slack integrations, and build them ourselves for Struct.


While I think this has promises, how can I convince my big corpo that uses slack to switch? Are there any slow rollout plan so people can try and see if they like it?


https://struct.ai/struct-for-slack would allow individuals to use Struct as an interface to Slack, without the whole team having to switch in one go.


EDIT: This was an inadvertent copywriting/cms mistake. I'm leaving the original below for context only.

  >>> OLD POST FOLLOWS <<<
So while reading the landing page I came across a keyword that I'm always conscious of when considering anything AI related... you mentioned PRIVACY

Privacy. That's Struct.

The Struct app is the result of a meticulous design process, one focused on minimalism and efficiency. Our interface is deliberately subtle to ensure a distraction-free environment for work. It's completely brand-agnostic, free from any disruptive colors or logos.

We have lots of keyboard shortcuts for fast navigation, and a dark mode to reduce eye strain in low-light environments. We’re also committed to meeting users wherever they are — the app works on Windows, Mac, or Linux.

Now... I'm hoping this was just a copywriting fail, perhaps you trusted some ChatGPT output a little more than you should and as a startup you don't exactly have heaps of spare people to re-read things that seem good to go... But the problem is that Privacy is a pretty important detail when it comes to communications between people, a lot of us like to know who else can read our messages, where they're sent, how they're stored... that sort of thing.

So I keep reading, and re-read it a few times... and nope sorry... I cant connect the line in the H1, to anything in the following two paragraph tags. Your two paragraphs about how minimal and easy to use the app is... have nothing to do with privacy... and the conspicuous absence of anything about privacy after a statement saying how about privacy you are, has immediately made me incredibly suspicious of your company, and its otherwise interesting product...

Since you might still be reading comments jdplex hopefully you see this... You might want to fix your copy before it puts off more potential customers... But unless its a whole bunch of missing extra information about actual good privacy related, you've probably already lost me as a possible customer due to too much suspicion.


Crud! I'm sorry, you're so right. I screwed up in my CMS.

Thanks for catching this copy error. I read this thing a hundred times and got blind to it. grrr


Don't be too hard on yourself, editing text is hard...

I'm pretty sure almost everyone will make the the mistake of leaving something out or adding something in the wrong place at least once. The human brain is pretty good at doing clever things like a gap in words with what it thinks should be there, or skipping over little things that shouldn't... or unscrambling usftf that is just completely up.

;-)

Also I edited my comment reflect that it was a mistake.


oh man, thanks for the kind words!

Scrambled or unscrambled I'm sure my brain can find a way to screw it up :)


Thanks, techdragon for helping us identify and fix this issue.


Really cool and promising product, but why the .ai TLD? It feels like an unnecessary focus.


Really wanted the .com domain, but that wasn't available. We got the .co domain, but .ai domain felt more right, given we're using AI, and now it's even part of the pricing model.

Hope to get that .com domain someday :-).


Do you have any plans of opening up API access or onboarding plugins and developer ecosystem?


Yes, big time!

I'm biased, but because everything is a thread, Struct APIs are nice and simple to work with. We'll be working on documenting them.


This takes google chat ahead. Google did a half hearted job with Google chat to be honest.


God, I was interested in the pitch until "and AI".

I'm just so, so tired of LLMs and having to work around all the new and surprising ways they don't quite work the way they're supposed to. At the very least, when other programs don't work the way I want them to, I can usually get used to the issue or find a workaround sometimes. When something is AI-powered, I just have to kind of resign myself to the fact that sometimes it's just... not gonna do the thing. And usually in a new way that I have to develop a new workaround for, or sometimes there's just no workaround, it just sometimes doesn't work and you have to deal with that!

It's like I can never develop any sort of armour around the rushed or poor decisions and features I encounter, because it's fresh, interesting poor decisions, automated at scale!


Founder here.

TLDR: AI word is overthrown these days, sorry about that. But, what makes Struct different isn't AI. It's feeds and threads.

Longer version: The AI in Struct is, IMO, a balanced approach. Struct is different, not because of AI. It's different because of going hard on feeds and threads.

And AI helps in generating titles and summaries for threads -- something which pre-2023 me would have basically asked the user to create. In fact, that was the original idea that users would set their own titles for threads. But, users are forgetful and threads deviate from their intended purpose. And that's where AI can really help -- keep both title and summary up to date.

And you could stop there with the AI.

But, then you start playing with Struct bot, and it's ability to recall bits of information from older threads -- that's really nice. It's saved me so much digging around, personally. But, it's optional, you never have to talk to it.


Any plans on a web client?


app.struct.ai works very well as website. I use both the website and the desktop app simultaneously often.


i love your pricing!


Thank you! We went through many iterations to get to this pricing model. So, I appreciate this comment.


Having a density of competent people helps a lot and avoids things like this.


Couldn't it be a Matrix client ?

Else, a new silo is born.


Could be a feature request to integrate with Matrix APIs. For example, we're doing bidirectional sync with Slack already. And unidirectional sync with Discord.


> AI to 2x your productivity

I'm out. Sorry, but this is just obnoxious.


[deleted]



Can you send that via reddit, please? j/k


"Stop creating new ideas because it makes me uncomfortable."




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: