05 / bawah kota
Yang tidak terlihat menentukan umur kota.
Di bawah jalan ada pipa dan kabel. Di bawah sistemmu ada bahasa pemrograman, kerangka kerja, basis data, dan server.
Bawah kota: teknologi yang kami layani
Arti daftar ini: kami bisa membangun dengan, merawat, atau memindahkan sistem dari teknologi berikut. Daftar ini tidak berarti semuanya cocok untukmu. Pilihan alat kami putuskan setelah tahu masalahnya.
Bahasa
- PHP
- JavaScript
- TypeScript
- Python
- Dart
- SQL
- Bash
- Kotlin
- Swift
Backend
- Laravel
- CodeIgniter
- Node.js
- Express
- NestJS
- FastAPI
- Django
Frontend
- Vue.js
- Nuxt
- React
- Next.js
- Astro
- Svelte
- Tailwind CSS
- Livewire
- Inertia
Panel admin
- Filament
- Laravel Nova
Mobile
- Flutter
- React Native
- Expo
- Android (Kotlin)
- iOS (Swift)
Basis data
- MySQL
- MariaDB
- PostgreSQL
- SQLite
- SQL Server
- MongoDB
- Redis
Geospasial
- PostGIS
- QGIS
- Leaflet
- MapLibre
- GeoServer
Data & AI
- Pandas
- scikit-learn
- PyTorch
- Jupyter
- pgvector
- RAG
- API model bahasa
Visualisasi
- D3.js
- Chart.js
- Apache ECharts
- Metabase
- Three.js
Cloud
- AWS
- Google Cloud
- Azure
- VPS mandiri
DevOps
- Docker
- Docker Compose
- Caddy
- Nginx
- GitHub Actions
- GitLab CI
- Linux (Ubuntu)
BaaS & pesan
- Firebase
- Supabase
- FCM
Integrasi
- REST
- GraphQL
- Webhook
- n8n
- OAuth 2.0
- SSO
Keamanan
- OWASP ZAP
- Burp Suite
- Nmap
- Trivy
- fail2ban
- ufw
- Let's Encrypt
- WireGuard
Pengujian
- PHPUnit
- Pest
- Playwright
- Vitest
- k6
CMS
- WordPress
- Strapi
- Directus
Jalur modernisasi
Dari apa ke apa, dan kenapa. Tidak semua jalur perlu ditempuh. Kami mulai dari yang risikonya paling besar.
-
Dari: CodeIgniter 3 atau PHP lama Ke: Laravel dan PHP 8.4
Alasan: Versi lama tidak lagi mendapat tambalan keamanan. Versi yang masih didukung juga lebih mudah dirawat.
-
Dari: MySQL lama Ke: MariaDB 11 atau PostgreSQL + PostGIS
Alasan: Mendapat pembaruan keamanan dan bisa mengolah data lokasi.
-
Dari: Shared hosting Ke: Docker + Caddy di VPS
Alasan: Tiap aplikasi terisolasi, jadi masalah di satu situs tidak menjalar ke situs lain. HTTPS terpasang otomatis.
-
Dari: Unggah manual lewat FTP Ke: CI/CD dari git
Alasan: Setiap terbit tercatat siapa dan kapan, dan bisa dibatalkan.
-
Dari: Monolit lama Ke: API + frontend modern (Next.js atau Vue)
Alasan: Sistem bisa dikembangkan per bagian tanpa membongkar semuanya.
-
Dari: jQuery Ke: Vue atau React
Alasan: Antarmuka lebih terstruktur dan lebih mudah diuji.
-
Dari: Kata sandi saja Ke: Autentikasi berlapis dan passkey
Alasan: Kata sandi yang dicuri tidak lagi cukup untuk masuk.
-
Dari: Spreadsheet tersebar Ke: Basis data dan dasbor
Alasan: Satu sumber data, dengan jejak siapa mengubah apa.
-
Dari: Cadangan manual Ke: Cadangan otomatis yang teruji pulih
Alasan: Cadangan yang belum pernah dipulihkan belum bisa disebut cadangan.
-
Dari: Pemantauan saat ada keluhan Ke: Pemantauan otomatis dan peringatan dini
Alasan: Masalah diketahui sebelum pengguna yang melaporkannya.
-
Dari: Data pribadi tanpa peta Ke: Inventaris data sesuai UU PDP
Alasan: Ini kewajiban hukum. Selain itu, data yang tidak diketahui letaknya tidak bisa dijaga.
-
Dari: Laporan statis Ke: Analisis dan model prediksi
Alasan: Keputusan diambil dari data hari ini, tidak dari rekap bulan lalu.