Skip to content

mntone/miruzo-web

Repository files navigation

miruzo-web

License under GPLv3 Made with Vite Written by TypeScript

miruzo-web is a Solid.js single-page application for browsing the miruzo photo archive hosted by the companion miruzo-core backend. It provides a responsive, touch-friendly masonry layout, infinite scrolling for large collections, and a localized UI that can switch between English and Japanese.

✨ Features

  • Adaptive layout that automatically switches between grid and masonry modes to show photos at the sharpest available resolution.
  • Infinite scrolling with batched prefetching to keep navigation smooth on both desktop and mobile.
  • Solid.js + TypeScript architecture with strict typing, making it easy to add new components or integrate with other Miruzo services.
  • Full i18n support out of the box (English and Japanese translations ship by default).

🚀 Setup

Follow these steps to run miruzo-web locally.

Requirements

  • Node.js 25 or newer (use the latest stable version listed in .nvmrc; this project tracks current stable releases rather than LTS)
  • Git

Steps

  1. Clone the repository, and install dependencies
    git clone https://github.com/mntone/miruzo-web.git && cd miruzo-web && npm install
  2. Start the development server
    Run npm run dev and open the provided URL in your browser.

Common commands

  • npm run build: Runs type checking and builds the app.
  • npm run preview: Serves the production build locally.
  • npm run test: Runs type check, lint, tests, and build to verify changes.

🖱️ Usage

  1. Launch the dev server (npm run dev) or open the hosted build in your browser.
  2. Make sure the miruzo backend (miruzo-core) is running and that the frontend can reach its REST API endpoint (configure via .env* if needed).
  3. Browse, filter, and load more photos with the on-screen controls. Favorite or score actions will sync through the configured API.

⚙️ Configuration

  • Backend endpoint: set VITE_API_BASE_URL (and other variables documented in .env.example) in .env.development and .env.production so the frontend can reach your miruzo-core instance. The app is bundled with Vite, so VITE_* variables are exposed at build time.

🌐 Browser support

  • Latest stable release of Chrome, Edge, or Firefox
  • Safari (latest stable) on macOS and iOS
  • Previous stable release of the same browsers (n-1)

📜 License

This project is licensed under the terms of the GNU General Public License v3.0 (GPLv3). See the LICENSE file for full details.

You are free to use, modify, and distribute this software under the terms of the GPL, provided that any derivative work is also distributed under the same license.

🤝 Contributing

Interested in contributing? See CONTRIBUTING.md.

🔗 Related Projects

  • miruzo-core — FastAPI/SQLModel backend
  • gataku — Source asset repository used by the importer

👤 Contact

miruzo-core is developed and maintained by mntone.

About

Solid SPA for browsing the miruzo photo archive, powered by miruzo-core

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published