Design Minecraft rank tags and export a ready-to-use pack.
MyTag is a browser-based generator for Minecraft Java Edition rank tags, built for server owners and admins who want clean pixel-art prefixes without editing graphics by hand. Users type a rank name, customize the look, preview it live, and export both PNG assets and a resource pack font configuration that works in-game.
Server Owner Dimas, 28 - Runs a medium Java SMP with 50 to 150 concurrent players and wants polished rank prefixes that match the server theme. He needs fast results, no design tools, and a pack that installs correctly the first time.
Community Admin Rina, 34 - Manages rank roles, event titles, and cosmetic tags for a Discord-linked Minecraft community. She often iterates on visual styles and needs repeatable presets and batch output.
Junior Builder Nico, 19 - Helps moderate a small server and is comfortable with Minecraft but not with resource packs. He needs a simple workflow and immediate feedback when inputs are invalid.
Dimas runs a Minecraft server and needs a polished rank prefix for a new donor tier before the weekend event. He has tried making tags in image editors before, but the font spacing and pack setup always took longer than the design itself.
With MyTag, Dimas types the rank name, selects a rounded template, adds a gradient, and instantly sees the result in a chat mockup. When he exports, he gets both a crisp PNG and a ZIP resource pack with the font JSON already mapped to a private-use character.
He installs the pack, tests it in Java Edition, and adjusts the ascent slider once to align the tag perfectly. Instead of spending hours on manual setup, he finishes in minutes and can reuse the preset for future ranks, event titles, and staff roles.
Team & resourcing - Small team - 2 engineers, 1 designer, part-time product manager, with optional QA support during release.
Paste this into Cursor, Bolt, Lovable, or v0 to start building.
Build a static web app called MyTag for Minecraft Java Edition server owners to design pixel-art rank tags and export them as PNGs and resource packs. Core requirements: Create a responsive generator UI with these screens: landing page, generator, tutorial, and FAQ. The generator must support uppercase text input, character validation, template selection (square, rounded, bevel, outline), primary and secondary colors, gradient toggle and direction, border toggle and thickness, shadow toggle, built-in 7x7 icons, custom icon upload, live pixelated preview, chat and nametag mockups, single PNG download, batch list management, preset save/load using local storage, and ZIP resource pack export. Data model: TagSpec should include text, template, font mode normal or big, bgStart, bgEnd, bgGradient, gradientDir, textColor, shadowEnabled, borderEnabled, borderColor, borderThickness, icon or customIcon, plus ascent and height calibration fields for export. Store batch items, presets, and character allocation mappings locally using localStorage or IndexedDB. Allocate unique private-use Unicode characters starting from U+E000 and persist the mapping so exports stay consistent. Rendering and export: Use a client-side canvas pipeline in TypeScript to render crisp pixel-art PNGs with nearest-neighbor scaling and no blur. Implement measurement, template masks, layer rendering, and export to PNG. Generate a ZIP with pack.mcmeta and assets/minecraft/font/default.json or a custom namespace font file option, plus PNG textures under assets/minecraft/textures/sb/. Use JSZip for ZIP generation and produce valid bitmap font provider JSON for each exported tag. Tech stack: Use Vite, React, TypeScript, and Tailwind CSS. Keep it backend-free so it can be deployed statically on Vercel, Netlify, or Cloudflare Pages. Add lightweight analytics hooks if needed, but do not require accounts or payments. UX requirements: Make the app fast, clear, and mobile-friendly. Show inline validation, clear download states, a copy-to-clipboard button for JSON snippets, preset management, and a tutorial that explains how to install the resource pack in Minecraft Java, plus how to use it with LuckPerms, TAB, holograms, NPCs, and menus. Include ascent/height calibration guidance because vertical positioning may differ by server and version. Implementation notes: Structure the code with core rendering, font atlas, template definitions, icon handling, pack generation, sanitization, and UI components. Prioritize deterministic output, accessibility, and browser compatibility across Chrome, Firefox, Safari, and mobile.
# Planning Lengkap: Minecraft Rank Tags Generator(MYTAG) ## 1. Ringkasan **Tujuan:** website untuk membuat tag rank pixel-art (PNG) dan langsung menghasilkan resource pack font bitmap siap pakai di server Java Edition. **Target pengguna:** owner/admin server Minecraft yang ingin prefix rank, hologram, NPC, dan menu terlihat modern. **Di luar scope (awal):** Bedrock, akun/login, penyimpanan di server, pembayaran. ## 2. Alur pengguna 1. Buka halaman generator, ketik teks rank 2. Pilih template, warna, gradient, ikon, border, shadow 3. Lihat live preview (zoom pixelated) dan mockup chat 4. Tambah ke daftar (batch) atau langsung download PNG 5. Export ZIP resource pack lengkap 6. Baca tutorial pasang (resource pack → LuckPerms/TAB/hologram) ## 3. Fitur **Wajib (MVP)** - Input teks (otomatis uppercase), validasi karakter yang didukung - Template: Rounded, Square, Bevel, Outline - Warna utama + kedua, toggle gradient, arah gradient - Warna dan toggle border, toggle shadow teks - Download PNG - Snippet JSON + tombol copy **Lanjutan** - Batch list (tambah, edit, hapus, urutkan, duplikat) - Export ZIP berisi `pack.mcmeta`, `font/*.json`, dan semua PNG - Ikon 7x7 bawaan + upload ikon custom (otomatis di-resize nearest-neighbor) - Preset warna, simpan/muat konfigurasi (localStorage + export JSON) - Mockup chat dan nametag Minecraft - Pengaturan karakter unik: kode mulai, mode otomatis/manual - Pilihan ukuran: normal dan besar ## 4. Arsitektur teknis **Stack:** Vite + React (atau vanilla) + TypeScript + Tailwind + JSZip. Tanpa backend, jadi bisa di-host statis (Vercel/Netlify/Cloudflare Pages). **Struktur folder** ``` src/ core/ spec.ts // tipe + default TagSpec font/ // data pixel font sendiri + loader atlas measure.ts // hitung ukuran tag render.ts // gambar ke canvas (layer) templates.ts // bentuk: rounded/square/bevel/outline icons.ts // ikon bawaan (grid 7x7) pack/ charAllocator.ts // karakter unik PUA fontJson.ts // bikin provider bitmap zip.ts // pack.mcmeta + assets + zip sanitize.ts // slug nama file ui/ // komponen, halaman, state public/ // aset landing ``` **Model data (`TagSpec`)** ``` text, template, font(normal|big), bgStart, bgEnd, bgGradient, gradientDir, textColor, shadowEnabled, borderEnabled, borderColor, borderThickness, icon | customIcon ``` ## 5. Pipeline render 1. **spec** → gabung dengan default 2. **measure** → hitung lebar/tinggi dari: ikon + padding + panjang teks (letterWidth, spacing) + border 3. **render** per layer, berurutan: plate (solid/gradient) → ikon → teks (glyph bitmap) → shadow → border → pemangkasan sudut sesuai template 4. **preview** → canvas ditampilkan dengan `image-rendering: pixelated` dan scale integer (x4 / x8) 5. **export** → `canvas.toBlob('image/png')` **Pixel font:** buat sendiri set glyph (misal 5x7, A–Z, 0–9, simbol umum) sebagai array bit. Saat load, generate atlas ke canvas kecil per karakter, versi normal dan versi shadow. Ini bagian orisinal yang harus kamu miliki; jangan pakai atlas dari situs lain. **Template:** definisikan sebagai mask sudut (pixel yang dibuang) plus aturan border, jadi mudah menambah bentuk baru. ## 6. Sistem resource pack **Alokasi karakter:** counter mulai `U+E000` (rentang Private Use sampai `U+F8FF`), `String.fromCodePoint(n)`. Di JSON ditulis escape `\ue000`. Simpan mapping `slug → karakter` di state/localStorage supaya konsisten antar sesi. Beri opsi offset agar tidak bentrok dengan pack lain. **Provider per tag** ```json { "type": "bitmap", "file": "minecraft:sb/<slug>.png", "ascent": 8, "height": 9, "chars": ["\ue000"] } ``` - `height` default = tinggi PNG hasil export (1:1), `ascent` default = height − 1, dengan slider penyesuaian (karena posisi vertikal perlu dicek di game) - Nama file: lowercase, hanya `a-z 0-9 _ - .`; spasi dan `#` diganti, cegah duplikat - Teks di game sebaiknya putih (`&f`) agar warna PNG tidak tercampur **Struktur ZIP** ``` pack.mcmeta // pack_format sesuai versi target assets/minecraft/font/default.json // {"providers":[ ... ]} assets/minecraft/textures/sb/*.png ``` Tambahkan opsi: pakai font custom (namespace sendiri) agar tidak menimpa `default.json` milik pack lain. Nilai `pack_format` berbeda tiap versi Minecraft, jadi sediakan dropdown versi target dan cek ke dokumentasi resmi. ## 7. Halaman dan UI - **Landing:** hero, 3 kartu fitur, CTA - **Generator:** panel kontrol, preview, daftar batch, snippet, download - **Tutorial:** pasang pack, pakai di LuckPerms (prefix), TAB, hologram/NPC/menu, troubleshooting - **FAQ/Support** - Desain visual sendiri (tema, warna, tipografi); ambil konsep saja dari referensi, jangan meniru tampilannya ## 8. Roadmap | Fase | Isi | Hasil | |---|---|---| | 1 | Setup project, pixel font + atlas, measure, render, template Square, solid color | Teks jadi PNG, download | | 2 | Gradient, border, shadow, template Rounded/Bevel/Outline | Variasi tampilan lengkap | | 3 | Alokator karakter, snippet JSON, sanitize nama | JSON siap copy | | 4 | Batch list, export ZIP | Resource pack utuh | | 5 | Ikon, upload ikon custom, preset, simpan config | Kustomisasi penuh | | 6 | Mockup chat, landing, tutorial, FAQ, responsive | Siap rilis | | 7 | Testing di game, deploy, analytics ringan | Versi publik | ## 9. Testing - **Unit:** `measure` (lebar/tinggi tiap kombinasi), alokator karakter (tidak duplikat), sanitize, JSON valid - **Visual:** snapshot PNG untuk beberapa spec - **Uji nyata di game (wajib):** pasang pack di Java 1.21.x, cek chat, tab list, hologram, menu; sesuaikan `ascent/height` - **Browser:** Chrome, Firefox, Safari, mobile ## 10. Risiko dan mitigasi - **Posisi vertikal tag meleset** → slider ascent + panduan kalibrasi - **Bentrok karakter unik antar pack** → offset kode dan custom font namespace - **Pixel font tidak cukup lengkap** (simbol/karakter non-latin) → batasi set karakter, tampilkan peringatan - **Pelanggaran hak cipta** → font, ikon, template, dan UI dibuat sendiri atau berlisensi bebas ## 11. Kriteria selesai (MVP) - Tag dengan teks, warna, dan gradient bisa dibuat dan di-download - JSON snippet valid dan karakternya unik - ZIP bisa dipasang di Minecraft Java dan semua tag tampil benar di chat - Berjalan lancar di desktop dan mobile
Design by The Resonance | Powered by GPC – The AI Transformation Company