Kursal Chat banner

Kursal Chat

16 devlogs
168h 22m 2s

A decentralized, peer-to-peer, end-to-end encrypted messaging app that puts you in control. No servers. No tracking. Just your private conversations. [DOES NOT WORK ON ARCH LINUX :(]

This project uses AI
  • Front-end aka interface (the most important part is the back-end anyway)
  • Proof-testing my ideas and brainstorming
Demo Repository

Loading README...

Kubik

Shipped this project!

Hours: 43.59
Cookies: šŸŖ 1525
Multiplier: 29.15 cookies/hr

I’m glad I made this project, this is more than a year of research and experiments

Third Kursal release! (PLEASE READ)

Before voting, I’d like you to understand my project: this is a DECENTRALIZED messaging platform, meaning there’s no servers. It works with messages, file transfers and more.

Major additions

  • Full UI rework
  • Settings (backups, themes)
  • HTTP API server + NPM module to interact with it
    & lots of fixes lol
Kubik

LAST SHIP BEFORE THE END OF FLAVORTOWN!! Thank you for everything ā¤ļø

What’s done?

  • Finished the demo video :)
  • added unlogged hours like i forgot to add kursal.js to the project hours list LOL
  • started translations for the app… takes time lol
0
Kubik

[LOCK IN] uhh last day lol

What’s done?

  • lots of bug fixes lol
  • API reworks & documentation
  • NPM package! You can now interact with the Kursal API with a JavaScript (TypeScript) module: https://www.npmjs.com/package/kursal
  • Editing of a new video demo

What now

  • finish the video demo
  • tbh it’s the last day idk if I can finish anything else :(
Attachment
0
Kubik

[LOCK IN] LAST WEEEEK!

What’s done?

  • Working backups!
  • Fixed critical issues in the API server
  • New library in development! kursal.js!
    • You can listen to app events like receiving a message
    • And send some of the commands (send messages, react) but some missing

What next

  • continue working on the kursal JS lib and publish it on NPM
Attachment
Attachment
Attachment
0
Kubik

[LOCK IN] after a few days of break because of exams, I’m back šŸ”„

What’s done?

  • reworked the whole settings tab: there are now a LOT more settings to tweak :)
  • added color themes, in light & dark mode (they look fire)
  • onboarding to explain how adding a contact works
  • removed the top bar on mac (it’s cooler :p)

What next

  • Finish the settings, I still have one category to complete (storage)
  • offline messaging…… (will eventually do :cryin:)
Attachment
Attachment
Attachment
Attachment
0
Kubik

Shipped this project!

Hours: 38.77
Cookies: šŸŖ 1249
Multiplier: 26.85 cookies/hr

Second Kursal release! (PLEASE READ)

Before voting, I’d like you to understand my project: this is a DECENTRALIZED messaging platform, meaning there’s no servers. It works with messages, file transfers and more.

Major additions

  • File transfers
  • Bluetooth
  • Message edits, reactions, deletions
Kubik

[LOCK IN] I’m so mad I got a x13 on my first ship… like I literally spent the previous year thinking about this project and writing a technical paper! Auuyghhh 😭

What’s done?

  • Bluetooth nearby adding (that took so long)
  • Connection limiter to avoid spam requests
  • Deep linking support (Kursal://)
  • App menu
  • API server to control Kursal via code

What next

  • offline messaging
Attachment
Attachment
Attachment
0
Kubik

[LOCK IN] still locked in. btw i know i use emojis and it looks like AI but bro… no its me writing my devlogs :p

What’s done?

  • Reworked the entire interface (thanks Claude)
  • Added an onboarding screen (it’s so cool! still missing some images, waiting for my friend to finish drawing)
  • Keychain fixes, reworked imports and stuff
  • Partial bluetooth support for first-contact (it’s still buggy)
  • Working on an local API server to interact with the app

What next

  • Finish the local API (almost done)
  • Fix bluetooth (this is pure pain LOL)
Attachment
Attachment
Attachment
0
Kubik

[LOCK IN]

What’s done?

  • Real message edits, reactions and deletion
  • FILE TRANSFERS! Unlimited size! I had to make it go through custom streams between clients lol
  • mobile friendly UI… now it works…
  • currently reworking the WHOLE interface

What next

  • currently reworking the interface with an onboarding (thanks opus)
  • will try to implement calls… that’d be CRAZY
Attachment
1

Comments

Gabs
Gabs about 1 month ago

The apps UI looks very nice!

Kubik

[LOCK IN] So many bug fixes and improvements! :D

What’s done?

  • Fixed logging, with rotating logging files that get .tar.gz’d
  • Fixed keychain 😭
  • File associations: .kursal files can be opened in-app and trigger events (like long term code files)
  • ANDROID FIX! it now works on android too! (UI buggy though)
  • PROPER PreKey generation fixes
  • Tested the lookup_rendezvous feature to re-sync listening addresses between two contacts - HOLY MOLY IT WOKRS
  • you cannot add yourself as a contact anymore. dont try this.

What next

  • still improve UI
  • editing, deleting, reactions
  • F I L E transfers (unlimited size!)

oh yeah and i made a demo video! check that one out on the github release :p

Attachment
Attachment
Attachment
0
Kubik

Shipped this project!

Hours: 86.01
Cookies: šŸŖ 1385
Multiplier: 13.42 cookies/hr

Finally released a first prototype for Kursal! šŸŽ‰

Implemented:

  • Friend adding via 3 ways: One-Time-Password, Long-Term-Code and Nearby-Share
  • Simple messaging, replying, markdown support
  • Block & remove contacts
  • DECENTRALIZED. NO SERVERS. :DDD
Kubik

[LOCK IN] Improvements! And a public prototype šŸŽ‰

What’s done?

  • Added an auto-updater to the app
  • Key utilities shell script (for generating signing keys)
  • Added a log system (with rotating file name)
  • USERNAMES AND AVATAR!!! you can share it (or not) to your contacts
  • In-app benchmarks (only one for now)
  • Revised One-Time-Password hashing parameters (it was too strong)

What next

  • Would be cool to have a ā€œper-deviceā€ build script or like a ā€œself-buildā€ script
  • Test app on all devices… (gosh)
Attachment
Attachment
0
Kubik

[LOCK IN] fixed lots of bugs… and some improvements :D

What’s done?

  • started by adding a android/ios support! (apk to install, or ipa for iPhone but like.. you need something like altstore)
  • fixed DNS swarm multiaddr
  • check the DHT record before accepting the entry
  • interface improvements (small ones)
  • you can now remove a contact! (will clear messages)
  • ability to block/unblock contacts (to keep message history)

What next

  • still interface 😭
  • usernames and avatar (lol i didnt do that since last devlog)
Attachment
Attachment
0
Kubik

[LOCK IN] uh i thought i had to devlog more than 10 hours so uh.. sorry for the 14h devlog šŸ˜…

What’s done?

  • spent $28 of claude credits for the interface… to be the same 😭
  • fixed bugs! lots of ’em:
    • security code now works :p (prevents man in the middle attack)
    • one time password and long term code works now… lol
    • nearby contact works better now (it was really buggy before)
  • PEER ID ROTATION, that was so haardd 😭 but IT WORKS HOLY MOLY

What next

  • interface… still… i’m outta credits though bruh
  • test… test… test… (again)
  • usernames and avatar (it looks ugly right now LOL)
  • kursal:// protocol

there’s still lots of work to be done! but take a look at the screenshots it’s coming together :)))

