# How to Vibe Code Your Own Twist (and Stop Paying for It)

> Organized work communication for flexible teams

- Site: https://twist.com
- Category: SaaS / Team Collaboration
- Verdict: **Solid side project** (72/100 vibecodeable)
- Estimated effort: 2-3 weeks part-time

## Verdict

Build a personal-use asynchronous thread workspace in a few solid weekends, though matching the polish of multi-client sync requires disciplined state design.

Twist is fundamentally a hierarchical forum combined with direct messaging. The core loop consists of creating channels, starting distinct subject threads, and replying via threaded comments rather than flat chat logs. An AI coding agent can easily scaffold the Next.js database models, API routes, and Tailwind UI components. The main challenges are implementing correct unread counter states across nested records and building a responsive full-text search backend without a dedicated enterprise search cluster.

### What you can't replicate

- The native desktop and mobile app ecosystem across all operating systems
- The massive user network and community built around async-first remote work culture

## What it does

An asynchronous team communication platform that uses threads and channels to replace real-time chat apps like Slack, eliminating online status dots and urgency pressure.

### Core features

- Channel organization with public/private visibility controls
- Thread-based conversation UI within channels
- Nested comments with rich formatting, mentions, and emoji reactions
- Direct 1-on-1 and group messages
- Inbox aggregation view for unread and saved threads
- Full-text search across threads and messages
- Role management (members, single-channel and multi-channel guests)

## The business

### Pricing

- Free: $0
- Unlimited: $6/mo

### Funding

$40K raised.
- Incubator / Seed

Founded 2007.
Team size: ~100.

## The hard parts

- Thread hierarchy state management with reliable read/unread status tracking per user
- Fast full-text indexing and fuzzy search across deeply nested discussion threads
- Optimistic UI updates and cross-client synchronization for offline-first resilience
- Fine-grained access control lists (ACLs) for private channels and thread participants

## How to vibe code Twist

### Prerequisites

- Node.js (free): Required runtime for executing the Next.js framework and build toolchain.
- GitHub (free): Version control repository hosting and deployment integration.

### Recommended AI tools

- Claude Code: Best-in-class terminal agent for scaffolding relational schemas, API endpoints, and React components across multi-file directories.
- Cursor: Ideal AI editor for reviewing UI diffs and tuning Tailwind styling for thread layouts and sidebars.

### Stack

- Frontend: Next.js with React and Tailwind CSS
- Backend: Next.js Server Actions and API Routes
- Database: Turso (SQLite at the edge)
- Auth: better-auth
- Payments: none
- Other: Lucide React for iconography, Zod for input validation

### Hosting

- Cloudflare (Hosting the full-stack Next.js web application and serverless SQLite database via D1/Turso): $0-5/mo

### Build guide

1. **Project Scaffolding & Database Schema** — Initialize the Next.js project with Tailwind CSS, configure Turso SQLite connection via Drizzle ORM, and define tables for users, teams, channels, threads, comments, and direct messages.

```
Create a new Next.js project with TypeScript and Tailwind CSS. Set up Drizzle ORM configured for Turso SQLite. Write a comprehensive schema in db/schema.ts containing tables for users, teams, channel_members, channels (with public/private flags), threads (belonging to channels, with title, author, and status), comments (nested replies to threads with author and content), direct_message_channels, and direct_messages. Include indexes on foreign keys and timestamps for creation and updates. Implement migration scripts and verify connection setup.
```

2. **Authentication & Team Workspace Setup** — Integrate better-auth for secure email/password credential handling and session management, and build onboarding flows to create and join team workspaces.

```
Configure better-auth in the Next.js app to use the Turso database for session storage and user credentials. Create sign-up, sign-in, and sign-out pages using Tailwind CSS. Add middleware to protect dashboard routes and automatically provision a default personal team workspace upon user registration. Build team invitation and member management views.
```

3. **Channel & Thread Management** — Build the core workspace navigation including channel creation, channel listing, and thread creation UI within channels.

```
Develop the main app layout with a collapsible sidebar listing channels and direct messages. Implement server actions and UI modals for creating new public and private channels. Build the channel view listing all threads sorted by recent activity, along with a form to start a new thread containing a title and rich text body. Ensure proper error handling and optimistic UI state updates.
```

4. **Thread Comments & Direct Messages** — Implement the detailed thread view with chronological comment replies, rich formatting, and a separate 1-on-1 messaging interface.

```
Create a dedicated thread detail page that displays the original thread post followed by a chronological feed of comment replies. Add a comment submission form supporting markdown formatting and emoji reactions. Build a parallel direct messaging view allowing users to select a contact and exchange private chat messages in real time or via polling.
```

5. **Inbox Aggregation & Read States** — Build the unified Inbox view that compiles unread threads and mentions across all channels for quick triage.

```
Implement an Inbox view that aggregates all threads where the current user has unread comments or direct mentions. Add UI controls to mark threads as read, save/bookmark threads for later, or mute specific discussions. Store user read states in a dedicated user_thread_states table tracking last read timestamps.
```

6. **Full-Text Search & Polish** — Add search functionality across channels and threads, polish notification indicators, and deploy to Cloudflare.

```
Implement a search bar component that queries thread titles, post bodies, and comment contents using SQLite FTS5 full-text search extensions. Add keyboard shortcuts (Cmd+K) to open the search modal. Refine the UI styling to match a clean, distraction-free asynchronous aesthetic without active online status dots. Prepare deployment configuration for Cloudflare.
```

### Cost vs paying

**Starting costs (one-time):**

- Custom domain (optional): $12 one-time
- Total: ~$12 one-time

**Ongoing costs (monthly):**

- Cloudflare / Turso free tiers: $0/mo
- Total: $0/mo

- Paying for the SaaS instead: $6/user/mo
- Build time: 25-35 hours
- AI tool credits: $20
- Break-even: N/A (Built for personal learning and async workflow use)

## Sources

- [Twist Official Website](https://twist.com)
- [Doist Revenue & Profile via GetLatka](https://getlatka.com/companies/doist)
- [Doist Company Profile on PitchBook](https://pitchbook.com)