<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>SnowServers guides</title><link href="https://snowservers.com/guides"/><link rel="self" href="https://snowservers.com/guides.xml"/><id>https://snowservers.com/guides</id><updated>2026-10-23T12:00:00Z</updated><author><name>SnowServers</name></author><entry><title>Make a Discord bot in Java with JDA</title><link href="https://snowservers.com/guide-make-a-discord-bot-java"/><id>https://snowservers.com/guide-make-a-discord-bot-java</id><published>2026-10-23T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Build your first Discord bot in Java with JDA 6: slash commands, an embed, a button, replies to messages, a runnable jar, and fixes for the usual errors.</summary></entry><entry><title>How to host a Spring Boot app on your own domain</title><link href="https://snowservers.com/guide-host-spring-boot-app"/><id>https://snowservers.com/guide-host-spring-boot-app</id><published>2026-10-23T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Run a Spring Boot app on your own server: one runnable jar, the port from SERVER_PORT, proxy headers for HTTPS, settings beside the jar, and memory.</summary></entry><entry><title>How to host a Next.js app on your own domain</title><link href="https://snowservers.com/guide-host-nextjs-app"/><id>https://snowservers.com/guide-host-nextjs-app</id><published>2026-10-23T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Run Next.js on your own server: next start or standalone output, the port and hostname, why the build needs far more memory than the app, and HTTPS.</summary></entry><entry><title>Welcome and goodbye messages for a Discord bot, in discord.py and discord.js</title><link href="https://snowservers.com/guide-discord-welcome-messages"/><id>https://snowservers.com/guide-discord-welcome-messages</id><published>2026-10-23T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Greet people who join and say goodbye when they leave, in discord.py and discord.js: the intent to switch on, an embed, a DM, and the goodbyes bots miss.</summary></entry><entry><title>How to send Discord webhook messages from code</title><link href="https://snowservers.com/guide-discord-webhooks"/><id>https://snowservers.com/guide-discord-webhooks</id><published>2026-10-23T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Post to a Discord channel without a bot: create a webhook, send text and embeds from Python, JavaScript or curl, attach files, edit messages, rate limits.</summary></entry><entry><title>A ticket system for a Discord bot, in discord.py and discord.js</title><link href="https://snowservers.com/guide-discord-ticket-bot"/><id>https://snowservers.com/guide-discord-ticket-bot</id><published>2026-10-23T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>A button that opens a private ticket channel per member, in discord.py and discord.js: the permissions, one ticket each, closing, and a ready-made bot.</summary></entry><entry><title>Reaction roles for a Discord bot, in discord.py and discord.js</title><link href="https://snowservers.com/guide-discord-reaction-roles"/><id>https://snowservers.com/guide-discord-reaction-roles</id><published>2026-10-23T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Give members a role when they react, in discord.py and discord.js: the permission, intents and partials it needs, taking it back, and buttons instead.</summary></entry><entry><title>Kick, ban and timeout commands for a Discord bot, in discord.py and discord.js</title><link href="https://snowservers.com/guide-discord-moderation-commands"/><id>https://snowservers.com/guide-discord-moderation-commands</id><published>2026-10-23T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Slash commands to time out, kick, ban and unban in discord.py and discord.js, with the role check most examples skip and Discord's refusals explained.</summary></entry><entry><title>Log deleted and edited messages with a Discord bot, in discord.py and discord.js</title><link href="https://snowservers.com/guide-discord-message-logs"/><id>https://snowservers.com/guide-discord-message-logs</id><published>2026-10-23T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Log deleted and edited messages to a staff channel in discord.py and discord.js: the intent, messages from before a restart, and what a bot cannot know.</summary></entry><entry><title>A giveaway command for a Discord bot, in discord.py and discord.js</title><link href="https://snowservers.com/guide-discord-giveaway-bot"/><id>https://snowservers.com/guide-discord-giveaway-bot</id><published>2026-10-23T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>A /giveaway command with an Enter button in discord.py and discord.js: entries, a random winner, and giveaways that survive the bot restarting.</summary></entry><entry><title>Set your Discord bot's status: Playing, Watching and custom</title><link href="https://snowservers.com/guide-discord-bot-status"/><id>https://snowservers.com/guide-discord-bot-status</id><published>2026-10-23T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Set a Discord bot's status in discord.py and discord.js: Playing, Watching, Listening, a custom status, one that changes, and why it resets.</summary></entry><entry><title>How to host a static website on your own domain</title><link href="https://snowservers.com/guide-host-static-website"/><id>https://snowservers.com/guide-host-static-website</id><published>2026-10-22T12:00:00Z</published><updated>2026-10-22T12:00:00Z</updated><summary>Put an HTML site, or one built with Vite, Astro, Hugo or Jekyll, on your own domain with HTTPS: what to upload, clean URLs, single-page apps and DNS.</summary></entry><entry><title>How to host a FastAPI app on your own domain</title><link href="https://snowservers.com/guide-host-fastapi-app"/><id>https://snowservers.com/guide-host-fastapi-app</id><published>2026-10-22T12:00:00Z</published><updated>2026-10-22T12:00:00Z</updated><summary>Run FastAPI in production: uvicorn workers, not --reload, the port from the environment, proxy headers, secrets in .env, and HTTPS on your domain.</summary></entry><entry><title>How to host a Django app on your own domain</title><link href="https://snowservers.com/guide-host-django-app"/><id>https://snowservers.com/guide-host-django-app</id><published>2026-10-22T12:00:00Z</published><updated>2026-10-22T12:00:00Z</updated><summary>Run Django in production: gunicorn, DEBUG off, ALLOWED_HOSTS and CSRF behind a proxy, static files with WhiteNoise, migrations, and HTTPS on your domain.</summary></entry><entry><title>Buttons, select menus and modals in discord.py</title><link href="https://snowservers.com/guide-discord-py-buttons"/><id>https://snowservers.com/guide-discord-py-buttons</id><published>2026-10-22T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Add buttons, select menus and pop-up forms to a discord.py bot: Views, callbacks, timeouts, disabling, buttons that survive a restart, and common errors.</summary></entry><entry><title>Buttons, select menus and modals in discord.js</title><link href="https://snowservers.com/guide-discord-js-buttons"/><id>https://snowservers.com/guide-discord-js-buttons</id><published>2026-10-22T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Buttons, select menus and pop-up forms in discord.js 14: builders, handling the interaction, collectors with time limits, modals with labels, and errors.</summary></entry><entry><title>Discord bot sharding: when you need it and how</title><link href="https://snowservers.com/guide-discord-bot-sharding"/><id>https://snowservers.com/guide-discord-bot-sharding</id><published>2026-10-22T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>When a Discord bot has to shard (2,500 servers), what a shard is, and how to do it in discord.py and discord.js: one process or several, memory and limits.</summary></entry><entry><title>Embeds in discord.js</title><link href="https://snowservers.com/guide-discord-js-embeds"/><id>https://snowservers.com/guide-discord-js-embeds</id><published>2026-10-09T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Send embeds with discord.js 14's EmbedBuilder: fields, colours, images from your own files, timestamps, editing, the limits, and the errors people hit.</summary></entry><entry><title>Add a database to a Discord bot</title><link href="https://snowservers.com/guide-discord-bot-database"/><id>https://snowservers.com/guide-discord-bot-database</id><published>2026-10-09T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Give a discord.py or discord.js bot a real database: SQLite first, with a working warnings system, then MySQL when you outgrow it, and the usual errors.</summary></entry><entry><title>How to host a Flask app 24/7 on your own domain</title><link href="https://snowservers.com/guide-host-flask-app"/><id>https://snowservers.com/guide-host-flask-app</id><published>2026-10-08T12:00:00Z</published><updated>2026-10-08T12:00:00Z</updated><summary>Run a Flask app in production: gunicorn instead of the dev server, the port from the environment, secrets out of the code, and HTTPS on your domain.</summary></entry><entry><title>How to host an Express app 24/7 on your own domain</title><link href="https://snowservers.com/guide-host-express-app"/><id>https://snowservers.com/guide-host-express-app</id><published>2026-10-08T12:00:00Z</published><updated>2026-10-08T12:00:00Z</updated><summary>Run an Express or Node.js app in production: the right port and address, trust proxy, secrets out of Git, crash restarts and HTTPS on your domain.</summary></entry><entry><title>Embeds in discord.py</title><link href="https://snowservers.com/guide-discord-py-embeds"/><id>https://snowservers.com/guide-discord-py-embeds</id><published>2026-10-08T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Send embeds with discord.py 2: fields, colours, images from your own files, timestamps, editing, the size limits, and why an embed does not show.</summary></entry><entry><title>Discord bot dashboard on your own domain, with HTTPS</title><link href="https://snowservers.com/guide-discord-bot-dashboard-domain"/><id>https://snowservers.com/guide-discord-bot-dashboard-domain</id><published>2026-10-08T12:00:00Z</published><updated>2026-10-08T12:00:00Z</updated><summary>Run a web dashboard next to your Discord bot: sign-in with Discord belongs on HTTPS, so put it on your own domain, trust the proxy, keep sessions safe.</summary></entry><entry><title>Fixing an old discord.py bot for discord.py 2</title><link href="https://snowservers.com/guide-discord-py-2-upgrade"/><id>https://snowservers.com/guide-discord-py-2-upgrade</id><published>2026-09-27T12:00:00Z</published><updated>2026-10-08T12:00:00Z</updated><summary>Fix discord.py 1 code on discord.py 2: intents, Message Content, async cogs, bot.loop, avatar_url, Embed.Empty and history().flatten().</summary></entry><entry><title>Fixing an old discord.js bot for discord.js 14</title><link href="https://snowservers.com/guide-discord-js-14-upgrade"/><id>https://snowservers.com/guide-discord-js-14-upgrade</id><published>2026-09-27T12:00:00Z</published><updated>2026-10-08T12:00:00Z</updated><summary>Fix discord.js 12 and 13 code on v14: MessageEmbed is not a constructor, reading 'FLAGS', Invalid bitfield flag GUILDS and empty messages.</summary></entry><entry><title>Make a Discord bot in Python</title><link href="https://snowservers.com/guide-make-a-discord-bot-python"/><id>https://snowservers.com/guide-make-a-discord-bot-python</id><published>2026-09-14T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Build your first Discord bot in Python with discord.py: slash commands, replies to messages, embeds, buttons, and fixes for the usual errors.</summary></entry><entry><title>Make a Discord bot in JavaScript</title><link href="https://snowservers.com/guide-make-a-discord-bot-javascript"/><id>https://snowservers.com/guide-make-a-discord-bot-javascript</id><published>2026-09-14T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Build your first Discord bot in JavaScript with discord.js 14: slash commands, replies to messages, embeds, buttons, and keeping it running.</summary></entry><entry><title>How to host a JDA (Java) Discord bot</title><link href="https://snowservers.com/guide-host-jda-bot"/><id>https://snowservers.com/guide-host-jda-bot</id><published>2026-09-14T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Get a JDA Discord bot ready for hosting: a fat jar with Gradle or Maven, the token from the environment, intents, heap size and shutdown.</summary></entry><entry><title>How to host a discord.js bot</title><link href="https://snowservers.com/guide-host-discord-js-bot"/><id>https://snowservers.com/guide-host-discord-js-bot</id><published>2026-09-14T12:00:00Z</published><updated>2026-10-08T12:00:00Z</updated><summary>Get a discord.js bot ready for hosting: token in the environment, a clean package.json, intents, slash commands, then keep it online 24/7.</summary></entry><entry><title>Organising a discord.py bot with cogs</title><link href="https://snowservers.com/guide-discord-py-cogs"/><id>https://snowservers.com/guide-discord-py-cogs</id><published>2026-09-14T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Split a discord.py 2 bot into cogs: file layout, loading in setup_hook, slash and prefix commands, listeners, reloading and common errors.</summary></entry><entry><title>Slash commands in discord.js</title><link href="https://snowservers.com/guide-discord-js-slash-commands"/><id>https://snowservers.com/guide-discord-js-slash-commands</id><published>2026-09-14T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Slash commands in discord.js 14: register them, options, autocomplete, permissions, cooldowns, subcommands, right-click commands, and fixes.</summary></entry><entry><title>Scheduled tasks in a Discord bot</title><link href="https://snowservers.com/guide-discord-bot-scheduled-tasks"/><id>https://snowservers.com/guide-discord-bot-scheduled-tasks</id><published>2026-09-14T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>Run code on a schedule in a Discord bot: discord.py tasks.loop, setInterval and node-cron in discord.js, time zones, restarts and rate limits.</summary></entry><entry><title>Deploy a Discord bot from GitHub</title><link href="https://snowservers.com/guide-deploy-discord-bot-from-github"/><id>https://snowservers.com/guide-deploy-discord-bot-from-github</id><published>2026-09-14T12:00:00Z</published><updated>2026-10-08T12:00:00Z</updated><summary>Run your Discord bot straight from a GitHub repository: keep the token out of it, use private repos safely, and redeploy on every push.</summary></entry><entry><title>How to choose Discord bot hosting</title><link href="https://snowservers.com/guide-choose-discord-bot-hosting"/><id>https://snowservers.com/guide-choose-discord-bot-hosting</id><published>2026-09-14T12:00:00Z</published><updated>2026-10-08T12:00:00Z</updated><summary>What matters when picking a Discord bot host: sleeping, reserved memory, current Python and Node, Git deploys, crash restarts, backups and renewals.</summary></entry><entry><title>Moving a Discord bot off Replit or Heroku</title><link href="https://snowservers.com/guide-move-discord-bot-off-replit"/><id>https://snowservers.com/guide-move-discord-bot-off-replit</id><published>2026-09-13T12:00:00Z</published><updated>2026-10-22T12:00:00Z</updated><summary>Move a Discord bot off Replit or Heroku to a host where it stays online: export the code, replace Replit DB and Secrets, drop keep-alive pings.</summary></entry><entry><title>How to keep a Discord bot online 24/7</title><link href="https://snowservers.com/guide-keep-discord-bot-online-24-7"/><id>https://snowservers.com/guide-keep-discord-bot-online-24-7</id><published>2026-09-13T12:00:00Z</published><updated>2026-10-08T12:00:00Z</updated><summary>Your bot goes offline when your PC sleeps. Here is every realistic way to keep it running around the clock, what each costs, and the catches.</summary></entry><entry><title>How to host a discord.py bot</title><link href="https://snowservers.com/guide-host-discord-py-bot"/><id>https://snowservers.com/guide-host-discord-py-bot</id><published>2026-09-13T12:00:00Z</published><updated>2026-10-08T12:00:00Z</updated><summary>Prepare a discord.py bot for hosting: read the token from the environment, pin dependencies, and deploy it so it stays online. Step by step.</summary></entry><entry><title>Free Discord bot hosting: what actually works</title><link href="https://snowservers.com/guide-free-discord-bot-hosting"/><id>https://snowservers.com/guide-free-discord-bot-hosting</id><published>2026-09-13T12:00:00Z</published><updated>2026-10-19T12:00:00Z</updated><summary>Looking for free Discord bot hosting? What free options exist, why most free tiers put bots to sleep, and when it is worth paying a few dollars instead.</summary></entry><entry><title>Discord API rate limits, explained</title><link href="https://snowservers.com/guide-discord-rate-limits"/><id>https://snowservers.com/guide-discord-rate-limits</id><published>2026-09-13T12:00:00Z</published><updated>2026-10-23T12:00:00Z</updated><summary>What Discord's rate limits are, what a 429 means, the global and invalid-request limits that get bots temporarily banned, and how to stop hitting them.</summary></entry><entry><title>Slash commands in discord.py</title><link href="https://snowservers.com/guide-discord-py-slash-commands"/><id>https://snowservers.com/guide-discord-py-slash-commands</id><published>2026-09-13T12:00:00Z</published><updated>2026-10-22T12:00:00Z</updated><summary>Slash commands in discord.py 2: sync them properly, options, choices, autocomplete, permissions, cooldowns, groups, and fixing ones that don't show.</summary></entry><entry><title>Keeping your Discord bot token safe</title><link href="https://snowservers.com/guide-discord-bot-token-security"/><id>https://snowservers.com/guide-discord-bot-token-security</id><published>2026-09-13T12:00:00Z</published><updated>2026-10-22T12:00:00Z</updated><summary>A leaked bot token gives someone full control of your bot. How tokens leak, how to store one safely, and exactly what to do if yours gets out.</summary></entry><entry><title>Running a Discord bot as a systemd service</title><link href="https://snowservers.com/guide-discord-bot-systemd"/><id>https://snowservers.com/guide-discord-bot-systemd</id><published>2026-09-13T12:00:00Z</published><updated>2026-10-22T12:00:00Z</updated><summary>Keep a Python Discord bot running on a Linux VPS or Raspberry Pi with systemd: start at boot, restart on crash, token out of the code.</summary></entry><entry><title>How much RAM does a Discord bot need?</title><link href="https://snowservers.com/guide-discord-bot-ram"/><id>https://snowservers.com/guide-discord-bot-ram</id><published>2026-09-13T12:00:00Z</published><updated>2026-10-22T12:00:00Z</updated><summary>Realistic memory use for Python Discord bots, what makes it grow (member cache, message cache, music, images), how to measure yours and how to cut it.</summary></entry><entry><title>Discord bot is online but not responding</title><link href="https://snowservers.com/guide-bot-online-not-responding"/><id>https://snowservers.com/guide-bot-online-not-responding</id><published>2026-09-13T12:00:00Z</published><updated>2026-10-08T12:00:00Z</updated><summary>Your bot shows as online but ignores commands. The eight usual causes, from the Message Content intent to on_message, and how to check each.</summary></entry></feed>