Attachment
Attachment
Attachment
0
Kubik

IT’S STARTING TO ALL COME TOGETHER šŸ—£ļø

What’s done?

  • Debugged lots of magic
  • Whole CLI sidequest LOL: Open a new relay with a TOML config to participate to the Kursal Network
  • GOT MDNS TO WORK AND MESSAGING HOLY MOLY (see screenshots :p)
  • Oh and i bought the https://kursal.chat domain name (fire)

What next

  • still make the interface better (right now it’s made with GPT-5.3, I bought credits to make with Claude, probs Opus will see)
  • test… test… test

i’m so proud of that project I think i’m seeing the end of it! i think

Attachment
Attachment
Attachment
0
Kubik

okay… FINALLY done with the backend stuff!

What’s done?

  • Went through all the code to look for bugs and vulnerabilities (thanks code rabbit)
  • Wrote all the bindings for Tauri!
  • Started writing the web interface with AI

What next

  • finish the interface lol
  • debug stuff 😭 (seems like connections aren’t working yet)

next devlogs will probably contain real screenshots lol

Attachment
Attachment
0
Kubik

Last utilities functions written! I can finally start working on putting everything together!

What’s done?

  • Finished the One-Time-Password
  • Long-Term-Code: Generate, share and load long term cryptographic keys (omg that sounds so nerd lol)
  • Nearby Share: that was the most difficult, made modular structures to allow MDNS discovery… and maybe bluetooth in the future? (that would be fiiireee)
  • Messaging Pipeline: Connection between messages and database, global message structure and more :p
  • oh and more tests

What next

  • Look for bugs and vulnerabilities… Yeah I want and have to check for those lol
  • Start working with Tauri! (allows to make desktop apps)

I think I’m done with the hardest… but there’s still a long way to go lol, hopefully i’ll make it in time before the end of the event…. ;-;

Attachment
Attachment
0
Kubik

Same as before, more utility functions to use later! Got more progress done!

What’s done?

  • Finished Crypto Layer
  • Message Types: serialize, deserialize & more
  • Network Layer: manages the decentralized network
  • Peer ID Rotation: utility functions to rotate peer ID (enhanced security :p)
  • DHT Rendezvous: prepare all the Distributed Hash Table magic
  • Contact Management: Saving/Loading contacts
  • One Time Password (OTP): In progress! Prepare, hash, publish and fetch the entry

What next

  • Finish the OTP
  • More first contact options (long term code, nearby share)

I don’t know how I’ve managed to add so much stuff LOL

Still VERY nerd sorry I still don’t have any demo :(

Attachment
Attachment
0
Kubik

Sorry it’s hard to show anything for now, it’s really like project scaffolding and useful functions… But I did a whole plan with steps that will take quite some time :)

What’s done?

  • Project Scaffolding & dependencies (had to install libsignal, was quite hard lol)
  • Custom Rust Errors (really useful!)
  • Database Storage: makes saving encryption keys easier basically
  • Identity: Generate key pairs and stuff (nerd magic i guess)
  • Crypto: Dilithium-5 signing, message en/decryption, pre-key bundle generator
  • oh and tests for each category :p

What next

  • Message Types
  • Network Layer (will take HUGE amount of time)
  • and maybe Peer ID rotation? maybe?

I know this sounds like nerd as heck but I dont have any choice lol that’s literally my project 🤷

I also made a website for this project: https://kursal.chat if you wanna check it out, there’s also a whitepaper about the technical stack, even though it has been reworked a bit

Attachment
Attachment
0