diff --git a/content/page/projects/index.md b/content/page/projects/index.md index 9e567a6..14a6802 100644 --- a/content/page/projects/index.md +++ b/content/page/projects/index.md @@ -36,16 +36,16 @@ _(Danh sách này được tạo tự động, sắp xếp theo tên repo)_ | [tiennm99/apart](https://github.com/tiennm99/apart) | Small personal website with photos and music for someone far away. | [https://tiennm99.github.io/apart/](https://tiennm99.github.io/apart/) | | [tiennm99/awesome-github-profile-readme](https://github.com/tiennm99/awesome-github-profile-readme) | 😎 A curated list of awesome GitHub Profile which updates in real time | [https://bit.ly/awesome-gh](https://bit.ly/awesome-gh) | | [tiennm99/beentogether](https://github.com/tiennm99/beentogether) | Been Together — a small website celebrating time spent together with music and photos. | [https://tiennm99.github.io/beentogether/](https://tiennm99.github.io/beentogether/) | -| [tiennm99/bonsai](https://github.com/tiennm99/bonsai) | A minimalist Hugo theme for link-in-bio pages, inspired by Linktree and Japanese bonsai aesthetics — small, curated, intentional. | [https://github.com/tiennm99/bonsai](https://github.com/tiennm99/bonsai) | +| [tiennm99/bonsai](https://github.com/tiennm99/bonsai) | Minimalist Hugo theme for link-in-bio pages — Linktree alternative with Japanese bonsai aesthetics. | [https://github.com/tiennm99/bonsai](https://github.com/tiennm99/bonsai) | | [tiennm99/cc4e-course](https://github.com/tiennm99/cc4e-course) | My hands-on practice repo following the Claude Code for Everyone (CC4E) course | [https://cc4e-course-lilac.vercel.app](https://cc4e-course-lilac.vercel.app) | | [tiennm99/cf-worker-telegram](https://github.com/tiennm99/cf-worker-telegram) | A Cloudflare Worker that acts as a transparent proxy for the Telegram Bot API. Useful for bypassing network restrictions or as a middleware for your Telegram bot. | [https://telegram.miti99.workers.dev](https://telegram.miti99.workers.dev) | -| [tiennm99/claude-status-webhook](https://github.com/tiennm99/claude-status-webhook) | Telegram bot that forwards Claude Status updates — instant alerts for incidents, component changes, and resolutions. Serverless on Cloudflare Workers. | [https://t.me/MiTiClaudeStatusBot](https://t.me/MiTiClaudeStatusBot) | -| [tiennm99/claudekit-skills](https://github.com/tiennm99/claudekit-skills) | All powerful skills of ClaudeKit.cc! | [https://ClaudeKit.cc](https://ClaudeKit.cc) | +| [tiennm99/claude-status-webhook](https://github.com/tiennm99/claude-status-webhook) | Telegram bot forwarding Claude Status updates — alerts for incidents and resolutions. Serverless on Cloudflare Workers. | [https://t.me/MiTiClaudeStatusBot](https://t.me/MiTiClaudeStatusBot) | | [tiennm99/cloudflare-proxy](https://github.com/tiennm99/cloudflare-proxy) | Inspired by tuanpb99/cf-worker-telegram, this Cloudflare Worker script has been adapted to act as a transparent proxy for any HTTP or HTTPS URL, powered by Cloudflare’s global edge network. | [https://cloudflare-proxy.miti99.workers.dev/](https://cloudflare-proxy.miti99.workers.dev/) | | [tiennm99/colordle](https://github.com/tiennm99/colordle) | | [https://tiennm99.github.io/colordle/](https://tiennm99.github.io/colordle/) | | [tiennm99/coolify](https://github.com/tiennm99/coolify) | An open-source, self-hostable PaaS alternative to Vercel, Heroku & Netlify that lets you easily deploy static sites, databases, full-stack applications and 280+ one-click services on your own servers. | [https://coolify.io](https://coolify.io) | | [tiennm99/cowork-complete-guide](https://github.com/tiennm99/cowork-complete-guide) | Practice repo for the Complete Guide to Claude Cowork course | [https://tiennm99.github.io/cowork-complete-guide/](https://tiennm99.github.io/cowork-complete-guide/) | | [tiennm99/cv](https://github.com/tiennm99/cv) | My personal CV written in Typst with RenderCV. | [https://tiennm99.github.io/cv/](https://tiennm99.github.io/cv/) | +| [tiennm99/cv-latex](https://github.com/tiennm99/cv-latex) | [Archived — see cv] My CV written in LaTeX. Replaced by cv (Typst). | [https://tiennm99.github.io/cv-latex/](https://tiennm99.github.io/cv-latex/) | | [tiennm99/demngayxaem](https://github.com/tiennm99/demngayxaem) | Đếm ngày xa em — a small relationship 'days-apart' counter website. | [https://tiennm99.github.io/demngayxaem/](https://tiennm99.github.io/demngayxaem/) | | [tiennm99/dental-visit](https://github.com/tiennm99/dental-visit) | Small website created for a dental visit appointment. | [https://tiennm99.github.io/dental-visit/](https://tiennm99.github.io/dental-visit/) | | [tiennm99/dobattu](https://github.com/tiennm99/dobattu) | Website đổi tên quán ăn Ốc Rốt thành Đô Bất Tử | [https://tiennm99.github.io/dobattu/](https://tiennm99.github.io/dobattu/) | @@ -65,7 +65,6 @@ _(Danh sách này được tạo tự động, sắp xếp theo tên repo)_ | [tiennm99/is-a-good-dev](https://github.com/tiennm99/is-a-good-dev) | Register for your is-a-good.dev domain! | [https://is-a-good.dev](https://is-a-good.dev) | | [tiennm99/ja-netfilter](https://github.com/tiennm99/ja-netfilter) | A javaagent framework | [https://ja-netfilter.com](https://ja-netfilter.com) | | [tiennm99/java-design-patterns](https://github.com/tiennm99/java-design-patterns) | Design patterns implemented in Java | [https://java-design-patterns.com](https://java-design-patterns.com) | -| [tiennm99/latex-cv](https://github.com/tiennm99/latex-cv) | My CV written in LaTeX | [https://tiennm99.github.io/latex-cv/](https://tiennm99.github.io/latex-cv/) | | [tiennm99/loldle](https://github.com/tiennm99/loldle) | LoLdle-style League of Legends daily champion guessing game — data auto-updated from my loldle-data repo | [https://tiennm99.github.io/loldle/](https://tiennm99.github.io/loldle/) | | [tiennm99/lombok](https://github.com/tiennm99/lombok) | Very spicy additions to the Java programming language. | [https://projectlombok.org/](https://projectlombok.org/) | | [tiennm99/loto](https://github.com/tiennm99/loto) | Lô Tô (Vietnamese lottery bingo) number board — Next.js web app | [https://tiennm99.github.io/loto/](https://tiennm99.github.io/loto/) | @@ -73,21 +72,20 @@ _(Danh sách này được tạo tự động, sắp xếp theo tên repo)_ | [tiennm99/mathmax](https://github.com/tiennm99/mathmax) | MathMax — Toán tương tác cho học sinh THCS Việt Nam (lớp 6-9). Static site. | [https://tiennm99.github.io/mathmax/](https://tiennm99.github.io/mathmax/) | | [tiennm99/miti-loki](https://github.com/tiennm99/miti-loki) | Cloudflare Worker that forwards log messages to Grafana Cloud Loki. | [https://miti-loki.miti99.workers.dev/](https://miti-loki.miti99.workers.dev/) | | [tiennm99/miti-telegram](https://github.com/tiennm99/miti-telegram) | Cloudflare Worker that forwards incoming messages to my Telegram account | [https://miti-telegram.miti99.workers.dev](https://miti-telegram.miti99.workers.dev) | -| [tiennm99/miti99](https://github.com/tiennm99/miti99) | Source code of my blog | [https://miti99.com](https://miti99.com) | -| [tiennm99/miti99bot](https://github.com/tiennm99/miti99bot) | Plug-n-play Telegram bot framework on Cloudflare Workers with grammY. Modules load via env var, three command visibility levels, KV storage behind a swappable interface. | [https://t.me/miti99bot](https://t.me/miti99bot) | -| [tiennm99/nntv](https://github.com/tiennm99/nntv) | Night Ninja: Twilight Voyage — turn-based stealth puzzle game where a ninja rabbit rescues the carrot princess from vegetable guards | [https://tiennm99.github.io/nntv/](https://tiennm99.github.io/nntv/) | +| [tiennm99/miti99](https://github.com/tiennm99/miti99) | Source of miti99.com — personal blog (VN/EN) built with Hugo + Stack theme. | [https://miti99.com](https://miti99.com) | +| [tiennm99/miti99bot-js](https://github.com/tiennm99/miti99bot-js) | [Archived — see miti99bot] Plug-n-play Telegram bot framework on Cloudflare Workers with grammY. Replaced by miti99bot (Go on AWS Lambda). | [https://t.me/miti99bot](https://t.me/miti99bot) | +| [tiennm99/nntv](https://github.com/tiennm99/nntv) | Night Ninja: Twilight Voyage — turn-based stealth puzzle. Ninja rabbit rescues carrot princess from veggie guards. | [https://tiennm99.github.io/nntv/](https://tiennm99.github.io/nntv/) | | [tiennm99/ocrot](https://github.com/tiennm99/ocrot) | Website mừng bạn Thân trở thành ông chủ quán ăn Ốc Rốt | [https://tiennm99.github.io/ocrot/](https://tiennm99.github.io/ocrot/) | | [tiennm99/open-domains](https://github.com/tiennm99/open-domains) | Free subdomains for personal sites, open-source projects, and more. | [https://open-domains.net](https://open-domains.net) | -| [tiennm99/penny-pincher-provider](https://github.com/tiennm99/penny-pincher-provider) | Curated list of affordable and free LLM API providers — Claude Code guest passes, coding plan subscriptions, and free-tier APIs for budget-conscious developers. | [https://tiennm99.github.io/penny-pincher-provider/](https://tiennm99.github.io/penny-pincher-provider/) | -| [tiennm99/phow2sim](https://github.com/tiennm99/phow2sim) | Vietnamese word similarity API. Tiny stateless FastAPI service over VinAI's PhoW2V pretrained vectors. Endpoints: /similarity /neighbors /vocab /random. Docker-ready building block for Vietnamese Semantle-style games, search re-rankers, writing tools. | [https://phow2sim.sg.miti99.com/](https://phow2sim.sg.miti99.com/) | +| [tiennm99/penny-pincher-provider](https://github.com/tiennm99/penny-pincher-provider) | Curated list of affordable + free LLM API providers — Claude Code passes, coding-plan subs, free-tier APIs. | [https://tiennm99.github.io/penny-pincher-provider/](https://tiennm99.github.io/penny-pincher-provider/) | | [tiennm99/pikachu](https://github.com/tiennm99/pikachu) | Pikachu tile-matching puzzle game — Phaser 3 + Next.js + TypeScript | [https://tiennm99.github.io/pikachu/](https://tiennm99.github.io/pikachu/) | -| [tiennm99/programming-fengshui](https://github.com/tiennm99/programming-fengshui) | Map programming languages to Ngũ Hành (Five Elements) by their GitHub Linguist colors. Dual-mode static site: classic (2018 toidicodedao image) and modern (HSL classifier focused on TIOBE Top 20). | [https://tiennm99.github.io/programming-fengshui/](https://tiennm99.github.io/programming-fengshui/) | +| [tiennm99/programming-fengshui](https://github.com/tiennm99/programming-fengshui) | Map programming languages to Ngũ Hành (Five Elements) by Linguist colors. Classic and HSL-classifier modes. | [https://tiennm99.github.io/programming-fengshui/](https://tiennm99.github.io/programming-fengshui/) | | [tiennm99/quycongdongvi](https://github.com/tiennm99/quycongdongvi) | Website của Quỹ cộng đồng Vị | [https://tiennm99.github.io/quycongdongvi/](https://tiennm99.github.io/quycongdongvi/) | -| [tiennm99/rplace](https://github.com/tiennm99/rplace) | Collaborative pixel art canvas inspired by Reddit r/place — Svelte 5 + Hono on Cloudflare Workers + Durable Object SQLite with real-time WebSocket sync | [https://rplace.miti99.workers.dev/](https://rplace.miti99.workers.dev/) | -| [tiennm99/rubik](https://github.com/tiennm99/rubik) | Interactive 3x3 Rubik's cube simulator in the browser — drag-to-rotate faces, scramble, timer, undo. Three.js + Svelte 5 + Vite. | [https://tiennm99.github.io/rubik/](https://tiennm99.github.io/rubik/) | +| [tiennm99/rplace](https://github.com/tiennm99/rplace) | Collaborative pixel-art canvas (r/place clone). Svelte 5 + Hono on Cloudflare Workers + Durable Object SQLite. | [https://rplace.miti99.workers.dev/](https://rplace.miti99.workers.dev/) | +| [tiennm99/rubik](https://github.com/tiennm99/rubik) | Interactive 3x3 Rubik's cube in the browser — drag faces, scramble, timer, undo. Three.js + Svelte 5 + Vite. | [https://tiennm99.github.io/rubik/](https://tiennm99.github.io/rubik/) | | [tiennm99/sokoban](https://github.com/tiennm99/sokoban) | From-scratch Sokoban puzzle game — Svelte 5 + Vite, all 155 Microban levels, undo, progress tracking | [https://tiennm99.github.io/sokoban/](https://tiennm99.github.io/sokoban/) | | [tiennm99/store-scraper-api](https://github.com/tiennm99/store-scraper-api) | HTTP wrapper hosting google-play-scraper and app-store-scraper — POST to /google/:method or /apple/:method | [https://store-scraper-api.vercel.app](https://store-scraper-api.vercel.app) | -| [tiennm99/store-scraper-bot](https://github.com/tiennm99/store-scraper-bot) | Telegram bot tracking Apple App Store + Google Play app updates. JavaScript implementation, ports legacy-store-scraper-bot (Java). | [https://store-scraper-bot.vercel.app](https://store-scraper-bot.vercel.app) | +| [tiennm99/store-scraper-bot](https://github.com/tiennm99/store-scraper-bot) | Telegram bot tracking Apple App Store + Google Play app updates. JS port of store-scraper-bot-java. | [https://store-scraper-bot.vercel.app](https://store-scraper-bot.vercel.app) | | [tiennm99/styleguide](https://github.com/tiennm99/styleguide) | Style guides for Google-originated open-source projects | [https://google.github.io/styleguide/](https://google.github.io/styleguide/) | | [tiennm99/taskbus](https://github.com/tiennm99/taskbus) | A task distribution, which assign tasks to specific executors | [https://tiennm99.github.io/post/2025/02/25/](https://tiennm99.github.io/post/2025/02/25/) | | [tiennm99/test-deeplink-sms](https://github.com/tiennm99/test-deeplink-sms) | Small test page for verifying SMS deeplink behavior on mobile devices. | [https://tiennm99.github.io/test-deeplink-sms/](https://tiennm99.github.io/test-deeplink-sms/) | @@ -103,7 +101,7 @@ _(Danh sách này được tạo tự động, sắp xếp theo tên repo)_ | [tiennm99/try-gstack](https://github.com/tiennm99/try-gstack) | Sandbox repo for trying out gstack — a collection of Claude Code slash-command skills for planning, review, deploys, design, and browser automation. | [https://tiennm99.github.io/try-gstack/](https://tiennm99.github.io/try-gstack/) | | [tiennm99/try-oh-my-claudecode](https://github.com/tiennm99/try-oh-my-claudecode) | OMC Neon Arena — a browser canvas arcade shooter built end-to-end by an oh-my-claudecode multi-agent team (engine, gameplay, UI, docs). | [https://tiennm99.github.io/try-oh-my-claudecode/](https://tiennm99.github.io/try-oh-my-claudecode/) | | [tiennm99/try-superpowers](https://github.com/tiennm99/try-superpowers) | Practice project exploring the Superpowers workflow to build a Pikachu tile-matching game | [https://tiennm99.github.io/try-superpowers/](https://tiennm99.github.io/try-superpowers/) | -| [tiennm99/tsuki](https://github.com/tiennm99/tsuki) | 月 — Hugo blog + personal portfolio theme. Vietnamese-first typography, View Transitions API, Pagefind search, Giscus comments. Companion to bonsai. | [https://tiennm99.github.io/tsuki](https://tiennm99.github.io/tsuki) | +| [tiennm99/tsuki](https://github.com/tiennm99/tsuki) | 月 — Hugo blog & portfolio theme. Vietnamese-first typography, View Transitions, Pagefind search, Giscus comments. | [https://tiennm99.github.io/tsuki/](https://tiennm99.github.io/tsuki/) | | [tiennm99/v0-exchange-rate-export](https://github.com/tiennm99/v0-exchange-rate-export) | | [https://v0-exchange-rate-export.vercel.app/](https://v0-exchange-rate-export.vercel.app/) | | [tiennm99/Valentine-Vue-Tailwind](https://github.com/tiennm99/Valentine-Vue-Tailwind) | Support @lds217 for Valentine 2025 | [https://tiennm99.github.io/Valentine-Vue-Tailwind/](https://tiennm99.github.io/Valentine-Vue-Tailwind/) | | [tiennm99/valentine2025](https://github.com/tiennm99/valentine2025) | A fun Valentine's Day 2025 website. | [https://tiennm99.github.io/valentine2025/](https://tiennm99.github.io/valentine2025/) | @@ -111,7 +109,6 @@ _(Danh sách này được tạo tự động, sắp xếp theo tên repo)_ | [tiennm99/vngeoguessr](https://github.com/tiennm99/vngeoguessr) | GeoGuessr clone for Vietnamese locations — Mapillary panoramas, Turf.js boundaries, Upstash REST leaderboards | [https://vngeoguessr.vercel.app](https://vngeoguessr.vercel.app) | | [tiennm99/webcv](https://github.com/tiennm99/webcv) | | [https://tiennm99.github.io/webcv/](https://tiennm99.github.io/webcv/) | | [tiennm99/webgl-heart](https://github.com/tiennm99/webgl-heart) | | [https://tiennm99.github.io/webgl-heart/](https://tiennm99.github.io/webgl-heart/) | -| [tiennm99/word2sim](https://github.com/tiennm99/word2sim) | Word2vec cosine similarity API. Tiny stateless FastAPI service over gensim pretrained vectors (GoogleNews 3M×300). Endpoints: /similarity /neighbors /vocab /random. Docker-ready building block for Semantle-style games, search re-rankers, writing tools. | [https://word2sim.sg.miti99.com/](https://word2sim.sg.miti99.com/) | | [tienthieusac/tienthieusac.github.io](https://github.com/tienthieusac/tienthieusac.github.io) | Tiên Thiếu Sắc | [https://tienthieusac.github.io/](https://tienthieusac.github.io/) | \ No newline at end of file