Miten syntyi pieni kirjapuoti?

Hyvät ystäväni ovat kirjoittaneet, kuvittaneet ja tuottaneet omakustanteena tietosisällöltään tämän alan harrastajille merkittävän ja ulkoasultaan korkealaatuisen kirjan. Toisen painoksen myynti ei kuitenkaan tuntunut kulkevan täysin toiveiden mukaisesti, joten päätin auttaa häntä markkinointi- ja myyntiponnistuksessa. Sain projektista runsaasti oppimiskokemuksia ja lopputuloksena maailmaan syntyi pieni kirjapuoti, jousimetsastyskirja.com.

Ongelmia voi usemmiten ratkaista monella tavalla – ja tietotekniikan kyseessä ollen periaate on erityisen totta. Tässä tapauksessa valitun ratkaisumallin ideana oli toisaalta kehittää yksinkertainen, mutta moderni yhden tuotteen myyntisivu samalla minimoiden palvelusta syntyviä kustannuksia.

GitHub

Päätin, että tässä projektissa opettelen nykyaikaista versionhallinnan perusteita käyttämällä GitHubia. Minulla oli palveluun tili olemassa, joten loin aluksi uuden yksityisen repositoryn ja aloin keräämään toteuttamiseen liittyviä ajatuksia ja linkkejä README.md -tiedostoon.

Projektin kuluessa kertyi muistiinpanoja toteutuksen vaiheista, neuvoja sisältävistä artikkeleista ja erilaisista huomioista. On todennäköistä, että pystyisin toistamaan prosessin muistiinpanojen perusteella.

”Tuotantopalvelin”

Päätin, että tällaisen yhden tuotteen kaupan voisi pystyttää käyttäen AWS S3 static web hosting -ominaisuutta.

Käytännössä verkkosivuston totettavat tiedostot siirretään S3 buckettiin, joka konfiguroidaan oikein ja voilá, meillä on nettisivu pystyssä.

Kehityspalvelin

iPadilla koodaamisesta kertovien blogipostausten perusteella tällä hetkellä best practise on hankkia pilvestä virtuaalipalvelin, jonka kanssa iPad (tai iPhone, Mac tai muu tietojenkäsittelylaite) toimii thin clienttina. Niinpä pistin pienimmän mahdollisen ”pannun tulille” Hetznerin ympäristössä.

Asensin tälle newbiesaurus-palvelimelleni AWS CLI -rensselit sekä MOSHin, joista jälkimmäisen pitäisi tarjota luotettavammat yhteydet mobiililaitteilta verrattuna SSH-yhteyksiin. Git-työkalut tuolla palvelimella olivatkin asennettuna vakiona.

iPad

Palvelun koodailu toimi muutaman hyvän iOS-sovelluksen varassa.

Editointi tapahtui Textasticissa, jolla muokkasin newbiesauruksella olevia tiedostoja. Ne saadaan näkyviin iOS:n Tiedostot-sovelluksen kautta, kun Secure ShellFish app konfiguroidaan sille File Provideriksi.

Superkarun, mutta käytännöllisen Blink Shellin avulla sain iPadilta MOSH-yhteyden newbiesaurukselle. Muutamalla yksinertaisella komentorivikomennolla tallensin toisaalta Textasticissa tekemäni muutokset GitHubiin ja synkkasin muuttuneet tiedostot tuotantopalvelimelle.

Kolmas iPadilla säännöllisesti käyttämäni sovellus oli Safari, jolla saatoin tiedostojen siirron jälkeen ihmetellä miltä muutokset näyttävät livenä.

Stripe

Tuotteen myyntiä varten pitää tietenkin olla tapa kerätä ostajilta rahat pois. Maksupalvelujen markkina on muutamassa vuodessa kehittynyt niin, että enää ei (onneksi) ole pakko tehdä pitkiä palvelusopimuksia ja maksaa kiinteitä kuukausimaksuja. Eikä sellainen tähän käyttötarkoitukseen olisi sopinutkaan.

Ostamisen kulttuuri on myös muttunut niin, että käytännössä lähes kaikilla kirjan kohdeyleisössä on varmuudella debit- tai credit-kortti, jolla ostaminen tapahtuu.

