PreMiD application repository and extension setup guide
🧬 Source code of the PreMiD application.
At a glance
- What is it?
- PreMiD publishes web activity through Discord Rich Presence, while this TypeScript monorepo contains most of the application's codebase. Extension users install through the official website, but the README still states that the extension itself is not open source.
- Who is it for?
- PreMiD is suitable for users who want supported websites and browser games represented in Discord and for developers who want to contribute Activities or translations. It is not a suitable adoption choice for an engineer seeking a fully open-source browser extension or a recently evidenced extension release cadence.
- Can I use it commercially?
- Yes, with conditions. MPL-2.0 is a weak copyleft licence: you can use it inside commercial and closed-source software, but if you distribute changes to its own files, you must publish those changes under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 123 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
PreMiD's Discord activity-sharing boundary
PreMiD addresses a specific gap between normal web browsing and Discord presence. Discord Rich Presence can represent activities, but a generic browsing status does not automatically identify the video, music track, or site a person is using. According to the README, PreMiD detects supported activity and displays it in a Discord profile. Its documented examples include YouTube, Netflix, Disney+, Twitch, Spotify, and browser games.
The intended user is a Discord user who wants friends to see an activity without manually writing a status message. Site-specific support depends on Activities, which are separate community-created components. The README links to the PreMiD/Activities repository for this work. Spotify is treated differently because the README says it has native Discord support, while PreMiD can cover services that do not provide the desired integration themselves.
This is not a general-purpose Discord bot, moderation tool, or browser history archive. The documented function is presence presentation. The README does not describe storage of browsing history, retention rules, administrator controls, or private-channel filtering. It also does not specify what permissions the installed extension requests. Those are material adoption questions because automatic activity sharing can expose a person's current site or media to anyone permitted to view their Discord presence.
PreMiD's application repository and workspace structure
This repository is a TypeScript monorepo rather than a single npm package. Its root `package.json` identifies `premid` as the package and declares `[email protected]` as the package manager. The `pnpm-workspace.yaml` file, `apps/` directory, multiple TypeScript project files, and Vitest workspace configuration indicate that related applications are built together.
The root scripts cover the main development workflow. `pnpm run build` cleans previous TypeScript build output and invokes `tsc -b tsconfig.app.json`. Tests run through `vitest --run`, while `vitest --ui` opens the configured interface. ESLint and Prettier support static checks and formatting. A `prepare` script enables Husky, and the root configuration includes commit-related tooling.
The repository also contains a `Dockerfile`, but it is not a ready-made command for installing the browser extension. It expects a build argument named `SERVICE`. During its build stage, it runs code generation for services other than `website`, chooses between the general build and the website build, and deploys the selected workspace package into a production directory. The final `node:20-alpine` image runs the deployed service on port 80. This describes repository-level packaging; the README does not connect the Dockerfile to a supported extension deployment procedure.
Installing PreMiD and enabling its first activity
For extension users, the README gives one installation route: open `https://premid.app` and add the browser extension. It does not publish a manual package-install command, a downloadable archive command, or setup instructions for building the extension from source. The repository lists Chrome, Firefox, Opera, Linux, macOS, and Windows as topics, but the README does not claim that one artifact supports every browser or operating system combination.
Start at the project website and follow its extension installation path. The README states that this is the route for people who want to use PreMiD. After installation, the documented purpose of the extension is to show supported activity in Discord. If the browser extension exposes a configuration or enablement control after installation, that interface is not documented in the README, so this tutorial does not invent a click path or setting name.
The first useful action described by the project is opening a supported site or starting a supported browser game while Discord presence is available. The site-specific recognition comes from Activities. If a site does not appear, the repository does not state that a browser restart, site reload, or manual Activity installation will fix it. Users should first confirm that the service has an Activity in the separate Activities repository. Contributors who need a new site integration should work there instead of changing the main application repository by assumption.
Setting up the TypeScript monorepo for contributors
Source contributors have more concrete setup information than extension users. The root manifest requires Node.js `^20.0.0` and pins pnpm through the `packageManager` field. The Dockerfile uses Alpine, enables Corepack, installs workspace dependencies with the checked-in lockfile, and runs the general build for services other than `website`.
Its dependency installation command is:
pnpm i --frozen-lockfileUse Node.js 20 because that is the engine range declared by `package.json` and the Node.js 20 base images selected by the Dockerfile. The README does not provide a contributor setup tutorial beyond release commands, so it does not confirm which individual app must be selected before starting development.
The root build command is available for compiling the repository:
pnpm run buildThis performs a clean step before the TypeScript project build. The one-time test command runs Vitest without entering its interface:
pnpm run testThese commands cover compilation and automated tests, but the repository does not establish that they create or install a Discord application, load Activities, or package the browser extension for end users. Build output should therefore not be treated as a user-ready extension artifact without an additional documented packaging path.
PreMiD Activities versus the main extension source
The source boundary is more important here than the repository description suggests. The README says that the community-created Activities are fully open source and identifies `github.com/PreMiD/Activities` as their home. At the same time, it says that the PreMiD extension is not currently open source and attributes that choice to the ability of a small team to iterate quickly.
That statement requires care because the repository description calls this repository the source code of the PreMiD application. The visible files establish a substantial TypeScript monorepo with apps, Docker packaging, tests, and build configuration, but the README does not map every app to the extension, schema server, website, or another distributed component. It would be inaccurate to describe this repository as a complete, independently buildable open-source browser extension based only on that layout.
For contribution purposes, the documented paths are narrower than they first appear. New website detection belongs in Activities. Localization belongs in Crowdin. Bugs and feature requests go to `feedback.premid.app`. A developer who needs to audit or modify every line of the extension implementation cannot infer that this repository provides that completeness. Repository layout can demonstrate a monorepo, but it cannot override the README's explicit statement about extension source availability.
Release history, maintenance signals, and upgrade work
The repository is not archived, and its last push was on 2026-06-22. That recent code change does not by itself establish the maintenance status of the user-facing extension. The visible release list is older: `app-v2.2.0` was released on 2021-02-21, followed by `app-v2.1.4` on 2020-10-10 and `app-v2.1.3` on 2020-04-08. These app releases do not necessarily map one-to-one to extension updates.
For maintainers, the README documents a release command using `bumpp`. Its example first changes to the `schema-server` package:
cd apps/schema-serverIt then runs the release operation:
pnpm bumpp -y -t schema-server-vThe README says this changes the package version in `package.json`, creates a tag for the new version, and pushes the changes to the remote repository. That final behavior requires care because it affects more than the local checkout. The root package uses pnpm 9.5.0 and Node.js 20, so contributors also need to account for dependency and runtime compatibility when reproducing builds.
The `MPL-2.0` license applies to this repository under the stated project license. Activities are also described as open source, but their exact license is not stated in the README. Developers need to inspect each Activity's repository files before deciding what modifications or redistribution they permit. The README does not provide a compatibility policy, supported upgrade window, or migration guide for the extension.
Limitations and a more privacy-focused Discord setup
The clearest limitation is the uncertainty surrounding service coverage and extension permissions. The README advertises hundreds of sites and thousands of Activities, but it does not provide a complete compatibility list, explain Activity activation, or document whether every Activity has the same data-handling characteristics. Community contributions can expand coverage, yet the README does not explain their review process. A site being absent may mean that no matching Activity exists, but the repository cannot establish the cause for a particular failure.
PreMiD is also the wrong tool for someone who does not use Discord Rich Presence, wants manual control over every displayed status, or requires an extension whose complete implementation is available under an open-source license. Installing the extension because a site appears in the README does not establish what data that site's Activity collects or sends. The README says that Activities determine how websites show up in the profile, but it provides no Activity-level privacy analysis.
A real alternative is Discord's native Rich Presence support. Spotify is the clearest documented example because the README explicitly says it has native Discord support. The difference is architectural: native Discord support belongs to the service and Discord integration, while PreMiD relies on separate Activities to translate supported browser activity into Discord presence. Native support may be the simpler choice for a service where it is available. PreMiD becomes relevant when the desired site or browser game lacks the required native Discord integration.
Editorial conclusion
PreMiD is suitable for users who want supported websites and browser games represented in Discord and for developers who want to contribute Activities or translations. It is not a suitable adoption choice for an engineer seeking a fully open-source browser extension or a recently evidenced extension release cadence. Verify first whether the official extension, individual Activities, and this application repository satisfy your privacy and source-code requirements.
Frequently asked questions
How do I install PreMiD for browser use?
The README directs users to `https://premid.app` and says to add the browser extension from there. It does not document a manual extension-loading or source-build installation procedure for end users.
What does PreMiD display in Discord?
According to the README, PreMiD displays supported web activity such as videos, music, websites, and browser games through Discord Rich Presence. It gives YouTube, Netflix, Disney+, Twitch, and Spotify as examples, while noting that Spotify has native Discord support.
Is the PreMiD browser extension fully open source?
The README explicitly says the extension is not currently open source. It separately states that community-created Activities in the `PreMiD/Activities` repository are fully open source.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/premid-premid)Was this useful?