
Batyevka.NET - Internet Service Provider Platform
When "check if we cover your address" needs to actually work.
A Ukrainian ISP needed more than a brochure site. They needed a tariff calculator, address coverage checker, SMS verification, and Telegram notifications. Built it all in Next.js.
Key Metrics
The Problem
ISP websites are usually terrible. "Check coverage" buttons that lead to call centers. Pricing buried in PDFs. No way to verify phone numbers. Batyevka needed something that actually helps customers self-serve.
The Solution
A real web app, not a marketing site. Enter your address—get instant coverage confirmation. Configure your plan with live pricing. Verify your phone via SMS. Request a callback that actually creates a ticket in their system.
Key Features
Live Coverage Check
Type your address, know instantly if G-PON or XGS-PON reaches your building.
Interactive Tariff Calculator
Slider for speed, toggle for TV, checkbox for static IP. Price updates in real-time.
SMS Verification
No fake phone numbers. Every callback request is verified before hitting the support queue.
Telegram Notifications
New lead? Support team gets a Telegram ping. No more checking dashboards hourly.
Address Admin Panel
Support staff can add streets, mark buildings as serviceable. No developer needed.
Ukrainian Localization
Not translated—written for Ukrainian users. Proper address formats, local conventions.
Before & After
Technology Stack
Frontend
Backend
Database
Integrations
Technical Highlights
ServDesk Integration
Callback requests create tickets automatically. No copy-pasting between systems.
Real-time Price Engine
Complex pricing rules (speed tiers × TV packages × connection type) calculated client-side.
Address Autocomplete
Fuzzy matching on street names. Handles Ukrainian address quirks.
Duplicate Prevention
Same phone number can't spam requests. Rate limiting with Redis.
Challenges Overcome
Ukrainian address formatting is inconsistent
Built a fuzzy matcher that handles "вул.", "вулиця", "ул." and common typos.
G-PON vs XGS-PON have different speeds/prices
Calculator dynamically adjusts options based on detected connection type for the address.
Lessons Learned
- SMS verification kills fake leads. Worth the per-message cost.
- Telegram bots are underrated for internal notifications.
- Ukrainian users expect Ukrainian UX patterns, not translated English ones.
Project Overview
A comprehensive web application for Batyevka.NET, a Ukrainian internet service provider, built using Next.js, React, and TypeScript. The platform serves both residential and business customers with features for service management, tariff calculation, and customer support.

Calculator page
Key Features
Interactive Tariff Calculator
- Custom-built calculator allowing users to configure internet plans with various parameters
- Real-time price updates based on selected options
- Integration with TV services and additional features like static IP addresses
- Support for different connection types (G-PON and XGS-PON)
Address Management System
- Administrative interface for managing service coverage areas
- CRUD operations for streets and buildings
- Validation system for preventing duplicate entries
- Status tracking for serviceable locations
Customer Service Integration
- Integration with ServDesk for ticket management
- Automated notification system via Telegram
- Phone verification system using SMS
- Call-back request functionality
Multi-language Support
- Full Ukrainian language support
- Localized content and interface elements
- Adaptable content structure for multiple languages
Technical Highlights
Frontend
- Next.js 14 with App Router
- React with TypeScript for type safety
- Tailwind CSS for responsive design
- Custom component library including modals, forms, and interactive elements
- ShadCN UI components for consistent design
Backend
- RESTful API architecture
- Prisma ORM for database management
- Integration with external services (SMS gateway, Telegram API)
- Secure authentication system
Architecture
- Clean code architecture with separation of concerns
- Modular component design for reusability
- Responsive layout supporting multiple device sizes
- Performance optimized with proper resource loading
Notable Technical Solutions
- Custom form validation system
- Real-time price calculation engine
- Adaptive layout system for different screen sizes
- Optimized image loading and resource management
Business Impact
- Streamlined customer onboarding process
- Reduced customer service workload through self-service options
- Improved service area management efficiency
- Enhanced customer experience through interactive features
Development Approach
- Component-based architecture for maintainability
- Mobile-first responsive design
- Strong emphasis on user experience
- Comprehensive error handling and validation
- Integration with existing business systems
Challenges Overcome
- Complex pricing calculations with multiple variables
- Integration with legacy systems
- Real-time address validation and verification
- Multi-step form processes with state management
This project demonstrates strong capabilities in:
- Full-stack web development
- Complex business logic implementation
- Third-party service integration
- User interface design
- Performance optimization
- Enterprise-level system architecture