Terminal is a web app created to provide web-based developer tools with a dev-friendly terminal interface.
https://t.liamhales.dev
⚠️ WARNING - Please make sure to follow the Getting Started section first to avoid running into any issues.
- Built With 🛠️
- Getting Started 🚀
- Local Development 👨🏻💻
- Production 🌍
- Public Assets 🌆
- Dependency Management 📦
This app was built and hosted with the following technologies. For a full list of dependencies used, see the package.json file.
- Download and install Node Version Manager
- Install and use a version of Node.js
>= v24.13
$ nvm install 24.13
$ nvm use 24.13
$ node --version
v24.13.0
$ npm --version
v11.6.2- Run
corepack enableto enable Corepack - You should now be able to use the
yarnpackage manager which you MUST use for this project
📝 NOTE - Yarn comes bundled with Corepack and is the preferred way to install/manage Yarn. Check out the Yarn Installation Guide for more info
$ yarn --version
v4.12.0📝 NOTE - The current version of Yarn should match the
packageManagerversion in thepackage.json
- Run
yarnin the project root - Create a
.envfile in the project root
SITE_URL = 'https://t.liamhales.dev'
DYNAMO_DB_REGION = 'eu-west-2'
DYNAMO_DB_SHARED_BLOCKS_TABLE_NAME = 'terminal-shared-blocks'
FILE_STORE_ID = '******'
FILE_READ_WRITE_TOKEN = '******'For local development there are two ways to build and start the app depending on your specific needs...
- Development Server - Should be used when developing the app
- Production Server - Should be used to simulate how the app will run in production
- Run
yarn start:devto start the development server
$ yarn start:dev- Run
yarn buildto build the app for production - Run
yarn start:prodto start the production server
$ yarn build
$ yarn start:prod- Run
yarn buildto build the app for production
$ yarn buildThe app is hosted on AWS Amplify and is built and deployed using their GitHub integration and auto-build feature. When code is pushed to the repos main branch, a production build and deployment is triggered. No need to manually build or deploy.
$ git checkout main
$ git add --all
$ git commit -m "Fixed bugs"
$ git pushAnalysing a production bundle is done using @next/bundle-analyzer under the hood and is used to inspect the app and the size each page, component and dependency takes up within the bundle.
- Run
yarn build:analyseto build and analyse the app for production - Open the generated
.htmlfiles located in.next/analyze
$ yarn build:analyse
⚠️ WARNING - The bundle analyser will automatically open the generated.htmlfiles in your default browser
Most public assets already exist in the /public directory, however some assets such as some of the icons are dynamically built using build scripts.
- Run
yarn build:iconsto build thefavicon.icoand.webpicons
$ yarn build:icons📝 NOTE - These public assets are not required for a functional build
📝 NOTE - Public assets such as the
sitemap.xmlandrobots.txtfiles exists on dynamic routes
Managing dependencies is done using npm-check-updates under the hood which has the ability to check for new dependency versions and upgrade dependencies to a specified target version.
- Run
yarn depsto list upgradable dependencies
--target ${latest | minor | patch}to scope dependencies to a specific target version--upgradeto upgrade dependencies--interactiveto choose which dependencies to upgrade in interactive mode
Check out the npm-check-updates docs or run yarn ncu --help for more info.