Home Upgrade Search Memberlist Extras Hacker Tools Award Goals Help Wiki Contact

HF Rulez the UniverseHF Rulez the Universe
MarlboroMan
(° ͜ʖ͡°)╭∩╮
MarlboroMan Hackforums

MarlboroMan's Blog

Posted Mar 25, 2026 04:15 PM
Convo App Dev Blog #1

The start of something!

Written for version: 1.0.0


The Backstory

Last summer, @ttbr0@ and I were having our daily convo and as usual the topic was: What can we do to + the user experience here on HF?
Over the weeks we were plotting on this idea of a HackForums group called HF Devs.

His first idea for the group? A desktop convo app.

We thought it was great, I think he started the repository for the project that day.
@ttbr0@ spent a few hours figuring out the auth pattern HF uses for both auth and the chat socket.
Not long after he wrote the first version of the Convo App.

It looked... Terrible but it sparked that spark with us big time.



Thread: https://hackforums.net/showthread.php?tid=6310986

Fast forward to now, I've had some more free time to work on it.
I had actually been doing a lot of web development prior, so I'm excited to work on this.
Timing couldn't be better as @php@ told me about Tauri whilst I'm in the middle of learning Rust lang myself.
This is the exact fuel my brain needs: Passion (for HF) + Mastering new skills (Rust) = Joy

I started the Tauri project from scratch whilst using a fork of the convo.js client used in /convo.php that I ported into the project.
My goal was to keep the unique UX the original web version of Convo has whilst opening it up for new features.

The backend is in pure RUST and is written for Windows/Linux/MacOS.


[Image: app.gif]

Long story short, this project originates from the thinkers of this forum. The HF Devs.

Credits:
HF Community - Inspiration and input
@Xerotic@ & @Omniscient@ - Original Convo and API v2
@ttbr0@ - Original idea, auth handshake
@itcorp@ - .NET implementation which was a huge jump forward
@MarlboroMan@ - Convo App Lead Developer

Login & How It Works

StepWhat Happens
1Your credentials go directly to HackForums - the app authenticates you the same way the website does
2Session cookie is encrypted with AES-256 and stored locally on your device
3WebSocket connection is established to HackForums' chat server

Cloudflare Challenge
If HackForums presents a Cloudflare challenge, click "Open Challenge Window", complete it, then try logging in again.

Stay Logged In
Check this box to save your encrypted session locally. Next time you open the app, it auto-loads your session.
If unchecked, you'll need to log in each time.

Login Source Code (Click to View)

Cloudflare Worker

For API features, I've set up a Cloudflare Worker that handles the OAuth flow:

FeatureDescription
Zero Data StorageThe worker does NOT store, log, or save any of your data
Passthrough OnlyFacilitates the OAuth handshake, passes your token back to your app, then forgets everything
HTTPS OnlyAll communication is encrypted in transit
Isolated SessionsEach OAuth flow is unique, no cross-user data exposure

Additional Notes:
• Authorization codes expire in 5 minutes and are deleted after retrieval
• Access tokens are NEVER stored in the worker - received and immediately passed to your app
• No logging of request bodies or responses
• API usage is READ-ONLY - the app cannot modify anything on your account

API Permissions:
Basic Info (READ) - Access public user data such as uid, username, avatar, etc for the current profile
Posts (READ) - Access forums, threads, and posts
Users (READ) - Access other public HF user profiles

CF Worker Code (Click to View)

New Commands

Commands that are new in Convo App:

CommandDescription
/sizeembed 1-5Scale embed/image sizes (1=small, 3=default, 5=large)
/afk Set AFK status - auto-replies when mentioned
/askai Ask AI a question (requires API key in Settings)
/askai context Ask AI with recent chat context
/factcheck @username@Fact-check a user's recent claims
@everyone Mention all online users

@Username Autocomplete

[Image: convo-F04-Ie-Zi-Qhw.gif]

Start typing @username and the app suggests matching users from the online list.
A ghost text preview appears - press Tab to complete the mention.

Works in both global chat (@username@ format) and private conversations (profile link format).

Supported Embeds

URLs are automatically embedded for these platforms:

