Official website and developer portal for Veltis, the optimization-focused Minecraft server software developed by the VeltisMC organization.
"Lift the code. Drop the optimization."
- Developer-Centric Visual Identity: Deep charcoal/near-black theme with electric violet accents, geometric typography, and zero SaaS fluff.
- PaperMC-Inspired Downloads: Compact build browser with Minecraft version tabs, a pre-alpha/alpha/beta/release channel toggle, direct JAR downloads, and SHA-256 copy action.
- Release Metadata Sync: A
veltis-releaserepository event fromVeltisMC/Veltisvalidates the published build's metadata and stages it as a pull request intopublic/releases/<channel>.json; the download page reads that first, falls back to the GitHub releases API, and never fabricates a build when neither is available. - Searchable Documentation: Complete multi-section documentation covering Getting Started, Server Administration, System Architecture, and Migration.
- Global Command Palette (
Ctrl+K/⌘K): Instant client-side search across documentation articles, subheadings, and site pages. - Developer Portal: Proposed native capability-based plugin API specification, multithreading guidelines, and Gradle/Maven setup examples.
- Community Hub: Contribution instructions, changelog timeline, and GPL-3.0 license statement.
- Vercel-Ready Deployment: Client-side SPA routing (
vercel.json), semantic markup, Open Graph tags,robots.txt, andsitemap.xml.
- Framework: React 19 + TypeScript
- Bundler: Vite 8
- Styling: Tailwind CSS v4 (
@tailwindcss/vite) - Icons: Lucide React
- Routing: React Router DOM v7
- Code Highlighting: Prism React Renderer
The server repository builds and publishes each release, then sends this site a
veltis-release repository event. .github/workflows/sync-release.yml validates
the payload, stages public/releases/<channel>.json (latest build plus capped
history for that channel only) on a dedicated release-metadata/<channel>
branch, opens a pull request against main, and lets the protected-branch rules
decide when the metadata lands. Vercel deploys a preview for the PR and the
production site on merge.
At read time the download page prefers those files, falls back to the GitHub releases API, and finally shows an honest "no published releases" state. It never invents a version, a filename, or a download URL.
mainmust be a protected branch with a required status check namedCI(from.github/workflows/website-ci.yml) and, if desired, a required review. The sync workflow never disables or bypasses those rules.- The
release-metadata/*branch prefix must be writable by the workflow'sGITHUB_TOKEN(it is not itself protected). - The server repository must be granted a token that can send
repository_dispatchto this repository. Only the sender needs a secret; this workflow runs entirely on its ownGITHUB_TOKEN, with no repository secret. - The metadata commit is signed by GitHub through the GraphQL
createCommitOnBranchmutation, so it shows as Verified without GPG. - No repository files under
public/releases/should be edited by hand.
Ensure you have Node.js 20+ installed.
# Install dependencies
npm install
# Start Vite development server
npm run devVisit http://localhost:5173 in your browser.
# Type check and build production bundle
npm run build
# Run linter
npm run lint
# Preview the production build locally
npm run previewThis repository is pre-configured for seamless deployment to Vercel:
- Import the repository on Vercel.
- Framework Preset: Vite.
- Build Command:
npm run build. - Output Directory:
dist. - Deploy! Client-side routing is handled via
vercel.json.
Site metadata, external links, and version defaults are centrally maintained in src/config/site.ts:
export const siteConfig = {
name: 'Veltis',
url: 'https://www.veltismc.org',
github: 'https://github.com/VeltisMC/Veltis',
discord: 'https://discord.com/invite/239MkjVmZw',
defaultMinecraftVersion: '26.3',
javaRequirement: 'Java 25+',
...
}Licensed under the GNU General Public License v3.0 (GPL-3.0).