├── .editorconfig ├── .eslintrc.json ├── .gitignore ├── README.md ├── config ├── config.json ├── menu.json ├── social.json └── theme.json ├── content ├── 404.md ├── _index.md ├── about.md ├── contact.md ├── elements.md └── posts │ ├── _index.md │ ├── post-1.md │ ├── post-10.md │ ├── post-11.md │ ├── post-12.md │ ├── post-13.md │ ├── post-14.md │ ├── post-15.md │ ├── post-2.md │ ├── post-3.md │ ├── post-4.md │ ├── post-5.md │ ├── post-6.md │ ├── post-7.md │ ├── post-8.md │ └── post-9.md ├── context └── state.js ├── hooks ├── useLoadMore.js ├── useOs.js └── useWindow.js ├── jsconfig.json ├── layouts ├── 404.js ├── About.js ├── Baseof.js ├── Contact.js ├── Default.js ├── PostSingle.js ├── components │ ├── ImageFallback.js │ ├── InnerPagination.js │ ├── Logo.js │ ├── NewsLetterForm.js │ ├── Pagination.js │ ├── Share.js │ ├── Social.js │ ├── ThemeSwitcher.js │ └── TwSizeIndicator.js ├── partials │ ├── Footer.js │ ├── Header.js │ ├── Post.js │ ├── SearchModal.js │ └── Sidebar.js └── shortcodes │ ├── Accordion.jsx │ ├── Button.jsx │ ├── Code.jsx │ ├── Notice.jsx │ ├── Tab.jsx │ ├── Tabs.jsx │ ├── Video.jsx │ ├── Youtube.jsx │ └── all.js ├── lib ├── contentParser.js ├── jsonGenerator.js ├── taxonomyParser.js └── utils │ ├── dateFormat.js │ ├── mdxParser.js │ ├── readingTime.js │ ├── similarItems.js │ ├── sortFunctions.js │ └── textConverter.js ├── netlify.toml ├── next.config.js ├── package.json ├── pages ├── 404.js ├── [regular].js ├── _app.js ├── _document.js ├── categories │ ├── [category].js │ └── index.js ├── index.js ├── page │ └── [slug].js ├── posts │ ├── [single].js │ └── index.js └── search.js ├── postcss.config.js ├── public ├── .htaccess ├── images │ ├── author.png │ ├── banner-author.png │ ├── banner-bg-shape.svg │ ├── favicon.png │ ├── footer-bg-shape.svg │ ├── logo-light.png │ ├── logo.png │ ├── map.svg │ ├── post │ │ ├── post-1.png │ │ ├── post-2.png │ │ ├── post-3.png │ │ ├── post-4.png │ │ ├── post-5.png │ │ ├── post-6.png │ │ ├── post-7.png │ │ └── post-8.png │ ├── promotion.png │ └── quote.svg └── robots.txt ├── styles ├── base.scss ├── buttons.scss ├── components.scss ├── navigation.scss ├── style.scss └── utilities.scss └── tailwind.config.js /.editorconfig: -------------------------------------------------------------------------------- 1 | ; https://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | indent_size = 2 9 | indent_style = space 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | 13 | [*.md] 14 | trim_trailing_whitespace = false -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | yarn.lock 8 | package-lock.json 9 | 10 | # testing 11 | /coverage 12 | 13 | # next.js 14 | /.next/ 15 | /out/ 16 | 17 | # production 18 | /build 19 | /.json 20 | 21 | # misc 22 | .DS_Store 23 | *.pem 24 | 25 | # debug 26 | npm-debug.log* 27 | yarn-debug.log* 28 | yarn-error.log* 29 | .pnpm-debug.log* 30 | 31 | # local env files 32 | .env.local 33 | .env.development.local 34 | .env.test.local 35 | .env.production.local 36 | 37 | # vercel 38 | .vercel 39 | 40 | # Local Netlify folder 41 | .netlify 42 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Geeky Nextjs

2 |

Geeky is a free NextJs personal blog template

3 |

Demo | Page Speed (100%) 4 |

5 | 6 |

7 | 8 | 9 | 10 | 11 | 12 | license 13 | 14 | code size 15 | 16 | 17 | contributors 18 |

