41554 blogs · [
{
"id": "01a0877a-01fc-72b3-8a7b-7912ab65e181",
"title": "WebMCP: A Practical Guide to Agent-Ready Websites",
"url": "https://freshman.tech/webmcp/",
"published_at": "2026-09-01T09:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912abf23e59",
"title": "Creating Your First Chrome Extension (With Built-in AI Features)",
"url": "https://freshman.tech/first-chrome-extension/",
"published_at": "2025-11-15T21:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912aca71306",
"title": "Book Summary: A Philosophy of Software Design",
"url": "https://freshman.tech/philosophy-of-software-design-summary/",
"published_at": "2021-06-15T19:41:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912acabe340",
"title": "A Complete Guide to Linting Go Programs",
"url": "https://freshman.tech/linting-golang/",
"published_at": "2021-06-02T17:40:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912acb4e0cf",
"title": "A Guide to Customising the Windows Terminal",
"url": "https://freshman.tech/windows-terminal-guide/",
"published_at": "2020-12-07T12:20:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912ad927427",
"title": "How to process file uploads in Go",
"url": "https://freshman.tech/file-upload-golang/",
"published_at": "2020-10-14T08:30:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912ada394af",
"title": "How to build a Pomodoro Timer App with JavaScript",
"url": "https://freshman.tech/pomodoro-timer/",
"published_at": "2020-08-02T21:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912ade4ceec",
"title": "How to build a Simon Game with JavaScript",
"url": "https://freshman.tech/simon-game/",
"published_at": "2020-07-19T08:30:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912ae9f5e14",
"title": "Migrating away from Google Analytics",
"url": "https://freshman.tech/google-analytics-to-plausible/",
"published_at": "2020-07-11T15:44:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912aee69382",
"title": "The quickfix and location lists in Vim",
"url": "https://freshman.tech/vim-quickfix-and-location-list/",
"published_at": "2020-06-18T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912af26e773",
"title": "How to work with Data Types in Go",
"url": "https://freshman.tech/golang-data-types/",
"published_at": "2020-05-21T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912af2a5f00",
"title": "Working with Variables in Go",
"url": "https://freshman.tech/golang-variables/",
"published_at": "2020-05-08T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b029a9b2",
"title": "How to program a guessing game with Go",
"url": "https://freshman.tech/golang-guess/",
"published_at": "2020-05-01T22:30:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b0d23aa2",
"title": "Introduction to the Go programming language and why you should learn it",
"url": "https://freshman.tech/introduction-to-go/",
"published_at": "2020-05-01T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b1548181",
"title": "How to build a Custom HTML5 Video Player with JavaScript",
"url": "https://freshman.tech/custom-html5-video/",
"published_at": "2019-10-23T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b1980321",
"title": "How to Build Your First Web Application with Go",
"url": "https://freshman.tech/web-development-with-go/",
"published_at": "2019-08-22T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b25c62d6",
"title": "How to build an Unsplash Search App with Svelte 3",
"url": "https://freshman.tech/unsplash-search/",
"published_at": "2019-07-15T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b2c26da3",
"title": "Learn Svelte 3 by building a Todo List App",
"url": "https://freshman.tech/svelte-todo/",
"published_at": "2019-07-09T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b342d4c0",
"title": "A guide to setting up Vim for JavaScript development",
"url": "https://freshman.tech/vim-javascript/",
"published_at": "2019-05-06T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b43a77dc",
"title": "How to build a Countdown Timer with Golang",
"url": "https://freshman.tech/golang-timer/",
"published_at": "2019-05-03T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b49f9a62",
"title": "How to build a Todo List App with JavaScript",
"url": "https://freshman.tech/todo-list/",
"published_at": "2019-03-18T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b52ab2d6",
"title": "Learn Node.js and MongoDB by Building a URL Shortener App",
"url": "https://freshman.tech/url-shortener/",
"published_at": "2019-01-24T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b5c8a98e",
"title": "How to build a Mobile App Layout with CSS Flexbox",
"url": "https://freshman.tech/flexbox-mobile-app/",
"published_at": "2019-01-07T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b626787a",
"title": "Learn Node.js by Building a Timestamp Microservice App",
"url": "https://freshman.tech/microservice/",
"published_at": "2018-11-22T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b6c12056",
"title": "How to build a responsive feature list with CSS Flexbox",
"url": "https://freshman.tech/feature-list/",
"published_at": "2018-11-21T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b6e6d507",
"title": "How to build a Navigation Bar with CSS Flexbox",
"url": "https://freshman.tech/flexbox-navbar/",
"published_at": "2018-11-10T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b7caf509",
"title": "Learn CSS Flexbox by building a photo card component",
"url": "https://freshman.tech/flexbox/",
"published_at": "2018-10-23T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b7fc2ffa",
"title": "A Guide to Responsive Images on the Web",
"url": "https://freshman.tech/responsive-images/",
"published_at": "2018-08-04T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b8cfbf43",
"title": "How Image Optimisation Decreased my Website's Page Weight by 62%",
"url": "https://freshman.tech/image-optimisation/",
"published_at": "2018-07-15T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b949b4be",
"title": "How to build a Calculator App with JavaScript",
"url": "https://freshman.tech/calculator/",
"published_at": "2018-07-06T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912b9ad913f",
"title": "Learn CSS Grid by building a simple Calculator Layout",
"url": "https://freshman.tech/css-grid-calculator/",
"published_at": "2018-05-29T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912ba6605c1",
"title": "How to Build Your First Node.js Website with Express and Pug",
"url": "https://freshman.tech/learn-node/",
"published_at": "2018-05-17T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912bb606c46",
"title": "How to choose an editor for JavaScript",
"url": "https://freshman.tech/javascript-editors/",
"published_at": "2018-04-11T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912bbe4d99a",
"title": "Why I switched to Vim from Visual Studio Code",
"url": "https://freshman.tech/from-vscode-to-vim/",
"published_at": "2018-04-02T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912bbf08af0",
"title": "HTTPS blind spots",
"url": "https://freshman.tech/https-blind-spots/",
"published_at": "2018-02-01T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912bcbfdcf5",
"title": "Securing your website",
"url": "https://freshman.tech/securing-your-website/",
"published_at": "2018-01-31T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912bdafcf97",
"title": "SSL Certificates",
"url": "https://freshman.tech/ssl-certificates/",
"published_at": "2018-01-28T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912bdcbfb95",
"title": "The value of HTTPS",
"url": "https://freshman.tech/the-value-of-https/",
"published_at": "2018-01-26T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912bded8454",
"title": "How to build a Wikipedia Search App with JavaScript",
"url": "https://freshman.tech/wikipedia-javascript/",
"published_at": "2017-09-12T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912be0b5406",
"title": "Build your first JavaScript App — A Random Quote Generator",
"url": "https://freshman.tech/random-quote-machine/",
"published_at": "2017-09-08T00:00:00+00:00"
},
{
"id": "01a0877a-01fc-72b3-8a7b-7912be482a99",
"title": "Let's learn HTTP Status Codes",
"url": "https://freshman.tech/http-status-codes/",
"published_at": "2017-04-30T00:00:00+00:00"
}
] posts Claim your blog