Skip to content

Releases: eoussama/nitfree

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 13:37

Nitfree 0.4.0: Studio

Make your own stickers and GIFs, group your library into packs, and dress Discord up with themes.

What's new

Packs

  • Group items into packs, each shown as its own section of the panel, with the pack's name searchable.
  • Add an item to packs from its edit dialog, and filter the panel by pack.
  • Manage packs from the popup, and share a pack as a single .nitfree file.

Video to GIF

  • Drop an MP4 or WebM, pick the start, the end, the frame rate and the size, and it becomes a GIF or a sticker.
  • Up to 320 px it is added as a sticker, larger as a GIF. Encoding runs in the background with progress.

Themes, free

  • Color themes that put a gradient behind Discord, as Nitro's do, with 14 to pick from.
  • Your own accent color, in place of Discord's blurple.
  • CSS snippets, each turned on or off, applied to every open Discord tab at once.
  • Your themes are kept in backups.

Diagnostics

  • A new page in the popup's Settings checks, in your open Discord tab, that Nitfree still finds everything it uses. It tells what works, what works only because Discord changed something, and what is broken.
  • Copy a report to paste into a bug report.
  • The toolbar button shows a red "!" in a Discord tab where Nitfree can't find something it needs.

Landing page

Fixes and polish

  • Suggestions while typing :name no longer stay hidden after pressing Escape.
  • The theme swatches now fill their row.
  • Dependency updates for security audit findings.
  • Much broader automated testing, with full code coverage and mutation testing.

Download

Browser File
Chrome nitfree-0.4.0-chrome.zip
Edge nitfree-0.4.0-edge.zip
Firefox nitfree-0.4.0-firefox.zip
Safari Coming soon

To load a zip by hand, unzip it, open your browser's extensions page, turn on developer mode and choose Load unpacked. Firefox loads the zip as a temporary add-on from about:debugging. The latest version is also at nitfree.ouss.es.

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 13:44

Nitfree 0.3.0

This release makes the library easier to get data in and out of, keep tidy, and use from the keyboard, and adds quick image edits before saving.

Keyboard shortcut

  • Ctrl+Alt+N opens the Nitfree panel with the search box focused. It doesn't clash with Discord's shortcuts, and it only works with Ctrl, Alt or Meta, so typing is never captured.
  • Change it or turn it off in the popup's Settings. Reset returns it to Ctrl+Alt+N.
  • The chat bar button's tooltip shows the shortcut.

Save from chat

  • Save to Nitfree in Discord's message menu saves emojis, stickers and images from a message into your library.
  • Emojis keep their uploaded size, animated stickers keep their animation, and a notice confirms each save.

Quick edits

  • Edit image in the add and edit dialogs opens an editor with:
    • Crop, free or square. Square is useful for emojis and stickers.
    • GIF trim: choose the first and last frame.
    • Remove background: makes one solid color transparent where it touches the edges, with a color picker and tolerance.
  • Your original is always kept. Revert to original undoes the edits.
  • Editing a library item saves the result as a new item; the original stays as it is.

Autocomplete

  • While typing :name in the message box, your Nitfree items appear after Discord's own emojis, with a badge showing the type (Emoji, Sticker, GIF or Image).
  • A popup setting puts them before Discord's emojis instead.

Duplicates

  • Adding a file that's already in your library now warns you first. Near-identical copies, such as a resized version or a copy saved from chat, are flagged too.
  • A new Duplicates page groups identical and similar items, so you can keep one and remove the rest. The kept item takes over the others' tags, favorite status and description.

Export and import

  • Export the whole library as a single .nitfree file, the items currently shown, or one item's file.
  • Import a .nitfree backup, a zip, or a folder of images. Every file is checked before anything is written. Merge mode skips items you already have; replace mode empties the library first.

Storage

  • A new Storage page shows how much space the library uses against the browser's quota, the space per type, and the 8 largest items.
  • Clear cached sized copies without touching originals, delete selected items, and ask the browser to keep the library.

Interface

  • Backup, Storage and Settings are separate pages in the popup, styled like Discord's settings.
  • The popup uses Discord's font, gg sans, when available, with Noto Sans as the fallback.
  • The hover bar now offers Favorite, Details and More options. Details shows a read-only view with a zoomable preview.
  • The add, edit and details dialogs share one design.
  • The Nitfree logo has rounded corners, matching the popup header, and the extension icons match.

Privacy

  • Nitfree checks each key press on Discord against your shortcut. Nothing is stored or sent.
  • While on Discord, the popup fetches Discord's font files from discord.com.

Known limitations

  • Save from chat, autocomplete and the keyboard shortcut were tested against stand-ins for Discord's pages, not the live site. Please report anything that behaves differently on Discord.
  • Replace-mode import can leave a partial library if a storage error happens partway through.

Full Changelog: v0.2.2...v0.3.0

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 22 Oct 18:44

Full Changelog: v0.2.1...v0.2.2

v0.2.0

Choose a tag to compare

@eoussama eoussama released this 22 Oct 18:16

Added

  • The popup: the library at a glance, with items per type and storage used, live as it changes in Discord tabs; Quick add by picking, dropping or pasting images, through the same dialog as in Discord; settings for the size emojis and stickers are sent at, whether a click sends an item or adds it to the message, and whether animated items play on hover. Changes reach open Discord tabs at once. Its header stays at the top while it scrolls, with a logo that blinks now and then and whose eyes follow the pointer, and a link to the GitHub repository (#21).
  • Searching the panel by title, description and tag names, ignoring case and accents: every word typed must match, a part of a word is enough, and typing part of a tag name lists every item with that tag. Enter in the search field sends the first result, Shift+Enter adds it to the message without sending (#26).
  • Filtering the panel by type and tag: the tag button in the header drops a menu with the four types and the tags items carry, each with how many; types are alternatives, tags add up so that two tags show only the items carrying both, and the search narrows the result further. The filters in force show as chips that can be taken off one by one, and the button shows how many there are (#27).
  • The panel's presentation: a bar on the hovered item to favorite, edit or delete it, styled like Discord's message bar; Discord-style tooltips; animated items play only while hovered or focused, the grid showing small stills kept in the library; an empty library invites to add files; tiles lift on hover, except with reduced motion; a library of a thousand items loads only what shows, a few at a time, and scrolls smoothly (#25).
  • Sending from the panel: a click sends an item to the channel and closes the panel, a Shift+click adds it to the message being written. Emojis go at 48 px and stickers at 160 px, animated ones resized frame by frame and still animated, with each sized copy kept for next time; GIFs and images go as they are, and files over Discord's 10 MB limit are refused with a notice (#42, #43).
  • Adding, editing and deleting library items from the panel: Add Files, drag and drop or paste open a dialog styled like Discord's modals, with a name, type, tags and description per file; right-click or the menu key on an item opens a menu to favorite, edit or delete it; deleting hides the item at once, with a few seconds to undo (#29).
  • Typed messaging between the content script, popup and background worker, binary payloads included, with library and tag requests answered by the background and changes announced to open pages (#33).
  • Nitfree button first in Discord's chat bar, in every composer, styled like Discord's own buttons, with a logo that blinks on hover; it opens a placeholder panel that closes on Escape or a click outside (#24).
  • A Nitfree tab in Discord's expression picker, after GIFs, Stickers and Emoji, laid out and styled like Discord's emoji picker: search, a category sidebar, collapsible Favorites, Recent and All files sections, an inspector bar naming the hovered item, and full keyboard navigation. The chat bar button opens the picker on it, and falls back to a panel above the composer when the picker cannot host it (#22).
  • Library database (Dexie) owned by the background worker, in the extension's own storage: items, files with cached sized copies, and tags. The previous version's library moves over on first start (#38).
  • Theme engine that mirrors Discord's palette live, on Discord and in the popup, and respects reduced motion (#34).
  • English and French localization (#35).
  • CI: lint, typecheck, unit tests, end-to-end tests in Chromium and zips for Chrome, Edge and Firefox (#36).
  • Release workflow, Firefox add-on ID and data collection declaration, store listing copy (#37).

Changed

  • Rebuilt on WXT and Svelte 5, targeting Chrome, Edge and Firefox (#31).
  • Every dependency at its latest version, with @eoussama/dx and @eoussama/core (#32).
  • tsc runs on TypeScript 7; TypeScript 6 stays for ESLint (#32).
  • @eoussama/core 0.1.2 and @eoussama/dx 0.1.3, with the pnpm supply-chain settings dx now enforces (#32).

Fixed

  • The 512 px icon was 1080 px wide (#37).
  • The add and edit dialog could not be typed in while Discord's picker was open, as the picker's focus lock pulled focus back (#29).
  • A paste after clicking an empty spot in the panel went to Discord's chat box instead of adding the image (#29).
  • The sidebar's pill slides in on hover and grows on the selected category, the previous one shrinking away to the edge, like Discord's server list, on backgrounds rounded like Discord's (#22).
  • The panel's sidebar ends level with the inspector, its border running across like Discord's, and its first icon lines up with the first section; icons come from Lucide (#22).
  • The chat bar button's logo is 20 px, the size of the glyphs on Discord's own buttons (#24).

Full Changelog: https://github.com/eoussama/nitfree/commits/v0.2.0