from Jorvex609@piefed.zip to programming@programming.dev on 17 Jun 10:50
https://piefed.zip/c/programming@piefed.zip/p/1582297/i-vibecoded-a-full-featured-social-media-platform-poc-in-rust-slashdot-voting-tag-based-im
I had a bunch of ideas for what I’d want in a social media platform (full feature wishlist here: https://gist.githubusercontent.com/8ullyMaguire/975cdc8e4db82a31a8ba671821a1da1b/raw/bcab6d07cfec6dbc8accb2d17faac77e6489fdc1/gistfile1.txt), so I vibecoded a proof-of-concept in Rust. Took a few hours with an AI agent doing most of the heavy lifting. I honestly haven’t checked if it all works — the AI kept telling me it compiled and the endpoints returned 200, so I’m gonna take its word for it.
Stack: Rust, Axum 0.8, SQLite (rusqlite), server-side rendered HTML (no JS framework — just embedded templates), Argon2 password hashing
What it claims to do (~6000 lines of Rust):
Content & Discovery
- Tag system (booru-style) — users can tag posts for categorization, search by tag, filter by tag, combine tags with boolean operators
- Custom feeds — Reddit multireddit meets Firefish antennas. Weighted sources (users, tags, keywords), include/exclude mode, shareable with other users
- Collections — Four visibility levels (private, public-read, public-edit, anybody-edit), posts in sortable order (e.g. chapters), searchable, followable
- Advanced search — Boolean operators, field search, date ranges, tag include/exclude, fuzzy/stemming/synonym support
Moderation (the part I actually care about)
- Slashdot-style voting — +1 Insightful, +1 Funny, +1 Informative, -1 Troll, -1 Misleading, etc. You’re not just upvoting/downvoting; you’re categorizing why
- Limited moderation points — each user has a finite pool of mod points to spend, encouraging thoughtful voting
- Meta-moderation — users are periodically asked to review whether a vote was appropriate. Consistent mis-moderation leads to losing voting privileges
- Score capping — comment scores cap at +5/-1 so no single post dominates
- Obfuscated karma — user karma shows as “Good”, “Excellent”, “Poor” instead of exact numbers to discourage karma-farming
Social Features
- Communities — self-governing groups with public/closed/invite-only visibility, join/leave, member listings
- Private messaging — full conversation view with sent/received styling, reply forms, read/unread tracking
- Notifications — in-app notification center with mark-read and mark-all-read
- Reactions — Facebook-style (Like, Love, Haha, Sad, Angry) on posts and comments
- User trust levels — Discourse-inspired system where privileges unlock as reputation grows. Admins can configure levels, thresholds, and per-level privileges
- Achievements — gamified system (First Post, Rising Star, etc.) with categories and lock/unlock states
- Polls and surveys — create polls, vote, view results
Infrastructure
- Post bumping — users can bump evergreen content back to the top
- Related posts — manual or tag-based related post connections
- User/tag/keyword blocking — block users, tags, keywords, or entire instances
- Ephemeral content schema — ready for auto-pruning old posts
- Anonymous/pseudonymous posting schema — granular per-post identity control
Why Rust?
I originally looked at forking Lemmy (Rust backend, ~80K lines) but wanted something that:
1) Could serve as a testbed for these moderation ideas without fighting upstream
2) Was small enough to understand completely (~6K lines versus 80K+)
3) Could compile to a single binary with no runtime dependencies
What’s Missing / Not Done
- No ActivityPub federation yet (the schema has placeholders but it’s not wired up)
- No file upload endpoint (schema exists for media metadata but the actual upload handler isn’t written)
- No WebSocket for real-time — it’s all pull-based HTTP
- No WASM frontend — it’s server-side rendered HTML with inline CSS
- I didn’t actually test any of this. The AI said it works and I’m choosing to believe it.
Repository
Code: git clone https://git.disroot.org/hirrolot19/social-platform.git
Quick start (allegedly):
cd social-platform-poc
cargo run --release
# Server starts at http://0.0.0.0:3000
# Login: admin / admin123
The Cargo.toml has all the deps pinned. SQLite database is created fresh on first run with demo users (admin, alice, bob, charlie, diana) and seed data.
I’d love feedback on the moderation system design in particular — I think the Slashdot + limited mod points + meta-moderation combo could solve a lot of the quality problems we see on Reddit and Lemmy, but I’m curious what other people think. Or if someone actually tries to compile it and it explodes, let me know that too.
#programming
threaded - newest
I have tried to figure out how to minimize ai bots or swarm activities. Recently I was looking at Anubis which is an open source bot gate, i have not tried it, but it looked interesting. I was also thinking about having some sort of front end code spinner. Basically have multiple types of front end builds looking the same but under the hood have different architectures and a few with honey pots maybe, but the idea was to throw multiple different types of renderings that swap out strategically on suspicious account or randomly. Good luck, we need something new
Why should we be interested though? It is a pile of untested code that doesn’t do anything useful even if it works.
AI literacy 0/10
No, the AI telling you it works is NOT reliable. Test it out yourself, or if you can't be bothered, don't post it. Don't make others do the testing for you. Unless the AI showed you proof, it's not a reliable source here.
AI and proof is an oxymoron. Nothing an LLM will ever output, is ever a proof. That includes LLM generated “tests”.
I try be be an open minded guy but that’s where I stop reading. OP if you don’t care enough to even test it, why would I?
I honestly can’t say whether the post was meant to be a satire or taken seriously
Was about to comment the same. Anyone vibecoding without checking the code wouldn’t be THAT openly admitting to it like this. I mean I actually respect this if this was being honest, but its just too good to be true. :D
Well, I’ve tested it in the sense that it works when I run it and I can browse through it, but it’s really just a proof of concept. I want to get some feedback before I invest more time in it.
That’s the point, there is no need for test if you trust the Ai. I could keep joking, but nobody would know if I’m serious or doing jokes and would get downvotes. And that would be unacceptable. :D
Okay now pay for hosting for a year for this POS, bet you fkin won’t.
We’re not a vibe code code review community, review the slop yourself.
Can you containerise it to make deployments easier.
Probably only if the AI can do it…
yuck
If you want human attention, demonstrate human effort. Not even your post was written by you.
i see those ai written walls of text and at this point its just noise
rage bait?