Why Next-books
What makes it better
than the alternatives
- 01
UAE VAT 201 compliance
Reverse charge, zero-rated and exempt supplies tracked by emirate, with period locking and FTA payment recording
- 02
FIFO inventory
Stock valuation by batch, cost of goods sold posted with each invoice, quantity and value adjustments
- 03
Multi-company isolation
Every organization has its own database; tenant resolution middleware verifies membership on every request
- 04
Passwordless sign-in
Six-digit email codes, optional two-step verification, trusted devices for 30 days, sign-in history and lockout after failed attempts
- 05
Zoho Books sync
Import accounts, taxes, contacts, items and documents from an existing Zoho Books organization
Sales
- Estimates
- sales orders
- invoices
- delivery challans
- credit notes and retainer invoices
- Convert one document into the next in full or in part (estimate → order → invoice → credit note)
- Payments received with part payments and credit applied across invoices
- Recurring invoices with idempotent scheduler (never bills twice even if run twice)
- Receivables ageing report
Purchases
- Purchase orders
- bills
- vendor credits
- debit notes and expenses
- Duplicate vendor bill number detection before recording
- Recurring bills with the same idempotency guarantee
- Billable expenses re-charged to a customer
- Payments made and payables ageing
Inventory
- FIFO stock valuation by batch
- Opening stock entry
- Quantity and value adjustments
- Cost of goods sold posted with each invoice
- Price lists
- Inventory valuation report
Banking
- Import bank statements (CSV with column mapping
- or OFX)
- Duplicate line detection on import
- Categorise or match statement lines to invoices
- bills or journal entries
- Bank rules for automatic categorisation
- Transfers between accounts
- Reconciliation with period marker
Tax & Compliance (UAE)
- VAT 201 return prepared from transactions
- by emirate
- Reverse charge
- zero-rated and exempt supplies
- File a return
- lock the period
- pay the FTA or record a refund
- Tax adjustments for corrections
- Foreign-currency revaluation at period end
- VAT audit report
Accounting
- Chart of accounts seeded for the UAE
- Manual journals
- Opening balances
- Transaction locking through a date
- Accrual and cash basis side by side
- Dual-basis posting (every transaction posts to both bases at once)
Reports
- Profit and Loss (accrual and cash)
- Balance Sheet
- Cash Flow Statement
- Trial Balance
- Account ledgers
- Customer and vendor statements
- Receivables and payables ageing
- Inventory valuation
- VAT audit report
- Dashboard with cash flow by month
Identity & Access
- Sign-in by six-digit email code (no passwords)
- Optional two-step verification
- Trusted devices for 30 days
- Sign-in history and lockout after 5 failed attempts in 15 minutes
- Roles with permission matrix per module (view
- create
- edit
- delete)
- Audit log of every data-changing action
- System administrators for installation-wide settings
Multi-Company
- Every organization has its own SQL Server database
- Users belong to multiple organizations and switch between them
- Organization status (active
- suspended) checked on every request
- Membership status (active
- invited
- deactivated) enforced at sign-in
- Public sign-up (optional) or invite-only
- Optional public demo account with fixed code
Integrations
- Zoho Books sync: import accounts
- taxes
- contacts
- items and documents
- Sync runs are idempotent (safe to run again)
- Sync log with success/failure counts per entity type
- SMTP email sending with TLS
- Email log of every sent message
| Language | Version | Framework | Used for | Share of code |
|---|---|---|---|---|
| C# | — | — | Web, API, admin | 60% |
| SQL | — | — | Database | 18.4% |
| C# (Razor) | — | — | Web pages | 14.9% |
| CSS | — | — | Styling | 3.3% |
| JavaScript | — | — | Front-end | 2.1% |
| HTML | — | — | Front-end | 0.7% |
| PowerShell | — | — | Scripts | 0.5% |
- Primary language
- C# 12 / .NET 10
- Framework
- ASP.NET Core 10 MVC
- Database
- SQL Server 2019+
- Authentication
- Email OTP (6-digit code), optional 2FA, trusted devices
- Licence
- Single-site
- Screens
- 87
- Database tables
- 94
- Supported languages
- English only
- Browser support
- Modern browsers (Chrome, Firefox, Safari, Edge); htmx 2.0.11 + Tailwind CSS 3.4.19
| Minimum | Recommended | |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 4 GB RAM / 20 GB SSD | 8 GB RAM / 40 GB SSD |
| OS | Linux (Ubuntu 22.04+) or Windows Server 2019+; .NET 10 SDK; SQL Server 2019+ or Azure SQL | Linux (Ubuntu 22.04+) or Windows Server 2019+; .NET 10 SDK; SQL Server 2019+ or Azure SQL |
| Est. monthly hosting | $35 | $35 |
```bash cp .env.example .env # Edit .env: set MSSQL_SA_PASSWORD to a strong password (16+ chars, upper, lower, digit, symbol) docker compose up -d --build # Open http://localhost:8080 # First sign-in: use any email, enter the code from the log docker compose logs -f web ```
```bash
# Install .NET 10 SDK
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh --channel 10.0
# Install SQL Server 2019 or 2022
curl 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
# Clone and build
git clone <repo-url> nexo-books
cd nexo-books/src/Nexo.Web
npm run setup
dotnet publish -c Release -o /var/www/nexo
# Configure appsettings.Production.json with connection strings
sudo nano /var/www/nexo/appsettings.Production.json
# Run migrations
cd /var/www/nexo
dotnet Nexo.Web.dll -- migrate
# Set up systemd service
sudo nano /etc/systemd/system/nexo.service
# [Unit]
# Description=Nexo-Books
# [Service]
# WorkingDirectory=/var/www/nexo
# ExecStart=/root/.dotnet/dotnet /var/www/nexo/Nexo.Web.dll
# Restart=always
# [Install]
# WantedBy=multi-user.target
sudo systemctl enable nexo
sudo systemctl start nexo
# Install nginx as reverse proxy
sudo apt-get install -y nginx
sudo nano /etc/nginx/sites-available/nexo
# server {
# listen 80;
# server_name your-domain.com;
# location / {
# proxy_pass http://localhost:57363;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection keep-alive;
# proxy_set_header Host $host;
# proxy_cache_bypass $http_upgrade;
# }
# }
sudo ln -s /etc/nginx/sites-available/nexo /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
# Install SSL with certbot
sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
``````bash # Create resource group az group create --name nexo-rg --location eastus # Create Azure SQL server and database az sql server create --name nexo-sql --resource-group nexo-rg --location eastus --admin-user sqladmin --admin-password <strong-password> az sql db create --resource-group nexo-rg --server nexo-sql --name NexoBooks_Master --service-objective S1 az sql server firewall-rule create --resource-group nexo-rg --server nexo-sql --name AllowAzure --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0 # Create App Service plan and web app az appservice plan create --name nexo-plan --resource-group nexo-rg --sku B2 --is-linux az webapp create --resource-group nexo-rg --plan nexo-plan --name nexo-books --runtime "DOTNETCORE:10.0" # Configure connection strings az webapp config connection-string set --resource-group nexo-rg --name nexo-books --connection-string-type SQLAzure --settings Nexo__MasterConnectionString="Server=nexo-sql.database.windows.net;Database=NexoBooks_Master;User Id=sqladmin;Password=<password>;" Nexo__Servers__default="Server=nexo-sql.database.windows.net;Database=master;User Id=sqladmin;Password=<password>;" # Deploy cd src/Nexo.Web npm run setup dotnet publish -c Release -o ./publish cd publish zip -r ../deploy.zip . az webapp deployment source config-zip --resource-group nexo-rg --name nexo-books --src ../deploy.zip # Run migrations az webapp ssh --resource-group nexo-rg --name nexo-books dotnet Nexo.Web.dll -- migrate ```
```bash # Ensure Docker Desktop is running cp .env.example .env # Edit .env in Claude Code: set MSSQL_SA_PASSWORD docker compose up -d # Wait 30 seconds for SQL Server to initialize docker compose logs -f web # Open http://localhost:8080 in your browser # Sign in with any email; the 6-digit code appears in the logs above ```
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.
What to know before you buy
2 non-blocking findings shown publicly: no critical vulnerabilities; some packages outdated, no security patches needed; weak default sa password and example files present; no real credentials found; strong authentication and role checks; minor ownership gaps on read endpoints. 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.