CleanFrame
삼성 The Frame용 개인 홈 화면, 포크와 맞춤을 위한 시작점
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Web app aggregating events happening in Lebanon. Browse by category and date publicly; sign in via social login (Google / Facebook / Apple) to see full details, save favorites, get reminders, and add events to Google Calendar / iCal.
Stack: Next.js 16 (App Router, RSC) · TypeScript · Supabase (Postgres + Auth + RLS) · Tailwind CSS v4 · next-intl (en/ar/fr, RTL) · Mapbox · ics.
npm install
cp .env.local.example .env.local
# fill in Supabase + Mapbox + Resend keys
npm run dev
Open http://localhost:3000 — the proxy will redirect to /en.
supabase/migrations/0001_init.sql (then 0002, 0003) into the SQL editor, or run supabase db push.<your-site>/auth/callback..env.local.Get a public token at https://account.mapbox.com/ and set NEXT_PUBLIC_MAPBOX_TOKEN.
/[locale]/ — home (featured events)./[locale]/events — public browse with category chips + date presets + governorate + search./[locale]/events/[slug] — details; auth-gated./[locale]/map — Mapbox view with clustered pins./[locale]/favorites — saved events./[locale]/submit — user submission form (admin approves)./[locale]/become-a-promoter, /[locale]/promoter, /[locale]/promoter/new-event — promoter application + dashboard + event submission./[locale]/admin — admin queue (role-gated)./auth/callback — Supabase OAuth callback./api/ics/[eventId] — downloads .ics./api/calendar/google/[eventId] — 302 to Google Calendar template.src/
app/
[locale]/ # all localized routes
auth/callback/ # OAuth return URL
api/ # ICS + Google Calendar redirects + ingestion
components/ # UI + feature components
i18n/ # next-intl routing + navigation helpers
lib/
supabase/ # client / server / admin / proxy session refresh
calendar.ts # Google Calendar URL + ICS builder
queries.ts # server-side event queries
utils.ts # cn, date/price formatters, locale picker
messages/ # en | ar | fr
proxy.ts # Next 16 proxy: next-intl + Supabase session refresh
supabase/
migrations/ # 0001_init, 0002_add_promoter_role, 0003_promoter_insert_policies
functions/ # Edge functions (ingestion, reminders) — TODO
Forked from the QuePasa UAE app and adapted for Lebanon: governorates replace emirates, currency is USD, timezone is Asia/Beirut, languages are English/Arabic/French. Auth gating, browse/filter UI, RTL, event detail with media carousel, calendar export, submission flow, promoter subscription system, and admin approval queue all carried over from the UAE app.
TODO before launch: wire the social-auth providers in Supabase Studio for this project specifically, seed real Lebanon events, build the send-reminders cron function, review French/Arabic translation coverage, and run an accessibility audit.