האנשים שסביבי מחזיקים בטלפון כשר, ולשאלה ״מתי מגיע האוטובוס?״ פשוט לא הייתה להם תשובה. בניתי שירות ששולחים אליו מספר תחנה בהודעת SMS ומקבלים בחזרה זמני הגעה בזמן אמת — ומאחוריו מערכת עסקית שלמה: הרשמה, נקודות, סליקה בכרטיס אשראי וחשבונית מס אוטומטית. זה הסיפור של איך זה נבנה, מקצה לקצה, על ידי אדם אחד.
למה זה קיים בכלל
הקהל שסביבי — כולל בני משפחה — משתמש בטלפון כשר. מכשיר שיודע לחייג ולשלוח הודעות, וזהו. לשאלה הכי יומיומית שיש, ״מתי מגיע האוטובוס?״, לא הייתה להם שום דרך לקבל תשובה. עומדים בתחנה, ומחכים.
אבל המידע עצמו לא חסר. משרד התחבורה מפרסם את זמני ההגעה בזמן אמת, באופן ציבורי — זה בדיוק המקור שמזין את השלטים האלקטרוניים בתחנות, ועליו יושבות כל אפליקציות התחבורה. מה שחסר לא היה המידע אלא ערוץ הגישה: כל פתרון קיים מניח סמארטפון עם אינטרנט.
אז בניתי את הערוץ. שולחים הודעת SMS למספר 055-967-3964, או מחייגים לקו הקולי 077-226-4339, ומקבלים את הזמנים. בלי אפליקציה, בלי אינטרנט, בלי מכשיר חכם.
מה המוצר עושה

עמוד הבית — שולחים מספר תחנה בסמס, מקבלים בחזרה את זמני ההגעה.
על כל שלט תחנה בישראל מודפס מספר תחנה. זה כל מה שצריך לדעת: שולחים את המספר בהודעת SMS רגילה, ובתשובה חוזרת הודעה עם הקווים הצפויים להגיע לתחנה ובעוד כמה דקות כל אחד מהם מגיע. הנתונים נשלפים מהזנת הזמן־אמת של משרד התחבורה — אותו מקור בדיוק שמזין את השלטים בתחנות. כשאין נתוני זמן אמת, המערכת נופלת חזרה ללוח הזמנים המתוכנן ומסמנת את זה במפורש, כדי שאיש לא יבלבל בין תחזית הגעה אמיתית לבין לוז.
אין טופס הרשמה ואין מה להתקין. ההודעה הראשונה היא ההרשמה, והיא מזכה ב־20 נקודות מתנה.
על אותו מספר יושבות שש בקשות שונות:
- זמני הגעה בתחנה — שולחים את מספר התחנה.
- סינון לקו אחד — מוסיפים את מספר הקו אחרי מספר התחנה.
- מסלול בתחבורה ציבורית בין שתי כתובות.
- מסלול בין שתי תחנות, לפי מספרים.
- הוראות הליכה.
- מסלול ברכב.
ולמי שאין לו SMS בכלל יש קו קולי. מחייגים, מקישים את מספר התחנה, ושומעים את הזמנים מוקראים. אפשר גם לבקש מסלול ולומר את הכתובות בקול, והמערכת מזהה אותן. את כל תפריט ה־IVR ציירתי כעץ אחד בעמוד אחד שאפשר להדפיס ולתלות ליד הטלפון — כי זה בדיוק הקהל שלא יגלה תפריט קולי בניסוי וטעייה.

מדריך הקו הקולי — כל תפריט ה־IVR כעץ אחד, מוכן להדפסה.
ודבר אחד שהוא לא פיצ׳ר אלא החלטה: בשבת ובחגים השירות שותק לחלוטין. לא יוצאת אף הודעה, לפי זמני הדלקת נרות והבדלה אמיתיים.
המנוע העסקי: נקודות, Morning ו־Grow
כאן מתחיל החלק שבגללו כתבתי את המאמר הזה. שירות שעולה כסף על כל הודעה יוצאת חייב מודל תשלום — ומודל תשלום גורר אחריו הרשמה, יתרה, סליקה וחשבונית. כל זה נבנה כחלק מהמוצר.
היחידה היא נקודה. נקודה אחת שווה מקטע SMS יוצא אחד ועולה 5 אגורות. הודעה בעברית באורך של עד 70 תווים היא מקטע אחד, ולכן תשובת זמני הגעה טיפוסית עולה נקודה עד שתיים, ותשובת מסלול מלאה שתיים עד ארבע. בקו הקולי: הקראת זמני הגעה עולה נקודה, מסלול בין שתי תחנות שתי נקודות, ומסלול לפי כתובות שנאמרות בקול שלוש נקודות.

עמוד התמחור — נקודה אחת = 5 אגורות = הודעת SMS אחת.
החבילות, כולל מע״מ: 25 ₪ ל־500 נקודות, 50 ₪ ל־1000 נקודות, 100 ₪ ל־2200 נקודות. ככל שהחבילה גדולה יותר, מחיר הנקודה יורד. הניסוח באתר עצמו קצר משלי: ״משלמים לפי שימוש, בלי מנוי חודשי״.

