Why SoFlow
What makes it better
than the alternatives
- 01
Database-first schema
Database-first schema
- 02
Multi-site scoping with role-based access
Multi-site scoping with role-based access
- 03
AI visibility tracking
AI visibility tracking
- 04
White-label branding
White-label branding
- 05
Budget guard with API spend tracking
Budget guard with API spend tracking
Rank Tracker
- Weekly automated position checks per keyword
- per country
- per city via DataForSEO or Google Programmable Search fallback
- Full SERP capture—all ten organic results stored
- not just client position
- Week-over-week movement with best/worst position and rank history charts
- Keyword groups (topic clusters) with group-level average position scoring
- AI-written keyword analysis explaining why a position moved and recommended actions
- Manual re-check on demand with cooldown gate to prevent API overspend
Site Audit
- Full-site crawler with configurable page limit
- depth and concurrency (SiteAuditWorker background job)
- 31 issue checks: on-page
- technical
- performance
- content
- security
- links
- mobile (SiteAuditService)
- Severity triage—Critical/Warning/Notice with affected-page lists per issue
- Issue history so operators prove what was fixed between audits
- AI-written fix instructions for each issue class via Claude
- with rule-based fallbacks when no API key set
- Progress polling endpoint for live crawl status updates
Quick Audit
- Paste a URL and up to five keywords
- get scored report in minutes (QuickAuditWorker)
- Technical issues
- Core Web Vitals
- backlink profile
- domain rank and keyword verdicts in one PDF
- Designed as sales tool—run on prospect's site before pitch call
- History view of all past quick audits per user
- PDF export with white-label branding
On-Page Analyzer
- Scores single page out of 100 across title
- meta
- headings
- keyword density
- content length
- images
- schema
- Core Web Vitals
- AI rewrites for weak titles
- meta descriptions and thin content blocks—shown side by side with original
- Page weight breakdown (HTML
- CSS
- JS
- images
- fonts)
- PDF export of analysis with recommendations
- Re-analyze action to track improvements over time
Backlinks & Authority
- Backlink profile with referring domains
- dofollow/nofollow split
- anchor text
- spam score
- lost links (DataForSeoBacklinksService)
- Weekly authority snapshot—domain rank
- organic traffic
- organic keywords
- paid traffic
- paid keywords (DataForSeoDomainRankService)
- Lighthouse desktop and mobile scores—performance
- LCP
- FCP stored per snapshot (DataForSeoLighthouseService)
- Grouped view by referring domain with backlink count and max domain rank
- Manual refresh with cooldown gate (DomainAuthorityRefreshHours setting)
AI Visibility
- Weekly automated queries to Claude
- ChatGPT and Gemini checking brand mentions (AiVisibilityWorker)
- Per-engine status—configured or not—with query history and snippet capture
- Brand alias support—track variations of company name in AI responses
- Trend chart showing mention rate over 12 weeks per engine
- Manual run-now action with job status polling
Competitor Analysis
- Discover competitors from SERP overlap across keyword groups (CompetitorAnalysisWorker)
- Deep analysis per competitor—backlinks
- authority
- top pages
- keyword overlap (DeepCompetitorAnalysisWorker)
- Blocklist for marketplaces and aggregators (BlockedCompetitorDomains table
- global across all sites)
- Weekly SERP report showing competitor movement per keyword (WeeklyReportWorker)
- Competitor appearance tracking—which keywords each competitor ranks for
Visitor Tracking
- Lightweight JS snippet (track.js) captures sessions
- page views
- referrers
- UTM params
- Session replay—page sequence per visitor with timestamps
- Referrer breakdown—organic
- direct
- social
- paid with source domain
- UTM campaign tracking—source
- medium
- campaign
- term
- content
- Unique tracking token per website
- regenerate on demand
Project Management
- Monthly work plan with task assignments per website (ProjectController)
- Task approval workflow—pending
- approved
- rejected states with proof uploads
- Week view and My Week view for assigned tasks
- Master list of all tasks across all sites for Admins
- Task progress tracking with completion percentage
Client Reports
- Automated PDF generation with rankings
- audits
- backlinks
- visitors
- AI visibility (ClientReportWorker)
- Configurable date range—default is last N months (ClientReportMonthsBack setting)
- White-label branding—logos and company details from BrandingService
- Weekly action report with AI-written recommendations (WeeklyReportWorker)
- Report history with view and delete actions
User & Access Management
- Five roles: MainAdmin
- Admin
- Manager
- SEO Specialist
- Client (UsersController)
- Per-site assignment—SEO Specialists see only their assigned websites (WebsiteAssignments table)
- Forced password change on first login (MustChangePassword flag
- RequirePasswordChangeFilter)
- Active/inactive toggle per user with last-login tracking
- Role-based action authorization via ISiteAccessService on every site-scoped endpoint
Admin Settings
- API credentials for Claude
- OpenAI
- Gemini
- DataForSEO
- Google PageSpeed
- SMTP stored in AppSettings table (AdminController)
- Monthly budget and daily spend limits with auto-pause when threshold hit (BudgetGuardService)
- Model selection per AI provider—Claude (claude-3-5-sonnet-20241022)
- OpenAI (gpt-4o)
- Gemini (gemini-2.0-flash-exp)
- SMTP test email action to verify mail configuration
- Backlink refresh interval and PageSpeed toggle
| Language | Version | Framework | Used for | Share of code |
|---|---|---|---|---|
| C# | — | — | Web, API, admin | 51.8% |
| C# (Razor) | — | — | Web pages | 36.8% |
| SQL | — | — | Database | 8.2% |
| CSS | — | — | Styling | 3% |
| JavaScript | — | — | Front-end | 0.2% |
- Primary language
- C# 12 (.NET 9)
- Framework
- ASP.NET Core 9 MVC + Razor
- Database
- SQL Server 2022
- Authentication
- Cookie authentication with role-based authorization
- Licence
- Single-site
- Screens
- 87
- Database tables
- 61
- Supported languages
- English only
- Browser support
- Modern browsers (Chrome, Firefox, Safari, Edge)
| Minimum | Recommended | |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 4 GB RAM / 20 GB SSD | 8 GB RAM / 40 GB SSD |
| OS | Linux or Windows with .NET 9 SDK/Runtime, SQL Server 2022 | Linux or Windows with .NET 9 SDK/Runtime, SQL Server 2022 |
| Est. monthly hosting | $40 | $40 |
```bash cp .env.example .env # Edit .env and set SA_PASSWORD to a strong password (16+ chars) docker compose up -d # Wait 30 seconds for SQL Server to initialize docker compose exec db /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "$SA_PASSWORD" -C -i /docker-entrypoint-initdb.d/schema.sql docker compose exec db /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "$SA_PASSWORD" -C -i /docker-entrypoint-initdb.d/seed.sql docker compose restart web # Access at http://localhost:5000 # Login: admin@soflow.local / Demo@12345 ```
```bash # Install .NET 9 SDK wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh chmod +x dotnet-install.sh ./dotnet-install.sh --channel 9.0 export PATH="$HOME/.dotnet:$PATH" # Install SQL Server 2022 wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list)" sudo apt-get update sudo apt-get install -y mssql-server sudo /opt/mssql/bin/mssql-conf setup # Choose Developer edition, set SA password # Install SQL tools sudo apt-get install -y mssql-tools18 unixodbc-dev echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc source ~/.bashrc # Create database sqlcmd -S localhost -U sa -P 'YourSAPassword' -C -i database/schema.sql sqlcmd -S localhost -U sa -P 'YourSAPassword' -C -i database/seed.sql # Configure app cd "NET Project/SOFlow" cp appsettings.example.json appsettings.json # Edit appsettings.json: set connection string with your SA password # Build and run dotnet restore dotnet build dotnet run --urls=http://0.0.0.0:5000 # Access at http://your-server-ip:5000 # Login: admin@soflow.local / Demo@12345 ```
```bash # Create resource group az group create --name soflow-rg --location eastus # Create SQL Server and database az sql server create --name soflow-sql --resource-group soflow-rg --location eastus --admin-user sqladmin --admin-password 'YourStrongPassword123!' az sql db create --resource-group soflow-rg --server soflow-sql --name SOFlowDb --service-objective S1 az sql server firewall-rule create --resource-group soflow-rg --server soflow-sql --name AllowAzure --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0 # Apply schema (from local machine with sqlcmd) sqlcmd -S soflow-sql.database.windows.net -U sqladmin -P 'YourStrongPassword123!' -d SOFlowDb -i database/schema.sql sqlcmd -S soflow-sql.database.windows.net -U sqladmin -P 'YourStrongPassword123!' -d SOFlowDb -i database/seed.sql # Create App Service az appservice plan create --name soflow-plan --resource-group soflow-rg --sku B2 --is-linux az webapp create --resource-group soflow-rg --plan soflow-plan --name soflow-app --runtime "DOTNETCORE:9.0" # Configure connection string az webapp config connection-string set --resource-group soflow-rg --name soflow-app --connection-string-type SQLAzure --settings DefaultConnection="Server=tcp:soflow-sql.database.windows.net,1433;Database=SOFlowDb;User ID=sqladmin;Password=YourStrongPassword123!;Encrypt=True;TrustServerCertificate=False;" # Deploy cd "NET Project/SOFlow" az webapp up --resource-group soflow-rg --name soflow-app --runtime "DOTNETCORE:9.0" # Access at https://soflow-app.azurewebsites.net # Login: admin@soflow.local / Demo@12345 ```
Quality report
Manually reviewedHow to read the quality report
What this is. Every project on Vibe96 goes through an automated audit of its source code before a reviewer in Dubai checks it by hand. The score is out of 100; 75 is the minimum to be listed, and any single failing check blocks a listing regardless of the score.
- Security
- No real credentials in the code, every data-changing route protected, admin areas role-gated, no SQL built from user input.
- Code structure
- A developer can navigate and extend it: clear module boundaries, no giant files, little copy-paste.
- Docs & completeness
- The setup guide, example config, schema and required files the builder committed to are actually in the archive.
- Dependency health
- Packages pinned, no known critical vulnerabilities, no abandoned libraries in production paths.
- Build & deploy
- A clean machine can restore, build and start it by following the shipped instructions.
Warnings are problems that didn't block the listing; they stay visible here until a later version clears them. The audit reads the code — it does not run it — so always try the live demo before you buy. Lines of code are counted from the same audited archive.
89/ 100
Automated audit score
The automated audit flagged a blocking check · 4 open warnings — listed after a manual review
◷ 4 open warningsWhat to know before you buy
4 non-blocking findings shown publicly: weak default password in seed data; no production secrets found; moderate duplication and some oversized files; business logic mostly well-separated but view models could be consolidated; build reproducible with gaps: missing .csproj, unclear db setup, no version pins. The seller has been notified; fixes ship in the next version.
Versions & updates
No updates yet. New versions appear here with a changelog.
Buyers receive updates free for 1 year.
What you get
- </>Full source codeThe complete audited source, delivered as a download from your account. No obfuscation.
- ▤DocumentationSetup guide, architecture notes, CLAUDE.md and AGENTS.md.
- ↻One year of updatesEvery new version the builder publishes, free for 12 months.
- ♧30 days of supportInstallation and defect support through Vibe96 tickets.