social_stream

Custom Themes

For anyone who wants to create a custom theme/style/template for their chat stream, you can share them via adding them to this repository (in this folder) as a Pull Request.

Quick Start

To use a pre-made theme, you have two hosting options:

1. Official Hosted Themes

Use themes hosted on the official domain:

https://socialstream.ninja/themes/pretty.html?session=YOUR_SESSION_ID

2. Local Hosting

Run themes from your local file system:

file:///C:/path/to/your/theme.html?session=YOUR_SESSION_ID

Important:

Available Themes

Themed Packages (with documentation)

These themes include readme files, sample photos, and guides:

Simple Drop-in Themes

Add ?session=XXXXXXX to these URLs, replacing XXXXXXX with your session ID:

YouTube-CSS compatible Theme Template:

You can use a CSS designed for YouTube with our YouTube-structured overlay page:

Theme Development Approaches

Make your own custom theme. It’s super easy when using an LLM AI service like Claude.ai 🤖

Types of Themed Overlays

  1. IFRAME Overlay Method
    • Uses IFRAMES and URL parameters to inject styles into the existing dock.html page
    • Example: The pretty.html style adds overlay images on top
    • Good for maintaining separation from core code
  2. Built-in Style Options
    • Use the app’s menu settings or OBS stylesheet section
    • Outside the scope of this document
  3. Sample Overlay Modification
  4. YouTube-structured CSS-only mods

Warning: Direct modification of dock.html is not recommended due to its complexity and size.

Theme-less Code-Only Examples

If you want as little code needed, to help you Vibe Code something for Social Stream Ninjafrom scratch, please see the Bare Template. I don’t have anything more basic than this, but it should be enough to copy/paste into a half-decent LLM service and get something that works with Social Stream Ninja.

If you’re still not having luck with your vibe coding efforts, let me know, however I do not offer help with debugging of code that I did not write.

Testing Themes

Basic Testing

Advanced Testing

OBS Compatibility Notes

OBS v31 and Iframe Limitations

Starting with OBS v31, there are important considerations for custom themes:

Solutions and Workarounds

  1. Official Theme Hosting
    • Submit your custom themes via PR to be hosted on socialstream.ninja
    • Themes hosted on the official domain will work properly with OBS v31
    • Approved PRs to main branch are automatically deployed and available via the website
  2. WebSocket API Alternative
    • For cases where iframes aren’t suitable, use the WebSocket API
    • Enable with the &server parameter or such, as the code requires to trigger. You may need to enable it in the extension/menu as well.
    • When using the Standalone app with local server option, use &localserver&server to utilize the local WebSocket server
    • May require additional setup if the websocket listening code is not already configured in sample code to be used; see dock.html for reference in that case.

Contributing

When submitting themes:

  1. Include clear documentation
  2. Provide setup instructions
  3. Add sample screenshots if possible
  4. Test thoroughly
  5. Maintain core functionality
  6. Follow existing message structure

Benefits of contributing to the official repository:

Alternatively, you can self-host using local files, just ensure proper session parameter usage.

For support or questions, check the official documentation.

Contributions for more themes and styles are welcome!