Terowongan
Sebuah terowongan adalah perjalanan yang dipotong menjadi langkah-langkah — pendaftaran, pembayaran, perpanjangan — yang jalannya bisa berubah sesuai dengan jawaban pengunjung. Paket ini mengingat posisi setiap pengunjung, membiarkan mereka melalui langkah-langkah yang mungkin mereka lihat, dan mengembalikan mereka ke tempat yang seharusnya ketika mereka mencoba untuk melangkah lebih cepat.
Pohon kursor
Sebuah terowongan dibangun sebagai pohon, bukan daftar. Sebuah langkah yang dicapai dari dua tempat adalah dua kursor, masing-masing dengan hash dan nilai tersimpan sendiri: itulah yang memungkinkan sebuah cabang tumbuh langkah-langkah yang tidak dimiliki cabang lain, dan cara yang kamu lalui, yang ditunjukkan di akhir setiap terowongan, dibaca dari sana.
Sebuah sesi di database
Membuka sebuah terowongan menciptakan sebuah sesi, yang hanya diketahui oleh sesi browser melalui id-nya. Ini menyimpan nilai-nilai yang disimpan oleh langkah-langkah, dan kedaluwarsa sehari setelah langkah terakhir yang ditampilkan — atau lebih cepat, ketika langkah itu memintanya. Sesi yang kedaluwarsa dibuang oleh penjadwal, setiap 15 menit; sesi yang selesai dan tertunda disimpan.
Ke mana pengunjung dapat pergi
Setiap langkah memutuskan apakah itu dapat ditampilkan dan kemana harus mengirim pengunjung jika tidak. Tautan dan tombol digambar dengan aturan yang sama, sehingga tautan tidak pernah mengarah ke pengalihan kembali: tidak ada tombol berikutnya di mana jalan bercabang, tidak ada jalan kembali melewati pembayaran, tidak ada yang bisa kembali di sesi yang ditutup.