Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions deploy/Caddyfile
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,11 @@ message.style {
@moved_webhook_post path /blog/executing-webhooks /blog/executing-webhooks/
redir @moved_webhook_post /features/discord-webhooks 301

redir /app /app/
# The app's root is the editor. Redirect so search engines see one URL for it
# instead of three. The app redirects / to /editor the same way, keeping the query.
@app_root path /app /app/
redir @app_root /app/editor{?query} 301

handle_path /app/* {
root * /srv/message.style/app

Expand All @@ -114,10 +118,9 @@ message.style {
}

# Pages people search for have their own title and text, see embedg-app/pages.ts.
# Everything else gets index.html, which is noindex. /app itself is the editor.
# Everything else gets index.html, which is noindex.
handle {
header Cache-Control "no-cache"
rewrite / /pages/editor.html
rewrite /editor/share/* /pages/shared.html
try_files /pages{path}.html {path} {path}/ /index.html
file_server
Expand Down
2 changes: 1 addition & 1 deletion embedg-server/command/cmd_embed.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (

func (g *CommandHandler) handleEmbedCommand(e *handler.CommandEvent) error {
return e.Respond(discord.InteractionResponseTypeCreateMessage, discord.MessageCreate{
Content: "If you want to have more options to customize your message go to [message.style](<https://message.style/app>)!",
Content: "If you want to have more options to customize your message go to [message.style](<https://message.style/app/editor>)!",
Components: embedEditComponents(),
Flags: discord.MessageFlagEphemeral,
})
Expand Down
2 changes: 1 addition & 1 deletion embedg-site/blog/2026-09-30-fluxer-webhooks/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Embed Generator can now send messages to [Fluxer](https://fluxer.app). Paste a F

For a while we supported Guilded the same way, until Roblox shut it down in December 2025. Fluxer is a better fit anyway. It's an open source chat platform that opened to the public in January, and its webhooks follow Discord's closely: the same URL shape, the same embed format and the same Markdown, down to `<t:...>` timestamps and `-#` subtext. A message you built for Discord mostly works on Fluxer as it is.

To try it, create a webhook in the settings of a Fluxer channel and copy the URL, which starts with `https://api.fluxer.app/webhooks/`. In the [editor](https://message.style/app), pick Webhook as the target and paste it. The editor recognizes the URL and adjusts to what Fluxer can show. Content, up to 10 embeds with every field, file attachments and a custom name and avatar per message all go through. You can edit a message after sending it by pasting its link, or restore it into the editor to pick up where you left off. The [Webhook Info tool](https://message.style/app/tools/webhook-info) reads Fluxer webhooks as well.
To try it, create a webhook in the settings of a Fluxer channel and copy the URL, which starts with `https://api.fluxer.app/webhooks/`. In the [editor](https://message.style/app/editor), pick Webhook as the target and paste it. The editor recognizes the URL and adjusts to what Fluxer can show. Content, up to 10 embeds with every field, file attachments and a custom name and avatar per message all go through. You can edit a message after sending it by pasting its link, or restore it into the editor to pick up where you left off. The [Webhook Info tool](https://message.style/app/tools/webhook-info) reads Fluxer webhooks as well.

The part that doesn't carry over is components. Fluxer has no buttons, select menus or Components V2 layouts yet, so the editor hides them while a Fluxer webhook is the target and won't send a message that still has them. The same goes for everything that runs through the Embed Generator bot, like buttons that hand out roles, scheduled messages and custom commands, since the bot only lives on Discord. Fluxer's roadmap lists buttons and interactions, and we'll look at it again once they exist.

Expand Down
2 changes: 1 addition & 1 deletion embedg-site/docs/features/fluxer.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ description: Send embeds to Fluxer with Embed Generator. Paste a Fluxer webhook
## Send a message to Fluxer

1. In Fluxer, create a webhook in the settings of the channel you want to post in and copy its URL. It starts with `https://api.fluxer.app/webhooks/`.
2. Open the [editor](https://message.style/app), choose **Webhook** as the target and paste the URL.
2. Open the [editor](https://message.style/app/editor), choose **Webhook** as the target and paste the URL.
3. Build the message and click **Send Message**.

Paste the link of a message you sent into **Message ID or URL** to edit it later, or click **Restore Message** to load it back into the editor.
Expand Down
2 changes: 1 addition & 1 deletion embedg-site/docs/guides/migrating-discohook.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ If you are coming from Discohook and would like to start using Embed Generator i

## Getting started

To get started with Embed Generator go [message.style/app](https://message.style/app). You will see a message editor that should look fairly similar to what you are used to from Discohook. There are a few differences, but all the features you are used to are there and work the same way - or better - as with Discohook.
To get started with Embed Generator go [message.style/app](https://message.style/app/editor). You will see a message editor that should look fairly similar to what you are used to from Discohook. There are a few differences, but all the features you are used to are there and work the same way - or better - as with Discohook.

One important difference is that you will want to login with your Discord account when you are using Embed Generator. This makes it possible to save your messages in the cloud so you can access them on any device. With Discohook your message backups are stored locally and are no synchronized between devices, this makes it easy to lose your messages accidentally.

Expand Down
2 changes: 1 addition & 1 deletion embedg-site/docs/guides/webhooks.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ You need the **Manage Webhooks** permission in the channel.

## Send a message with Embed Generator

1. Open the [editor](https://message.style/app).
1. Open the [editor](https://message.style/app/editor).
2. At the top, choose **Webhook** as the target and paste the URL.
3. Build your message: content, embeds, images, or a [Components V2](../features/components-v2) layout. Optionally set a username and avatar for this message.
4. Click **Send Message**.
Expand Down
2 changes: 1 addition & 1 deletion embedg-site/docs/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Embed Generator is a visual editor for Discord messages. You build embeds, butto

## Your first message in five steps

1. **Open the editor** at [message.style/app](https://message.style/app). No account needed for this part.
1. **Open the editor** at [message.style/app](https://message.style/app/editor). No account needed for this part.
2. **Write the message.** Add content, then click **Add Embed** for a title, description, fields, an image and a color. The preview on the right updates as you type.
3. **Set a name and avatar** at the top if you don't want the default ones.
4. **Pick where it goes.** Log in with Discord, invite the bot and choose a channel, which unlocks every feature. Or paste a [webhook URL](./guides/webhooks.md) if you'd rather not log in. See [Webhook or Channel?](./guides/send-modes.md) for the difference.
Expand Down
4 changes: 2 additions & 2 deletions embedg-site/docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ const config: Config = {
position: "right",
},
{
href: "https://message.style/app",
href: "https://message.style/app/editor",
label: "Open App",
position: "right",
className: "navbar__item--cta",
Expand All @@ -195,7 +195,7 @@ const config: Config = {
{
title: "Product",
items: [
{ label: "Open App", href: "https://message.style/app" },
{ label: "Open App", href: "https://message.style/app/editor" },
{ label: "Premium", href: "https://message.style/premium" },
{ label: "Documentation", to: "/docs" },
{ label: "Blog", to: "/blog" },
Expand Down
2 changes: 1 addition & 1 deletion embedg-site/src/components/HomeFooter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const columns = [
{
title: "Product",
links: [
{ label: "Open App", href: "/app" },
{ label: "Open App", href: "/app/editor" },
{ label: "Premium", href: "/premium" },
{ label: "Documentation", href: "/docs" },
{ label: "Blog", href: "/blog" },
Expand Down
2 changes: 1 addition & 1 deletion embedg-site/src/components/HomeHeader.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export default function HomeHeader(): JSX.Element {
</a>
))}
<a
href="/app"
href="/app/editor"
className="ml-1 flex shrink-0 items-center gap-2 whitespace-nowrap rounded-lg bg-azure-500 px-3 py-2 text-sm font-semibold text-white shadow-[0_0_0_1px_rgba(255,255,255,0.08)_inset] transition-colors hover:bg-azure-400 hover:text-white hover:no-underline sm:ml-2 sm:px-4"
>
<SparklesIcon className="hidden h-4 w-4 sm:block" />
Expand Down
2 changes: 1 addition & 1 deletion embedg-site/src/components/HomeHero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export default function HomeHero(): JSX.Element {
</p>
<div className="flex flex-wrap items-center gap-3">
<a
href="/app"
href="/app/editor"
className="flex items-center gap-2 rounded-lg bg-azure-500 px-5 py-3 text-base font-semibold text-white transition-colors hover:bg-azure-400 hover:text-white hover:no-underline"
>
<SparklesIcon className="h-5 w-5" />
Expand Down
2 changes: 1 addition & 1 deletion scripts/deploy-app.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ echo "==> building embedg-app"

deploy_static embedg-app/dist /srv/message.style/app

curl -sf -o /dev/null -w "==> https://message.style/app/ %{http_code}\n" https://message.style/app/
curl -sf -o /dev/null -w "==> https://message.style/app/editor %{http_code}\n" https://message.style/app/editor
Loading