19 | 20 | ![geeky](https://statichunt.com/themes/nextjs-geeky.png) 21 | 22 | ## Key Features 23 | 24 | - Google Page Speed score 100! (Desktop) 25 | - Supports Contact Form 26 | - Disqus Comment Support 27 | - Related Posts Suggestion 28 | - MDX Support with many built-in custom components 29 | - Semantic HTML Document Structure 30 | - Custom Logo Support 31 | - Includes All SCSS Files 32 | - Taxonomy Page Support 33 | - Images Optimized With Next/image 34 | 35 | 36 | ## Installation 37 | 38 | After downloading the template, you have some prerequisites to install. Then you can run it on your localhost. You can view the package.json file to see which scripts are included. 39 | 40 | ### Install prerequisites (once for a machine) 41 | 42 | - **Node Installation:** [Install node js](https://nodejs.org/en/download/) [Recommended LTS version] 43 | 44 | ### Local setup 45 | 46 | After successfully installing those dependencies, open this template with any IDE [[VS Code](https://code.visualstudio.com/) recommended], and then open the internal terminal of IDM [vs code shortcut ctrl/cmd+\`] 47 | 48 | - Install dependencies 49 | 50 | ``` 51 | npm install 52 | ``` 53 | 54 | - Run locally 55 | 56 | ``` 57 | npm run dev 58 | ``` 59 | 60 | After that, it will open up a preview of the template in your default browser, watch for changes to source files, and live-reload the browser when changes are saved. 61 | 62 | ## Production Build 63 | 64 | After finishing all the customization, you can create a production build by running this command. 65 | 66 | ``` 67 | npm run build 68 | ``` 69 | 70 | 71 | ## Reporting Issues 72 | 73 | We use GitHub Issues as the official bug tracker for this Template. Please Search [existing issues](https://github.com/statichunt/geeky-nextjs/issues). It’s possible someone has already reported the same problem. 74 | If your problem or idea has not been addressed yet, feel free to [open a new issue](https://github.com/statichunt/geeky-nextjs/issues). 75 | 76 | 77 | ## License 78 | 79 | Copyright (c) 2019 - Present, Designed & Developed by [statichunt](https://statichunt.com) 80 | 81 | **Code License:** Released under the [MIT](https://github.com/statichunt/geeky-nextjs/blob/main/LICENSE) license. 82 | 83 | **Image license:** The images are only for demonstration purposes. They have their license, we don't have permission to share those images. 84 | -------------------------------------------------------------------------------- /config/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "site": { 3 | "title": "Geeky Nextjs", 4 | "base_url": "/", 5 | "favicon": "/images/favicon.png", 6 | "logo": "/images/logo.png", 7 | "logo_white": "/images/logo-light.png", 8 | "logo_width": "150", 9 | "logo_height": "39", 10 | "logo_text": "Geeky" 11 | }, 12 | "settings": { 13 | "theme_switcher": true, 14 | "default_theme": "system", 15 | "pagination": 6, 16 | "InnerPaginationOptions": { 17 | "enableTop": false, 18 | "enableBottom": true 19 | }, 20 | "summary_length": 200, 21 | "blog_folder": "posts" 22 | }, 23 | "params": { 24 | "tag_manager_id": "", 25 | "footer_content": "Lorem ipsum dolor sit amt, conse adip iscing. donec iaculis tempasus laoreet. Libero ullam rgscper.", 26 | "copyright": "Designed and Developed By [Statichunt](https://statichunt.com/)" 27 | }, 28 | "metadata": { 29 | "meta_author": "Statichunt", 30 | "meta_image": "/images/og-image.png", 31 | "meta_description": "Geeky Nextjs Personal Blog Template" 32 | }, 33 | "widgets": { 34 | "about": { 35 | "enable": true, 36 | "content": "Lorem ipsum dolor sit amet, conse tfctetur adipiscing elit. Vel in in donec iaculis tempasus odio nunc laoreet . Libero ullam rgscorper." 37 | }, 38 | "featured_posts": { 39 | "enable": true, 40 | "title": "Blog Categories", 41 | "showPost": 3 42 | }, 43 | "categories": { 44 | "enable": true, 45 | "title": "Blog Categories" 46 | }, 47 | "newsletter": { 48 | "enable": true, 49 | "title": "Newsletter", 50 | "content": "Join thousands of Tiny Salt subscribers and get our best recipes delivered each week!", 51 | "privacy_policy_page": "#", 52 | "malichipm_url": "" 53 | } 54 | }, 55 | "disqus": { 56 | "enable": true, 57 | "shortname": "themefisher-template", 58 | "settings": {} 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /config/menu.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": [ 3 | { 4 | "name": "Home", 5 | "url": "/" 6 | }, 7 | { 8 | "name": "About", 9 | "url": "/about" 10 | }, 11 | { 12 | "name": "Elements", 13 | "url": "/elements" 14 | }, 15 | { 16 | "name": "Contact", 17 | "url": "/contact" 18 | }, 19 | { 20 | "name": "Pages", 21 | "url": "", 22 | "hasChildren": true, 23 | "children": [ 24 | { 25 | "name": "Categories", 26 | "url": "/categories" 27 | } 28 | ] 29 | } 30 | ], 31 | "footer": [ 32 | { 33 | "name": "Home", 34 | "url": "/" 35 | }, 36 | { 37 | "name": "About", 38 | "url": "/about" 39 | }, 40 | { 41 | "name": "Contact", 42 | "url": "/contact" 43 | }, 44 | { 45 | "name": "Privacy Policy", 46 | "url": "#" 47 | } 48 | ] 49 | } 50 | -------------------------------------------------------------------------------- /config/social.json: -------------------------------------------------------------------------------- 1 | { 2 | "facebook": "https://facebook.com/", 3 | "stackoverflow": "https://stackoverflow.com/", 4 | "twitter": "https://twitter.com/", 5 | "instagram": "https://instagram.com/", 6 | "youtube": "", 7 | "linkedin": "https://linkedin.com/", 8 | "github": "https://github.com/", 9 | "gitlab": "", 10 | "discord": "", 11 | "slack": "", 12 | "medium": "", 13 | "codepen": "", 14 | "bitbucket": "", 15 | "dribbble": "", 16 | "behance": "", 17 | "pinterest": "", 18 | "soundcloud": "", 19 | "tumblr": "", 20 | "reddit": "", 21 | "vk": "", 22 | "whatsapp": "", 23 | "snapchat": "", 24 | "vimeo": "", 25 | "tiktok": "", 26 | "foursquare": "", 27 | "rss": "", 28 | "email": "", 29 | "phone": "", 30 | "address": "", 31 | "skype": "", 32 | "website": "" 33 | } 34 | -------------------------------------------------------------------------------- /config/theme.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors": { 3 | "default": { 4 | "theme_color": { 5 | "primary": "#2ba283", 6 | "body": "#fff", 7 | "border": "#e1e1e1", 8 | "theme_light": "#f2f2f2", 9 | "theme_dark": "#1a202c" 10 | }, 11 | "text_color": { 12 | "default": "#555", 13 | "dark": "#222", 14 | "light": "#999" 15 | } 16 | }, 17 | "darkmode": { 18 | "theme_color": { 19 | "primary": "#059669", 20 | "body": "#111", 21 | "border": "#636363", 22 | "theme_light": "#f4f7f7", 23 | "theme_dark": "#383848" 24 | }, 25 | "text_color": { 26 | "default": "#a4a4a4", 27 | "dark": "#ddd", 28 | "light": "#fff" 29 | } 30 | } 31 | }, 32 | "fonts": { 33 | "font_family": { 34 | "primary": "Raleway:wght@400", 35 | "primary_type": "sans-serif", 36 | "secondary": "Merriweather Sans:wght@400;700", 37 | "secondary_type": "sans-serif" 38 | }, 39 | "font_size": { 40 | "base": "16", 41 | "scale": "1.200" 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /content/404.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Error 404" 3 | layout: "404" 4 | --- 5 | 6 | ## Page Not Found 7 | -------------------------------------------------------------------------------- /content/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | banner: 3 | title: Welcome **!** 4 | title_small: "to John Bravo's Blog" 5 | content: Are Developer and recently started your own business Already made website to ensure presence wants to develop. 6 | image_enable: true 7 | image: /images/banner-author.png 8 | button: 9 | enable: true 10 | label: Know About Me 11 | link: /about 12 | rel: "" 13 | 14 | featured_posts: 15 | enable: true 16 | title: Featured Posts 17 | 18 | promotion: 19 | enable: true 20 | image: /images/promotion.png 21 | link: "#" 22 | 23 | recent_posts: 24 | title: Recent Posts 25 | enable: true 26 | 27 | --- 28 | -------------------------------------------------------------------------------- /content/about.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: About The Author 3 | image: /images/author.png 4 | description: "meta description" 5 | layout: about 6 | education: 7 | title: Formal Education 8 | degrees: 9 | - university: "Southeast University" 10 | content: "1985 • 1991 • gravida nibh velvelit auctor alimo quet menean solli" 11 | - university: "Northeast University" 12 | content: "1985 • 1991 • gravida nibh velvelit auctor alimo quet menean solli" 13 | - university: "Easteast University" 14 | content: "1985 • 1991 • gravida nibh velvelit auctor alimo quet menean solli" 15 | - university: "Southeast University" 16 | content: "1985 • 1991 • gravida nibh velvelit auctor alimo quet menean solli" 17 | 18 | experience: 19 | title: Work Experience 20 | list: 21 | - Best Writer Award 22 | - Best New Newel 23 | - Best Book 24 | - Best Article 25 | - Best New Newel 26 | - Best New Newel 27 | - Best Book 28 | - Best Article 29 | - Best New Newel 30 | - Best Book 31 | 32 | --- 33 | 34 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi amet, ultrices scelerisue cras. Tincidunt hendrerit egestas venenatis risus sit nunc. Est esglit non in ipsum lect;aaus adipiscing et enim porttitor. Dui ultrices et volud eetpat nunc, turpis rutrum elit vestibululm ipsum. Arcu fringilla duis vitae mos dsdllis duicras interdum purus cursus massa metus. Acc umsan felaais, egsdvet nisi, viverra turpis fermentum sit suspf bafedfb ndisse fermentum consectetur. Facilisis feugiat trisique orci tempor sed masd fbsssa tristique ultrices sodales. Augue est sapien elementum facilisis. Enim tincidnt cras interdum purus ndisse. morbi quis nunc. 35 | 36 | Et dolor placerat tempus risus nunc urna, nunc a. Mattis viverra ut sapidaaen enim sed tortor. Mattis gravida fusce cras interdum purus cursus massa metus. Acc umsan felaais, eget nisi, viverra turpis fermentum sit suspf bafedfb ndisse. morbi quis nunc, at arcu quam facilisi. In in lacus aliquam dictum sagittis morbi odio. Et magnis cursus sem sed condimentum. Nibh non potenti ac amsdfet Tincidunt hendrerit egestas venenatis risus sit nunc. Est esglit non in ipsuasdm lect;aaus adipiscing et enim porttitor. Dui ultrices et volud eetpat nunc, turpis ndisse. morbi quis nunc, at arcu quam facilisi ndisse. morbi quis nunc, at arcu quam facilisi 37 | -------------------------------------------------------------------------------- /content/contact.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Let’s, Talk
About You" 3 | description: "meta description" 4 | phone: "+211234565523" 5 | mail: "info@email.com" 6 | location: "9567 Turner Trace Apt. BC C3G8A4" 7 | form_action: "#" 8 | layout: "contact" 9 | addresses: 10 | - icon: FaUserAlt 11 | content: +211234565523 12 | link: tel:+211234565523 13 | - icon: FaMapMarkerAlt 14 | content: info@email.com 15 | link: mailto:info@email.com 16 | - icon: FaLocation 17 | content: 9567 Turner Trace Apt. BC C3G8A4 18 | 19 | draft: false 20 | --- 21 | -------------------------------------------------------------------------------- /content/elements.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Elements" 3 | draft: false 4 | --- 5 | 6 | # Heading 1 7 | 8 | ## Heading 2 9 | 10 | ### Heading 3 11 | 12 | #### Heading 4 13 | 14 | ##### Heading 5 15 | 16 | ###### Heading 6 17 | 18 | --- 19 | 20 | ### Paragraph 21 | 22 | Did you come here for something in particular or just general Riker-bashing? And blowing into maximum warp speed, you appeared for an instant to be in two places at once. We have a saboteur aboard. We know you’re dealing in stolen ore. But I wanna talk about the assassination attempt on Lieutenant Worf. Could someone survive inside a transporter buffer for 75 years? Fate. It protects fools, little children, and ships. 23 | 24 | Did you come here for something in particular or just general Riker-bashing? And blowing into maximum warp speed, you appeared for an instant to be in two places at once. We have a saboteur aboard. We know you’re dealing in stolen ore. But I wanna talk about the assassination attempt on Lieutenant Worf. Could someone survive inside a transporter buffer for 75 years? Fate. It protects fools, little children, and ships. 25 | 26 | --- 27 | 28 | ### Emphasis 29 | 30 | 1. Did you come here for something in **particular** or just general 31 | 32 | 2. Did you come here for something in particular 33 | 34 | 3. _Did you come here_ 35 | 36 | 4. Did you come here for **something** in particular 37 | 38 | 5. Did you come here for something in particular 39 | 40 | 6. Did you come here for something in particular 41 | 42 | 7. URLs and URLs in angle brackets will automatically get turned into links. [http://www.example.com](http://www.example.com) or 43 | 44 | 8. [http://www.example.com](http://www.example.com) and sometimes example.com (but not on Github, for example). 45 | 46 | --- 47 | 48 | ### Link 49 | 50 | [I'm an inline-style link](https://www.google.com) 51 | 52 | [I'm an inline-style link with title](https://www.google.com "Google's Homepage") 53 | 54 | [I'm a reference-style link][arbitrary case-insensitive reference text] 55 | 56 | [I'm a relative reference to a repository file](../blob/master/LICENSE) 57 | 58 | [You can use numbers for reference-style link definitions][1] 59 | 60 | Or leave it empty and use the [link text itself]. 61 | 62 | example.com (but not on Github, for example). 63 | 64 | Some text to show that the reference links can follow later. 65 | 66 | [arbitrary case-insensitive reference text]: https://www.themefisher.com 67 | [1]: https://gethugothemes.com 68 | [link text itself]: https://www.getjekyllthemes.com 69 | 70 | --- 71 | 72 | ### Ordered List 73 | 74 | 1. List item 75 | 2. List item 76 | 3. List item 77 | 4. List item 78 | 5. List item 79 | 80 | --- 81 | 82 | ### Unordered List 83 | 84 | - List item 85 | - List item 86 | - List item 87 | - List item 88 | - List item 89 | 90 | --- 91 | 92 | ### Code and Syntax Highlighting 93 | 94 | #### HTML 95 | 96 | 97 | {``} 105 | 106 | 107 | --- 108 | 109 | #### CSS 110 | 111 | 112 | {`img { 113 | vertical-align: middle; 114 | border: 0; 115 | max-width: 100%; 116 | height: auto; 117 | }`} 118 | 119 | 120 | --- 121 | 122 | #### JavaScript 123 | 124 | 125 | {`window.addEventListener("load", (e) => { 126 | document.querySelector(".preloader").style.display = "none"; 127 | })`} 128 | 129 | 130 | --- 131 | 132 | ### Button 133 | 134 | 135 | 136 | --- 137 | 138 | ### Quote 139 | 140 | > Did you come here for something in particular or just general Riker-bashing? And blowing into maximum warp speed, you appeared for an instant to be in two places at once. 141 | 142 | --- 143 | 144 | ### Notice 145 | 146 | 147 | This is a simple note. 148 | 149 | 150 | 151 | This is a simple note. 152 | 153 | 154 | 155 | This is a simple note. 156 | 157 | 158 | 159 | This is a simple note. 160 | 161 | 162 | --- 163 | 164 | 165 | 166 | 167 | 168 | #### Did you come here for something in particular? 169 | 170 | Did you come here for something in particular or just general Riker-bashing? And blowing into maximum warp speed, you appeared for an instant to be in two places at once. We have a saboteur aboard. We know you’re dealing in stolen ore. But I wanna talk about the assassination attempt on Lieutenant Worf. 171 | 172 | 173 | 174 | 175 | #### I wanna talk about the assassination attempt 176 | 177 | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. 178 | 179 | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. 180 | 181 | 182 | 183 | 184 | #### We know you’re dealing in stolen ore 185 | 186 | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. 187 | 188 | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo 189 | 190 | 191 | 192 | 193 | --- 194 | 195 | ### Table 196 | 197 | | # | First | Last | Handle | 198 | | :-- | :----------: | :----------: | -----------: | 199 | | 1 | Row:1 Cell:1 | Row:1 Cell:2 | Row:1 Cell:3 | 200 | | 2 | Row:2 Cell:1 | Row:2 Cell:2 | Row:2 Cell:3 | 201 | | 3 | Row:3 Cell:1 | Row:3 Cell:2 | Row:3 Cell:3 | 202 | 203 | --- 204 | 205 | ### Collapse 206 | 207 | 208 | 209 | - This is a thing. 210 | - This is a thing. 211 | - This is a thing. 212 | - This is a thing. 213 | - This is a thing. 214 | 215 | 216 | 217 | 218 | 219 | - This is a thing. 220 | - This is a thing. 221 | - This is a thing. 222 | - This is a thing. 223 | - This is a thing. 224 | 225 | 226 | 227 | 228 | 229 | - This is a thing. 230 | - This is a thing. 231 | - This is a thing. 232 | - This is a thing. 233 | - This is a thing. 234 | 235 | 236 | 237 | --- 238 | 239 | ### Image 240 | 241 | ![image](/images/post/post-1.png) 242 | 243 | --- 244 | 245 | ### Youtube video 246 | 247 | 248 | 249 | --- 250 | 251 | ### Custom video 252 | 253 |