חבילות הטעינה, ומתחתן טבלת העלויות של הקו הקולי.
לצד ערוץ ה־SMS יש פורטל. הכניסה אליו היא ללא סיסמה — מקישים מספר טלפון, מקבלים קוד ב־SMS ונכנסים. בפנים יש יתרת נקודות, היסטוריית שימוש מלאה, טעינה והורדת חשבוניות.

לוח הבקרה של המשתמש — יתרת נקודות והיסטוריית שימוש.
וכך עובד התשלום עצמו. הרכישה הראשונה פותחת את עמוד התשלום המאובטח של Morning (חשבונית ירוקה) עם סליקת Grow — כלומר פרטי הכרטיס מוקלדים אצל ספק הסליקה ולא נוגעים באפליקציה שלי בשום שלב. הכרטיס נשמר אצל ספק הסליקה בלבד, כך שטעינה חוזרת היא קליק אחד מתוך המערכת. ברגע שהתשלום מאושר, Morning קורא ל־webhook חתום בצד הפורטל, והנקודות נזקפות אוטומטית ליתרה. במקביל מופקת חשבונית מס/קבלה ונשלחת במייל על כל רכישה, בלי שאני נוגע בזה. וכשהיתרה יורדת ל־10 נקודות או פחות, יוצאת הודעת התראה — כדי שאף אחד לא יגלה בתחנה שנגמרו לו הנקודות.

עמוד הטעינה — בוחרים חבילה, משלמים בעמוד המאובטח של Morning, והנקודות נזקפות אוטומטית.
איך זה נבנה
המערכת היא שני חלקים. הפורטל בנוי ב־Next.js 16 עם React 19 ו־TypeScript, מול Neon Postgres דרך Drizzle, ורץ על Vercel; התשלומים והחשבוניות עוברים ב־API של Morning. מנוע ההודעות הוא שירות Node.js שרץ על Fly.io: הוא מקבל את ההודעות דרך שער SMS ישראלי (019), מפעיל את הקו הקולי דרך ימות המשיח, קורא את הזנת הזמן־אמת של משרד התחבורה, נשען על לוח הזמנים הציבורי (GTFS) כגיבוי ומשתמש ב־API הניווט של Google להוראות הדרך. הכול נבנה מקצה לקצה על ידי אדם אחד בעזרת AI — Claude Code.
שלוש החלטות שוות אזכור, גם למי שלא מפתח. הראשונה: ה־webhook שמאשר תשלום הוא חתום, כך שהמערכת לא זוקפת נקודות על סמך פנייה שמישהו המציא. השנייה: זקיפת הנקודות היא אידמפוטנטית — אם אותו אישור תשלום מגיע פעמיים, הנקודות נזקפות פעם אחת בלבד, ואילוץ במסד הנתונים מבטיח שלחיצה כפולה על כפתור הרכישה לא תיצור חיוב כפול. השלישית: בנתיב ההודעות אין שום מודל AI — כל הודעה נכנסת נבדקת מול כללים קבועים מראש, לא מתפרשת על ידי AI. הודעה שמגיעה מאדם זר היא קלט לא אמין, ואם אין AI שקורא אותה, אין למי לרמות.
מה זה אומר עליכם
אם יש לכם רעיון לשירות דיגיטלי בתשלום, שווה לראות מה בעצם צריך לבנות כדי שהוא יעבוד באמת:
- המוצר עצמו — הדבר שהלקוח בא בשבילו.
- זהות וכניסה — מי המשתמש, ואיך הוא נכנס בלי שתנהלו סיסמאות.
- מודל תמחור מדיד — נקודות, יחידות או כל מונה אחר שאפשר להסביר במשפט.
- סליקה בכרטיס אשראי — בעמוד מאובטח של ספק, לא אצלכם.
- חשבוניות אוטומטיות — כדי שהעסק יהיה תקין מהיום הראשון.
- מסך ניהול ומעקב — יתרה, היסטוריה ותמיכה בלקוח.
לפני כמה שנים הרשימה הזו הייתה פרויקט של צוות ושל חודשים. היום אפשר לבנות אותה במלואה בזמן ובתקציב של עסק קטן, ולהשיק מוצר אמיתי שגובה כסף. בדיוק באותה שיטה נבנה גם תמליל, שירות התמלול העברי שלי — אותו שלד עסקי, מוצר אחר לגמרי.
רוצים מוצר כזה משלכם?
אם יש לכם רעיון שנתקע בשאלה ״מי בכלל יבנה את זה״, זו בדיוק העבודה שאני עושה: פיתוח תוכנה מותאם אישית מהרעיון ועד מערכת חיה שגובה תשלום. אפשר לראות את השירות הזה עובד בכתובת transit-portal.x-technologies.co.il, ואם תרצו לדבר על הרעיון שלכם — עמוד יצירת הקשר פתוח, או פשוט שלחו לי הודעה בוואטסאפ. שיחה ראשונה היא בדרך כלל מספיקה כדי לדעת אם זה בכלל שווה לבנות.