Giter VIP home page Giter VIP logo

gatsbyan's Introduction

gatsbyan Website GitHub top language GitHub

This is template for GatsbyJS that I use on production for my personal blog at https://ferry.now.sh

For a clean template, take a look at https://github.com/7sferry/Gatsbyan1.0

Features:

  • Contentful CMS
  • Comment
  • Tags
  • SEO
  • Archives by date
  • Pagination
  • Dark Mode
  • Blog Search
  • Full PWA
  • Many more...

Tech used:

  • GatsbyJS
  • Typescript
  • Contentful CMS
  • Bootstrap
  • Algolia
  • Google Analytics
  • Prism
  • many others, you can check the pakcage.json

Requirements:

  • Node JS - I used Node v18.8.1
  • Gatsby CLI - I used gatsby-cli v2.10.10
  • Typescript - I used Typescript 5.0.4
  • Git
  • Contentful CMS account
  • Google account - optional for analytics and analytics reporter
  • Algolia account - optional for blog search

Step to Install:

  • run 'npm install'
  • create file .env on your root projects directory
  • set your spaceId and token from contenful CMS on '.env' (you can look at here)
  • you could change every properties on config at 'config.ts' or modify SEO variables at '/src.components/SEO.js'
  • you also could change utterances config for comment section at '/src.components/Comment.tsx' or remove it if you don't want.
  • if you use Algolia, you must specify GATSBY_ALGOLIA_APP_ID, GATSBY_ALGOLIA_INDEX_NAME, GATSBY_ALGOLIA_SEARCH_KEY, ALGOLIA_ADMIN_KEY on '.env'. Or turn it off on gatsby-config and gatsby-node & remove search folder inside 'templates' folder and Algolia.tsx on utils if you don't use it.
  • if you use Analytics & Analytics Reporter, you must specify ANALYTICS_PRIVATE_KEY, ANALYTICS_VIEW_ID, ANALYTICS_GA4, ANALYTICS_TRACKING_ID, ANALYTICS_EMAIL on '.env'. Or turn it off on gatsby-config & remove AnalyticsPage.tsx and AnalyticsPage on RightSidebar.tsx if you don't use it.
  • execute 'npm run develop' on cli
  • your site will be run on http://localhost:8000