Stripe tuntuu jouhevalta palvelulta. Siinä on helppo määritellä myytävät tuotteet, niiden hinnat, maksujen vastatili ja muut tarvittavat asetukset. Palvelusta saa nettisivulle upotettavan valmiin koodin. Paljon helpommaksi tämä ei voi mennä.

Bootstrap

Yllätyin miten paljon valmiita, maksuttomia ja laadukkaita teemoja onkaan saatavilla. Start Bootstrap -sivusto löytyi työkaverin suosittelemana. Sieltä käyttöön valikoitui omaa silmää miellyttävä Creative, johon siirsin (pienten kommellusten jälkeen) Agency-teemasta käyttöön paremmin sopivan portfolio-osuuden.

Vaikka tämän projektin takia en perehtynytkään perusteellisesti itse Bootstrap-kirjastoon, niin väkisinkin sai hieman käsitystä siitä, mitä kaikkea se pitää sisällään. Arvostan teemassa sitä, että se on lähtökohtaisesti responsiivinen, jolloin kertalinttuulla sain kaikenkokoisissa kuvaruuduissa toimivan ratkaisun. Hienoa!

Domainnimi

Tämä oli tuttu juttu, koska olin aiemmin hankkinut niitä NETIM-palveluntarjoajalta.

AWS-palveluiden konfigurointi

Siirsin hankkimani domainnimen nimipalvelut AWS Route 53:een, hankin maksuttoman sertifikaatin AWS Certificate Managerista, loin AWS CloudFront distribuution luomalleni staattisesti hostatulle S3 bucketille ja muutin Route 53:ssa domainin A-tietueen osoittamaan luomaani distribuutioon.

Näyttääpä tuo nopealta ja yksinkertaiselta operaatiolta näin jälkeenpäin kirjoitettuna…

Kustannukset

Palvelun kehittämisestä aiheutuneet välittömät kustannukset olivat nämä:

  • Hetznerin virtuaalipalvelin, noin 3 eur / kuukausi
  • Texastic app, noin 10 eur
  • Secure ShellFish app, noin 10 eur
  • Blink Shell app, noin 20 eur

Jatkuvista palveluista aiheutuu kustannuksia käytännössä vain seuraavasti

  • domainnimi, noin 14 euroa / vuosi
  • AWS Route53, 6 eur / domain / vuosi

Ja viimeiseksi, per myyty kirja aiheutuu palvelukustannuksia

  • Stripe, 1.4% + 0.25 eur / transaktio

Yhteenveto

Jokunen asia jäi toki matkan varrella mietityttämään.

  1. iPadin näppäimistö ei aina tuntunut toimivan kunnolla, usein kun avasin laitteen ja aloitin työskentelyn. Etenkin Blink jumitti aika ajoin. En keksinyt onko vika iOS:ssa, näppäimistössä vai Blinkissä. Uudet versiot softista saattavat poistaa tuon vaivan.
  1. Voisinkohan lähettää komentorivikäskyjä Textasticista (Blinkin kautta?) newbiesaurukselle? Olisiko iOS:n Pikakomennot (Shortcuts) ratkaisu? Olisi varsin kätevää komentaa versionhallintaan viennit ja AWS:ään julkaisut editorista. Osaisikohan joku toinen editori tämän?
  1. Start Bootstrapin Creative-teeman CSS on aivan julmetun kokoinen – aivan kuin se sisältäisi kaikki maailman Bootstrap-tyylimäärittelyt. Vaikuttaa lähinnä sivun latausaikaan. Ehkä pitäisi kysyä asiaa kehittäjältä…
  1. Kannattaisi varmasti opetella omien SSH-avainten tekeminen ja niiden käyttäminen. Luultavasti se olisi ollut vaivan arvoinen vs. GitHub-tunnuksen ja salasanan syöttämiseen kumulatiivisesti kulunut aika…
  2. Gitin opiskelu on vielä peruskäsitteiden ja -komentojen varassa. Tätä pitää tutkia lisää.
  3. Useamman tiedoston siirtäminen paikasta toiseen on iLaitteilla edelleen hieman työlästä. Myönnänkin käyttäneeni teematiedostojen siirtoon Maccia.

Kaikesta huolimatta projekti oli opettava ja palkitseva. Toivottavasti myös tuttavani kirja saa tämän pienen kirjapuodin avulla myyntiboostia.

Kategoriassa Yleinen

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out /  Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out /  Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out /  Muuta )

Muodostetaan yhteyttä palveluun %s