[ home / rules / faq ] [ overboard / sfw / alt ] [ leftypol / siberia / hobby / tech / edu / games / anime / music / draw / AKM ] [ meta / roulette ] [ cytube / git ] [ GET / ref / marx / booru / zine ]

/tech/ - Technology

"Technology reveals the active relation of man to nature" - Karl Marx
Password (For file deletion.)

Join our Matrix Chat <=> IRC: #leftypol on Rizon

File: 1631336482854.png (261.26 KB, 480x481, God.png)

 No.11160[Last 50 Posts]

Every few months, people come up with an idea to create a new imageboard, since mostly everyone is dissatisfied with the state of vichan/lainchan, or thinks they can do it better. Having better software would greatly enhance the experience for both regular users and mods, and have more crossover appeal to “normies”. The problem is that no one can agree on the technical or more importantly non technical decisions on how one would go about making an actual, usable replacement for lainchan.

In fact, people don't even agree on whether the imageboard replacement should be an imageboard at all. This thread is a merged, consolidated, megathread of all the various attempts at answering this question that people have made.

Previously, there was a thread on outreach to lainchan, including a strawpoll:

The poll determined it should be built in Java, but a significant minority wanted to use a functional programming language, esp. Haskell, or Clojure/Lisp.

The only way a new imageboard will be built is if multiple people, technical jannies and lurker-programmers, from here and lainchan and even elsewhere, actually collaborate on a single project and concentrate their efforts on this.

There are important technical and non technical questions to be answered.

Namely, do we even want an imageboard?

Some anons have suggested a radical re-imagining of the medium of anonymous communication where boards are replaced with tags. Some want named accounts, some want textboards, the ideas are endless. Is there anything to be improved upon with the imageboard concept, and if so, what? If reddit is an improved version of the phpbb type forums of old, what does a “modern” version of a chan look like?

Feel free to use this thread for any polls, discussion, of the formats, technical, or non technical decisions related to a vichan replacement both for this site and in general.

Also comment on:

Concept: Classic Imageboard vs something else
Architecture: Monolith vs Microservices
Distributed: Distributed/Federated vs Standalone
Front end: SPA (ex: Angular, React) vs Server Side HTML templating
Backend Language: Java, C#, Lisp, Rust, Golang, PHP, etc.
Database: SQL vs NoSQL


File: 1608525987800.png (136.45 KB, 2500x1250, what-is-a-groyper-1.png)

How close is GOCHAN to being done? we need to replace this shit lynxchan software soon.
there's also 'jschan'


im getting 500 errors every other click. we need to upgrade bunkerchan performance


>>1847 OP you should find out and update this thread. You can go ask on the riot channel, or go on github and take a look there. Also if there are any blocking issues then if you document them here I'm sure that will speed things up.


the jannies of this site are literally the devs so id hope they could weigh in


I will just copy paste what i wrote in another thread
Currently the rough roadmap to minimum feature completeness is this:
>1. Refactor the entire database design to be magnitudes better than before, follow relational database standards in terms of normalision, and support planned future features. Implement sql queries to glue all the old functionality to the new database design and redesign that code to follow good code practices. Unify the 3 seperate sql build scripts into one master file.
That is basically done
>2. Write a migration script to port old gochan databases to the new format. Implement a versioning system for future database revisions that will work in a similar fashion to entity framework migrations (but manually written). Test the whole thing thoroughly.
This is where we are right now. After that
>3. Create a more specific roadmap with small individual tasks that people can pick up and perform. Which includes:
>4. Overhauling the banning system which is super different from the old one, to use the new functionality and logic. Remove old banning system
>5. Allow multiple files to be uploaded per post (database already supports this)
>6. Implement a variety of frontend usability such as autorefreshing, expanding images, etc
>7. Make the frontend match closer to the bunkerchan lynxchan frontend, including porting themes
>8. A testrun by the mods and users
>9. Writing code to migrate the lynxchan mongodb data to the new sql database.
And that is roughly our roadmap. Keep in mind that the new db design and refactoring the entire codebase to use it (especially since I, the person doing the refactor, was unfamiliar with the codebase) is the most difficult part, and also the part that prevents others from working on other issues simultaneously due to the code and database changing massively constantly.
I am currently trying to write sql to port the old db to the new schema, but having to support two versions of sql makes it fucky and also the fact that the old database was completely unnormalized so I have to split certain tables into three new ones which all refer to each other with foreign keys.
Drop by in the leftypol riot and @me if you wanna help out, though we do plan on making an official roadmap/todo board for people here to help out with small well defined tasks once the database thing is over.
Please be patient. I do value the work I put in a lot but despite having graduated as a programmer recently, programming for prolonged times makes me anxious, mentally numb, unfillfilled and tired.
unimportant but maybe contextfull: We just officially dropped sqlite support because it doesnt support table alterations after a lot of trouble. I am also trying to split a self-referential table containing all posts + any accompanying files/images into a thread, posts, and files table, all 1 to many, to support multiple files and also to more cleanly seperate thread entities from post entities.


>there is also jschanSounds like lynxchan. If it is any consolation, once the riots inevitably die down the server wont struggle as much.


>using google-infested languages like Go and Js


go aint bad, I agree JS is shit
programming anon here. Be careful about over normalizing shit since joins are expensive. In the real world after normalizing you usually do selective denormalization to speed shit up (using materialized views etc).
P.S. I have another feature request, public facing REST API so other people can write frontends for it on other domains/sites. My idea would be to use react or something and have other people have their frontends on w/e domains and use the gochan API to have people post to bunkerchan (possibly even a mobile app)


until the next habbening, remember this also habbened with the stock market crash


I tried to optimise some things already in the threads with denormalized fields such as duplicating some fields such as "is deleted" etc. Sadly virtual fields aren't well supported but if it proves to be neccecary we might change some things.
The only performance heavy table is the one with the posts, threads and files. Files cannot be denormalized into posts since we want to support multiple files per post.
Adding a "last bumped" field and duplicating data such as which board a post is on into each post while it only concerns the threads seems wastefull. So I seperated threads into their own seperate entity and added a bool on posts to efficiently filter on top post.


True OG's would remember Dynchan :^)


Why is JS6 shit?


Can I help if I don’t know Go? If no, anyone got any good Go resources?


Definately. We need people who know html/js/jquery/css to help improve the usability of the frontend soon.
Other than that, go is so purposefully simplistic that there isnt a whole lot to learn.
There are pointers but no pointer arythmatic (so there is only nil and valid pointers), it is garbage collected, so no need to worry about memory management. Slices are basically resizable abstractions over arrays that are used primarily and errors are returned in an err reference type (or in our case a custom error type with additional support functionality) which you need to check for not nil on every return.
Its verbose compared to other modern languages (i would love there to be basic generics without inheritance, would solve so much problems) but there are only two real pitfalls:
>nil values
>structs are value types and so passed by value, which is shit for performance so we tend to pass them by pointer ref.
Hop on to the leftypol riot channel.


jannies please finish gochan! this 500 error shit is killing me!


Bunkerchan is still on version 2.3.2 (December 2019), but 2.3.12 is already out (or 2.4). The first step to try to fix any software bugs would be to keep your system up-to-date and the admin clearly hasn't done that (maybe update to the latest NodeJS 12 and MongoDB, too…). The second step would be to check the logs and send relevant parts of them to the developer. Maybe if that doesn't work out, use another solution or write it yourself if there's nothing good out there.
You don't need that at all, trust me. It would be a waste of money at your size, even if you multiplied by 10. I'm running a LynxChan instance with 8-10k daily users (according to Nginx logs) and over 1.3k PPH (at least during peak hours). There have been crashes in the past (not currently however), some related to our own LynxChan addon and others caused by the engine itself which were fixed quickly after we informed the developer.


>I am not accepting any pull requests from anyone
>im not going to implement anchoring because i dont like it
>write an addon with my 1337 addon system (addon system is just runtime monkey patching and as such plugins may and do break every update, there is no actual addon system)
.t stephenlynx
>code is an undocumented mess
>because of the lack of documentation and the unwillingness of stephenlynx to accept pull requests or consider features we are unable to implement features the mods of this website would like.
>The usage of gochan, upon completion, was already an agreed upon deal that was established with the merger of GETchan into bunkerchan.
>I have a big site
&ltno link to site
>8-10k daily users
We have 145k unique users each month. The vast majority of the users on this website do not post, they just lurk. I dont have exact figures on daily users rn but its gonna be a whole lot than 10k. Even if every user only loaded the site twice a month, we would already be on about 10k users per day.
Though i agree that having some sort of microservice hyperbuzzword server for bunkerchan would be overkill.


