Skip to content

Repository files navigation

Kashan LUG - کاشان‌لاگ

Website of KashanLUG (Kashan Linux User Group) - a community dedicated to open-source, Linux, and free-software culture in Kashan, Iran.

Live site:basemax.github.io/KashanLug | GitHub:baseMax/KashanLug


About

KashanLUG is a non-profit technical community that organises in-person events, talks, and workshops around Linux, open-source software, and tech culture. This repository contains the full source code of the community website, built as a fast, fully-Persian (RTL) single-page application.

The first event - «دانش بی‌مرز» (Knowledge Without Borders) - takes place on Friday, 18 Mehr 1405 at the University of Kashan (تالار فردوسی), Kashan, Isfahan Province.


Tech Stack

LayerTechnology
FrameworkMithril.js 2.x (TSX / JSX)
LanguageTypeScript 6
BuildVite 8
StylingTailwind CSS 4 (via @tailwindcss/vite)
FontVazirmatn 5 (Persian / Latin)
Routingm.route with hash prefix (#)

No PostCSS, no React, no heavy runtime — Mithril renders the whole app with a ~10 kB gzipped core.


Features

  • Full RTL layout with Persian locale (Farsi digits, Jalali dates)
  • Light / Dark theme toggle — persisted in localStorage, toggled via data-theme attribute
  • Atomic design component system under src/components/ui/
  • Fully typed with strict TypeScript; zero any escapes in production code
  • @/ path aliases throughout — no ../../ relative imports
  • Centralized site config in src/data/site.ts (name, city, social handles, etc.)
  • Dynamic hero stats derived from actual data (speaker count, team size, event duration)
  • Accessible custom <Select> dropdown with outside-click detection
  • OTP authentication flow (/auth)
  • Countdown timer to the event
  • Responsive navigation with mobile hamburger menu
  • Orange branded header — transparent over the home hero, solid gradient on all inner pages

Project Structure

src/
├── components/ # Shared UI components
│ └── ui/ # Atomic design primitives
├── data/ # All content data (single source of truth)
│ ├── site.ts # Org info, city, social links
│ ├── event.ts # Event info, speakers, schedule, sponsors
│ ├── team.ts # Executive team members
│ ├── about.ts # About page stats & values
│ ├── blog.ts # Blog posts
│ ├── contact.ts # Contact items (reads from site.ts)
│ └── charter.ts # Community charter
├── lib/ # Utilities (utils.ts, theme.ts)
├── pages/ # Page-level components
└── sections/ # Page sections (home/, event/, about/, …)

Routes

PathPage
/Home
/eventEvent — «دانش بی‌مرز»
/scheduleSchedule
/teamExecutive Team
/blogBlog list
/blog/:slugBlog post
/aboutAbout KashanLUG
/contactContact
/joinJoin / Volunteer
/charterCommunity Charter
/authLogin / Register (OTP)
/resumeResume
/:404...Not Found

Getting Started

Prerequisites: Node.js ≥ 20, npm ≥ 10

# Clone
git clone https://github.com/baseMax/KashanLug.git
cd KashanLug
# Install dependencies
npm install
# Start dev server (http://localhost:5173)
npm run dev
# Type-check
npm run type-check
# Production build → dist/
npm run build
# Preview production build
npm run preview

License

Copyright © 2026 Seyyed Ali Mohammadiyeh (MAX BASE)

About

New website of KashanLUG (Kashan Linux User Group) - a community dedicated to open-source, Linux, and free-software culture in Kashan, Iran.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages