{"data":{"featured":{"edges":[{"node":{"frontmatter":{"title":"Recipe Resizer","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","images":{"fallback":{"src":"/static/8b0d47f14e065bf6631910a55510ff09/cf581/demo.png","srcSet":"/static/8b0d47f14e065bf6631910a55510ff09/14dc0/demo.png 175w,\n/static/8b0d47f14e065bf6631910a55510ff09/2a0b0/demo.png 350w,\n/static/8b0d47f14e065bf6631910a55510ff09/cf581/demo.png 700w","sizes":"(min-width: 700px) 700px, 100vw"},"sources":[{"srcSet":"/static/8b0d47f14e065bf6631910a55510ff09/c281b/demo.avif 175w,\n/static/8b0d47f14e065bf6631910a55510ff09/c462e/demo.avif 350w,\n/static/8b0d47f14e065bf6631910a55510ff09/10968/demo.avif 700w","type":"image/avif","sizes":"(min-width: 700px) 700px, 100vw"},{"srcSet":"/static/8b0d47f14e065bf6631910a55510ff09/486e0/demo.webp 175w,\n/static/8b0d47f14e065bf6631910a55510ff09/6b67d/demo.webp 350w,\n/static/8b0d47f14e065bf6631910a55510ff09/ffb76/demo.webp 700w","type":"image/webp","sizes":"(min-width: 700px) 700px, 100vw"}]},"width":700,"height":368}}},"tech":["Swift","SwiftUI","Core Data","iOS"],"github":"https://github.com/Night-Owl-Labs/Recipe-Resizer-File-Format","ios":"https://apps.apple.com/app/id6450848695","prg":null,"vscode":null,"obsidian":null,"chrome":"https://chromewebstore.google.com/detail/cgaofenojhlpapimpafchnapdfhfhiml","helpcenter":"https://help.reciperesizer.com/","external":"https://www.reciperesizer.com/"},"html":"<p>Recipe Resizer is an iOS Mobile App that allows you to effortlessly resize recipe servings up or down, convert units of measure, and learn valuable culinary tips from a classically trained chef. With Recipe Resizer, you can save your recipes locally to your phone, share them with your friends, and export or print them out in PDF.</p>"}},{"node":{"frontmatter":{"title":"Personal Repository Guidelines","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","images":{"fallback":{"src":"/static/f1c3fe682fdc22d77d06559ebff32e87/4641a/demo.png","srcSet":"/static/f1c3fe682fdc22d77d06559ebff32e87/d0396/demo.png 175w,\n/static/f1c3fe682fdc22d77d06559ebff32e87/940ee/demo.png 350w,\n/static/f1c3fe682fdc22d77d06559ebff32e87/4641a/demo.png 700w","sizes":"(min-width: 700px) 700px, 100vw"},"sources":[{"srcSet":"/static/f1c3fe682fdc22d77d06559ebff32e87/544ed/demo.avif 175w,\n/static/f1c3fe682fdc22d77d06559ebff32e87/7193e/demo.avif 350w,\n/static/f1c3fe682fdc22d77d06559ebff32e87/8a405/demo.avif 700w","type":"image/avif","sizes":"(min-width: 700px) 700px, 100vw"},{"srcSet":"/static/f1c3fe682fdc22d77d06559ebff32e87/f5153/demo.webp 175w,\n/static/f1c3fe682fdc22d77d06559ebff32e87/7a3ae/demo.webp 350w,\n/static/f1c3fe682fdc22d77d06559ebff32e87/d21b9/demo.webp 700w","type":"image/webp","sizes":"(min-width: 700px) 700px, 100vw"}]},"width":700,"height":640}}},"tech":["Markdown","Python","DataTables","Jekyll","GitHub API","GitHub Actions","GitHub Pages"],"github":"https://github.com/scottgriv/PRG-Personal-Repository-Guidelines","ios":"","prg":"https://www.prgportfolio.com","vscode":null,"obsidian":null,"chrome":"","helpcenter":"","external":"https://prgoptimized.netlify.app"},"html":"<p>PRG is a repository categorization and guideline framework. By harnessing the power of GitHub Actions, it automatically crafts a tier-based display, neatly categorizing your repositories for enhanced clarity and impact. Beyond mere organization, it sets forth comprehensive guidelines, templates for READMEs, and overall repository structure, ensuring each project is showcased with maximum professionalism and coherence.</p>"}},{"node":{"frontmatter":{"title":"Post.e","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","images":{"fallback":{"src":"/static/3df466be0dcbf34d85157cc0de881382/8ef5a/demo.png","srcSet":"/static/3df466be0dcbf34d85157cc0de881382/7cf94/demo.png 175w,\n/static/3df466be0dcbf34d85157cc0de881382/ec193/demo.png 350w,\n/static/3df466be0dcbf34d85157cc0de881382/8ef5a/demo.png 700w","sizes":"(min-width: 700px) 700px, 100vw"},"sources":[{"srcSet":"/static/3df466be0dcbf34d85157cc0de881382/76824/demo.avif 175w,\n/static/3df466be0dcbf34d85157cc0de881382/5faa0/demo.avif 350w,\n/static/3df466be0dcbf34d85157cc0de881382/6ce82/demo.avif 700w","type":"image/avif","sizes":"(min-width: 700px) 700px, 100vw"},{"srcSet":"/static/3df466be0dcbf34d85157cc0de881382/4e292/demo.webp 175w,\n/static/3df466be0dcbf34d85157cc0de881382/26ddb/demo.webp 350w,\n/static/3df466be0dcbf34d85157cc0de881382/1579e/demo.webp 700w","type":"image/webp","sizes":"(min-width: 700px) 700px, 100vw"}]},"width":700,"height":559}}},"tech":["Swift","Objective-C","UIKit","iOS","watchOS"],"github":"https://github.com/scottgriv/Post.e","ios":null,"prg":null,"vscode":null,"obsidian":null,"chrome":"","helpcenter":"","external":"https://post-e.netlify.app/"},"html":"<p>A fully functional, multi-programming language, \"how-to-build\" social media application. Create a user profile, follow other users, and post messages similar to Twitter/X. Share content with other users by attaching photos, videos, documents, and files to your Posts. Written in Swift &#x26; Objective-C for the front-end and multiple back-end languages such as PHP, Python, Node.js, Ruby, Go, Java, Rust, and Perl. Includes a back-end MySQL database, JSON interchange, and multiple out of the box APIs. Designed to teach people how to build their own social media app in mind.</p>"}},{"node":{"frontmatter":{"title":"Dark Castle Theme","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","images":{"fallback":{"src":"/static/a93e305255938737c372efa5871c1965/66634/demo.png","srcSet":"/static/a93e305255938737c372efa5871c1965/73943/demo.png 175w,\n/static/a93e305255938737c372efa5871c1965/822a9/demo.png 350w,\n/static/a93e305255938737c372efa5871c1965/66634/demo.png 700w,\n/static/a93e305255938737c372efa5871c1965/8464c/demo.png 1400w","sizes":"(min-width: 700px) 700px, 100vw"},"sources":[{"srcSet":"/static/a93e305255938737c372efa5871c1965/876a6/demo.avif 175w,\n/static/a93e305255938737c372efa5871c1965/179ab/demo.avif 350w,\n/static/a93e305255938737c372efa5871c1965/566a1/demo.avif 700w,\n/static/a93e305255938737c372efa5871c1965/94722/demo.avif 1400w","type":"image/avif","sizes":"(min-width: 700px) 700px, 100vw"},{"srcSet":"/static/a93e305255938737c372efa5871c1965/b2e31/demo.webp 175w,\n/static/a93e305255938737c372efa5871c1965/e5908/demo.webp 350w,\n/static/a93e305255938737c372efa5871c1965/23874/demo.webp 700w,\n/static/a93e305255938737c372efa5871c1965/4c08a/demo.webp 1400w","type":"image/webp","sizes":"(min-width: 700px) 700px, 100vw"}]},"width":700,"height":394}}},"tech":["HEX","RGB","HSL","UI/UX Design"],"github":"https://github.com/scottgriv/Dark-Castle-Theme","ios":"","prg":null,"vscode":"https://marketplace.visualstudio.com/items?itemName=scottgriv.Dark-Castle","obsidian":"https://publish.obsidian.md/hub/02+-+Community+Expansions/02.05+All+Community+Expansions/Themes/Dark+Castle","chrome":"https://chromewebstore.google.com/detail/iljeoadcgeiojmaaiepfojppdjffkahb","helpcenter":"","external":"https://darkcastletheme.com"},"html":"<p>A vibrantly elegant dark theme available for multiple platforms. Inspired by the timeless beauty and mystery of medieval castles, this theme combines rich, deep colors with a clean and modern design.</p>"}},{"node":{"frontmatter":{"title":"River Charts","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","images":{"fallback":{"src":"/static/a9f2709015deadebc783a7c81e6998f3/c279d/demo.png","srcSet":"/static/a9f2709015deadebc783a7c81e6998f3/e43e6/demo.png 175w,\n/static/a9f2709015deadebc783a7c81e6998f3/7e5d9/demo.png 350w,\n/static/a9f2709015deadebc783a7c81e6998f3/c279d/demo.png 700w,\n/static/a9f2709015deadebc783a7c81e6998f3/8c88b/demo.png 1400w","sizes":"(min-width: 700px) 700px, 100vw"},"sources":[{"srcSet":"/static/a9f2709015deadebc783a7c81e6998f3/ca3a1/demo.avif 175w,\n/static/a9f2709015deadebc783a7c81e6998f3/72d4a/demo.avif 350w,\n/static/a9f2709015deadebc783a7c81e6998f3/cd012/demo.avif 700w,\n/static/a9f2709015deadebc783a7c81e6998f3/cefe9/demo.avif 1400w","type":"image/avif","sizes":"(min-width: 700px) 700px, 100vw"},{"srcSet":"/static/a9f2709015deadebc783a7c81e6998f3/c4386/demo.webp 175w,\n/static/a9f2709015deadebc783a7c81e6998f3/d471b/demo.webp 350w,\n/static/a9f2709015deadebc783a7c81e6998f3/f2883/demo.webp 700w,\n/static/a9f2709015deadebc783a7c81e6998f3/d7e16/demo.webp 1400w","type":"image/webp","sizes":"(min-width: 700px) 700px, 100vw"}]},"width":700,"height":516}}},"tech":["Python","Django","Plotly","Pandas","API","PythonAnywhere"],"github":"https://github.com/scottgriv/River-Charts","ios":"","prg":null,"vscode":null,"obsidian":null,"chrome":"","helpcenter":"","external":"https://scottgriv.pythonanywhere.com/"},"html":"<p>A Python, Django, Plotly, and Pandas web application that visualizes river data pulled using an API from the United States Geological Survey (USGS). The application allows users to view a river's gage height and discharge based on a specific date range. The application also allows users to view plotted dates of interest on the graph to view river levels for said dates.</p>"}},{"node":{"frontmatter":{"title":"Palm Tree","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","images":{"fallback":{"src":"/static/5f684478391608feda62e418fb4d5770/c279d/demo.png","srcSet":"/static/5f684478391608feda62e418fb4d5770/e43e6/demo.png 175w,\n/static/5f684478391608feda62e418fb4d5770/7e5d9/demo.png 350w,\n/static/5f684478391608feda62e418fb4d5770/c279d/demo.png 700w","sizes":"(min-width: 700px) 700px, 100vw"},"sources":[{"srcSet":"/static/5f684478391608feda62e418fb4d5770/ca3a1/demo.avif 175w,\n/static/5f684478391608feda62e418fb4d5770/72d4a/demo.avif 350w,\n/static/5f684478391608feda62e418fb4d5770/cd012/demo.avif 700w","type":"image/avif","sizes":"(min-width: 700px) 700px, 100vw"},{"srcSet":"/static/5f684478391608feda62e418fb4d5770/c4386/demo.webp 175w,\n/static/5f684478391608feda62e418fb4d5770/d471b/demo.webp 350w,\n/static/5f684478391608feda62e418fb4d5770/f2883/demo.webp 700w","type":"image/webp","sizes":"(min-width: 700px) 700px, 100vw"}]},"width":700,"height":516}}},"tech":["JavaScript","Boostrap","HTML","CSS","PHP","MySQL"],"github":"https://github.com/Night-Owl-Labs/Palm-Tree","ios":null,"prg":null,"vscode":null,"obsidian":null,"chrome":"","helpcenter":"","external":"https://night-owl-labs.github.io/Palm-Tree/"},"html":"<p>A web based CRM application with Google Business Review email request capabilities. Send marketing emails out to your customers, including emails requesting Google Business Reviews. Directly open a Review window on your Google Business page with a click of a button within the email.</p>"}},{"node":{"frontmatter":{"title":"Launch Portals","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","images":{"fallback":{"src":"/static/e219d2fcdc5320eb2198066814728409/f3de0/demo.png","srcSet":"/static/e219d2fcdc5320eb2198066814728409/e9550/demo.png 150w,\n/static/e219d2fcdc5320eb2198066814728409/153fe/demo.png 300w,\n/static/e219d2fcdc5320eb2198066814728409/f3de0/demo.png 600w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e219d2fcdc5320eb2198066814728409/ef66f/demo.avif 150w,\n/static/e219d2fcdc5320eb2198066814728409/10d93/demo.avif 300w,\n/static/e219d2fcdc5320eb2198066814728409/6eb23/demo.avif 600w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e219d2fcdc5320eb2198066814728409/91de7/demo.webp 150w,\n/static/e219d2fcdc5320eb2198066814728409/6e350/demo.webp 300w,\n/static/e219d2fcdc5320eb2198066814728409/022c2/demo.webp 600w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":700,"height":767.6666666666666}}},"tech":["Gatsby.js","Netlify","React","JavaScript"],"github":"https://github.com/scottgriv/Launch-Portals","ios":"","prg":null,"vscode":null,"obsidian":null,"chrome":"","helpcenter":"","external":"https://launchportals.netlify.app/"},"html":"<p>Launch Portals is a dynamic web application designed for developers, marketers, and project managers to showcase and monitor their digital projects. This tool not only provides quick links to projects, repositories, websites, apps, and social media pages but also crucially displays and verifies the metadata of each link. Users can easily ensure that their projects are presented correctly across platforms by checking Open Graph tags and other metadata in real-time. Whether you're launching a new app or managing an existing portfolio, Launch Portals helps you maintain control over how your projects appear to the world, enhancing visibility and consistency across the web.</p>"}},{"node":{"frontmatter":{"title":"Bee Heard","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","images":{"fallback":{"src":"/static/b62ee0f38bbebf94350bd4f20168eb64/0ca41/demo.png","srcSet":"/static/b62ee0f38bbebf94350bd4f20168eb64/cdc82/demo.png 175w,\n/static/b62ee0f38bbebf94350bd4f20168eb64/1df72/demo.png 350w,\n/static/b62ee0f38bbebf94350bd4f20168eb64/0ca41/demo.png 700w,\n/static/b62ee0f38bbebf94350bd4f20168eb64/417ed/demo.png 1400w","sizes":"(min-width: 700px) 700px, 100vw"},"sources":[{"srcSet":"/static/b62ee0f38bbebf94350bd4f20168eb64/65611/demo.avif 175w,\n/static/b62ee0f38bbebf94350bd4f20168eb64/e6630/demo.avif 350w,\n/static/b62ee0f38bbebf94350bd4f20168eb64/cf58e/demo.avif 700w,\n/static/b62ee0f38bbebf94350bd4f20168eb64/df18f/demo.avif 1400w","type":"image/avif","sizes":"(min-width: 700px) 700px, 100vw"},{"srcSet":"/static/b62ee0f38bbebf94350bd4f20168eb64/21909/demo.webp 175w,\n/static/b62ee0f38bbebf94350bd4f20168eb64/74aa1/demo.webp 350w,\n/static/b62ee0f38bbebf94350bd4f20168eb64/1965d/demo.webp 700w,\n/static/b62ee0f38bbebf94350bd4f20168eb64/182e0/demo.webp 1400w","type":"image/webp","sizes":"(min-width: 700px) 700px, 100vw"}]},"width":700,"height":350}}},"tech":["JavaScript"],"github":"https://github.com/Night-Owl-Labs/Bee-Heard-Code-Memos","ios":"","prg":null,"vscode":"https://marketplace.visualstudio.com/items?itemName=night-owl-labs.bee-heard","obsidian":null,"chrome":"","helpcenter":"","external":"https://beeheard.com"},"html":"<p>Bee Heard: Code Memos is a Visual Studio Code extension that allows you to record voice memos directly within VSCode. The recorded memos are saved as audio files in a specified directory.</p>"}}]}}}