How to use SocialCities

This site is updated by an e-mail bot. You do not upload files directly in the browser.

If the bot creates a new e-mail address, the site refreshes the upload, delete and comment mail buttons automatically so old mailto links are not kept.

1. Submit a post with the form mail button

Open the upload page. Fill the username, title and optional description fields. Then click form mail.

The button opens a new tab with a real mailto: message already prepared. It does not submit the form as an ?username=... web URL. The title becomes the e-mail subject and the public title, so the mail body does not repeat title:. Attach your media in the mail app, or paste a public Drive/cloud/direct link in the optional media link field.

The generated body looks like this:

username : your_username
my content is nsfw : yes

description :
your optional description

The NSFW line is optional and is generated only when you check my content is nsfw. For a video, the bot uses an NSFW placeholder thumbnail instead of generating or publishing a real thumbnail.

You can attach a thumbnail image with the video. Without an image, the site will choose a frame from the video automatically, unless NSFW is checked.

The description is optional. If you write one in the form mail, it will be saved with the post and shown on the video page.

2. Username protection

The first e-mail address that uses a username owns that username. If another e-mail address tries to reuse it, the bot refuses the post, comment, or suspicious delete request.

The upload page may show a warning when a username already exists, but it does not block the form mail button. A static HTML page cannot know the sender e-mail address, so only the bot decides after the e-mail arrives.

If the username belongs to another e-mail address, the bot refuses the post:

Username already taken, please try again with another username.

3. Sending

After the upload page opens the mail app, send the generated e-mail. The Status page shows live progress while the bot works, then the entries are deleted automatically.

4. Delete your own post

Open the video page and copy the video ID. Then send a new e-mail from the same address that originally posted the video, with the same username that posted it.

username : your_username
delete : video_id

The bot checks the sender address and the stored username before removing anything.

5. Comment on a video

Open a video page and click Send a comment. It opens a real comment form first, with the video ID already filled. Then click form comment mail to create the e-mail.

The message body must include your username and comment:

username : your_username
video id: video_id

comment:
your multi-line comment

Comments are limited to 4000 characters. Long comments are collapsed on the video page with a show more button.

6. Dynamic homepage and channels

The homepage no longer writes one HTML block per video. index.html reads videos.json in JavaScript, then builds the video cards in the browser.

Pagination is dynamic too: the same file handles index.html?page=2, index.html?page=3, etc. That keeps the site lighter and makes manual edits to videos.json visible after refresh.

User channels are dynamic: open channel.html?user=username and the page reads videos.json to show every video posted by that username.

7. Threads, posts, and replies

thread.html reads threads.json. Without parameters it shows every active thread. With thread.html?id=THREAD_ID, it shows the selected thread, its posts, and its comments.

Create a thread by sending an e-mail where the subject is the thread title and the body contains your username. You can add a first post with:

username : your_username

post:
your text

To post inside a thread, include the thread ID:

username : your_username
thread id: THREAD_ID

post:
your text

To reply to a post, include both IDs:

username : your_username
thread id: THREAD_ID
post id: POST_ID

comment:
your reply

Images attached to thread posts are uploaded to external services like Catbox, Pixeldrain, external host or Filebin. They are not stored as Neocities images.

If a thread post or reply is marked NSFW, its images are shown blurred with a warning overlay. Visitors can click to reveal them.

The original thread creator can delete the whole thread and all its posts/comments with:

username : your_username
delete : THREAD_ID

The author of a post can delete that post and its replies. The thread creator can also remove posts inside their own thread:

username : your_username
thread id: THREAD_ID
post id: POST_ID

delete : POST_ID

Threads expire automatically after 14 days. The bot checks the creation dates often and deletes old threads with their posts and comments.

8. What happens after sending

After you send the e-mail, the bot receives the message, prepares the post, chooses an upload service for real attachments, and refreshes the site automatically.

The bot accepts my content is nsfw : yes, nsfw: yes, and the typo nswf: yes as NSFW markers.

Small real attachments go to Catbox first. Bigger real attachments go to Pixeldrain anonymous, external host guest upload, Filebin temporary fallback, then optional Litterbox if enabled. If the mail provider exposes only a text body, paste a public file link instead of relying on a binary attachment.

Videos are uploaded as originals by default. The bot refuses processed files that become shorter or lose audio, so a 4-minute clip cannot be silently published as a 1:28 cut.

9. Visible errors

If a username is already taken or a message is refused, the Status page can show a privacy-safe refusal notice; old notices are deleted automatically.

If something seems missing from your mail app, also check the spam, junk and trash folders in your mailbox.

10. External feed

Applications can read the lightweight feed at flux.rss. It contains titles, video page links, media links, thumbnails, authors, and dates.