mirror of
https://github.com/towfiqi/serpbear
synced 2025-06-26 18:15:54 +00:00
style: linter fixes.
This commit is contained in:
parent
a3362bc6ad
commit
dc8676a027
37
README.md
37
README.md
@ -1,32 +1,35 @@
|
||||

|
||||
# SerpBear
|
||||
|
||||
  
|
||||
|
||||
#### [Documentation](https://docs.serpbear.com/) | [Changelog](https://github.com/towfiqi/serpbear/blob/main/CHANGELOG.md) | [Docker Image](https://hub.docker.com/r/towfiqi/serpbear)
|
||||
|
||||
SerpBear is an Open Source Search Engine Position Tracking App. It allows you to track your website's keyword positions in Google and get notified of their positions.
|
||||
|
||||
#### [Documentation](https://docs.serpbear.com/)
|
||||
|
||||

|
||||
|
||||
**Features**
|
||||
- **Unlimited Keywords:** Add unlimited domains and unlimited keywords to track their SERP.
|
||||
- **Email Notification:** Get notified of your keyword position changes daily/weekly/monthly through email.
|
||||
- **SERP API:** SerpBear comes with built-in API that you can use for your marketing & data reporting tools.
|
||||
- **Mobile App:** Add the PWA app to your mobile for a better mobile experience.
|
||||
- **Zero Cost to RUN:** Run the App on mogenius.com or Fly.io for free.
|
||||
#### Features
|
||||
- **Unlimited Keywords:** Add unlimited domains and unlimited keywords to track their SERP.
|
||||
- **Email Notification:** Get notified of your keyword position changes daily/weekly/monthly through email.
|
||||
- **SERP API:** SerpBear comes with built-in API that you can use for your marketing & data reporting tools.
|
||||
- **Mobile App:** Add the PWA app to your mobile for a better mobile experience.
|
||||
- **Zero Cost to RUN:** Run the App on mogenius.com or Fly.io for free.
|
||||
|
||||
#### How it Works
|
||||
The App uses third party website scrapers like ScrapingAnt, ScrapingRobot or Your given Proxy ips to scrape google search results to see if your domain appears in the search result for the given keyword.
|
||||
|
||||
#### Getting Started
|
||||
- **Step 1:** Deploy & Run the App.
|
||||
- **Step 2:** Access your App and Login.
|
||||
- **Step 3:** Add your First domain.
|
||||
- **Step 4:** Get an free API key from either ScrapingAnt or ScrapingRobot. Skip if you want to use Proxy ips.
|
||||
- **Step 5:** Setup the Scraping API/Proxy from the App's Settings interface.
|
||||
- **Step 6:** Add your keywords and start tracking.
|
||||
- **Step 7:** Optional. From the Settings panel, setup SMTP details to get notified of your keywords positions through email. You can use ElasticEmail and Sendpulse SMTP services that are free.
|
||||
- **Step 1:** Deploy & Run the App.
|
||||
- **Step 2:** Access your App and Login.
|
||||
- **Step 3:** Add your First domain.
|
||||
- **Step 4:** Get an free API key from either ScrapingAnt or ScrapingRobot. Skip if you want to use Proxy ips.
|
||||
- **Step 5:** Setup the Scraping API/Proxy from the App's Settings interface.
|
||||
- **Step 6:** Add your keywords and start tracking.
|
||||
- **Step 7:** Optional. From the Settings panel, setup SMTP details to get notified of your keywords positions through email. You can use ElasticEmail and Sendpulse SMTP services that are free.
|
||||
|
||||
**Compare SerpBear with other SERP tracking services:**
|
||||
#### Compare SerpBear with other SERP tracking services:
|
||||
|
||||
|Service | Cost | SERP Lookup | API |
|
||||
|--|--|--|--|
|
||||
@ -40,5 +43,5 @@ The App uses third party website scrapers like ScrapingAnt, ScrapingRobot or You
|
||||
(*) Free upto a limit. If you are using ScrapingAnt you can lookup 10,000 times per month for free.
|
||||
|
||||
**Stack**
|
||||
- Next.js for Frontend & Backend.
|
||||
- Sqlite for Database.
|
||||
- Next.js for Frontend & Backend.
|
||||
- Sqlite for Database.
|
||||
|
@ -34,7 +34,7 @@ const AddKeywords = ({ closeModal, domain, keywords }: AddKeywordsProps) => {
|
||||
setError(`Keywords ${keywordExist.join(',')} already Exist`);
|
||||
setTimeout(() => { setError(''); }, 3000);
|
||||
} else {
|
||||
addMutate({...newKeywordsData, keywords: keywordsArray.join('\n')});
|
||||
addMutate({ ...newKeywordsData, keywords: keywordsArray.join('\n') });
|
||||
}
|
||||
} else {
|
||||
setError('Please Insert a Keyword');
|
||||
|
@ -2,23 +2,23 @@
|
||||
module.exports = {
|
||||
purge: {
|
||||
content: [
|
||||
"./pages/**/*.{js,ts,jsx,tsx}",
|
||||
"./components/**/*.{js,ts,jsx,tsx}",
|
||||
'./pages/**/*.{js,ts,jsx,tsx}',
|
||||
'./components/**/*.{js,ts,jsx,tsx}',
|
||||
],
|
||||
},
|
||||
content: [
|
||||
"./pages/**/*.{js,ts,jsx,tsx}",
|
||||
"./components/**/*.{js,ts,jsx,tsx}",
|
||||
'./pages/**/*.{js,ts,jsx,tsx}',
|
||||
'./components/**/*.{js,ts,jsx,tsx}',
|
||||
],
|
||||
safelist: [
|
||||
'max-h-48',
|
||||
'w-[150px]',
|
||||
'w-[240px]',
|
||||
'min-w-[270px]',
|
||||
'min-w-[180px]'
|
||||
'min-w-[180px]',
|
||||
],
|
||||
theme: {
|
||||
extend: {},
|
||||
},
|
||||
plugins: [],
|
||||
}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user