πŸ’¬

Devent

An SSH server for devs to vent

GitHubΒ·ssh localhost -p 2222
Devent terminal UI showing the home screen with a Stoic quote

The home screen greets you with a random Stoic quote and two options.

Overview

Devent is a social platform that lives entirely inside your terminal. No browser, no account, no sign-up. You SSH into the server and land in a Bubble Tea TUI where you can write posts, read what other devs have written, or just absorb a Stoic quote and leave. Posts are stored in Redis and persist across sessions. The whole thing is designed to be hosted on an AWS EC2 instance so anyone can connect.

How It Works

01

SSH In

Connect to the server on port 2222. Charm's Wish library handles the SSH handshake and spins up a PTY session with ed25519 host keys.

02

Home Screen

A random Stoic quote greets you, fetched live from an external API. Two options: create a post or browse existing ones.

03

Write a Post

A Charm Huh form lets you pick public or private, give it a title, and write up to 600 characters. Private posts get chucked into the void. Public ones go to Redis.

04

Browse Posts

A scrollable list of recent posts, pulled from a Redis sorted set ordered by timestamp. Select one to read the full content.

Architecture

The app is a state machine with three screens β€” Home, Create Post, and View Posts β€” each modeled as an independent Bubble Tea model. A MainModel sits on top and routes between them using message-based state transitions. Each SSH session gets its own Bubble Tea program instance through Wish middleware, so multiple users can connect simultaneously.

MainModel

Top-level router. Holds state enum and delegates to child models.

HomeModel

Welcome screen with Stoic quote and navigation buttons.

cPostModel

Create post form using Charm Huh. Saves to Redis with UUID keys.

vPostModel

Fetches and lists posts from Redis. Drills into individual post view.

Tech Stack

Language

Go 1.23

TUI

Bubble Tea + Lipgloss

SSH Server

Charm Wish

Forms

Charm Huh

Database

Redis (JSON + Sorted Sets)

IDs

Google UUID

Deployment

Devent is designed to run on an AWS EC2 instance. The Go binary and Redis server sit on the same machine. The security group exposes port 2222 for SSH connections, and the ed25519 host key is generated on first boot. Users connect from anywhere with a single command β€” no client install, no browser, just a terminal.

Compute

AWS EC2

Data

Redis on instance

Access

SSH on port 2222

Redis Data Model

Posts are stored as JSON documents keyed by post:{uuid}. Each document holds an ID, title, content, and a public/private flag. A sorted set called posts indexes all post keys by Unix timestamp, so the feed is always sorted newest-first using ZREVRANGE.

The Stoic Quotes

Every time someone SSHs in, the home screen fetches a random Stoic quote from an external API. It felt right β€” if you’re here to vent, you might as well get some perspective from Marcus Aurelius or Epictetus first.