diff --git a/README.md b/README.md index 74872fd..a52f957 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,42 @@ -# React + TypeScript + Vite - -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. - -Currently, two official plugins are available: - -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh - -## Expanding the ESLint configuration - -If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: - -- Configure the top-level `parserOptions` property like this: - -```js -export default tseslint.config({ - languageOptions: { - // other options... - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - }, -}) -``` - -- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` -- Optionally add `...tseslint.configs.stylisticTypeChecked` -- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: - -```js -// eslint.config.js -import react from 'eslint-plugin-react' - -export default tseslint.config({ - // Set the react version - settings: { react: { version: '18.3' } }, - plugins: { - // Add the react plugin - react, - }, - rules: { - // other rules... - // Enable its recommended rules - ...react.configs.recommended.rules, - ...react.configs['jsx-runtime'].rules, - }, -}) -``` +## Domain Lookup Tool + +![GitHub release (latest by date)](https://img.shields.io/github/v/release/Nickslabcode/domain-info-lookup) +[![Website](https://img.shields.io/badge/website-live-green)](https://domain-lookup.your-website.com) + +A production app to streamline domain and site information retrieval for hosting support professionals. + + + +## Tech Stack + +- **Front-end**: React, TypeScript, Axios, HttpYac, TailwindCSS, DaisyUI. +- **Proxy**: Cloudflare Worker (TypeScript). +- **Back-end**: Express, AWS Lambda. Check back-end repo [here](https://github.com/Nickslabcode/api-domain-lookup). + +- **Additional Features**: + - GitHub Actions workflows for automated deployment & for semantic versioning for changelogs. + + + +## Key Features + +- **WHOIS, SSL, and DNS Lookup** + Retrieve essential domain information, including WHOIS records, SSL details, and DNS configurations in a single search. + ![Results view](https://domain-lookup.nikola-nenovski.info/images/results.png) + +- **CDN and WordPress Detection** + Detect active CDN services by analyzing response headers and identify if a site is running WordPress (In progress). + +- **Search History** + Maintain a history of recent lookups for quick reference and repeated searches. + ![Search History](https://domain-lookup.nikola-nenovski.info/images/search-history-2.gif) + +- **Changelog Viewer** + Access app version details and updates seamlessly by fetching the project's changelog from the GitHub API. + ![Changelog Viewer](https://domain-lookup.nikola-nenovski.info/images/changelog.png) + +- **Shortcuts** + Enhanced with shortcuts for a more efficient workflow. + ![Shortcuts](https://domain-lookup.nikola-nenovski.info/images/shortcuts.png) + + diff --git a/package-lock.json b/package-lock.json index 7914c0f..d47892b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,20 +13,21 @@ "@types/react-icons": "^3.0.0", "@types/react-router-dom": "^5.3.3", "axios": "^1.7.7", + "clsx": "^2.1.1", "dotenv": "^16.4.5", "react": "^18.3.1", "react-dom": "^18.3.1", "react-icons": "^5.3.0", "react-markdown": "^9.0.1", "react-router-dom": "^6.28.0", - "remark-gfm": "^4.0.0" + "remark-gfm": "^4.0.0", + "tailwind-merge": "^2.5.4" }, "devDependencies": { "@eslint/js": "^9.13.0", "@types/autoprefixer": "^10.2.4", "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", - "@types/semantic-release": "^20.0.6", "@types/tailwindcss": "^3.1.0", "@vitejs/plugin-react": "^4.3.3", "autoprefixer": "^10.4.20", @@ -2131,15 +2132,6 @@ "@types/react-router": "*" } }, - "node_modules/@types/semantic-release": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@types/semantic-release/-/semantic-release-20.0.6.tgz", - "integrity": "sha512-8YJXvsT1FwMrNdZI1e6NBHPzZWendDiUsLryzxurdup+9LnV3s9fF4NgO0D3LkBfLMnocb4Ax6TQ5yFdF3dXGQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/semver": { "version": "7.5.8", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", @@ -3309,6 +3301,14 @@ "node": ">=0.8" } }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -12177,6 +12177,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tailwind-merge": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.4.tgz", + "integrity": "sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, "node_modules/tailwindcss": { "version": "3.4.14", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz", diff --git a/package.json b/package.json index 45bb7ac..db6e0e9 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "acp": "git add . && npm run commit && git push origin dev", "dev:domainlookup": "npx wrangler dev --config workers/domainlookup/wrangler.toml", "deploy:domainlookup": "npx wrangler deploy --config workers/domainlookup/wrangler.toml", - "semantic-release": "semantic-release --branches dev" + "semantic-release": "semantic-release --branches main" }, "dependencies": { "@types/axios": "^0.14.4", @@ -20,20 +20,21 @@ "@types/react-icons": "^3.0.0", "@types/react-router-dom": "^5.3.3", "axios": "^1.7.7", + "clsx": "^2.1.1", "dotenv": "^16.4.5", "react": "^18.3.1", "react-dom": "^18.3.1", "react-icons": "^5.3.0", "react-markdown": "^9.0.1", "react-router-dom": "^6.28.0", - "remark-gfm": "^4.0.0" + "remark-gfm": "^4.0.0", + "tailwind-merge": "^2.5.4" }, "devDependencies": { "@eslint/js": "^9.13.0", "@types/autoprefixer": "^10.2.4", "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", - "@types/semantic-release": "^20.0.6", "@types/tailwindcss": "^3.1.0", "@vitejs/plugin-react": "^4.3.3", "autoprefixer": "^10.4.20", diff --git a/src/components/AppVersion.tsx b/src/components/AppVersion.tsx index 5b85a24..0aa0e32 100644 --- a/src/components/AppVersion.tsx +++ b/src/components/AppVersion.tsx @@ -35,14 +35,17 @@ const AppVersion = () => { > {version} - + beta
{changelog.map((data: Record) => ( - + ))}