>write an addon with my 1337 addon system (addon system is just runtime monkey patching and as such plugins may and do break every update, there is no actual addon system)
It gives you the most freedom, but I agree that an actual plugin system would probably be better.
>code is an undocumented mess
There are about 6k non-empty lines in doc/*.txt. The comments inside the code base don't explain anything, true. Though most of the time it's easy to understand what's going on.
>the unwillingness of stephenlynx to accept pull requests
>consider features we are unable to implement features the mods of this website would like
When we migrated from Vichan to LynxChan last year, StephenLynx implemented a lot of features for us in an addon which he later added to the engine (post history, DNSBL, ASN bans, individual file actions and more). Yeah, it's not very easy to get your suggestions or PRs accepted if you don't discuss them at length with him on IRC or on /lynx/.
>link to site
>We have 145k unique users each month
We have twice as many unique users each month according to Cloudflare Analytics. It's not a very reliable metric since many people have dynamic IPs which change every day. I'm only making the point here that LynxChan easily scales and our server is not even very powerful.


>The second step would be to check the logs and send relevant parts of them to the developer.
This. Space is a good dude but he doesn't even know where his logs are.


>Yeah, it's not very easy to get your suggestions or PRs accepted if you don't discuss them at length with him on IRC or on /lynx/.
He flat out told us he would not accept any pull requests, ever. He also kept being extremely smug and condescending.
>It gives you the most freedom
Yeah but at this point you might as well just directly modify the code.
Now that is not to say gochan is currently at the level of lynxchan (golang has no stable plugin/monkeypatching support), but for us, considering the future direction of features the mods want to go in, we would need such substantial changes to the codebase we might as well have created a different branch. On top of that, space and I would rather use an sql database.
So far the code layout and inner architecture of gochan is more comprehensible than lynxchan was to me. Im not going to list all of the things that are better, since it would just seem like im throwing a hissyfit.
But gochan was already in the books a year ago, it gives us a lot more control over it, and we think that by being a lot more open about collaboration (and not, say, tell people we wont accept pull requests ever) we can more quickly realise new features we need. If only for our own site.
Though I appreciate any info you have on what could cause issues for the performance of lynxchan beyond being an old version. Dankse sehr.
space still hasnt given me access to the server so i cannot check them either


Speaking of which, where is gochan repository? Is this one that haven't been touched in over 2 months?


Yea. But if you check the refactor branch you will notice we have been working on it bit by bit.


File: 1608525997133.gif (522.41 KB, 200x136, d64.gif)

So it's still caching to disk, has functions with over 300 lines ( https://github.com/gochan-org/gochan/blob/master/src/posting.go#L276 ), no lazy/JIT caching and zero documentation? On a second thought, I can't find these source files in this branch. Did I miss anything or is this some sort of rewrite?


>On a second thought, I can't find these source files in this branch. […] is this some sort of rewrite?
Yes. Major overhaul.
Did you just come here to be smug again? Like how you entered the riot chat and the first thing you did was try and make fun of me?


Nvm, found it.
It's almost 400 LOC now.
>So far the code layout and inner architecture of gochan is more comprehensible than lynxchan was to me.


So you are the only one that can criticize other people's work?


I dont go into chats and proceed to make fun of other peoples personal life as an opening statement.
You text on its own is sort of fine but your accompanying image just shows you are here to talk shit (as usual).
You dont have to come here, the same way I dont come to your site/irc or bother you.


>You dont have to come here
Never said I did.
>I dont go into chats and proceed to make fun of other peoples personal life as an opening statement.
The what now?
>You dont have to come here, the same way I dont come to your site/irc or bother you.
You don't even go to fucking #bunkerchan anymore.
>You text on its own is sort of fine
Then why aren't you addressing it?
>your accompanying image just shows you are here to talk shit (as usual).
If you are so sensitive to pixels on the internet, don't look at them.


>Though I appreciate any info you have on what could cause issues for the performance of lynxchan beyond being an old version.
It's only speculation without any logs. If you don't have access to the server, you're most likely out of luck and there's nothing you can do except ask the one with root access to fix it.


I told space it might be RAM. With vanilla 2.3 you have to reserve a lot of ram to gridfs and suffer from memory spikes from the execs. I told him about that was changed on 2.4 and I might have mentioned the addon for 2.3 that removes the execs.


>I dont go into chats and proceed to make fun of other peoples personal life as an opening statement.
>The what now?
Dont pretend i didnt see you trying to make fun of me saying "i dont like programming for hours on end" in the leftypol chat on riot.
>You don't even go to fucking #bunkerchan anymore.
Exactly. Not sure why you even come here, to this site, on this board, in this thread, just to try and talk shit. Youre not even socialist, according to yourself.
>Then why aren't you addressing it?
Because im not going to address your childish attempt at talking smack. Especially since I did not write that code you are referring to in the first place. It should be obvious that software still in development, hence why we havent switched to it yet, is not feature complete yet.
That function should be shorter. It should have better caching. But right now my priority is finishing the database, adding multifile support and several other things, not cutting up a working function, that is going to get reworked soonish anyway, into smaller parts. And unlike with lynxchan, I and basically anyone else who wants to help can go ahead and fix things like those, and not run into "i dont accept any pull requests".
>If you are so sensitive to pixels on the internet, don't look at them.
You said the same thing about child porn but unlike sociopaths like yourself, most people do have basic human emotions.


Since when quoting is making fun of?
>Youre not even socialist, according to yourself.
I'm a leftist and afaik this site is about leftism. So yeah, nah. Socdem is left.
>It should be obvious that software still in development
Is it? Tags say it's past 2.0. You'd assume it was finished a while ago and then some more.
>That function should be shorter. It should have better caching.
And yet I'm the guy who can't write software for shit.


btw, robi said his software with blackjack and hookes will be ready to be deployed in less than 2 months. Do you have any estimates?


>You don't even go to fucking #bunkerchan anymore.
And what the hell is that supposed to mean? That's the official irc channel for the site you are a mod AND a dev of. Why wouldn't you participate in it? Why are you holed up in the matrix channel?


>Socdem is left.
>/leftypol/ - Leftist Politically Incorrect
Socdem is politically correct. /tech/ on the other hand doesn't have a political affiliation.


File: 1608525998128.webm (9.08 MB, 640x356, gnuquest.webm)

/tech/ is software freedom gang!


Richard M. Stallman is in favor of capitalism. He has leftist tendencies, but he fundamentally still believes in the free market.


>And yet I'm the guy who can't write software for shit.
Because i didnt write it, you dense cuck. Im just helping out since a little while.


Because i have better things to do than obsessively check an irc channel where nothing happens with about 3 people who actually ever post.
> holed up
Unlike IRC, the matrix channel actually allows me to view the messages whenever i want, even if i was away, people actually use it, and the matrix is where we coordinate moderation. Believe it or not, but i actually post less in the /leftypol/ channel than i used to do in the irc, despite it being vastly more active.
>you have to
No. Any feedback users may have can be communicated through /gulag/ or any of the other feedback threads. Riot allows me much more simply coordinate and talk to individual users in private since we dont have to be online at the same time, something which is important to me considering my busy schedule.
I have full confidence in both space and comatoast that they are able to handle the irc, just like I am sure some of the leftypol mods are able to correctly moderate big general threads i dont browse. The only thing that ever happened in IRC is you shitting on anything I said and acting like youre some kind of nietzian ubermensch. I must say I quite enjoy not having to deal with you anymore. In all my shit years on this earth you have managed to make it quite high up on my list of fundamentally unpleasant people.
Good night.
Btw it wasnt the ram issue, space just didnt configure the cloudflare right so it was trying to serve thousands of files via nginx and the server ran into the open file limit. So you dont have to worry about it being a bug in your stuff.


>So you dont have to worry about it being a bug in your stuff.
Does it also mean you are solving a non-issue with gochan?


Not OP. Lynxchan IMO is not very extensible and has a confusing codebase. Extending it feels like monkeypatching monkeypatches.
MongoDB was not the right choice. Untyped imperative languages are the bane of my existence, except python.


Sure, but can you extend gochan AT ALL? Like, without a fork? Lynxchan might not offer you a tidy api, but you do have flexibility. Monkeypatching is just changing attributes on things, it might be shitty when you change stuff like how your strings behave, but we are talking about the highest level logic here.
As for "confusing", i'd say that's not only subjective but also I have been praised more often than not for it's organization.
And mongodb is fine. More than fine, using mongodb gives you a much more practical workflow where you don't have to update a schema for every single little change you make to the model. Not to mention how the management tools are more modern and efficient. For example: for you to allow a remote connection on myslq you have to properly register it directly on the database along with the user. With mongo you just do the more intuitive thing of telling it to bind on and connect as you would usually do. Now, to be fair, gridfs did have a huge drawback I didn't consider at the time: memory usage. You have a shitload of documents for the binary data and they have an index around the file they belong to. Which is no longer mandatory on 2.4, so that's not really an issue now.


>you don't have to update a schema for every single little change you make to the model.
i know this a meme nosql people say all the time but honestly how much do you really need to update the schema after initial development? And how hard is typing an alter table statement?
For all that you lose transactions, commits/rollbacks and the data integrity guarentees of a solid relational database like postgres. You can even use it as JSON store if you want now.
With proper tuning you can take a single postgres instance to 100k/200k+ users which is probably bigger than whatever we're going to have anyway
Even something like apache cassandra would be better than mongo IMO.


This is >>1984 (me), I commend you on the scale of your software. And also on the thorough documentation that you have. There's more to praise, I was just stating what I see as negative. I don't know anything about gochan, so I can't say anything about it.


File: 1608525999632.jpg (301.19 KB, 1000x800, 675.jpg)

>how much do you really need to update the schema after initial development?
A lot of new features require changes. It's very common.
>And how hard is typing an alter table statement?
Is not just about typing it, is about including on an automatic system so these changes are transparent to operators and making sure they are correct. These really add up. You want to see how big schema changes are? Gochan is past version 2.0 and they are rewriting the whole database. That big.
>For all that you lose transactions, commits/rollbacks and the data integrity guarentees of a solid relational database like postgres.
None of which were needed in a project like this. I don't think RDBS are bad, I just don't think they are the hammer and that all problems are nails.
Yeah, my whole point was that gochan doesn't solve anything, not that my software is perfect.


why is he pro Bernie then?


I'm just indirectly quoting him. I can't find the video right now, but I remember that he said something along the lines when somebody asked whether his ideas of free software are communism/socialism.
People on the right may call Bernie a commie, but he really isn't. What he's proposing for the US (free healthcare, free university/college) has already been implemented long ago by many European nations.


hes halfway between a green socdem and a demsoc. Stallman was the original anarcho-liberal


I've come to make an announcement: Stephen Lynx is a bitch-ass motherfucker, who pissed spaghetti code on my image board. That's right, he took his tiny fucking dick out and he pissed on my fucking imageboard, and he said his software was "THIS GOOD", and I said that's stupid, so I'm making a callout post on my riot IRC, Stephen Lynx, you got a small dick, it's the size of this walnut except WAY smaller. And guess what? Here's what a good image board looks like! THAT'S RIGHT, BABY. FUNCTIONAL TOOLS, NO CRASHES, NO SPAM, LOOK AT THAT, IT’S MADE IN FUCKING GO. He fucked my imageboard, so guess what? I'M GONNA FUCK AMERICA! That's right, this is what you get! MY SUPER LASER PISS CODE! Except I'm not gonna piss on America. I'm gonna go higher. I'M PISSING ON CAPITALISM! How do you like that, OBAMA? I PISSED ON THE FLAG, YOU IDIOT! You have TWENTY THREE HOURS before the piss DRRRRRROPLETS hit your fucking github, now get out of my fucking sight before I piss on you too!






How are things going my dude? You haven't made a commit on the database branch in the past 5 months or so.


i'm not a lead dev, but actual lead devs had some irl issues and it slowed things down
using go for it was a mistake, i can't even contribute since i don't know the language and i don't have time to learn


Do you know anything about the fact that zeke haven't made a single commit in months related to the db in the branch that was supposed to be about db refactoring?


irl issues is the reason like i said


can you modify the lynxchan captchas so they don't crop off the top as much? it's often impossible to distinguish between 7 and 1 or f and t


File: 1611617590073.gif (26.56 KB, 220x220, thinkball2.gif)

Are javascript/typscript based single page applications better, or server side template based rendering? Do we really need something like react/angular?
I know /g/entoofags hate javascript because stallman told them to like 10 years ago but normalfags will complain if their front end experience isn't silky smooth with js animations and shit
Obviously some applications like darknet markets try to minimize or eliminate the use of javascript for security reasons.
server side html rendering also makes app deployment simpler since you don't have to worry about the front end and back end separately.
OTOH separating the front from the backend helps make a richer UI and also separation of concerns. Also makes it easier to swap out UIs
What does everyone think?


-loads faster client-side
-works better with tabs, back/forward button, scroll placement etc (at least without a lot of extra accommodation from SPAs)
-works better with search engines
- some other stuff I'm forgetting rn?
-smaller data requests for new data without refreshing page
-can do some complex shit client-side
- also other stuff


which one would be better for an imageboard?


Applies to basically any type of site. IMO client-server is better than only server side.
-Swappable UIs (if the UI sucks for whatever reason, you can re-do it completely)
-Same back end for different services (web app, mobile app, etc)
-Less server load and smaller payloads.
-Separation of concerns make the code easier to reason about.
Some bad things include:
-Worse initial load
-Worse SEO
-Requires javascript
-JS libraries are absurdly bloated.


isn't the downside also that angular/react get updated like every 5 months so you'd have to keep it maintained? well that and the paranoid /g/entoo-fags who disable all brower javascript wont be able to use it.
If theres a headless imageboard it would be nice


Javascript land is insanely insecure and a fucking mess. As long as you keep your dependency graph relatively small and shallow, you should be fine not updating your libraries in a while.
There are also other solutions, like using a language that compiles to JS. If on top of that you use a language that is strongly typed, you probably won't have many security problems and will probably be fine staying with whatever version you have. And if you ever update, the compiler can help you out.
There are downsides to that as well, it's not a silver bullet.
I'm actually very slowly writing an API for an imageboard. I'm using it to learn, mostly. If I do it right, I guess I'll publish it. To get feature parity is pretty hard. For example, post.php of lainchan is 1530 lines of code. It's a fucking mess and can probably be written in half of those lines, but that is just one of many many files.
To give an idea, this is lainchan:
17 403.php
34 404.php
15 banned.php
15 banners.php
20 bg.php
20 c.php
1006 install.php
24 log.php
216 mod.php
28 player.php
1530 post.php
19 report.php
174 search.php
86 smart_build.php
54 staffapplication.php
298 inc/anti-bot.php
209 inc/api.php
320 inc/bans.php
173 inc/cache.php
1897 inc/config.php
108 inc/controller.php
165 inc/database.php
451 inc/display.php
91 inc/error.php
45 inc/events.php
253 inc/filters.php
2889 inc/functions.php
502 inc/image.php
366 inc/instance-config.php
39 inc/lock.php
187 inc/polyfill.php
49 inc/queue.php
64 inc/remote.php
65 inc/route.php
78 inc/template.php
53 templates/themes/basic/info.php
40 templates/themes/basic/theme.php
57 templates/themes/calendar/calendarpost.php
36 templates/themes/calendar/info.php
40 templates/themes/calendar/theme.php
110 templates/themes/catalog/info.php
506 templates/themes/catalog/theme.php
42 templates/themes/categories-uboachan/info.php
223 templates/themes/categories-uboachan/theme.php
67 templates/themes/categories/info.php
88 templates/themes/categories/theme.php
81 templates/themes/donate/info.php
28 templates/themes/donate/theme.php
36 templates/themes/faq/info.php
33 templates/themes/faq/theme.php
55 templates/themes/frameset/info.php
61 templates/themes/frameset/theme.php
38 templates/themes/irc/info.php
27 templates/themes/irc/theme.php
33 templates/themes/public_banlist/info.php
57 templates/themes/public_banlist/theme.php
58 templates/themes/radio/info.php
27 templates/themes/radio/theme.php
54 templates/themes/rand/info.php
105 templates/themes/rand/theme.php
88 templates/themes/recent/info.php
167 templates/themes/recent/theme.php
75 templates/themes/rss/info.php
198 templates/themes/rss/theme.php
22 templates/themes/rules/info.php
27 templates/themes/rules/theme.php
70 templates/themes/semirand/info.php
257 templates/themes/semirand/theme.php
62 templates/themes/sitemap/info.php
48 templates/themes/sitemap/theme.php
36 templates/themes/staffapplication/info.php
54 templates/themes/staffapplication/staffapplicationpost.php
40 templates/themes/staffapplication/theme.php
99 templates/themes/stream/info.php
34 templates/themes/stream/theme.php
23 templates/themes/zine/info.php
28 templates/themes/zine/theme.php
14790 total
That's 14k lines of code. A lot of these are not used at all or are config shit. The codebase has a huge issue of dead code.
Perhaps a more "fair" assessment might be this:
17 403.php
34 404.php
15 banned.php
15 banners.php
20 bg.php
20 c.php
1006 install.php
24 log.php
216 mod.php
28 player.php
1530 post.php
19 report.php
174 search.php
86 smart_build.php
54 staffapplication.php
298 inc/anti-bot.php
209 inc/api.php
320 inc/bans.php
173 inc/cache.php
108 inc/controller.php
165 inc/database.php
91 inc/error.php
45 inc/events.php
253 inc/filters.php
2889 inc/functions.php
502 inc/image.php
366 inc/instance-config.php
39 inc/lock.php
187 inc/polyfill.php
49 inc/queue.php
64 inc/remote.php
65 inc/route.php
78 inc/template.php
9159 total
Say you can write this if you have experience and acumen in 4.5k lines of code. I've heard that people write 20 lines of code a day on shitty desk jobs ( https://skeptics.stackexchange.com/questions/17224/do-professional-software-developers-write-an-average-of-10-lines-of-code-per-day). If that's true, this would take a full year of work. Something more reasonable, since you already know what your building and this is more personal work is to write maybe 40 lines of code on average during the whole endeavor. That's around half a year of dev hours. These things are really hard to estimate, and they're only back of envelope estimations based on a billion assumptions. There's also so much dead code and now-unnecessary workarounds.
The front end has:
Front page
Index view
Catalog view
Overboard catalog
And around 6 shoddily done mod pages
It's rather simple for a front page.
I've searched for a lot of headless imageboards and I haven't found anything decent.


>I've searched for a lot of headless imageboards and I haven't found anything decent.
yeah i mean writing one
>Say you can write this if you have experience and acumen in 4.5k lines of code.
supreme reality had < 1k lines of code, OFC it was written in a functional language. probably like 400 lines of code if you don't count database queries.
>I'm actually very slowly writing an API for an imageboard


Where's the code?


knock yourself out, doesn't look maintained though


just to clarify thats not headless, its server side rendered HTML


File: 1611644759296.png (195.8 KB, 1397x979, ClipboardImage.png)

Awesome. Looks really cool.
Do you have any idea on what your projects is going to use?
This is the lainchan databse btw, for reference. As you can see, it's relatively simple.


I'm still in the architecting phase. I'm leaning towards java though (likely spring / spring boot), being that its a popular enough language so that most people can understand it, but at the same time its typed. I know a lot of anons here really want to use a typed language


I like stronger typed languages, but I also like python. Django is a joy to use for small projects.


>I'm leaning towards java though (likely spring / spring boot), being that its a popular enough language so that most people can understand it, but at the same time its typed. I know a lot of anons here really want to use a typed language
if static typing is all you want, it would take much less time to just fork lynxchan and rewrite it in typescript. rename your fork tynxchan or something. if you don't like the disorganized mess of mongodb, swap it for postgresql.
don't make the same mistake every overambitious programmer makes, ie., a phenomenon that has several terms to describe it: law of triviality, bike-shedding effect, reinventing the wheel, not invented here syndrome, etc.
>If on top of that you use a language that is strongly typed, you probably won't have many security problems
famous last words


>don't make the same mistake every overambitious programmer makes, ie., a phenomenon that has several terms to describe it: law of triviality, bike-shedding effect, reinventing the wheel, not invented here syndrome, etc.
That doesn't really apply because rewriting lynxchan in typescript to use postgres would be rewriting like 80% of the software, you might as well just make new software. I've worked on imageboards before (not specifically lynxchan) and at least half the code is typically the database queries. To a certain extent an imageboard is just a glorified CRUD app
Anyway IMO Java is a better language than typescript, which IMO was just invented as a cope for corporate programmers to be able to have types on JS.
>famous last words
I agree static typing doesn't solve most security problems. However static typing does increase runspeed because you don't have to check types at runtime. Also I just like it better than JS/TS because im used to using it at work


>you might as well just make new software
if you're going to start from scratch, use rust w/ actix-web and sqlx
>However static typing does increase runspeed because you don't have to check types at runtime.
rust is even more performant
>actix-core (rust): 651,144 req/s
>vertx-postgres (java): 347,356 req/s
>spring (java): 27,339 req/s
>Rust: 0.46 s, 499,024 b
>Java: 1.54 s, 702,332 b
>Rust: 0.78 s, 146,236 b
>Java: 5.70 s, 656,328 b


File: 1612330584626.png (1.78 MB, 1280x1493, thisisfine_Space.png)

VIchan was forked from tinyboard, the earliest commits I can find from it are from 2011 or 2012. Laravel's first release was in 2011, Codeigniter was in 2006, Symfony came out in '05, Zend came out in '06, CakePHP in '05.
Literally any of these frameworks (even CI), and plenty not named, would have been better than the structureless, hand coded ball of spaghetti code that tinyboard/Vichan/lainchan ended up becoming, with its handcoded crappy ORM and barebones html templating, not to mention lack of a router.
Imposing some basic, even minimal MVC type architecture on tinyboard at the beginning would have made things a HELL of a lot better for all future maintainers even 10+ years later.
At this point coding a new imageboard from scratch is a huge task and few have attempted it successfully (lynx being one).


everyone think IBs are too simple and straightforward to be RFC or standardization worthy right until they actually start developing one. it's getting irrelevant form of communication anyway so I doubt of any improvement


most if not all of those frameworks dont even use RFC afaik most php frameworks don't.


tinyboard/vichan develoeprs were evidently self taught.
php has been the "self-taught" language for a lot of years, so it's no surprise that it was done on PHP. also using frameworks wasn't really popular until after ~2008 afaik.


yeah but that was still 3-4 years before they made tinyboard, even as self taught guys i wish they had done a bit of research :(
Anyway the enterprise world had frameworks (albeit terrible, bloated ones) like JSF and Spring MVC for years, since like the early 2000s.


>if you're going to start from scratch, use rust w/ actix-web and sqlx
Rust is based from what I hear but I also don't know it. Maybe you can make a Rust thread and post a pdf or something.
I'm aware that Rust can be faster than Java, I just don't know it well enough to write a massive project in it


server side,
There is no real reason to care about performance nowadays in almost all scenarios. Almost all server software runs sufficiently fast and language/frameworks will not be the bottleneck.
Use whatever you like. Prioritize comfort over performance.
t. I do this for a living.


>server side
I agree the only problem is my CSS is weak, id probably want someone else to help with styling/theming the board


lel. I wrote that you don't need to worry about speed, then I wanted to be specific that I meant specifically on the back end.
That's true regardless of whether you use server-client or server-side rendering.
server side vs SPA is that some people don't use javascript. There are solutions where you can do server side rendering and if the user has javascript, the SPA kicks in. Havne't used it myself, can't vouch for such tech.


I'm very tired sorry for writing like a WSWS on their 10th article of the day.


ok. My ideal solution would be both. A server side rendered version of the app, but also a restful interface on a different route that anyone could write a client against.
So if they go to / then they get the server version but all the api endpoints are on /api/ or /apistd/ or something


the only reason I would want that is because i want existing imageboards to adopt the standard which shouldn't conflict with existing routes they use for other shit


>>6662 : related, developing some standard imageboard API which allows people to just write their own servers/clients/etc. which is more valuable than even just writing yet another imageboard


There already exists a standard api of sorts. The 4chan api is standard I believe. This site has a "standard" api of sorts. Makes sense to at least offer that API so that existing apps can be ported easily.
definitely possible. it sounds easy in my head, but I haven't done it myself.
if you make a normal server-side-rendered site that also loads a JS that's a SPA that hijacks the entire dom when loaded, then that should work relatively easy. The SPA would then use the /api/ routes if you'd like.
There are stuff that allows you to render the SPA as if it were a static page. I've read mixed reviews. It helps with SEO and with "time to paint" so that the user doesn't have to wait for the JS to load then for the SPA to download the data for the site, then to process, then finally to render.


>The 4chan api is standard I believe
yeah but the 4chan api is read only AFAIK. This would also allow people to post and create threads
>normal server-side-rendered site that also loads a JS that's a SPA that hijacks the entire dom when loaded, then that should work relatively easy. The SPA would then use the /api/ routes if you'd like
I'd probably make the server side rendered version use traditional web app methods with GET/POST so the no-js/stallmanite/gentoofags would be happy with their darknet level, absolutely no js thing.
Maybe im just overthinking this shit and i should just make a restful/headless imageboard and let people write their own clients, maybe even a desktop app in the style of discord. I feel like id have to provide at least a crappy initial SPA frontend though, at least for demo purposes, though people could improve upon it.
IMO the most important thing would be to make that API, possibly by extending 4chan's api with some routes for making new posts/threads, reporting, authenticated actions etc.


My plan is to not give a fuck about APIs and just roll out your own for now. In most HTTP frameworks, that is trivial to change.
For now, this the general API I've come up with. Each endpoint basically assumes CRUD (create read update delete). This is based on the functionality of this software, which is the most complete of I know. My idea is to reach feature parity first, then expand functionality. This is merely a learning experience for me, so I don't think I'll end up finishing it. I'm passing on my notes.
Authed endpoints, all of them are prefixed with: auth/
Manage Users:
Mod logs:
Board settings:
IP posts:
IP/{IP} (eg. delete by IP accepts board as query param)
posts/ (no create, also this endpoint is suspect, more below)
Post File:
/board/{board id}/threads (also suspect)
threads/{id} (also suspect)
This assumes that posts, boards, and threads all use global IDs. Specific board >> ids would still exist. I haven't figured out how yet, but I figure that working with global IDs will be more comfortable.
Suspicious endpoints:
I still haven't decided how to supply mod information when a mod sees a thread. I'm thinking of just using the regular non authed endpoints and checking for auth info there. If the user is authed, and has proper mod permissions, then get the info. Or perhaps just mirror the non-authed endpoints and make them authed. I prefer the latter one.
how to see a thread:
boards/{board id}/threads/{thread id}
and if you want the same information but also with extra info for mods, instead call
authed/board/{board id}/threads/{thread id}
Then for non authed endpoints, you pretty much have:
boards/{board id}/threads
threads/{thread id}
threads/{thread id}/posts
posts/{post id}
I'm still undecided on whether to make it like that or to nest the resources like proper REST.
eg. to edit a post
boards/{board id}/threads/{thread id}/post/{post id}
instead of just
But anyway, this should give you a rough idea on the resources that would need to exist for a semblance of back-end feature parity with vichan.


I assume CRUD also relates to the normal POST/GET/PUT/PATCH/DELETE


correct. I usually don't use PUT.
POST - Create
GET - Read
PATCH - Update


How's it going, anon?


File: 1613161366809.png (343.88 KB, 1016x744, newchan.png)

Still working on it. I'm rethinking some imageboard concepts here.
Been busy with alot of real life stuff ATM pretty stressed out but ill be getting back to it shortly


damn that looks based.


My reach is much more modest. I've been going very very slow, not by choice, but because it's been hard getting shit to work.
Right now I just finished the first 3 endpoints.
GET /boards
POST /boards (create)
GET /boards/{id}
Next on the list is some basic error handling. Then probably auth.
Hopefully stuff will move faster after that. If I had to guess, I'd say I'm somewhere between 5-8% of the way in terms of effort to reach parity with vichan. This is only the api/backend. Once auth is done I'll have a better idea.
I've decided that at least for now, it will be a highly opinionated backend, otherwise the matrix of configuration will explode the complexity.


based. what language/framework you using?


scala with http4s and doobie, using postgresql. I'm planning on long term, if I ever get to it, adding redis for caching.




scala is too big brained for me tbh I had a hard time using it in school, but it seems pretty based


With enough pain, most programming languages eventually become usable.


Frameworks suck ass.


File: 1614803567654.png (762.37 KB, 3032x1608, ClipboardImage.png)

We have like 20 tech users, so I realize the futility in reporting advances to my hobby project.
I took a break, but I'm back to working on it.
Error handling setup is mostly done. Now I just need to add errors whenever I make endpoints.
Auth was a pain in the ass. It's mostly done. Just need to write the logout routes. Everything is manual compared to ready-made auth endpoints from other frameworks I've used. That said, I am using an auth library that verifies JWT signatures and helps with authentication middleware, so it's not all bad.
Next on the list is adding more and more endpoints, which implies database changes, models, queries, error handling, etc. I decided I'd use a database modeler. That way the design is documented somehow. The program is called pgmodeler. It works really well. The pre-built binaries cost, but the code is open source. It wasn't too hard to build, luckily.
It has a "diff" function, so it checks my local database, and writes SQL to apply changes. This makes it easy to write migrations. Pic related.
I'm around 900 significant lines of code right now, which I calculate is around 1/10 of the way.
Just the handle_post() function of lainchan is 1k lines of code lmao.


thanks for reporting in anon, other devs are interested in your work. are you the scala guy?
looks cool. I come from the oracle world so i had no idea this existed. Thanks
>I'm around 900 significant lines of code right now, which I calculate is around 1/10 of the way. Just the handle_post() function of lainchan is 1k lines of code lmao.
I have a feeling most of that is bloat, tbh its not surprising that with a more expressive and less boilerplatey language you'd have less lines. Plus all the poor architecture/spaghetti
One thing about your database, while splitting the boards, posts, threads, and files into separate tables is logical and common sense to the domain you realize to do metrics like showing the number of unique ips in a board, etc. you will have to be doing alot of joins + group by functions and possibly some window (over/partition by) as well, which will be pretty slow.
Maybe for reads on ip counts for example you could implement a materialized view or something, the problem is that ip counts typically display on the front page so if the query takes a ton of time with the grouping etc. it could make it vulnerable to DOS/refreshing.
Inserting a new thread - if there are constraints which say every post has to be associated with a thread, that means they will have to be inserted in both tables at the same time, like (pseudocode):
with insert1 as (<insert into threads table> RETURNING id AS threadid) INSERT INTO posts (id_thread <other fields>) VALUES ((select threadid from ins1),<other fields>)"
Pruning the catalog could be done with triggers on inserting to the threads table. Triggers could probably also auto lock threads with certain amount of responses.
your schema looks pretty good and logical, hope you don't mind if other people steal it :) not sure what the diff is between autosage and bumplock is thought?
just some suggestions again maybe youve already solved this


Maybe in Goloang or something, but PHP devs should probably use a framework which forces them to use something closer to best practices.


Because STI was a fucking retard.


File: 1615248674060.png (112.75 KB, 734x297, ClipboardImage.png)

>are you the scala guy?
Yep. Thanks for the feedback and encouragement, comrade. It is appreciated.
>you will have to be doing alot of joins + group by functions and possibly some window (over/partition by) as well, which will be pretty slow.
That's true. SQL is really fast, but I guess once you start getting some serious numbers, thing could get slow. An easy way to remedy this is to de-normalize and put a board reference on posts. I don't have much experience with very high scale queries, not sure how non-performant this could get. In vichan, each board is it's own table, so you have to do a query for each table to count IPs, which I suspect is less performant than a single query with a group by.
>t could make it vulnerable to DOS/refreshing.
I'm using redis and I plan on using it to cache certain results, metrics being the obvious one, but if possible, I'd love to cache shit like "all posts in a thread". I'm very much making this shit up as I go lol, I don't have experience with scala besides this, so I don't even know if this is possible with the libraries I'm using.
>Inserting a new thread has a mutual dependence
Yes! Good catch. I bit the bullet and made post's references to threads nullable. There might be situations in the future where a reference to a thread might not be necessary (like associating posts with bans?) so I opted to relax that constraint.
>hope you don't mind if other people steal it
That would be very fulfilling. That's why I chose to use the PG Modeler, so that I could make nice pictures and others can use this work as reference/inspiration.
>autosage vs bumplock?
autosage is when the thread reaches bumplimit. Here it's like 750 posts.
bumplocked is when a mod stops it from bumping, aka anchoring.
Users can now create threads and posts (text only)
This means most (important) non-authed endpoints exist.
This shit feels insurmountable at times……..
When posting, lainchan passes the request through at least these filters/functions, some optional and set in the configs, others obligatory:
- Validate captcha
- Validate bot obfuscation (field random data to confuse bots)
- Validate request has no referrer (block posts that contain HTTP_REFERER)
- Validate IP is not blacklisted by third party lists (aka DNSBL)
- Validate IP is not banned
- Validate IP is not robot muted (You get muted for x time if you post an identical message).
- Validate that thread exists
- Validate embed
- Rewrite fields if such a configuration is set (eg. force anonymous names so namefagging is not allowed)
- Perform upload by URL (ie you place a URL in the post and the server downloads the file for you)
- If no name is chosen, set name to one of the "anonymous" names. (in lainchan, you can set an array of names you wish to use instead of "anonymous").
- Validate that if the post is an OP it has an attachment.
- Validate post's body's minimum length.
- Validate that thread is not locked.
- Validate that the thread is not full (maximum number of posts in a thread, autolocks).
- Validate that the thread is not full in number of permitted file attachments.
- Validate the size of each file doesn't exceed max_size
- Validate the total size of each file doesn't exceed max_size
- Validate capcode if mod
- Validate joke capcode (setting to allow users to post as ## moot or ## hacker etc)
- Generate trip code
- Check for noko/nonoko in email field
- Validate filename extensions
- Generate filename using timestamp or a custom generator function
- Validate number of files doesn't exceed max_files
- Strip illegal characters from text fields
- Validate string lengths in each field (name, subject, etc)
- Apply wordfilters to body
- Apply country flags (using IP info)
- Apply user flags
- Apply markup
- Validate number of cites doesn't exceed max_cites (cites are >>{id})
- Track cites (validates each and stores them)
- Apply markup for cites
- Truncate filename to max_filename_length
- Calculate md5 checksum
- Calculate md5 of all checksums together.
- Check post for Flood (per IP) (eg limit posts by IP per minute)
- Check post for Flood (per file) (eg limit hash per minute)
- Check post for Flood (per body) (eg limit hashed body per minute)
- Check post using custom filters
- Apply extension functions (apply image transforms and create thumbnails (imagemagick+exif stuff), pdf, epub, txt, etc)
- If file has a thumbnail, OCR it and add it to the body (using hidden markup) to pass it through spam filters
- Validate image md5 is unique in board
- Validate image md5 is unique in thread
- If OCR was used, check flood and custom filters again lol
- Validate originality of body, mute if unoriginal (and config is set).
- Insert post into database
- Slugify post
- Insert post information to flood table
- If thread is cycled, delete all posts except last X posts and OP
- Update table of tracked cites
- bump thread (if not bumplocked, or full, or saged)
- handle noko
(async from here on)
- build thread's static HTML
- build board's static HTML
- rebuild any other themes that might be subscribed to the "post" or "post-thread" event (such as the homepage, overboards, and catalogs)
vichan/lainchan is incredibly configurable. Who gets to do what, filters, etc etc. I'm still thinking how to implement permissions. In lainchan, it's (mostly) done in the config files.
$config['mod']['flood'] = MOD;
// Raw HTML posting
$config['mod']['rawhtml'] = ADMIN;
// View the report queue
$config['mod']['reports'] = JANITOR;
// Allow OP to remove arbitrary posts in his thread
$config['user_moderation'] = false;
I'd rather avoid that and have permissions be editable on some admin interface, plus shit like roles etc.
I was thinking of making everything be behind some permission framework, even if it slows down stuff. The default role would be "anonymous", so you could even make user-only boards. Say for example a secret /i/ board that is only available to those that have been given read permission to /i/.
With the coming of IPv6 and the increasing accessibility of VPNs, tor etc, it's becoming more and more difficult to ban spammers/wreckers. Ideally, sessions would also have "history". For example, if your session has completed a captcha in X minutes/hours, then you can post without captcha.
I don't know how to model this.
I'm thinking something like:
Board /leftypol/ settings:
Role: "EasyCaptchaSolver" Permission: "Post" + "Report"
Role: "MediumCaptchaSolver" Permission: … + "Post with image"
Role: "HardCaptchaSolver" Permission: … + "Create thread"
Role: "Janitor" Permission: … + "Soft delete posts/threads"
Role: "Mod" Permission: … + "Hard delete posts/threads" + "Ban"
Site settings:
Role: "HardCaptchaSolver" Permission: "Create User"
What is still TBD is how to implement this. I'm fine with storing this in the database and caching with redis, but I'm still not sure how to model the permissions. Apparently this is called a Role-based access control, pic related.


>With the coming of IPv6 and the increasing accessibility of VPNs, tor etc, it's becoming more and more difficult to ban spammers/wreckers
I sometimes think this is going to mean the end of accountless imageboards as well. It may simply be the case that people will have to authenticate with accounts in future imageboard software, lest the spam become unmanageable.



The widespread adoption of IPv6 will make anonymous imageboards obsolete. The address space is simply too large to prevent spam.
Imageboards will be forced to implement accounts, even if the posting remains anonymous.


Have you ever moderated an image board? IP bans didn't work in IPv4 either.
t. deleted literally hundreds of CP ads in 2014
Pattern detection is far more effective in automatically blocking those who haven't lurked.


Then we'll make neural networks that ban people based on how they type.


>The widespread adoption of IPv6
Yeah in like a decade at best lmao


OP are you fucking retarded? Ip bans aren't the only way to deal with spam.


its gonna be expensive to run neural networks at scale, do you have any idea how much work a deep neural network does, esp. if it has to run each and every time a person posts?


That is if the software ever actually switches to IPv6 addresses.




We can crowdfund it. Or set up a trust fund where we collect dividends to pay for it all. We could start small with some of the more primitive models


File: 1617407160430.jpg (110.15 KB, 960x960, 1617406861215.jpg)


This is beautiful.


Plz no. I hate logging in.


a new era for namefagging, epic


>Pattern detection is far more effective in automatically blocking those who haven't lurked.
that would be enforcing conformity and turning chans into reddit but using technology instead of upvotes/downvotes


This website is still ipv4. Are you talking about in the future when ipv4 addresses become unavailable? It's possible that many sites will just ban people with ipv6 service and only let in the affluent people who can afford expensive ipv4 addresses.


Retards unironically still saying that there's no conformity in mainstream imageboards and that they aren't like reddit. Faggy ass "board culture" is an ideology of its own.




dead software ever since comrade rat quit the internet


>SQL is really fast, but I guess once you start getting some serious numbers, thing could get slow.
it's an imageboard, you have a max amount of data at once capped pretty low. I see no reason for nosql unless you do some 8chan shit with infinite boards
>each board is it's own table
oh god thats awful, did nobody learn them how to design a relational database ?
are you doing it in scala or java ?


that anon is using scala AFAIK
>oh god thats awful, did nobody learn them how to design a relational database?
no, and the rest of their code sucks big time too


Why hasn't chans/imageboards UX/UI advanced beyond the early to mid 2000s?
Would anons even want a "modern" style HTML5/CSS UI with flex/grid/etc. ?
I feel like having a non dated UI would attract alot more normies to imageboards


Please no, leftypol actually feels more modern in terms of functionality but modern UX/UI is fucking awful


We need the react feature for posts.


Just add an instant soyjak button




File: 1623927249734.jpeg (6.64 KB, 250x250, 4356789.jpeg)

The web is dead/dying. It's being coopt'd by massive corporations. Boards like this are all that's left of what once was the wild west of the internet.
I'd start getting accustomed to protocols like gemini, tbh.


Gemini is blazingly fast


>Why hasn't chans/imageboards UX/UI advanced beyond the early to mid 2000s?
But they have? Unless you're one of those retards who need lots of rounder borders and useless javascript animation effects to like a website.


I dont suppose there's any way to host gemini over onion?


Do gemini browsers support images?


does the onion router even care about protocols ? It might take some configuring but in principle any type of package based information transfer should be compatible.
>Do gemini browsers support images?
if you want inline images displayed along side the text, use the Lagrange browser.
But try out amfora as well, it's very nice, it opens images in an external application


>does the onion router even care about protocols ?
Only at layer 3. Tor only supports TCP.


How exactly do you envision it to be more "modern"? It's a text board with pictures. What else does it need? You can look at russian 2ch.hk to see a bit more modern take (which I think is pure cringe). There was also that one project Moot started that was supposed to be "like if 4chan was created today" back in 2010 and it failed. There's no need for major innovation here.


Reactions 😤


UX/UI design has been in freefall since the introduction of smartphones and tablets. imageboards are one of the few sets of website types still marginally tolerable to use.
whenever someone says the word "responsive" i want to break his fingers.




File: 1624801007238.png (570.21 KB, 1242x810, normalpillsimage0.png)

Another consideration which may be relevant for you is the issue of hosting. Some hosting platforms, such as Digital Ocean, will allow you to host a "static website" for free. Static, in this case, means no server-side code, but you are otherwise free to use as much javascript as you wish.


sure, but the data has to be stored somewhere. So for any communication there has to be server side/backend code still existing


more modern like not looking so web 1.0. Yes autistic anons here love it because they read something Stallman wrote about javascript once but "normies" see it and think "unironic retro".


I honestly have no idea how would that look like. I mean it's just text with some background boxes. How do you make it more modern? Not to mention 99% of modern UX for websites fucking blows. New Reddit? It's fucking awful. And also, I think imageboards look fine as they are, even for normies. I think the idea of anonymity is what's keeping normies from it. They don't want to go to a site to be called a faggot or something. Or having to find good posts themselves. So the only way to modernize imageboards is to add the epic upoat system and the ability to make custom boards to which you could subscribe and see the most upboated posts. But that's just another reddit so no point in doing that.


>How do you make it more modern?
rounded borders, css-styled buttons instead of plain text links for more things, a modern front, mobile-responsiveness for phonefags, for one. Something that has the polish of reddit/twitter but still the function of a chan. There's no rule that says your website has to look like it was made in 2005 to be "le authentic oldfag channer", its like being repulsive to normie zoomers is a badge of honor to them or something.
I'm not talking about rewriting a chan to use heavy-javascript like angular or something, just modern css/UX with a minimalist, but modern approach


Twitter looks like ass and the corners are already rounded.


You should see screenshots of 4chan in the mid 2000s.
Imageboards have kept up with the internet in an honestly somewhat elegant way.


File: 1625091369091-0.png (72.36 KB, 870x627, ClipboardImage.png)

File: 1625091369091-1.png (288.1 KB, 979x687, ClipboardImage.png)

File: 1625091369091-2.png (86.96 KB, 981x805, ClipboardImage.png)

File: 1625091369091-3.png (237.72 KB, 987x888, ClipboardImage.png)

There's a difference between progressing and conforming. Most will keep the traditional elements but many are further diverged. I know one caused a stir of discontent in 2014 when they moved to a center-aligned view.
4kev is noteworthy too. https://www.4kev.org/boards/design/
.net vs today


No the fuck we do not. People hunting for (You)s is bad enough as it is.


It would diminish attention whoring. Instead of bothering to reply to bait, people would only push the react with the 🎣 and there would be less enjoyment in baiting.


File: 1625118835566.jpg (76.17 KB, 1280x720, moot.jpg)

Modernity is literally a normalfag meme.
Remember that Jakob’s law was coined in 2000 because zoomer phonetards were even born.
You can copy the latest fads right off a cliff, and normalfags will praise you for the "modern look" all the way down, but these always come at heavy cost to functionality.
Twitter hijacks scroll and shudders like it's having a fit. Whitespace has reached parody levels, with literally one headline fitting the entire screen.
Reddit can't be assed to show you more than ONE comment because everyone has ADHD and need to bingescroll more shitty labeling memes. Their metrics probably say that this is good.
How far along must the spongiform encephalopathy be for people to actually like this?
Moot really thought he was on the train to porkyville with canvASS. His mistake: Didn't go cancerous enough.
Imagine all the cancer in the world, and that's what WILL be next.
It will be some unholy mashup of mini streams which automatically scroll like slotmachine reels, which you can't stop, interspersed with ads, low quality camwhores, and gamified reacting pepe and wojaks spam pouring down the screen. Stars bursting like a mobile game announcing every time someone tips reddit gold.
Maybe this already exists.


Imageboards are Web 2.0. And this board uses JS.
>Something that has the polish of reddit/twitter
But they are a pain in the ass to use, and part of it is directly because of their "slick" design.
Take the example of a flat design trend. It looks good and clean simply because it removes visual elements, but everything is flattened into the same plane of relevance, it removes a crucial part of visual information that is needed for efficient navigation.
Then combine that with heavy use of JS that restricts how much information is present at once, instead one web page is turned into a slideshow of multiple pages, and you've achieved the utter shit that is "modern web design".


File: 1625124742204.png (207.7 KB, 327x316, kek_gold.png)

>It will be some unholy mashup of mini streams which automatically scroll like slotmachine reels, which you can't stop, interspersed with ads, low quality camwhores, and gamified reacting pepe and wojaks spam pouring down the screen. Stars bursting like a mobile game announcing every time someone tips reddit gold. Maybe this already exists.


>mfw gnomies praised their shitty adwaita theme because it's not flat and avoids modern flat trends but now are forced to praise the new adwaita theme that is 100% flat


>Something that has the polish of reddit/twitter but still the function of a chan.
New reddit or old reddit? I cannot fathom how anybody can use the new reddit. Every time I click on a link to reddit I have to change it to old.


old reddit then, but thats not the point. You have to admit the aesthetic of vichan is pretty dated


>whenever someone says the word "responsive" i want to break his fingers.
why, isn't it logical to want a website to render well both on a desktop and on a phone or tablet or whatever


that anon probably wants the site to be hell on mobile posters to discourage phonefagging. which is dumb because lots of third worlders only access the internet via phone and dont even have a pc


Anon's right. There's having a separate mobile version of the site (like Wikipedia), then there's "responsive" design that fucks the site up for desktop users.


you already know they're gonna remove old reddit in the next few years because of "security reasons" or some dumb shit


use alternative frontend like teddit.net, it's depozzed as well


That's true. There's also stuff like "edge caching", which makes your front end be delivered really quickly to clients.
A huge issue with "modern" front ends is that they are insanely bloated and de-bloating them is frequently an issue that requires tinkering. Of course, it depends what you're using. If you're using GHCJS vs Elm, or vs plain JS.
On the other hand, it's really nice not have to deal with common retardation that comes from JS/CSS/HTML. A huge huge one is responsiveness, and "mobile web app" friendly. It's easy to shit on bloated React shit projects, but it requires less work to make a shitty front end.


File: 1625445921316.png (307.84 KB, 984x766, kissu moe.png)

I've started looking around other imageboards and there's some interesting looking ones out there.


File: 1625446529158.png (70.66 KB, 981x777, syn-ch com.png)



File: 1625446688068.png (156.31 KB, 1661x839, catalog.png)

check out this. Now this is what I call a modern take on a chan!


What is the benefit of old reddit over new?


File: 1625488505575.png (1.61 KB, 225x225, soydev.png)

>modern UX/UI


>I'm a dev
Ok, mucho gusto.




>It will be some unholy mashup of mini streams which automatically scroll like slotmachine reels, which you can't stop, interspersed with ads, low quality camwhores, and gamified reacting pepe and wojaks spam pouring down the screen. Stars bursting like a mobile game announcing every time someone tips reddit gold.


Check out 4taba too, it's run by the same person and it has the greatest imageboard innovation in the century: side threads.


A good website is not only accessible on a phone, but looks good on a phone, has the same level of features, plus features that are platform specific, and is performant. 4chan is accessible on a phone but doesn't look very good and lacks features that are related to the platform. Mobile platform approach would make it easier for mobile users to utilize the site, hence the desire for a separate app.


>modern design
holy bloat


For me, it's being able to read all the comments without an extra click, or with javascript disabled.


Modern UI, such as forcing a new image format on some users who can't read it? Bravo, leftypol.org.


thats unrelated to this thread, but im surprised they went with it considering how badly anons react to anything google (muh glow in the darks)


It is physically impossible to make a forum that works as well on a phone as it does on a computer. Even if you take the twitter route of gimping the wordcount so that the fact phones are shit to type on is mitigated, you're still left with the fact a PC user can have access to a hundred tabs at 10 seconds notice while a phone user will take much longer to flip between 5.
Far worse than glowing is the lying. If you're going to serve a webp, call it a webp. There is no limit to the suffering I wish upon whoever decided to make it a practical standard for websites to outright lie about the files they're serving. When I save a .jpeg only to discover it's actually a .heic I understand immediately and instinctively the motivation felt by every serial killer and psychopath in history.


>"modern" style HTML5/CSS UI with flex/grid/etc. ?
Literally innovation for innovation's sake. Neoliberal koolaid.


>It is physically impossible to make a forum that works as well on a phone as it does on a computer.
Yes absolutely. And not just forums. There was a brief window around 2010-2012 where all companies were trying to unify their desktop and mobile experience.
And they all failed because it really is *physically* impossible, despite being practically a holy grail from a business perspective.
Even if you develop two separate, really nice front-ends for a forum, it still ends up culturally incompatible. If posts are longer than 240 characters then phone users can't/won't read them.


Are you serious? I've been browsing forums (and this includes imageboards and textboards, obviously) since ever. I even used to do it on a dumbphone over a decade ago.


on phones since ever*
Reminder 2ch and Futaba and even some western textboards (i.e. 4-ch and BaI) offered alternate low bandwidth subpages meant for phone browsing were posts were left untouched and only a bit of clutter was removed (like shortening post dates and having minimal CSS or none at all).


File: 1625548301284.png (14.51 KB, 550x482, mobile_first.png)

Of course sites work well on phones.
The aftermath of the failed merger attempts was obviously that phones won entirely. They were after all the growing market.
"Mobile first" became the hegemonic "modern" design philosophy, and everything outside of developer tools and technical productivity tools become dumbed down and phoney.


yeah which is why for example modern twitter is based on the mobile design and the desktop version was modified to look more phonelike


>side threads
explain, please


google "infinity-next"


i thought it never got finished?


Disable posting for phonefags.


File: 1625875540570.png (411.69 KB, 628x629, gommi_june.png)

Hey /tech/ I've been working on a chan with a relatively modern UI/UX as a side project. I thought about adding this to an existing thread but didn't want to shit them up.
I have several goals:
1. Modern UX/UI - I wanted to give the chan/imageboard a modern makeover using modern HTML/CSS, yes, with rounded buttons etc.
2. Code Quality - I'm not a nazi about code quality on hobby projects like imageboards, but imposing some sort of basic framework or structure would still be a vast improvement over vichan style imageboards which are mostly structureless spaghetti code balls. Statically typed languages also help with this.
3. Spam Filtering - some sort of pre-emptive validation or spam filter, possibly using basic classifier algorithm, to help moderate the board.
Things that are done:
- Basic posting (threads, replies)
- Catalog View
- Support for images (jpeg, png ,etc.)
- Catalog Pruning (delete last threads on catalog after X threads)
- Links (double carrot style links to other posts and OP)
- Greentexting
- Orangetexting
- Redtexting
- Embedded Youtube Links
Things that aren't done yet:
- Non Catalog/standard view (still needs work on pagination)
- Support for videos and pdfs
- Moderator and Admin tools/menus & UI
- Spam Filtering
- Front/Home page with metrics
- Overboard
- Show replies to post near top of post (double carrot links to posts that have replied to that one)
- Floating Reply box in thread
- Reporting
Reach Goals:
- Themes/custom css
Things I'm probably not going to do:
- (You)'s/(me)'s
- Hiding Posts/Threads


File: 1625875987786-0.png (127.23 KB, 1132x776, microchan.png)

File: 1625875987786-1.png (32.06 KB, 884x539, microchan2.png)

File: 1625875987786-2.png (393.66 KB, 1471x907, microchan3.png)

Tech Stack I'm using:
Back End:
- Java 16
- Spring Boot
- Spring Security for authentication (mods/admins) and other security
- JPA/Hibernate/JPQL for database persistence and Spring Data Repositories
- PostgreSQL
Front End:
This is a server side templated HMTL tradition web app, not an SPA.
- Java "pebble" inheritance based templating
- Milligram.css for basic css and fonts
- Alpine.js (more moder jquery replacement) and vanilla JS for front end javascript functionality
The database schema is very denormalized and simplified due to me being a JPA/JPQL amateur and having a hard time writing joins in JPQL but that has its upside in query speed.


File: 1625876286472.png (439.88 KB, 648x907, microchan4.png)



I've been working on a federated board software called Multichan. currently working on splitting the frontend from the backend. Maybe we could collab. It uses tags (rather than boards) and will soon have a scraper that can pull threads in from remote boards and archive them.


make an IRC or Matrix


that sounds cool anon what sort of collab did you have in mind?


someone who is tired of zooming in to hit the correct board link at the top on a phone


it's all styling anyways.


I'd have a hard time justifying calling a Spring Boot-based project "Micro-anything" considering its high RAM usage compared to even Node.js.
>The database schema is very denormalized and simplified
It will not be "simplified" in the long run if you don't go up to at least BCNF / 3.5NF.


fatchan is pretty modern looking




it looks like a normal chan to me?


>BCNF / 3.5NF.
really a meme, in reality 3NF is good enough for most production systems


I think that's called post-modern web design.


moar liek post-mortem am I rite??




it's written in enterprise language so nobody will contribute to it unless they get paid for their suffering


Java isn't my favorite language, but it's a better choice than the alternatives. The reason I didn't go with something like Php/python is because anything that requires low level functionality has to be done with some external C-built program, for example thumbnailing images with imagemagick, etc. Even rust doesn't have native thumbnailing. As opposed to natively with Java. Java also has 1.15x-2x slower speed of C so near native performance. Static type checking, mature ecosystem of libraries and tools that do anything you can think of, and it's widely known. Writing it in something like Haskell would get you hipster points but it also makes it a lot harder to develop. Additionally the thread per request process model of most java web programs, while less good than async style, is still vastly superior to the process-per-request model of php.
People have tried to write imageboards in languages like Clojure, Ocaml, etc. before and it ended up falling through because not enough amateurs out there know functional programming well enough to contribute.
The only other languages that could even be considered are C# (which I didn't want to do due to its association with the MS ecosystem and Stallman-brain people have here), JS/TS (which is associated with lynxchan), or maybe golang, although golang is also associated with a now apparently defunct other chan that was in development.
If I switch frameworks to be more microservice oriented I'll probably update that in this thread and let people know


>The reason I didn't go with something like Php/python is because anything that requires low level functionality has to be done with some external C-built program, for example thumbnailing images with imagemagick, etc.
Why is that a problem?
>Java also has 1.15x-2x slower speed of C so near native performance.
It's worse than 2x in most benchmarks and has to use several times more memory to achieve those speeds: https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/java.html
>maybe golang, although golang is also associated with a now apparently defunct other chan that was in development.
How is that a good reason to avoid Go in favor of a worse language & framework? Also last update to gochan was just a few weeks ago: https://github.com/gochan-org/gochan


>lets not use a maintained an purpose built external program to do tasks like thumbnailing
Don't DIY everything, it sounds like hell to maintain.


>Don't DIY everything, it sounds like hell to maintain.
im using a library not DIY
>Also last update to gochan was just a few weeks ago
the person in charge of gochan used to be a leftypol janny but unfortunately they fell off the face of the internet a while ago due to some personal issues and thus gochan is dead in the water. So AFAIK while there may still be contributions being made the project is leaderless.
>Why is that a problem?
because those programs themselves also require installation, updates, outside the package manager of the language of the chan and therefore practically mandates containerization which some other people here are opposed to implementing


>It's worse than 2x in most benchmarks and has to use several times more memory to achieve those speeds
so what, it's not like you're going to write a web app in C anyway. Also, often java can outperform native code due to runtime optimizations under real life non benchmark conditions anyway.


saged my own thread in favor of a new one


File: 1626055997034.png (291.47 KB, 485x436, 1623078444647.png)

Hey /tech/ I'm here to say I'm probably going to be rewriting a chan in a new language/stack intended as a vichan replacement. I've reached out on lainchan:<br/><a href="https://lainchan.org/%CE%BB/res/26674.html" rel="nofollow" target="_blank">https://lainchan.org/%CE%BB/res/26674.html</a><br/>and I'm also reaching out here. Initially I was writing it in java, but after getting some feedback from other people I've decided to take a step back and solicit more feedback from the userbase and people here on /tech/ and in the wider alt chan community on what it should be.<br/><br/>What does /tech think of:<br/><br/>Architecture: Monolith vs Microservices<br/>Front end: SPA (ex: Angular, React) vs Server Side HTML templating<br/>Backend Language: Java, C#, Lisp, Rust, Golang, PHP, etc.<br/>Database: SQL vs NoSQL


As long as you don't force feed users webp, you have my support.


If someone wants to run your server program on a $3/mo VPS (which means 512MB RAM), then it's better to do this in Go than Spring Boot because the latter will hog up much more memory to begin with and crash much sooner when the userbase gets larger.
>So AFAIK while there may still be contributions being made the project is leaderless.
He still checks issues and pull requests and the last updates were by him.
>because those programs themselves also require installation, updates, outside the package manager of the language of the chan and therefore practically mandates containerization which some other people here are opposed to implementing
It's not difficult to set a guideline on which minimum version of imagemagick and ffmpeg to use.


What do you have against WebP? The only thing I don't like is how some CDNs and webmasters name their files with ".jpg" file extensions but serve WebP anyway, that is deceitful and just plain annoying.


Arch: Monolith
Front: SPA
Back: Whatever, except for Java and raw PHP
SPAs are so much easier to code non-basic features with, I don't think I can ever go back to server-side rendering


>He still checks issues and pull requests and the last updates were by him.
glad to hear it, hopefully he hops on riot/element sometime.
>It's not difficult to set a guideline on which minimum version of imagemagick and ffmpeg to use.
yes but it makes installation more complex. If you've ever installed a vichan derivative on bare metal you'll know its a pain in the ass due to all these external dependencies


Your previous thread got me thinking about what I did not like about your java experiment <span class="spoiler">btw I was obvious joking about it being enterprise language. if you are serious about your project you can totally make it deployable on cheap VPS by reducing/eliminating memory allocation after application startup. I know of few trading desks that writes java applets like that. It's bit too much of a work for side project but it is technically doable</span>. It's not about a language but architectural direction you are taking. Would be nice if you elaborate on how your project will depart from vichan.<br/><br/>I liked that you were aggressive with server side rendering <span class="heading">but</span> for application that's sole purpose is being dynamic like imageboard, I do not understand what you actually gain this way. Keeping backend as minimal and succinct to the point of REST API point that handles user's posting seems more logical on surface level but I am not putting too much thinking into this right now so I must be missing something crucial. This design will also allow admins to make it much easier to federate one another and make frontend design choice completely decoupled which could be good thing and a bad thing. WASM is powerful enough to host complex image manipulation routine in browser side <span class="spoiler">and I am confident there was even imagemagick compiled to target wasm at one point</span> so things like thumbnail generation and other quality of life processes can potentially be handled by users<br/><br/>On the choice of DB, stephen had such a strong opinion on adhering to mongo for some reason. He claimed that he experimented with postgresql's supposedly enhanced json capabilities but were not impressed by it. Instead of theorycrafting one needs to do quantitative benchmark but that would be difficult without deciding on backend architecture.


My heart says lisp
My brain says you should look at BEAM VM languages like erlang or elixer


Does a Chan for shitposting really need telecommunications system level reliability??


> telecommunications system level reliability
Pleroma is written in Elixir and runs on OTP and it is broken all the time.


well whats your suggestion then?


Use whatever language you are most comfortable with. Wrestling with the language instead of the problem at hand is a sure way to trouble. If your goal is making a vichan replacement, focus on achieving that before you think about all the new revolutionary nonsense that you could be adding. Make it simple, most altchans are only visited by three people at most and I doubt any will ever get as popular as 4chan. Don't try to solve problems your users don't have.


File: 1626072882707.png (551.99 KB, 1062x649, thumbsup.png)

>except for Java
Why not java? it's got libraries for everything. And its faster than most languages except low level ones like rust/c/c++/golang. It's also got a low learning curve which is why many universities teach it as a first language which as a consequence now tons of people know it, and if they didn't learn that they learned C++ which is very similar to Java enough so they can easily make a transition. So the supply of people who know Java is pretty high and its easy to learn too.
Uber, netflix, airbnb, pinterest, instagram, spotify, amazon, slack, obviously oracle and even google search was originally written in java. Banks use Java, Universities, and fortune 500 companies.
Spring boot based services is a perfectly acceptable choice for any "startup". Its a jack of all trades language, I'm always puzzled when people choose the hype meme languages over a proven workhorse like Java, instead they say you have to do something crazy like write your site in an obscure dialect of lisp or erlang or something. You can't beat the rock solid stability, tooling and maturity of the JVM ecosystem and JVM itself.
Vichan derivatives have powered chans for more than 10-12 years now, imagine if the imageboard of the future gets written in a hipster language that is obscure in the future, imagine if vichan had been written in ruby on rails.
People's real complaint seems to be they want an "exciting" language to write shit in, but the older and more tired you appreciate an ecosystem/language that is mature and conservative and not constantly churning with activity and breaking compatibility creating more work every 6 months.
>Use whatever language you are most comfortable with. Wrestling with the language instead of the problem at hand is a sure way to trouble.
Yeah thats the conventional wisdom but the problem is that to get buy-in from potential devs on an open source project you need them to want to develop in the language you've chosen. So actually the choice of language does matter in that regard because if its too hard of a learning curve they won't contribute because they can't/don't want to.


It's these marginal notes you can put on posts. They are always sage and hidden by default so it is a good way to call people faggots without derailing the thread.


how is that different from the branching reply model of reddit for example? only it only goes 1 deep?


highly based


People who want to contribute will contribute regardless of the language. Most people won't contribute and it is pointless to try to please them.
If you want people to contribute it is more important to make your project easy to set up for development. Especially for an imageboard where you will need a webserver, database, some test data, etc.




If it helps you make a decision I've been contemplating writing an anonymous textboard in erlang for a while


File: 1626074941893.png (326.69 KB, 633x692, lains2.png)

I guess for this I will do a strawpoll to get peoples approximate feelings on this.
I'm doing a language survey, based on the tiobe top programming languages, of what you guys think would be good to write in. Obviously, excluding non relevant languages like C/C++ assembly, and languages that will likely be used anyway like SQL.
lets see what people think first off.


Java just doesn't feel fun though. And with Spring, even if you know Java, you have to know Spring very well to do stuff.
With something like nodejs+express almost all you have to know about express is how to register a new route (1 line of code). It's easier and provides more fun. Plus very good environment.


>And with Spring, even if you know Java, you have to know Spring very well to do stuff.
>With something like nodejs+express almost all you have to know about express is how to register a new route (1 line of code).
but thats because spring does stuff for you automatically? in any case its pretty easy to learn in any case


looks like java is winning the strawpoll


For modern webshit with loads of js activity, I always recommend the NodeJS/NextJS combo.
Does pretty much everything you want from a modern web UI and easy to use.
I don't like it for personal stuff because I'm an oldfag who likes my simple static web 1.0 stuff with no surprises, but anyone starting a new web project that needs to have mass appeal, this is the way to go, would allow you to do all the shut zoomers expect from a website with minimal headache.


File: 1626506883916.jpeg (54.15 KB, 600x400, 1616450634890.jpeg)

what would be the ideal social network site???
Imageboards (ex: 4chan, *chan “alt chans”):
• Anonymous
• No registration
• OP requiring attachment forces content/memes to be produced
• Pruning catalog keeps server space needed to minimum
• Lack of upvote system reduces groupthink and disincentivizes non-originality
• Anonymity + siloing by board centered board identity over personality
• Linear reply structure that requires minimal interaction to read
• Effortposts that do happen are often phenomenal quality
• Attracts schizos, racists and “free speech” people who have been banned from other SM for good reason
• Dated UX/UI (mid 2000s approx.) loved by users but retro looking and unappealing to “normies”.
• Dumb curation based on last bump time, incentivizing bait posting (probably this problem shared with other SM)
• Effortposts rare and disincentivized
Notes: Imageboards are in theory fantastic as the fact that they have a limit (usually around 350 threads per board) reduces hosting costs, and also incentivizes people to make interesting posts, because posts that do not garner replies will quickly sink and “fall off” aka get pruned from the catalog. This is also likely what gives chans their edgy character as a “provocative” or edgy post will be more likely to garner the replies needed to keep the thread near the top of the catalog. This can be a problem for quality as a well thought out long form “blog” style post may garner less responses and be far more effort than a 1-2 line “bait” post with an intentionally bad or controversial opinion. In this sense “trolling” and “baiting” are nearly built into the incentive structure of imageboards by definition. Some imageboards try to combat this by imposing a minimum character count for new threads (ex: 200 characters) but this seems like a bit of a hack and is contrary to the overall log
ic of the medium. Many of the “cons” of imageboards are pros in the eyes of long time users, such as its dated, non mobile friendly UI, and edginess, are seen as needed to preserve the status of imageboard users as outsiders. This creates a unique and culturally prolific space but at the same time dooms imageboards’ mainstream appeal.
• Algorithmic timeline microtargets content to users, increasing engagement.
• Social connections keep people tied to platform.
• Makes a ton of money
• Reveals personal information about name, job, location, gender, personal relationships status, friends, family etc.
• Incredibly personality centric
Facebook’s business model is pretty simple. Get people to sign up with their personal information and connect with friends (and maybe someone attractive you briefly met at a house party). Then take that detailed personal information and use it to microtarget advertisements at exactly the right demographic for advertisers and political campaigns. Mark Zuckerberg does not believe in privacy. Before facebook, people mainly used screennames and aliases online. It was facebook that changed this, so that people used their real names and faces online. Which is what he considers one of his big accomplishments. Needless to say, I hated this development and I’ve hated the culture it created ever since. Zuckerberg says he made the world more “open and connected”. Another way of saying that is more surveilled and more bothered by busybodies. Anonymity is freedom. There’s a reason every year young people leave small towns across this land to move to big cities, because living in a place where everyone
is in your business all the time and a bunch of gossiping people is a prison-lite environment. In a small town, even if you change, evolve, and become a totally different person, people will still remember and think about the things you did as a teenager or when you were twelve. I hate facebook because he’s turned the whole world into one big small town, from which there is no escape. People say the internet is making the world a smaller place, but has anyone ever stopped to ask if its getting too small? But yes, it does make a lot of money. And all they had to do was ruin the internet and possibly break politics to do it. Probably the only thing facebook does well is the algorithmic timeline which increases engagement.
• Mobile friendly design
• Decent discoverability
• Hashtags
• Decent editor UI for posting
• Diverse OP content (images, animated gifs, videos)
• Pseudo-anonymity, except for blue checkmarks
• Personality centric
• Meme ideologies
• Character limit incentivizes un nuanced “hot takes”
• Forced mobile style UI on desktop (“mobile first”)
• Nonlinear reply structure confusing, forced clickthrough
• Quote Replies
• Notifications mechanic incentivizes performative takes for subs/likes
Notes: Marginally better than twitter but still bad. Character limit makes sense from a mobile first perspective, after all who’s trying to read a 20,000 word thesis on a smartphone screen, however has the side effect of making people reduce their takes to the shortest, most un nuanced, un supported version of itself, which in effect reduces takes to “X bad, Y good” or sarcastic or cryptic one liners. Trump was a master of twitter due to his brain being small enough that his thoughts only require 240 characters anyway. Workaround is creating a twitter thread which is less readable than unbroken text and looks bad anyway, plus people have been trained by the platform to only read short takes and will tune out essay length twitter threads anyway due to twitter induced ADD. Non linear tree style reply structure is confusing and requires too much clicking to read through. The positive thing is the infinite scroll provides a constant stream of content, if the person limits their interaction to
scrolling and liking only (not replying or reading replies). Editor for posts is far superior to any non facebook platform. Quote retweet allow “dunking” and incentivize leaching off original content, “reply guys” who quote tweet someone else and add their own vapid or sarcastic commentary. Read somewhere that the twitter engineer that invented the quote retweet regrets it (as he should). Even regular retweeting is pretty lazy. If the only purpose of retweeting is outsourcing discoverability to the user, a better mechanism is needed. While imageboards incentivize creating content that gets a lot of replies, twitter incentivizes getting lots of likes, in fact a high reply to like ratio is considered a bad thing “getting ratio’d” as a reply with no like is a proxy for dislike. So while imageboards do not distinguish between positive and negative interaction, twitter and all other like based systems implicitly encourage “performative” content creation/takes a.k.a users saying the things that
they think other people will like, to therefore increase their own visibility, celebrity, etc. Rather than saying their honest opinion, if indeed they have any. Exporting Los Angeles style “trying to become famous” culture to the rest of the world. This is a cancerous dynamic. Should avoid like/dislike systems at all costs, esp. as complex feelings are reduced to a binary attribute (like/dislike). Possible side effect = polarization?.
• Pseudo-anonymity
• Communities based on interest not personality
• Generally medium to medium-high quality content
• Post History visible reduces anonymity
• Branching reply structure
• Terrible UI
• OP too short (as a “link aggregator” its often just a link to a news article)
• Likes/Dislikes, Karma, Gold, Silver, and the rest of that bullshit
Notes: Reddit is a website with a decent concept but a bad UI and worse userbase. Yes, as a channer the typical image of a “redditor” comes to mind. A limp dick neckbeard soyboy with a rick and morty t-shirt. Reddit is the Thomas Edison of websites, its users steal all their content from people that actually make original content, repost it, and then act like they invented the whole thing. A perfect encapsulation of middle class bland yuppie suburban consumer culture, a circlejerk which produces nothing original and never will. Part of the broader disneyfication and pg-13ification of a sterile and desexed pop culture, with a good dose of smarmy smarter than thou smugness and milquetoast center-left politics thrown on top. Peak midwit. Certain subreddits are niche and good. Reddit evolved to replace a lot of the old school bulletin board forums for niche gaming/auto/etc interests. At least its based on shared interests and not personality based drama. Like/Dislike and karma system encourages
the same hivemind and performative posting BS as with twitter. At worst as a “link aggregator” it simply acts as a comment system for articles on websites that don’t have their own comment section. Not much to be borrowed here mechanically, except maybe allowing users to make a http link as their op as an alternative to videos/images.
• Pseudonymous option
• Potentially very high quality content
• High word count
• Low discoverability
• Bad on mobile
Notes: Blogs and blog-like sites like Tumblr are actually surprisingly good. Unlike the transient nature of twitter posts, people tend to put effort into blogposts and even include sources from time to time. The only problem is that blogs tend to be separate websites and even when on the same domain (ex: wordpress.com) they tend to lack discoverability. Tumblr at its peak in the early 2010s seemed like a transitional website, a sort of nu-myspace. The downside of high character count is that blogs, regardless of “responsive” design, tend to read badly on phones and don’t lend themselves well to casual use.
• Extremely potent mandatory recommender system driven content
• Short video clips lend well to casual use
• Video format more accessible to dimwits and tired people than walls of text
• Often cancer tier ultranormie content, on par with instagram
• Primarily consumed by children and teens
Notes: Tiktok’s content may be cancer but it’s format is genius. The most addicting app of the modern era. Instead of allowing people to search for content but adding recommender systems like youtube, tiktok leans in and puts it on steroids by making the recommender system the main way to access content. This is like increasing the nicotine content 3x.
• Audiovisual and audio content easier to digest
• AV/A content easier to listen to while moving (i.e. commuting or walking)
• Works for both long and short content
• Recommender Algorithm very good
• Video storage takes a ton of space on disk.
• Streaming content in a timely manner tricky, practically mandates CDN use
• Responses text-only
Notes: The second most popular social media network. Takes way too much storage for video. On the plus side the recommendation engine is scarily good and addictive. AV content can be consumed with walking, driving, etc. while reading text for that is pretty difficult. Object storage and delivery (files, videos, images) is a usually overlooked aspect of these sites. Responses being text only is listed as a con, but it can be a pro in the sense that it saves storage space and it encourages being OP-centric in an r9k-ish way.
Runner ups:
Linkedin – facebook for jobseekers, professionals, and hustle culture psychopaths.
Snapchat – fancy texts that delete themselves.
Pinterest – Not familiar enough to comment but looks like a glorified booru for middle aged women
Telegram/Signal/Whatsapp/etc. - Texting that’s ““secure””.
Medium – Blogging for people who are too lazy to set up their own blog. Often mistaken for legitimate “news”.


Tumblr is still my favorite social network mostly because the curated content but the memes and the absolute lack of influencers and brand accounts make it so comfy.
In socialism we'll need to rethink how social networks work completely and redesign them to give people what they need and not squish them for ad revenue


i always wondered why tumblr died, is it literally just because they banned porn?


in their attempt to ban porn lots of people who were not porn blogs got shadow banned either way so lots of people left feeling unwelcomed but in the end it was a good thing, all the toxic people are on twitter now and tumblr has become really chill.


I think i discovered why reddit is the way it is: its a link aggregator. Its not about producing content its about aggregating this and allowing people to comment like an omni-comment section for the whole internet. So "stealing" content is literally built into reddit at a mechanical level.


File: 1626515033065.png (572.88 KB, 850x687, fuckoffgoogle.png)

In an ideal world there would be no need for social network. Meanwhile the ideal is where people give me (You)s.


a combination of imageboards and classic phpbb by przemo forums with at least three important things to note:
-no requirement for attachments
-no methods of identification (flags and so on)
-no duplicate images


D-did you only realize that now?


File: 1626531985715.png (164.21 KB, 629x857, zoomer_internet.png)

Don't put "normies" in scare quotes you fucking normalfag. The arrival of social networks marked the beginning of the death of the internet by commercialization.
The problem with building anything cool is that it eventually creates a pool of concentrated value which capitalists will view as a highly exploitable natural resource. The early internet with its deeply embedded academic norms created just such a resource in abundance.
The problem is that once this is tapped out, the capitalists switch to far more capital intensive fully artificial plantation building. That's what the social media networks are. Fully inorganic capital infrastructure for capturing, domesticating, and breeding cattle.
The domestication process is nearing completion now, and modern internet users, like cattle will not even step over a 30cm high fence (walled garden), and produce an abundance of milk (advertising revenue).
Nerdraging neckbeards that would fuck shit up over the slightest thing and don't click ads make terrible cattle. So they've been abandoned as a demographic to the digital hinterlands to live in da woods. This suits many people, but the capitalists will always control the best infrastructure for their digital plantations.


yeah actually


whats your opinion on recommender systems? does a new form of communication basically require one (algorithmic timelines, recommended videos, etc.) to compete with the addictiveness of modern "social media"? seems like the breakout apps nowdays (ex: tiktok) all are based on recommender systems


yeah but requiring an attachment is what forces the memes to be produced though


Textboards are the best in terms of anonymity and discussion potential, but they aren't very popular.


Why is there no facebook-but-not-evil?
Like I'd legit make an account on something like a facebook if it just fixed some major shittyness, e.g.:
- pushing random stuff at you that it thinks you will like in the moment, but no reliable access to notifications or a persistent list of things you might like, so you can check if of your own volition
- facial recognition, forcing you to use your phone number, and all that creepy super personally identifying stuff
- not respecting the users at all
- thats basically it actually
why cant we just have pseudonymous facebook that give you a bare minimum of respect in how it shows you things. Just a facebook that doesnt fingerprint you and gives you power over what you see, for your benefit….
I guess the big issue would be paying for it. Federated models are super unappealing to non-technical people when theyre expected to find or choose or set up server instances, and they can be not even good for a security perspective if everyone is using one main instance. But personally i think at least having the option to set up your own thing is a huge coup.
A centralized model would need huge funding, and who will give it? Companies who would just control the project and change it to suit them. No one donates. Maybe mine bitcoin in everyone's phone who has the app i dont know :p
P2P is ass generally and doesnt allow for the extra space to store stuff
anyways this is what I consider might be the best social media. A bunch of linked personal sites, with potential interests and stuff being recommended to you, that people consider normie and will use to organize stuff irl and advertize their business and do all kinds of super normie stuff on.
Just has to not track you, fingerprint you, demand identifying information, spy on you, has to be FOSS, has to allow weird connections like Tor, etc. Allowing but not forcing federation would be even more awesome. Also maybe encryption by default :p


A theoretical true recommendation system would tell you, "if you liked that, then you may also like this" based on correlation clustering with other users data in the set.
The problems are:
1. Real recommendation systems don't work like this. That's the pretense, but they're either straight up ads driven by auction, hand curated by staff, or manipulated by various influential groups.
2. It presupposes that the centralized dataset exists in the first place. Are the recommendations worth keeping this centralized power around? I remember reading that netflix switched to either random or most popular, and getting better metrics than their best matching algorithm. Doubly not worth it.
3. It dulls people's organic search skills. They come to expect algorithmic recommendations, which also means dependency.
That's if the organic data hasn't atrophied away.
4. Even the best algorithm tends towards mediocrity. And how could they be otherwise. No algorithm can bottle human serendipity.
In the rare times I browse youtube in normalfag mode, I've watched popular/trending things. They are always take-it-or-leave it tier. They always have a junkfood aftertaste.
The decentralized version of algorithmic recommendations is NON-algorithmic recommendations. It's just a bunch of anons shitposting, and occasionally cool things surface organically. It doesn't scale, can't be replicated, and will likely only decline in appeal going forward.


>why cant we just have pseudonymous facebook that give you a bare minimum of respect in how it shows you things.
because thats not as profitable




aren't algorithmic recommender systems supposed to be individualized? I think they largely work as intended on for example youtube, by giving you similar content to what you've seen before. You're right in that now normies have become addicted to recommenders the skill of finding shit is declining.


8ch + youtube + soulseek


whats soulseek


>Don't put "normies" in scare quotes you fucking normalfag. The arrival of social networks marked the beginning of the death of the internet by commercialization.
This is surely precisely why "normies" should be in scarequotes. A normie, a normalfag, whatever you want to say, is not a real thing. It's not an inherent trait of a person. Put geeks on Twitter and you get normalfaggotry, sit normal people down with only a HTML editor and you won't. Sites shape the people who use them far more than people shape the sites they use.
tbh a true recommendation system seems just as, if not more philosophically objectionable than the various half-measures we've already got. non-algorithmic recommendations passed around by actual human beings and randomly searching by yourself are by far preferable.
also there is a fifth disadvantage which has developed concurrently, even if it's not an essential feature of a recommendation system: not only are people's organic search skills dulled, they are crippled. most sites don't support a ton of basic search operators (at best you tend to find that you can stick quotation marks around things to increase the chance they'll actually appear, and if you're very lucky, use asterisks as a wildcard. that's it.), often sites will have infinitely scrolling pages rather than pagination, ensuring a browser crash before you've found what you were looking for if it wasn't incredibly recent, especially in combination with the removal of basic features like being able to search for things from oldest to newest.


>Sites shape the people who use them far more than people shape the sites they use.
Blaming others is the most telling and fundamental trait of a normalfaggot.
There is absolutely fucking nothing making people use social crap like twitbook except normalfag high-school mentality pressuring each other onto them, because according to nuerotypical normie logic, all normal people have faceinstachat with a million pictures of their narcissistic highlight real and if you don't give up all your data to these corps you are some kind of anti-social creepazoid. When the corps predictably exploit this herd behaviour, normies screech that they dindu nuffin.
Normies are the majority and like always they will manage to wash off any blame onto evil programmer autists who trap them with dystopian software, but on tech boards, their behaviour and mentality will be recognized and shamed.


>normal people have faceinstachat with a million pictures of their narcissistic highlight real
NTA but I think what he was getting at is that the site/app mechanics influence behavior, its not that they make the instareel because they are narcissists but the site mechanic rewarding their posts with like based dopamine hits is literally training them into becoming more narcissist


There would be down voting but no upvoting. This would solve 90% of problems


It certainly does nothing to solve the central problem of plebbit which is that arguments are voted on rather than assessed for their merits.


Is there any sort of feedback system that works?


Scientific peer review among cybernetic Hoxhaist state-university institutions.


Works to what end exactly?


Let’s us sort out quality content from shit without succumbing to hive mind group think.


Why would you need that anyway?


I'm not convinced such a system is possible. The very act of forcing yourself to sort, to focus on the arguments and analyze them, is what prevents you from succumbing to hive mind group think in the first place.


>Blaming others is the most telling and fundamental trait of a normalfaggot.
No, that would be assigning individual responsibility for structural issues. You are autism cattle.


Cattle can't have individual responsibility because they're not sentient. They don't reason or make choices of any kind, and experience systems of control as pain, rather than higher level concepts such as coercion or duress.
However even cattle should be protected from harm, which is why facebook and twitter should be banned.


>which is why facebook and twitter should be banned
Others will take their place. The problem is that there is massive demand for the narcissistic grandstanding that they enable.
The only solution is a social one. Change the culture so that this kind of tendency is ignored, starved, and dismissed.
It doesn't even need to be a conscious effort. Normies already seethe themselves into a frenzy when you dismiss their interests, or consider them trivial or silly. Gemini is already doing this just by replicating old HTTP protocol but deliberately making it incompatible with current browsers. The amount of salt this produced among normcuck web-aware, mobile-first, disruptive startup "entrepreneurs" over at Hacker News was amazing. People who built their entire lives and identity around this online circus and its enablement seeing others just having fun away from their sphere of normie one-upmanship and hating it.
Make twitter and facebook uncool just like they made myspace and geocities uncool before them. Coolness/uncoolness hits the normie high-school mentality much more deeply and severely.


thats assuming that there's no objective measure of quality or something which approximates it


File: 1626678441895.gif (2.12 MB, 320x180, xnjKFy.gif)

>The problem is that there is massive demand for the narcissistic grandstanding that they enable.
yeah, which they greatly exacerbate. Without social media all these narcissistic fucks would just be the kid who flexes in the mirror and no one else would be the wiser.


We're losing the tech culture war though.
Freedom is "boomer".
Programming, hacking, and knowledge is boomer.
Wired Ethernet is boomer.
Torrenting is boomer.
Literally everything that can break dependency and control of the tech giants is boomer.
Selfies, wireless charging, proprietary connectors, being an influencer, streaming culture, no headphone jack, forced upgrades, and app stores are all the cool hotness, according to the capitalist controlled media.


Techier oriented sites are hardly far above normalfag places regard to circlejerk levels, go check out some Slashdot posts for instance. Imageboards also have a lot more groupthink than the OPost claims, just enforced in different manners than sites that have le ebin upboat capabilities. Has no one ventured out of here recently?


File: 1626697976731.jpg (78.35 KB, 1200x508, foss.pic.jpg)

The number of people that move away from big tech dependency is growing, it is just on a much slower incline, than the incoming newbies falling for big tech closed ecosystems.
People won't make the effort to learn the open stuff, until after they get burned by consequences or feel the constraints when they bump into the lock-in cage, so there is considerable lag before they move on.
Within capitalism we will get a maximum of 10% of all users to move to FOSS and all the other stuff, for more you need to be able to control the superstructure.


underrated post


thats because the internet was for nerds before and now the ultranormies are on it


Boomers are based


what you're talking about happened decades ago when normies began to overtake nerds as the primary users of the internet. And now you have ultranormie cancer (ex: literally anything on instagram)


the Internet actually was used for government purposes and then mostly academic ones, not this idealized shit people constantly spew about some fake "golden time".
by the time it got to the ordinary so called "nerds" it already had been basically privatized.
heck, if the technology had been as advanced then the mass commercialization of the Web would've been just as bad, and it even so without all the data analytics of today managed to be extremely shitty quite frequently.


File: 1626780559207.jpg (269.25 KB, 1110x1480, E5So0zrUUAAAFpv.jpg)

reposting comment from other bread, basically the best would be an all-in-one like Facebook as long as privacy and personal data issues are solved
Perhaps I am biased since it's been my main platform for years now but Facebook seems like the right idea for an ideal social media site.
Its biggest pro is really monopolizing and deciding they were gonna steal features from every other social media site. Completely absorbed Snapchat into its Messenger app, stole Craigslist's role as the local marketplace seller, fucking integrated its own Tinder dating feature, blogging exists through Pages and accommodates effortposts, it's much shitter now since that feature got whored out to corporations though. But that encouraged users to take advantage of Groups, which is basically subreddits. Won't find medium-high quality content as often, but if you curate your group to being niche enough, it can form good communities and attract the autist who'll effortpost and spark good discussion occasionally. Its Video section is okay, isn't as user friendly Tiktok which was built to host video, and its algorithm can't seem to curate content as good as YT- also hasn't attracted the quality content creators from either.
Also, I think it hits a good balance between anonymity and reddit's activity visibility. You don't have to give up any information on registration, you can make a completely false profile with a fake name, have almost complete control over who can comment or see the shit you share/post, and pretty much go into discussions with anonymity since people can't really search for comments you leave on profiles and pages. As long as you keep an iron lock on info FB network can cross reference like location or personal history, you'll never get found by IRL peers. Posting edgy bait on public shit is also discouraged since enough profile reports will get Zuck demanding to verify who you are, so that type of shit is discouraged(unless you find private edgy groups that don't report shit, which is actually very easy to do. Heard Proud Boys and other faschy types would just organize and shit through Facebook Groups, actually).
From what I know China's biggest social media WeChat also follows this all-in-one-model kinda, and I think Facebook is close to hitting the magic recipe in that regard, although it's personality centric on the profile side, it's really easy to just find pages/blogs or groups tailored to a specific topic or interest, so it lends itself to discovering/building communities easily. it's just fucking plagued by capitalist monetization and all the fucking breaches of privacy and demands for personal data, when they're not just stealing it covertly. Assuming a socialist revolution gets rid of these elements, basically an all-in-one model improving off what Facebook's built so far seems like the optimal way to go.


>Also, I think it hits a good balance between anonymity and reddit's activity visibility. You don't have to give up any information on registration, you can make a completely false profile with a fake name
False, you need a phone number, and even if you somehow get through with some online temp phone number, they will deactivate your account soon after.
Theoretically you can make as many throwaway reddit accounts as you want, it's just that social capital is hyperrealized on reddit and put into the center of interactions, so in most cases you're worth nothing without "points" or whatever you collect there. You also need to bypass google's captcha to register so no go over Tor.


It's been a long time since I last made a FB profile, so I thought it still gave you the option to register with email rather than phone number, and it'll just annoyingly ask for your phone # whenever you log on but give you the option to skip it.


A discussion forum, assuming a socialist society:
1. Unique Internet ID that gets encrypted and is connected on the back-end to your real name. This way you can avoid bots and shills easier. Real name can only be accessed through a court order if criminal laws are broken. No TOR, no VPNs allowed. Only allow domestic IPs may post, foreign IPs can only lurk (no USano zone).
2. On the front end, you can remain anonymous or post with a fantasy-name profile.
3. Different boards/subforums, curated by the owners, with many general threads.
4. Sidebar with the most active threads, blog-pages that summarize or compile popular threads for the ultra-normies, ability to bookmark threads and posts. Threads do not disappear like on imageboards, although a user can delete his posts if he wishes so.
5. Obviously no advertisements. No upvotes or no likes. Threads that get bumped show at the top, and each board can sticky a few threads.
6. If a user opts to use a profile name, he can also opt in or out of receiving private messages.
7. Duplicate threads get deleted.
8. Some boards or threads are marked as serious - no memes, no emojis allowed, minimum character count. Some boards or threads are marked as fun - (almost) anything goes. Some boards or threads are marked as shitposting - anything legal goes.
9. Moderation depends on the thread and board type. Jannies get paid to moderate by the state. Serious threads have strict moderation, shitpost have very loose moderation that allows insults.
10. No blatant discrimination allowed, no racial or religious violence, no targeted harassment campaigns. Ableist slurs like retard are allowed and even encouraged.


Sounds like an Orwellian dystopia. Why wait for socialism, the capitalist states seem very eager to track every fucking you've ever said or done on the internet already.


A socialist state can use surveillance to track wreckers and criminals. The biggest problem social media has are shills and bots.


PHPBB style forums were sometimes really comfy to be part of, and it is a shame that they've become much less popular nowadays
Tumblr and similar probably became less popular because not only did they not catch up to other sites with regard to newer features, but possibly also because they required somewhat more effort to fully use compared to glowdd*t and Instagram.


>pizza is literally the only reason for privacy


what did tumblr lack exactly that reddit had?


How to stop the CIA from doing their propaganda and botting without surveillance mechanisms?


you cant stop them even with surveillance mechanisms, and under socialism it would be irrelevant because the CIA would no longer exist


>How to stop the CIA from
<doing their propaganda
we should strive to have better propaganda
<botting without surveillance mechanisms?
surveillance doesn't help against bots, we have crazy levels of surveillance and yet there's bots everywhere.
You can do anonymous anti bot protection: you could put up anonymous ticket dispensers that print out a pass-key. For normal users getting one of those tickets every now and then isn't a big deal, but if you run a bot farm that's really going to be a massive pain.


Because those doing the surveilling and those doing the bots are the same guys.


no shit but those guys wouldnt exist anymore in a future system


Capitalist intelligence services will exist and try to work against us


capitalist intelligence services wont exist because capitalism wont exist


4chan but instead of boards you hashtag your posts like twitter


then everything will be an overboard that you can filter though


There are decentralized imageboards like that IIRC


File: 1627209387587.png (4.15 MB, 1749x2286, miku.png)

Does there exists distributed imageboard software in a sense that each user is a full node? Something like each node running a local server that user can access through browser with local servers synchronizing through DHT or something? All I found is some "overchan" but there is almost no info and as I understand this is not a full-node distributed system.
It has been on my mind for quite a long time - Anons need to seize the means of shitposts production.


RetroShare has forums that work this way, you could write an imageboard plugin in a similar way.


I've read retroshare didn't pass a security audit. And anyway, it is not anonymous, which is a downside for a supposedly anonymous imageboard, plus it tries to do everything - mail, chat, forums, VoIP, god knows what else. The same problem I have with i2p on java with its cluttered as fuck router that is also a mail server/client, torrent client, apache web server and whatever the fuck else.
I want a software that does only one thing, but does it well, ie provide imageboard infrastructure. Anonymity requirement limits to i2p overlay network, in i2pd router implementation as java router sucks. But the problem with i2p router is port forwarding for at least somewhat comfortable speeds, and this difficulty would discourage regular users from using the software. It needs to be a package that you install and it just works, or else nobody would bother.


File: 1627216703042-0.jpg (44.54 KB, 648x595, d61.jpg)

No, because think about it. An imageboard has increasing post numbers, and how would that be incorporated between multiple sites? Who's going to keep track of what post number the whole system is on? And if different sites track them individually, then how would posts be copied between sites? if the post numbers overlapped then which would take precedence? and if you change all the post numbers it would break all the links as well, correcting that on one site is a bitch, imagine correcting it on a dozen.
Maybe if instead of a No.# it used some sort of hashing/consistent hashing, but then it wouldn't look the same. How would cross-site linking work? Maybe it would have to prefix a domain, like >>>>org.leftypol.1234 or something? but then that would totally change the way links look, not to mention involve an ungodly level of cross domain image loading on the hover thumbnails, etc.
plus there's the fact that most imageboards have extremely edgy content and wouldn't want to necessarily trust another site enough to be in a ring with them, seeour situation with getchan and how they turned out to be pedos and we were only in a webring with them, imagine if getchan and .org had been federated or something.
The technical aspects of making a federated or general distributed system would fundamentally alter the nature of what an imageboard actually is and how it even looks.
In my experience people generally underestimate the difficulty involved in making truly distributed systems with no central authority, just thinking about it for a moment will bring up all kinds of challenges/design decisions which no one has even begun to think of.
All these "muh federation" guys should literally be forced to read a book on distributed systems before spouting off about how its superior.
I've attached one here. Tannenbaums books is also good if you can get it


>No, because think about it. An imageboard has increasing post numbers, and how would that be incorporated between multiple sites? Who's going to keep track of what post number the whole system is on?
Each post could just have a random hash. Why does it need to be a number?


Another fucking thread about imageboard software and idiots trying to make another site that's exactly like your average IB except with one "new" gimmick (and zero users).


Cackling imagining post numbers being some 256-char alphanumeric string.


Because then it wouldn’t look the same as the Chans we’re all used to?


File: 1628902931651.png (276.31 KB, 680x703, officecuck.png)

Why vichan hasn’t been replaced and probably never will

Vichan and Vichan derivatives such as lainchan have long been the standard of imageboards in the “alt chan” universe. Briefly, Lynxchan looked poised to take over as the imageboard standard, but it’s reliance on mongodb left it vulnerable to data corruption and unreliability issues.

Any semi-competant coder can create an imageboard with 80%+ feature parity with vichan within a few weeks or even days. So why, after all this time, has no imageboard managed to take over from vichan?

Wordpress is blogging software written in PHP, from the dark ages when PHP was a terribly designed language. Like vichan, wordpress is a structureless, poorly written, outdated, spaghettified oldphp-based piece of shit. Yet, it persists. There are countless plugins, themes, and tutorials created for it, which enable countless nontechnical small business owners to create good looking websites with prebuilt themes. The very ease of use corresponds with it being hell to maintain and write plugins for. Ironically this self-induced difficulty has created a whole ecosystem of plugin and theme developers, selling overbloated plugins that perform functionality that could really be done in a few lines of code, mindlessly installed by nontechnical bloggers. Even conservatively, around 30%+ of all websites use wordpress, including major corporations like airlines, banks, and media conglomerates. The fact is, there is a self fufilling prophecy, where a software’s popularity can meme itself into existence. Wordpress is the Kim Kardashian of cms software: popular for being popular, despite an utter lack of any other redeeming qualities. And vichan is essentially the wordpress of imageboard software.

Like wordpress, there is a whole ecosystem of people who have become familiar with vichan+derivatives, their configuration options, their ticks, their idiosyncrasies, and have created an ecosystem of themes, scripts, and so forth. Not to mention a userbase which is used to the vichan style UI/UX experience and revolts at the slightest change. After all, that’s really what usability is: familiarity.

It’s entirely possible to create a piece of imageboard software that has feature parity with vichan, but it is much more difficult to create a piece of imageboard software which slavishly recreates all of vichan’s idiosyncrasies, ticks, warts, and all, which is really what people want: a drop in replacement. And since the whole point of creating new software would be to get away from some of the warts, the potential writer realizes that there is really no point in trying to begin with, other than maybe as some masochistic coding exercise. This is why lynxchan was really doomed from the beginning, whatever it’s technical merits or drawbacks.

The chans are dying. Really, they have been dying a slow death for quite some time, given a bit of a boost from the anti-sjw/Trump mid 2010s era, but quickly returning to a dying status, accelerated by the death of 8chan. Now, in the minds of normies, chans represent at worst, a hellhole filled with incels, white supremacists, pedophiles, and god knows what else. At best, they represent a “boomer” style of communication that’s deeply uncool, as opposed to the dopamine inducing, shiny-colored-box experience of tiktok and fbi.govs.

The conservatism and resistance to change of the current chan userbase is inherently connected to it’s age. While there are of course some young people, the preponderance of current alt-chan users are 25-40 year old millennials who came of age during the 2000s “golden era” of 4chan. This can be seen most clearly on lainchan, which is rife with arcane references to gibsonian cyberpunk novels, 1990s anime, ‘hackers’, and disgraced free software guru/activist Richard Stallman.

Like an aging video game with a slowly eroding multiplayer playerbase, the chan era is slowly passing from history. Many of the young, edgy people who would have been attracted to chans in previous eras are now on platforms like disc.ord. The whole appeal of php-based chans is that cash strapped youth could buy cheap shared hosting and slap a chan together with minimal technical knowledge and little money. Now, fbi.gov allows them to do the same thing with absolutely no technical knowledge, no money, and no effort. The barrier to entry is far lower, not to mention that a fbi.gov “server” does not expose the owner to the same level of legal risk as ownership of a standalone website. The private nature of fbi.gov servers also keeps it away from the prying eyes of journalists and others who would likely freak out if they saw the same or similar content on a website.

It’s only an influx of new people/users that would lead to the space for a radical reimagining of anonymous internet communication to succeed. As long as the chans remain a place for aging neckraging neckbeards, driven nostalgic for a bygone era of the internet, rather than a vision of the future, the chaniverse will continue to bleed users to other platforms.

To sum up, what this means is that there is really no chance for vichan to be displaced as the software of choice for chans since chans are dying. If chans were rapidly increasing their overall userbase you would see a proliferation of new and sometimes experimental software and formats. But you see the opposite.


This list has 450 imageboards with 113 mentions of vichan.


with even more mentions of tinyboard, the software from which vichan was derived


all in all tinyboard/vichan+derivatives account for about half of that. A comparativly tiny amount are lynxchan/jschan etc. The rest are custom/one off softwares


But why does vichan need to be replaced? Seems fine to me tbh


complex and poorly maintained, dated ux/ui, making it hard to onboard new tech people and slowing down the pace of new features and bug fixes.


works on my machine. Are you the guy who keeps making threads about "le modern UX for imageboards"? There just isn't anything more modern that can be done with this concept. It doesn't need le rounded corners.


Every time a new vichan based imageboard is set up, it spends its first year being horrendously broken. There's always some problems with images, webms, the overzealous bot and flood detection that stops everyone but spambots, etc.


>There just isn't anything more modern that can be done with this concept.
there literally is you just dont like it, take a look at some of the screenshots in >>11352

>It doesn't need le rounded corners.

says you. Oldfags may not care but the autistic zoom zooms need their rounded corners otherwise they click off and the chan-userbase declines even more. Why the fuck are you so allergic to modern looking UIs?




I don't give a fuck what zoomies want. I'm not here to trick anyone into using anything. You either agree or you fuck off.


and thats why chans will continue thanks to oldfags saying exactly that


I come here to catch up on the latest world news after a hard day's work lad
Go pester the zoom zooms at leftypol v 2.0 over at leftchan dot net for your rounded corners?


leftychan has the exact same codebase and ui, literally nothing different. has nothing to do with the topic at hand either


did I say continue? that was a typo, i meant continue to decline


File: 1630602113872.jpg (61.38 KB, 990x566, 8ex_v4C6D5Q-990x566.jpg)

Imageboards are barely alive as a whole, let alone truly anonymous ones (i.e. tor/i2p)
Why's that? One practical problem is the lack of notifications. You have to go an manually check for replies, which is further exacerbated if you use tor browser (which you should) and have to remember every thread you replied to and check them individually.
The other problem, more on the ideological side, is the need for a browser. Browsers are bloat capitalismware, basically a proprietary platform of google at this point. And does it really feel nice to run such an immense amount of code just to display pages of formatted text and submit posts, in a highly ineffecient manner, both computing wise and usability wise?
I think we need an imageboard protocol. Different boards, one format for viewing AND submission, different clients, NOT depending on web (TM) technologies and providing notifications. That is one way. Another would be a truly distributed, p2p system, maybe like freenet forums or gnutella, but such a system is much harder to implement, and after all aren't freenet forums dead, and why?
Another option would be to (eventually) add federation between different servers, mirror posts from one another (would require some unique probably hash based post ids (which would admittedly be quite long)).


Think about all the reasons why people use social media. Then think about imageboards. There's no one to date on imageboards, your relatives are not on imageboards, your friends do not use them, there aren't any profiles, no celebrities use imageboards (in public), etc. The lack of a protocol isn't what is holding imageboards back.


File: 1630630715043.png (234.96 KB, 351x430, animesmoking2.png)

>You have to go an manually check for replies, which is further exacerbated if you use tor browser (which you should) and have to remember every thread you replied to and check them individually.
Notifications can't be implemented without user accounts, which goes against the low barrier to entry of imageboards. I wouldn't be opposed to making a chan that required registration but still showed users as anonymous publically.

As for distributed imageboard systems, some have been made but the technical issues would actually change the nature of what imageboards actually are as discussed in >>11464

Like the post said, anyone who talks of making a "distributed" imageboard needs to explain how it would deal with these basic issues of how site mechanics would work or translate from traditional chans to a distributed paradigm

yeah but that doesn't explain why reddit is popular compared to chans, since it's mostly the same in that regard. The only exception is the occasional AMA


You are correct about a lot of things but a whole new protocol would only push further into the obscure corners.


>Notifications can't be implemented without user accounts
They absolutely can


Yeah by storing everything in session data, along with themes etc. in which case you’re halfway to defacto implementing accounts anyway


File: 1630731968959.png (253.54 KB, 351x430, pointing.png)

As stated, if you're going to start storing tons of data in session/cookies to make up for lack of accounts, you're halfway to de facto implementing accounts without calling it that, with significant technical overhead needed to track all this stuff, all so people can avoid having to press the login button. A better solution is to implement accounts but allow people to comment anonymously as always, however, put additional features on accounts like notifications, saving preferred theme between sessions, maybe direct messaging, hell you could even get more accurate metrics on the true amount of users. It could also help during raids if you disable anonymous posting temporarily. Also you could require TOR users to use an account that way you don't just have to resort to banning the entire TOR node, and can allow legitimate users to continue using it. OFC the spammer could always create another account, but nothing's perfect.

CAPTCHAs and other anti spam measures could be pushed off to the account creation stage, leading to better UX for the user instead of making them solve a captcha any time they want to make a thread or w/e.

In fact a ton of the spam problems of chans/imageboards could be solved with accounts, merely by having them as an option.


new protocols for everything is a complete and utter waste of time.
to get more people using imageboards the number one thing to do is identify areas where a discussion space is needed and then create one using imageboard software, without carrying the stupid baggage of chan culture with you, and then trying to create a board that best meets the need of the resulting community.
imageboards are no more difficult to use than newspaper comment sections in principle, the problem is purely one of application. fundamentally there's no reason you couldn't use lainchan to host a website for old women to discuss knitting patterns. sure, they'd probably actually enter their name and email (oh no!) unless you got rid of those fields, but you could certainly do it if for whatever reason you had contact with enough old women to get it started.

a new protocol wouldn't help. an imageboard with its own protocol is either something to ignore or (if by some miracle it actually had enough users to be worth caring about) something to access via a browser addon that the scum at mozilla will keep intermittently breaking on purpose because they hate all that is good and holy and know that they can get by with being marginally less evil. browsers are their own hellscape, but "make a new protocol" is a false dawn for breaking out of that. at a push, it works for large tech companies who're probably going to have the application to access their protocol just be electron reskinned-chromium bloatware anyway.


>implement accounts but allow people to comment anonymously as always
How about enforcing anonymity?


discoverability mainly


What a sad state of things we have in 2021 that people don't even think about implementing stuff outside the browser…
> something to access via a browser addon
Again, why?
>browsers are their own hellscape, but "make a new protocol" is a false dawn for breaking out of that.
Ok what other options are there? By your own protocol I don't mean stuff like freenet or bittorrent, but at least a standardized json api for different server software (presentation layer).



The gemini people made a new web-protocol and it's working for them
maybe the trick is to make it very simple so that it's easy to maintain ?


>Notifications cannot be implemented without identification.
The client would need to keep a post database and periodically poll the server. You could implement a watch feature that enabled this for a thread, if it was unfeasible for all posts.


you mean like blocking namefagging or not even allowing it? sounds good to me but on the old /get/ on .org when it was running different software all the /get/ guys just namefagged in the comment/body section anyway


File: 1630744103324.png (122.28 KB, 233x533, 80s_chick.png)

yeah, if you dont allow namefagging all the namefags will just sign their name with
-le namefag

boomer email style.


yeah but then thats multiplying the number of get requests/polling even more than the normal amount for refreshing threads, recall that is what crashed lynxchan. I mean i guess it could be done, it would just be more resource intensive than not doing it


If this was part of a new protocol, it could be done over a UDP port. As this would be an optional feature, TORfags won't complain.


alot of ISPs block UDP packets nowadays, so it would probably have to be TCP.


i2p has something like udp iirc


reject notifications and hyperonline 24/7 cyberspace-injected-into-eyeballs annoying shit.
return to ancient unmaintained imageboard PHP autism via tor browser.
it's a natural newfag filter, and anything else is destined to become surveillance capitalism


>a chan that required registration
That's heresy, that would be literally reddit.


If there are (you)'s it's perfectly possible to get notifications, I think that 4cucks already had that.


File: 1630877775295.jpg (38.11 KB, 750x503, relative.jpg)

No it isn't. You lose some benefits and issues of the anonymous imageboard, but it's not like reddit at all. A forum, maybe, but not even.
Look at 4kev for an example.


File: 1630877822039.png (17.07 KB, 500x217, ClipboardImage.png)

We have it here, if you enable it.


uyghaaaaaa what. Ive been relying on control+f (you) for so long.


doesnt work for me


File: 1631358548507.png (33.15 KB, 381x521, apparch.png)

I've been thinking if leftypol does go to a more sophisticated architecture it should store all images and binary files in s3.

Whats everyone think of this setup?


A perfect backend would be storage agnostic.

abstract class StorageProvide

Not sure what others make sense. Amazon is not cheap, and requires some hoops to get an account. So requiring people to use Amazon's services might be a non starter.


most cloud hosters provide an S3 compatible object store, even low tier ones like digital ocean and OVH.

Even if they don't most open source object store software like minio, ceph, riak, etc. uses or at least provides an s3 compatible API. The only reason corporations don't use minio is because the free version is AGPL licensed, but thats not a problem for us


>storage agnostic backend
Why not access all data through the filesystem. The hierarchy could be backed by a database over fuse or 9p with software like https://github.com/greenbender/sqlfs


because what if you have multiple app servers that need to share images, etc.?


That depends on what filesystem you use and does not need to be tied to any block device. You can already mount s3 as a filesystem https://pypi.org/project/s3fs/


what exactly is the use case for this? why do you need an encrypted "mostly read online" filesystem for an imageboard?


File: 1631412743415.png (270.12 KB, 1662x2055, Database ERD.png)

I've been looking at gochans schema is it is way too complicated. Also judging by several of the field names it violates some normalization rules and rules of thumb.

You're not supposed to have "derived properties" like is_top_post. A top post can be determined by lowest id or lowest create date. Therefore having it as a field is a redundancy. Same shit for "file order". You should insert the files in the proper order and then order by id. there's no need for a "file order" field.

Some of the complicatedness seems to be supporting some auditing features that would probably be better of in a log.

Sorry rat. I don't approve.



that's called P2Pchan and, like most of tee's other attempts to make something interesting/stable/usable, it sucks.


My bad, I was looking for something like https://docs.microsoft.com/en-us/sql/relational-databases/blob/filetables-sql-server
Regardless, the server could store files on any filesystem, including ones that directly map onto an existing database format.


so its just storing binary blobs in the database but with streaming so you can start playing it right away? I don't know if its worth it the only reason to keep files in the DB like that is if you need them to be transaction safe and have ACId guarantees or w/e. I don't think shitposts really need that much integrity


If you wanted to eschew transaction safety, you could store the data on a network share (NFS, SMB, or a 9P files server), or a regular filesystem while a daemon synchronizes multiple servers (using rsync, or a VCS over ssh).
Using the filesystem as the storage interface of the server allows it to access anything you can mount.


rsync could be ok if you have 2 servers, id hate to scale that to 3-4 app servers. There's some tool that uses rsync to do live real time updates as a daemon, I forget the name though.

I've always had problems mounting storage from multiple servers.


File: 1631499415035.png (149.95 KB, 329x253, smoking.png)

The essence of a chan

This is a followup to the “ideal social media” post. I’ve been thinking about site mechanics and how they influence behavior. I’m trying to drill down on what a chan is, really at it’s core. In silicon valley, they often do these “[site concept] in one SQL statement” type overviews.

To analyze a site/app we have to think about the behavior it “mechanically incentivizes” i.e. how the actual mechanics of the site/app force or incentivize the users to do certain things and behave in certain ways. The essence of reddit is the link. Reddit is a link aggregator which means the whole site revolves around the posting of links. In this sense the very behavior that reddit is so hated for, stealing OC, is literally the basis of the site. The basis of twitter is saying shit people like. On twitter, people are rewarded with likes. Having a post with more replies than likes is called “getting ratio’d” and is considered bad. However on a chan the incentive is the literal opposite, more replies mean the post is bumped to the top. So “taking the bait” is literally built into the mechanics of a chan. While the twitter way encourages a “Los Angeles Hollywood” style mentality, of performative takes to get likes and followers, doing and saying things you think other people will like, chans mechanically incentivize saying things people will respond to. Also chans have a group identity based on boards or the site itself.

chans/imageboards are inherently filesharing sites. They revolve around the sharing of files. But the files themselves are small, and often original content. Unlike, say the pirate bay which concentrates on sharing large files of decidedly not original content (movies, etc).

Every OP on an imageboard is essentially a file or collection of files, with an optional comment, and some metadata for discoverability. What separates it from something like instagram is the anonymous nature of imageboards, transient nature, and lack of personal identity.

So a chan must:

• Be Anonymous
• Emphasize activity/responses over popularity
• Emphasize originality over derivative content
• Emphasize group identity over individual clout
• Be filesharing-centric
• Be Transient

In order to discover the true essence of a chan we must ask ourselves, what if every aspect of this was hyper exaggerated to the max.

Anonymous – Anonymity serves several purposes. Contrary to popular belief, “free speech” is not one of them. While free speech is good, it’s not inherent to a chan, nor are non-chans inherently unfree. What speech is allowed is a consequence of the moderation of the site, and you can check various alt-tech platforms or dis.cords to find content that’s just as edgy as that of a chan, if not more. What anonymity does do, is prevent individuals from accumulating clout (or money) on the basis of their statements. Since everyone is anonymous, and there is no “follow” or “subscribe” function, this means users are not mechanically incentivized to say things they don’t mean, just for the likes/followers. Everyone is equal, everyone is just an anon. The main value of anonymity isn’t free speech, it’s anti-celebrity. In order to be even more anonymous, all namefagging and tripfagging should not be allowed, in fact the name field, email field, and tripcodes should be totally eliminated. Additionally (you)s should also not be allowed. Notifications are fine but should simply state that there are new replies in a thread you posted in, not if they specifically replied to your post.

Emphasize Activity – One of the most neglected aspects of site/app mechanics, but most important is bumping, or the order in which posts and threads are displayed. Twitter displays tweets by creation date of the OP. This works well in incentivizing people to make new threads because old tweets get left behind and people lose interest in them. However, the incentives on chans are to make threads that get a lot of replies. Twitter incentivizes more content, but Chans incentivize more triggering content. Due to the catalog limit, this leads to a sort of collaborative sorting, a brutal darwinian ecosystem in which the boring posts sink to the bottom. I’m not sure which is better, twitter create date sorting or sorting by replies. Sorting by last reply incentivizes edgy posting, but also baiting. Also cyclical threads just end up become glorified chatrooms, sometimes with namefags to boot. Are “generals” really a good thing? Or should people just create a new thread for every single topic. If people are still stuck on the “a thread died for this” they can just increase the catalog size from 350 to 500 or something. Or change the formula to a time-based formula, like have posts last 2 weeks.

Reddit uses a more complicated formula for whats displayed, including posting time decay formulas, likes, etc. I don’t think a more complicated formula would be good.

Maybe its better to stick with the last bumped formula, but twitter style has its advantages too. However ordering by create date of OP would mean that shit like saging, cycling, bumplock, etc. would essentially be obsolete since posts would not be bumped at all.

Originality – R9K enforced on all non archived posts, both imagehashes and text/comment. Literally to the point of putting a unique key constraint enforcement at the database level. In addition to showing number of replies, images, etc. threads should also count/show the number of effortposts, meaning 1400 or 1500+ character posts in a thread. Autoarchiving of all threads, as a setting per board. So for example autoarchiving could be turned off on /b/.

Front page would be overboard.


>all namefagging and tripfagging should not be allowed
Perhaps people would start to sign their posts or pgpfag, but it allows for more simple post storage.
>Are “generals” really a good thing?
Generals have plenty of activity, so maybe they should be substituted for their own if slow board. With hierarchical boards, country specific boards would not clutter the top directory.
>putting a unique key constraint enforcement at the database level
The server could store data on something like a venti filesystem http://doc.cat-v.org/plan_9/4th_edition/papers/venti/
Posts could also just reference files by a hash and upload them afterwards, if they don't already exist, allowing to seperate both actions without identification. Tags should be enforced on file upload, so the server may act as a booru and prevent image duplication.


>Posts could also just reference files by a hash and upload them afterwards, if they don't already exist, allowing to seperate both actions without identification. Tags should be enforced on file upload, so the server may act as a booru and prevent image duplication.

AFAIK wordpress operates similarly in that you can re-use uploaded images between posts. It sounds good but the only problem I can see is that people might be too lazy to upload files separately.

Basically you would be combining the functionality of a booru and a regular chan


File: 1631516428649.png (417.32 KB, 631x472, phone.png)

I've also been thinking about boards and if they're really necessary. Yes there is a board identity. However on small alt chans there really isn't enough traffic to justify multiple boards. Besides, you might want to make one post which is on an unrelated topic without having to justify a whole board for it. So IMO tags are a better option than boards, for alt chans specifically.

That way if you have 300 posts on one topic and one unrelated post it can just live in a different tag rather than either having to delete it as offtopic or make a whole new board for it, or shove it in some sort of /b/ or off topic/general type board. Boards seem to be shoehorning content, unless you have a major traffic site like 4chan which justifies that sort of silo-ing of content. Of course the topic of boards also leads to the idea of catalog size. If there are no boards how do we determine what to prune? And if posts can have multiple tags, under what category do they get pruned?

IMO a better solution would be to prune threads which get no replies after a certain time period, say a week, regardless of tag, unless they have a special status like cycle/pinned, etc.


The seperation of posts and images would be at the protocol layer.
It could be made invisible at upload, essentially looking the same as vichan, except for the tagging and faster upload, when a file is already present.


hows that qualitatively different from having a files table in a database with hash checking for uniqueness though? most chans already have that as optional


Non-malicious clients will transfer less data.


Potential impact of different thread grouping:

<board based

>either slow boards or less discoverability for niche topics
>off-topic boards incentivize shitposting
>many slow boards clutter the board list
>an overboard may be created for low activity boards

<hierarchical board based

>slow boards would be a non-problem because every directory is an overboard
>still allows for comfy boards or directories
>pruning could be set at depths or individual directories

<tag based

>may incentivize forum-like topic discussion
>may lead to less discoverability for shitposts and niche topics
>pruning by last reply date kills slow threads
>no board identity


>may lead to less discoverability for shitposts and niche topics
I mean they will still show up on the overboard, right? Plus you could have multiple tags so have them in one mainstream tag and whatever niche tags they want.

Hierarchical board based is an interesting idea, the SQL for showing it could get pretty complex though.

you should explain hierarchical boards more though


could the hierarchical concept be combined with tags and create a hierarchy of tags?

Also how many layers deep would the hierarchy be? I'd hate for the app/user to have to parse a tag/board tree N layers deep every time they want all the posts for some broad category of things. And could users create these tags or would it be janny based?


File: 1631527695523.png (208.07 KB, 351x400, animesmoking.png)

I guess my problem is every time you add a subcategory of a subcategory, you have to join the categories table to itself, and joins are expensive. If you're 20 subcategories deep that would lead to extremely bad performance, at least from a traditional relational DB. You want to minimize the amount of joins. Tags are flat, just one join to the tags table and you can get whatever you need.

IMO the first step is decoupling the pruning logic from the tags/categories discussion. That way we can consider it in terms of discoverability, and have pruning based on last reply+1 week, not some hard catalog limit like 350 threads. This would also eliminate damage from sliding and raids because creating a new thread would not be a destructive act (deleting old one).

Although the catalog view would have to be rethunk, because if the amount of threads can be arbitrary, the catalog can only ever show the top of them.

There's also the pub-sub/group model where users can subscribe to certain groups/topics/boards and their timeline would be an amalgamation of all of the boards they are subbed to.


>you should explain hierarchical boards more though
To detail my approach to a hierarchical imageboard:

I'm working on a non-standard http server that translates POST requests to writes instead of CGI execution. By default the server would have read, write and exec permission on directories, read permission on all files and directories would be created sticky.

Mounted at the root of the server would be a filesystem, that passes through all writes and on reads generates static pages on the fly (or with some form of caching, idk yet).
Boards would be directories not starting with a special character stripped by the client, otherwise they would be threads.
Either posts would reside as plaintext files and have a header with file references. In this case the client would write to that file.
Otherwise a post would be a directory without write permission, with a plaintext body file and fields or references as separate files, which means it could not be directly written by the server, instead being written as an asynchronous request to a fifo, which has higher throughput and is more secure than a CGI request.

>the SQL for showing it could get pretty complex

I hope this makes clear that no tables are involved in the hierarchy. Administrative tasks would be handled by communicating with daemons through fifos or direct file/directory modification.
For bumping, threads would always be named by their last reply and the catalog would be like 'ls' in descending order. Anchoring and pinning could be done by adding special symbols to the thread name.

>could the hierarchical concept be combined with tags and create a hierarchy of tags?
I guess the motivation for this is, that tags are more flexible than hierarchies, yet this may be corrected with symlinks, potentially created by a request over a fifo.
>I'd hate for the app/user to have to parse a tag/board tree N layers deep
Only a client directly accessing the file hierarchy would suffer from this. A special-purpose IB 9P server could be written, where mounting an overboard compiled a list of threads with limits set by the client.
>could users create these tags or would it be janny based?
User creation of directories would be ideal, but small servers may not want this and would set file permissions accordingly.

>decoupling the pruning logic from the tags/categories
IIRC the main motivation for pruning the catalog was storage constraints.
Because storage availability has changed, you have the right approach, that is probably to prevent necrobumping, and it could be implemented by a daemon deleting based on directory modification time, perhaps even inactive board hierarchies.


Interesting ideas although I was looking for something more in line with a traditional web app. Good luck with your project though, keep us all updated.

Also what do you think of the trade offs of ordering by last reply vs Twitter style ordering by create date with most recent first


biggest problem with chans is words words words. Other social media like fb/yt/insta and even fucking twitter emphasizes "media" esp. video, thats why twitter has a literal "media" post filter option on accounts

zoom zoomies are too autistic to read, their entire education was watching zoom lessons anyway so videos on social media are not that different


is instagram already the most normified and successful version of what a chan/booru is? other than not being anonymous


ok, so go fucking use tick tock and leave here
if braindamaged kids can't read shit there are many platforms for them to continue damaging their brains on


File: 1632788986109-0.png (1.2 MB, 965x913, cabal1.png)

File: 1632788986109-1.png (1.05 MB, 965x913, cabal2.png)

I've been working on a chan with a branching reply structure (twitter style) and notifications based on cookies


just an update on this i am done with the whole thing nearly except a few mod functions like viewing post history, ban appeals, word filters, and a site settings menu.


>post history, ban appeals
im done with these now
>word filters, and a site settings menu.
decided against these. There aren't enough settings to have a settings menu and im against word filters on principle due to them being abused to force memes, and overused in general. If people really want wordfilters they can easily implement it in 1-2 lines in the comment processing


show source



The future is syndie (https://syndie.de/). Stop trying to make another chan which is brought and sold at your expense.


>Stop trying to make another chan which is brought and sold at your expense.
uhhhh. what?
and can you explain that thing? TLDR don't just link an obscure website


looks like some convoluted system where you have your own cache of a forum that you can sync up with its server


Some criteria that could be used for new software:
—FOSS license (AGPLv3 is best)
—Minimal dependencies, use standard and widely trusted stuff like FFmpeg, ImageMagick although even they should be optional
—Generic SQL socket connections
—Sane default configurations
—Easily deployed on a new box by a script
Wakaba [https://wakaba.c3.cx/releases/Wakaba/] basically fulfills these, except for maybe the license (it has been used as a codebase for closed-source software like 420chan's Taimaba), and it can take a lot of tweaking to work properly at first, as well as being a hassle to transfer to a new server box properly.


this software uses AGPL:


yeah i saw. interface is a bit weird though


I'm having a terrible time at work, so to cope I've been slowly working on a new design of an imageboard again.

I scrapped basically all of my previous design. It was very silly to start with the API.

I don't know if it will ever get to a stage where it will be presentable enough. Maybe if I don't find a new job I'll end up finishing the design lol. If I had to put a number, I'd say I'm around 10% of the way done. This time around, I'll also try to resist the urge to program before finishing the technical design.

Again this is mostly for fun and to feel productive since work has been terrible. I'm also not with stable internet and sometimes no access to my non work computer, so I might drop it soon again. Lets see.

Agreed. Its not only zoomers. Its everyone.
>Only prisoners have time to read, and if you want to engage in a twenty-year long research project funded by the state, you will have to kill someone.


>notifications based on cookies
You definitely do not need cookies for this and localstorage should suffice.


I know one that may tick all these boxes but the community and staff try to distance themselves from 4chan culture - it was originally made by /jp/sies, so I don't know if it'd be bad manners to post it.
Also their git seems to be down at the moment because they recently updated everything to Python 3.


maybe, but its not a big deal in either case since a ton of people use private mode or clear their cookies anyway


You will never be a good dev thinking like this.


we need an imageboard protocol

and dont say activitypub. Activitypub is clearly designed for account-based social media clones like mastodon. It doesn't work as well with anonymous imageboards unless we are talking making accounts which was already rejected earlier in this thread


I hate standardizing. What would this solve?


part of the problem with chans is that chans are intended to be small sites hosted on cheap VPS's so that mean that all of modern cloud based "system design" ex: using AWS features, even something as simple as an S3 Bucket is not allowable because muh AWS (and possibly for good reason of deplatforming edgy chans).

Accountless also nullifies a bunch of the security and authentication practices that modern frameworks take for granted like JWT or w/e
I really dont see why cookies are bad since they allow people to view notifications if they accidentally close the browser anyway


essentially, writing a chan has to be done using alot of now dated design choices which harken back to the heyday of chans in the 2000s.


>I really dont see why cookies are bad
Are you self-taught?
With localstorage the client does not need to communicate with the server so you don't waste of bandwidth and they have a 5mb limit compared to the few kilobytes cookies have. If you're going to store what threads the user made it's only logical that you have a jsonified string in the browser's localstorage. There's also the obvious issue of privacy here…
Switching from cookies to localstorage for fucking notifications would literally only need a few lines of Javascript code.


app is serverside rendered, JS is only being used to prettify things. So actually using localstorage would require a rewrite in a front end framework or library.
>Switching from cookies to localstorage for fucking notifications would literally only need a few lines of Javascript code.
ok then the source is linked here: >>11958 please point out where the few lines of code are that would need to be changed


I think an image board protocol should be like smtp with more optional fields.


I can't vouch for or against them but there have been attempts at federation protocols for imageboards.
vichan has an experimental NNTPchan compatibiliity.
There's also a (Fediverse?) imageboard net, see >>>/meta/14325


As mentioned in a different place, the main things I personally (i.e. I'm not representing the other devs here) would want from an imageboard software if replacing this one would be:
>most of the main features we use in vichan, so users don't just lose half the useful features when moving
>confidence it scales similar or better than vichan (no use using something so inefficient that it only works well for < 1000 posts a day)
>confidence it's reasonably secure
And it's hard to fulfill those at the moment unless you're vichan or futaba or something, that are battle-tested from a decade of usage and are/were used by popular imageboards.


we have one, its called http


As I also posted elsewhere, I calculate that would take at least 6 months of full time work. Probably more like a year.


A dedicated imageboard protocol would transmit less information, though a browser with good caching largely negates this.
The main motivation would be getting off the bloated web, to add more ui components without javascript and make a scriptable client. We could literally have things like a moderation bot moving WSWS posts into a containment thread and removing duplicates.


one of the boards i post on has a dedicated api for this


well the first thing you have to do is come up with a database schema thats actually good.


I also suggest using Kotlin, its similar enough to java for people to be familiar, you can use java frameworks like spring boot, and its not java, has better features and more modern syntax so all the anti java hipsters here can be satisfied with it.


I don't think the Java languagw is what most people take issue with, but rather the Oracle JVM. They might be fine with targeting Kaffe. If language was the problem, people could just interface over GraalVM


>but rather the Oracle JVM.
openjdk has replaced the official oracle jvm for almost all purposes, so that doesnt make sense. The only reason to use the oracle jvm is if you're using heavy JEE shit or proprietary oracle frameworks like ADF, apex or oracle forms. No new app written after 2014 or so even uses this, its pretty much all legacy anyway. So basically all new apps, use openjdk


Both the "OracleJDK" and "OpenJDK" are editions of Oracle's JVM/JDK and derive from the original Sun Microsystems code.
>Download and install the latest open-source JDK. Oracle’s free, GPL-licensed, production-ready OpenJDK JDK 17 binaries for Linux, macOS, and Windows are available at jdk.java.net/17; Oracle’s commercially-licensed JDK 17 binaries, based on the same code, are here.


luajit is lightning fast and you can write web apps with it using a few different tools, too


there's also moonscript and haxe and a few others that compile into it, if you don't like the syntax


sure but its open source so whats the problem


The development is primarily driven by Oracle and I always see people complain that their JVM is a resource hog. With the complexity of modern Java, this is basically vendor lock in.


I think most people that take issues with Java take issues with the language itself. There are many languages that run on the JVM and the complaints are not usually about the performance of the JVM. As others said, if performance is an issue the GraalVM is an alternative, with ~10% reduction of cpu usage depending on your software.

The switch to openjdk is not relevant anymore. As the otther anon pointed out, basically any new software using the JVM is using openjdk now.

Once you filter languages based on, not being PHP, having sizeable communities (meaning maintained production-ready libraries and frameworks), cross platform, etc you're not left with many languages.

I for one dislike dynamically typed languages. They can be fun, but for production purposes, I don't see the point. And memory management must be automatic, so that leaves out C.

So you're left with C++, C#, Java, Typescript, Go, Rust, Kotlin, Scala.

Kotlin is improved Java. I don't see a point of using Java over kotlin, so fuck that shit. C++ is archaic meta programming magic smart pointer shit, hard to parse, easy to get wrong, so fuck that shit. C# is now cross platform but there's no point in using it over kotlin. C# is basically nice java anyways, and java has a myriad of more libraries and frameworks. So fuck that too.

Anyways, after that screening your left with:
Typescript, Go, Rust, Kotlin, Scala.

Go is sanitized C++ or safe C, whatever the case, the pros is that its a very small language. I don't see the point in using it over a more feature-full language, but that's just me.

Kotlin is a worse Scala. The only reason Kotlin makes more sense is if you don't know Scala. Even using scala as a Java instead of using more functional aspects make for a better experience.

Typescript is a major cope built on top of Javascript.

So I would use Scala or Rust, and since I don't really know rust, I'd just use scala.

As a minor plus, scala can compile to Javascript.

Scala still sucks, but hey, at least it's not Java.


File: 1645572134113.gif (1.71 MB, 500x500, 1611959451747.gif)

Scala uses outdated versions of the JDK I've had trouble using lift framework on anything above jdk8, also Scala is too big brain to understand your average channer-scripter can barely understand OOP as evidenced by the shitty state of the vichan codebase let alone shit like currying and algebraic data types

honestly id rather just use Java since most of the FP features of Scala have already been incorporated back into bog standard Java. Java streams API already lets you do basically any type of FP you want as long as its with a collection. Scala is just a slower compiling Java at this point, I feel like the FP language hypers are still living in 2013 or something the point is you really don't need FP languages any more since Java/C# have already incorporated most of the major innovations of it.

If we write it in Scala/Kotlin then thats ok by me but personally I don't really see any reason to go beyond Java.

There's also the readability argument. The fact is that people esp. hobbyist coders love to bring up terseness as an advantage (ohh, look at le quicksort in 3 lines of code in haskell or whatever) and verboseness as a disadvantage (muh boilerplate). The truth is that verboseness is a feature not a bug, the question of whether a language is good is not whether its easier to write but whether its easier to read, and can be read and easily understood by a large team of people with varying levels of skill, ability, and experience. That's the difference between coding as an engineer/architect and coding as a hacker. The point is the vast majority of time spent on a program will be READING the code not writing it and verboseness to a certain extent makes it more self documenting. If terseness was the end all be all then obsurantist Perl one liners with long ass regexps written by a sysadmin 10 years ago and never understood by anyone since would be the height of programming.

The fact is theres a lot more than just the language its the language ecosystem and related tools, tools like IDEs, automated testing and QA, deployment pipelines, etc.

I think people really have to ask themselves are they trying to make something that is there to be a workhorse or are they choosing a language based on whats going to be fun for the developer to write. I'm not saying you can't do this in Scala but there is a ton of documentation and best practices already established around doing it in Java. Any obscure library, any tool like Openio or some EIP pubsub system apache storm or whatever, rabbitmq, literally anything out there has an example and a library in java. If you choose another functional language, even jvm based youll often find something that was a wrapper around an existing java lib and was last updated in 2015 or something forcing you to go dig thru the librarys code yourself when something goes wrong only to discover its a bug that will never be fixed because the developer is MIA. And its usually nothing to do with a problem that can be fixed with a cute mathematical FP trick, its usually some bullshit around file/network IO, image/video processing, or other obscure shit.

Again I've written chans in a functional JVM based language before and encountered all these problems and more. Finally theres a case to be made that most devs, esp. self taught ones, but even ones who went to uni understand OOP better than FP because most people dont think in mathematical functions, OOP is closer to how we think of things in real life and thus easier to model, and also most university CS/ICS etc courses teach and give people years of experience in OOP and will cover FP for one class on PLT if at all.

>t. had to learn Scala, LISP, FP etc. in a graduate class on programming language theory and written a chan in a functional language on the jvm


The first step in creating an imageboard is for someone here to make a fucking SCHEMA that actually works. Its apparent that imageboard guys have no idea how to design a fucking database schema if you look at Vichan + derivatives for example. Someone post a fucking schema here


Nobody cares about that because 99.9% of all imageboards are small as fuck so you won't notice a difference.


File: 1648349572686-0.png (185.69 KB, 1206x687, ClipboardImage.png)

File: 1648349572686-1.png (242.87 KB, 1662x2055, ClipboardImage.png)

File: 1648349572686-2.png (197.83 KB, 1041x889, ClipboardImage.png)

>currying and algebraic data types
I wish.
>Scala is just a slower compiling Java
No… I wouldn't even say that about Typescript vs Javascript, or Kotlin vs Java.
>he truth is that verboseness is a feature not a bug
the absolute state of
// in org.javachan.src.main.public.core.domain.external.joke.java
static final public <ISetup extends Comparable<ISetup>> ISetup javaBeanJokeFactoryProducer<IJokeElement>(ISetup setupJokeConfiguration) {…}
// in org.javachan.src.main.public.server.static.injector.store.adapter.Dispatch.java
@Inject SetupJokeConfiguration $setupJokeConfiguration
JavaStatementProducer jokeProducer = javaJokeProvider.javaBeanJokeFactoryProducer(setupJokeConfiguration);
jokeProducer.produceJoke(tracer); // outputs "java developers"

TBH any language you choose is fine, as long as it's not PHP for jesus's sake.
>pic 3
lainchan's db
>pic 1
Something I was messing around with. Just to get an idea of the problem.
>pic 2
Gochan's ERD

I can't be bothered to figure out what the fuck lynxhchan is doing. Nosql is cancer.


>Having better software would greatly enhance the experience for both regular users and mods, and have more crossover appeal to “normies”.
It's so cute you guys think this is the reason imageboards don't have users.


yeah. also as if any end-user cares about whatever shiny new ponzi scheme web tech shit the minimalistic bulletin board runs on lol


wtf happened to arisuchan?


arisuchan.jp is down and https://arisuchan.com/ is non-operational. Some anon at wirechan says it's being set up https://wirechan.org/g/res/161.html#q898


For me its about having nice Software because I use this software. It doesn't matter if imageboards are getting smaller and smaller. I like the imageboard format. I hate identity based forums. They invariably turn to shit cultures. If imageboards are on their way out, well I want to enjoy the dying format with good software.


you’re part of the reason they’re graveyards, in all likelihood


arisuchan was alive? I just kind of assumed it was dead for half a decade

Kind of this.
Imageboards (like forums) are a niche, but I don't see them going away any time soon, and not even for cultural reasons. They are (often):
- easy and low cost to setup and host
- low/non exploitative (good for people who hate 'big tech'/spyware/capitalism/'corpratism')
- convenient to use (no registering)
- anonymous (different conversation dynamic to identity-based social platforms)
Those alone will keep thousands of people or more either using it or some similarly-featured replacement.

what a dumb post


>Some anon at wirechan says it's being set up https://wirechan.org/g/res/161.html#q898
<software rebuilt from scratch. she says expect Q3 this year.
It's never going to happen isn't it?


its literally true tho, most autistic zoom zooms see the 2003-retro web aesthetic and quit, and thats before they run into WORDS WORDS WORDS, they then quit and go to tiktok to flip thru videos every 1.5 seconds while their last braincell commits ritual suicide


anontinous if you want to write in Scala you should use play framework or something else oriented towards monolith development not be fucking around with raw akka (play uses it under hood afaik) or http4s which is intended for microservices, you're unnecessarily increasing the workload for yourself, since we all agree people deploying chans typically aren't that technical and aren't going to be doing a microservices deployment, its hard enough to get them to deploy a restful backend+frontend let alone N different microservices.
>I can't be bothered to figure out what the fuck lynxhchan is doing. Nosql is cancer.
tbh mongo wouldn't be that bad the only problem with document store is that the data can easily be corrupted due to no schema enforcement and migrations are a pain in the neck.


AFAIK what chans really need is a standardized REST api so that you can swap out any number of front ends/back ends and have them all be compatible anyway. That way people can just code to that. I'm looking into this, as Im also learning angular atm and would love the chance to write the frontend


2003? Most imageboards look late 00s early 10s. It's not the aesthetics that keep people off I think it's that net culture has changed too much. imageboards were a fresh alternative to forums. No registration, no reputation, no bullshit. However Reddit outcompeted the forums popularizing meta-sites where you can make a "community" with no hosting required. I don't think imageboards had a good answer to that, and 8chan was the last hurrah before the slow slide into obscurity.

All you're going to to do is create another incompatible API. Vichan json API is mostly compatible with Yotsuba. Lynxchan and jschan decided they wanted to do it differently for no reason.


>2003? Most imageboards look late 00s early 10s
They look exactly like Futaba (2003) except they added a 1px shadow or worse, they removed underlined hyperlinks. Fucking web 2.0 minimalism.


Vichan is a read only API, there are no endpoints marked as anything other than GET, for it to be a real API you would need the ability to POST new posts from any client


Anon I like your schema (the first one) seems kindof incomplete tho


File: 1649516823870.jpg (134 KB, 1148x747, CQRKIhsVEAAcdt9.jpg)

I'm not a real oldfag and even I know that the Yotsuba most modern boards are based on is the redesign.



And like I said, all the "redesign" involves in adding a shitty shadow to post boxes and setting a font instead of letting the browser fall back on the default, lol.


Unique IPs: 33

[Return][Go to top] [Catalog] | [Home][Post a Reply]
Delete Post [ ]
[ home / rules / faq ] [ overboard / sfw / alt ] [ leftypol / siberia / hobby / tech / edu / games / anime / music / draw / AKM ] [ meta / roulette ] [ cytube / git ] [ GET / ref / marx / booru / zine ]