Step to get SpaceId and Token:

  • after login and open the homepage content, click burger menu on the top left

  • create new space

  • choose space type

  • write down your space name and choose 'create an example' then choose blog tab and click proceed

  • after everything has been set, go to content tab and you will see 4 default contents

  • go to media tab and publish all draft images (by default heroImage is required and you can't build your site with unpublished images)

  • open setting tab and choose 'API keys'. Click 'Add api key' on the top right. Copy space ID and token to your '.env' file you created before

  • execute 'npm run develop' on cli
  • now you should be able to access your content at http://localhost:8000

via DockerFile

to run this with docker, execute docker build -t gatsbyan . and docker run -p 8000:8000 --rm -m 1g --cpus 2 --name gatsbyan gatsbyan.

via Docker Compose

to run this using docker compose, execute docker compose -f compose.yaml up -d

You can deploy your site to any static site hosting like netlify, vercel, or anywhere. There is webhook on netlify and you can set this up later to your site hosting for content update everytime you publish your content.

here is the google page speed insight score for both mobile and desktop

If you having trouble setting this up, don't hesitate to contact me 😎

gatsbyan's People

Contributors

7sferry avatar dependabot[bot] avatar

Stargazers

Yoshiyuki Nakano avatar  avatar

Watchers

James Cloos avatar  avatar

gatsbyan's Issues

blog/krisis-usia-seperempat-abad-quarter-life-crisis

Krisis Usia Seperempat Abad (Quarter Life Crisis) [Ferry Suhandri]

Gw sedang berada di fase Quarter Life Crisis. Fase di mana gw menghadapi krisis terhadap kehidupan yang dijalani di usia seperempat abad. Menurut beberapa penelitian sebagian besar millennials pasti pernah mengalaminya. Ini adalah periode refleksi diri yang mendalam menjalani ketidakpastian lika-liku kehidupan dalam melakukan pencarian jati diri tingkat lanjut. Merasa kurang puas terhadap kehidupan yang dijalani. Apa yang gw impi-impikan masih belum terwujud dan masih dalam bentuk “mimpi”. Gw masih berusaha memperjuangkan karier gw saat ini. Gw mulai merasa stuck di kehidupan sekarang😥. Ga tahu prioritas mana yang harus dikejar. Gw sering overthinking dan itu bikin gw ga mood ngapa-ngapain. Bahkan sering susah tidur pas malam dan bangun kesianga

https://ferry.vercel.app/blog/krisis-usia-seperempat-abad-quarter-life-crisis

blog/prinsip-single-responsibility

Prinsip Single Responsibility | Ferry Suhandri

Single Responsibility adalah prinsip yang setiap modul, kelas atau fungsinya hanya bertanggung jawab terhadap satu part fungsionalitas saja yang di-engkapsulasi. Secara definisi memang agak rancu makna responsibility yang dimaksud cukup luas, dan ga hanya gw yang bingung, beberapa pendapat juga bilang begitu🤣. Tapi secara praktiknya yang gw pahami adalah scope dari responsibility-nya tergantung masalah yang akan di-solve pada class. Disini penamaan class cukup penting, itu yang menjadi acuan masalah yang akan di-solve. Tujuannya untuk mengurangi kompleksitas saat terjadi perubahan. Yang penting rancangan class yang dihasilkan saling keterkaitannya sebatas method dan field dalam class itu sendiri (cohesion). Makanya butuh analisa yang cukup mendalam dalam menerapk

https://ferry.vercel.app/blog/prinsip-single-responsibility

blog/contoh-singleton-design-pattern

Contoh Singleton Design Pattern | Ferry Suhandri

Penggunaan design pattern ini cukup populer. Benefit dari Singleton adalah kita tidak perlu membuat objek baru di setiap penggunaan, dari sisi performa tentu sedikit lebih cepat dan penggunaan memory jadi lebih efisien. Di lain sisi, penggunaan Singleton juga mengundang kontroversi karena global variables, anti-pattern dan menyalahi kodrat OOP. Walaupun begitu Java juga mengimplementasi Singleton pada Runtime class.

https://ferry.vercel.app/blog/contoh-singleton-design-pattern

http://localhost:8000/blog/pengalaman-melewatkan-oracle-certified-professional-java-11-1zo-819-usd25

Pengalaman (Melewatkan) Oracle Certified Professional Java 11 (1ZO-819) $25 | Ferry Suhandri

Dalam rangka merayakan anniversary Java ke-25, Oracle menggratiskan materi training Java 11 dan memberlakukan diskon 90% untuk test sertifikasi Java 11 dari tanggal 25 februari 2021 sampai 25 April 2021. Cukup bayar USD 25 saja(biasanya USD 245). FYI, sertifikasi Oracle ini merupakan salah satu sertifikasi standar dunia dan cukup bergengsi. Makanya biayanya mahal. Syaratnya klaim promo dan ujian harus dilaksanakan sebelum 25 April 2021. Skor minimum untuk lolos adalah 68 dengan 50 soal selama 90 menit. Tepat hari ini diskon tersebut hangus. Di twitter-nya sih katanya ga bakal diperpanjang, tapi bakal ada promo-promo lainnya. Jadi buat yang belum sempat klaim promo ini berdoa aja biar ada promo lagi dari Oracle😇.

http://localhost:8000/blog/pengalaman-melewatkan-oracle-certified-professional-java-11-1zo-819-usd25

blog/seberapa-penting-design-pattern-dan-programming-principle

Seberapa Penting Design Pattern dan Programming Principle | Ferry Suhandri

Design Pattern dan Programming Principle adalah teori yang sudah teruji untuk menyelesaikan permasalahan-permasalahan yang umum ditemukan saat melakukan coding. Sebelumnya gw udah membahas beberapa design pattern yang pernah gw pakai. Kali ini gw akan bahas seberapa penting design pattern tersebut digunakan. Mungkin banyak juga yang bingung, kenapa harus pakai design pattern, kenapa ga dibebasin aja sesuka hati. Berikut adalah beberapa point of view gw terhadap design pattern dan programming principle:

https://ferry.vercel.app/blog/seberapa-penting-design-pattern-dan-programming-principle

blog/diam-itu-gemas

Diam Itu gEmas [Ferry Suhandri]

Banyak orang bilang, "Apa enaknya sendiri sih?". Menurut orang, sendiri itu artinya kesepian. Buat gw, sendiri itu berarti freedom. Gw malah menikmati kesendirian ini. Keluar dari distraksi dunia itu menyenangkan. Tapi gw juga ga maksa orang untuk setuju dengan gw, dan gw juga sah-sah saja untuk tidak setuju dengan orang-orang. Meskipun begitu, gw masih butuh sosialisasi. Ga selamanya juga gw menghabiskan waktu dengan menyendiri. Gw juga butuh waktu untuk keluar dari zona kesendirian gw untuk melepaskan energi yang sudah di-cas penuh. Makanya gw masih suka sistem kerja Work from Office untuk melepaskan energi. Kecuali untuk sekarang ini karena masih pandemi. Orang bilang diam itu emas, gw bilang diam itu gemas😋.

https://ferry.vercel.app/blog/diam-itu-gemas

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.