Problem ve ürün fikri
Çevrimiçi piyano uygulamalarının çoğu ya tek kişilik bir oyuncak ya da yalnızca bir öğrenme aracı. Müzik tutkunlarının arkadaşlarıyla aynı klavyede, aynı anda çalabileceği, sohbet edip birlikte öğrenebileceği sosyal bir alan eksikti.
Social Piano bu boşluğu dolduruyor: kurulum gerektirmeden tarayıcıda açılan, misafir olarak hemen başlanabilen, Google hesabıyla profil, arkadaş ve ilerlemenin korunduğu çok oyunculu bir piyano platformu.
Rolüm
Ürünün kurucusu ve tek geliştiricisi olarak ürün tasarımı, ses motoru, gerçek zamanlı oyun sunucusu, veritabanı şeması ve güvenlik politikaları, Android paketleme, SEO ve mağaza hazırlığı dahil tüm süreci uçtan uca yürüttüm. Planlama, refactoring, test ve dokümantasyonda AI kodlama ajanlarıyla çalıştım.
Temel ürün kararları
- Canlı jam odaları: Odadaki herkesin notası anında duyulur; oda sahipliği, bağlantı kopmalarına karşı kısa bir süre ayrılan sahiplik ve tepki emojileriyle desteklenir.
- Üç mod: Piyano Stüdyosu (kayıt, MIDI dışa aktarma, ses paketleri), Birlikte Çal (gerçek zamanlı oda) ve Piyano Öğren (şelale notalar, bekleme modu, bölüm döngüsü, tempo ayarı ve skor tablosu).
- Gerçekçi ses: Web Audio üzerinde polifonik, örneklenmiş kuyruklu piyano sesi; sustain pedalı, reverb ve velocity desteği.
- Gerçek klavye desteği: Web MIDI ile fiziksel MIDI klavye bağlama, sıcak takma ve pedal eşikleri; MIDI dosyası içe ve dışa aktarma.
- Topluluk: Oda sohbeti, özel mesaj, arkadaşlık, klanlar, rozetler, günlük ödüller ve kozmetik mağazası.
- Güvenli topluluk: Raporlama ve engelleme, moderatör incelemesi, küfür filtresi, sunucu tarafında nota ve mesaj hız sınırları.
- 17 dil ve SEO: Arayüz 17 dilde; şarkı tanıtım sayfaları uygulamayı doğrudan ilgili şarkıyla açan derin bağlantılar taşır.
Mimari yaklaşım
İstemci React ve Vite ile geliştirilen, PWA olarak kurulabilen bir uygulama ve Vercel üzerinden sunuluyor. Aynı kod tabanı Capacitor ile Android uygulamasına paketleniyor. Gerçek zamanlı katman, Google Cloud Run üzerinde çalışan Node.js WebSocket sunucusu: odaları, nota yayınını, sohbeti ve hız sınırlarını yönetiyor. Kimlik doğrulama, profiller ve kalıcı veriler satır düzeyi güvenlik politikalarıyla korunan Supabase (PostgreSQL) üzerinde tutuluyor.
- React + Web AudioWeb, PWA ve Android
- WebSocket Oda SunucusuNode.js · Cloud Run
- SupabaseKimlik, profil ve RLS
Sonuç
Social Piano; gerçek zamanlı ağ programlama, tarayıcıda düşük gecikmeli ses, çok dilli ürün yayını ve topluluk güvenliğini tek bir canlı üründe birleştiriyor. Canlı uygulamayı açıp misafir olarak hemen çalmaya başlayabilirsiniz.