PlatformWhat Embeds
YouTubeVideo player (including shorts)
Twitter/XTweet content
InstagramPosts, reels, TV
TikTokVideo embed
SpotifyTrack, album, playlist, episode, show
SoundCloudAudio player
Apple MusicTrack embed
VimeoVideo player
GitHubRepository/profile card
PastebinCode embed
Truth SocialPost embed
Direct media.mp4, .mp3, .wav, .flac files
Images.jpg, .png, .gif, .webp auto-display

Use /sizeembed 1-5 to scale all embeds (1=smallest, 5=largest, 3=default).

Attachment and Emojis

[Image: convooptions.gif]

Click the paperclip icon for upload options:

OptionDescription
ImageUp to 3MB, embedded directly (max 3 at once)
Image+Large images up to 200MB via Catbox
AudioUp to 200MB via Catbox (MP3, WAV, OGG, etc.)
VideoUp to 200MB via Catbox (MP4, WebM, MOV, etc.)

Drag and drop also works - small images embed directly, large files go to Catbox automatically. W
Thumbnails appear in input area before sending, click X to remove.

Native OS Emojis use your native OS emoji picker - with gif support.

Thread Viewer & Previews

Thread Viewer

[Image: convoappthreadviewer.gif]

Click any HackForums thread link to open the Thread Viewer panel on the right side.
Shows full thread content with posts, requires API connection. If no API connected, links open in browser instead.

Thread Previews

[Image: convoapptpreview.gif]

Hover over HackForums thread links to see a preview card with thread title and info before clicking.

Profile Cards

[Image: convoapphover.gif]

Hover over any username (in messages or online list) to see their profile card with avatar, bio, join date, post count, and reputation (if API connected).

Chat Features

Reply Feature

[Image: convoappreply.gif]

Hover over a message and click the reply arrow.
Your message will quote the original with a preview bar above the input.

Censoring & Muting

[Image: convoappcensor.png]

Settings → Chat has several options to control what you see:

Blur Images - Blur images until clicked. First click reveals, second click opens fullscreen.
Only affects other users' images, not your own.

Muted Members - Add members to your mute list:
Level 1 - Blur their messages (click to reveal)
Level 2 - Hide completely
Both levels censor their profile picture.

Censored Words - Add words to blur. Click to reveal.

Auto Replace

[Image: convo-n-RPKjj5-Cqi.gif]

Settings → Chat → Auto Replace. Add words and their replacements.
When you type the word and press space, it automatically replaces with the replacement text.

Hide Messages

[Image: convapphidemessage.gif]

Ctrl+Shift+Click (or Cmd+Shift+Click on Mac) on any message to hide it from your view (session only).

Translator
Settings → Tools → Translator. Right-click selected text in chat to translate to your chosen language.

Desktop Notifications

[Image: convappnotification.png]

Settings → Tools → Notifications. Get notified for mentions.

Custom Sounds
Settings → Tools → Sounds. Set custom notification sounds for messages and inbox.

Wiki Lookup

[Image: convoappwiki.gif]

If enabled in Settings → Tools, profile cards show a Wiki button to look up user wiki information.

External Link Safety
Clicking external links shows a confirmation modal with the full URL before opening in your browser.

Group Chat Avatars

[Image: convoappgroupchat.png]

Multi-user conversations show stacked profile pictures.

Settings Overview

Open with the wrench icon in the left sidebar.

TabWhat's There
AccountUsername, UID, API connection, logout
ChatMuted members, censored words, image censoring
ThemeColors, background, app styling, saved themes
ToolsTranslator, notifications, custom sounds, wiki, AI settings

Theme Customization
Settings → Theme tab. Customize colors, backgrounds, fonts, and save/share/import themes.

Privacy & Security

Stored Locally (Encrypted)
• Session cookie (AES-256)
• API token (AES-256)

Stored Locally (Unencrypted)
• Settings and preferences

Never Stored
• Your password
• Your messages

iOS/Android

I've tested the app on iOS and it works, but needs a lot in depth of tweaking and it's extremely time consuming for me.
If there is a real desire for this to be released on iOS/Android you'd have to pay the developers for their time (which currently is only me, but will expand).

What's Next?

This is the first in hopefully (or not) many more dev blogs.
This first one is more like a mini documentation but in the future these will be used to talk about updates, developer insights and more.

Right now, my energy is somewhat declining again. I can feel it..
I'll be looking at serious bug reports with high urgency but anything other than that may take a while.