The public website
What the public website does: its pages, the licences and their checkout, the documentation, journal and changelog, the contact form, the hand-over to the dashboard, and search engines.
For the Full Stack package
Pages
Every page exists in English under /en and in Arabic under /ar, in a light and a dark theme. Only two parts of the site call the Northstack API: the contact form and the licence checkout. Everything else is written into the site itself.
| Page | Path | What it shows |
|---|---|---|
| Home | /en | The hero with Get the starter and Live demo, then the foundation, a preview of the workspace, the launch path, the workspace roles, the developer section, the two licences, common questions and a closing call to action. |
| Pricing | /en/pricing | The two licences, Single project and Studio, a comparison table and the licensing questions. Get single project and Get Studio open the purchase summary. |
| Checkout | /en/checkout?license=studio | The buyer's details and payment method, beside the order. Its return pages are /en/checkout/success, /en/checkout/cancelled and the test checkout /en/checkout/test. |
| Documentation | /en/docs, /en/docs/<article> | Ten articles in three groups (Getting started, Core concepts, Deployment), with a search. /en/docs opens the Quickstart. |
| Journal | /en/blog, /en/blog/<article> | Seven articles with categories, a search and pages of seven. |
| Changelog | /en/changelog | Every release, newest first, filtered by Major, Minor or Patch. |
| Contact | /en/contact | The contact form and three common questions. |
| Legal | /en/legal/privacy, /en/legal/terms, /en/legal/cookies, /en/legal/gdpr | Privacy policy, Terms of use, Cookie policy and Your data rights: sample texts to rewrite for your business. |
| Sign in, sign-up, password reset | /en/auth/signin, /en/auth/signup, /en/auth/forgot-password | No page of their own: each sends the visitor to the same page of the dashboard, in the same language, with the query string kept. |
| Error pages | /en/error/401, /en/error/404, /en/error/500 | Access required, page not found and something went wrong, each with its way back. |
The header links to Product, Docs, Pricing and Changelog, and Start building opens the pricing page. The footer links to Documentation, Journal, Contact, Privacy and Terms.
Links into the dashboard
The website has no accounts of its own. People sign in, sign up and work in the dashboard, at the address in NEXT_PUBLIC_DASHBOARD_URL (http://localhost:3031 when it is empty).
| Control | Where it goes |
|---|---|
| Live demo (hero), Explore the demo (workspace preview and contact page) | The dashboard's sign-in page, /<locale>/auth/signin, in the page's language. |
| See role controls (the roles section of the home page) | The same sign-in page, then the workspace's Roles page once signed in. |
Sign in on the Access required page, and the /auth/... addresses above | The dashboard's own page of the same name. |
The header has no sign-in link of its own. The demo links carry ?demo=1, which with demo mode off opens the ordinary sign-in form, where any seeded account signs in.
The licences and their checkout
The pricing page, the home page's licence section and the checkout all read the two licences from src/config/licenses.ts: their price, how many end products each covers and the lines each card lists. A licence button opens the Purchase summary, and Continue to checkout opens /checkout for that licence, or an outside store's checkout when one is set.
The buyer pays on Stripe's or PayPal's own page, so no card field is ever on the website. Without payment keys on the API, both methods go through the site's own test checkout, which charges nobody.
Documentation, journal and changelog
- Their text is part of the site, one file per language:
src/content/docs/,src/content/journal/andsrc/content/changelog/, each with anen.jsonand anar.json. The order of the documentation's articles and groups isDOCS_NAVinsrc/content/docs/index.ts, each journal article's category, date and reading time areJOURNAL_ARTICLESinsrc/content/journal/index.ts, and each release's date and kinds of change areRELEASESinsrc/content/changelog/index.ts. - The documentation's search runs in the browser over every article of the page's language.
- The journal's category, search and page are kept in the address as
category,qandpage, and the changelog's release type astype, so a filtered list can be shared and reloaded. - The documentation describes Northstack itself: rewrite or remove it for your own product.
The contact form
A name (2 to 120 characters), a work email, a topic (Licensing, Setup or Product question) and a message of 20 to 2,000 characters, then Send message. The API stores each message in its contact_messages table and, when CONTACT_INBOX is set in its .env, forwards it there by email. The dashboard has no page that lists them.
The form carries a hidden field that catches bots (a filled one is answered as sent and stored nowhere), sends the same message only once however often it is retried, and accepts five messages per address in an hour; the sixth says to try again later. Behind a reverse proxy, set TRUST_PROXY=1 in the API's .env, or every visitor shares the proxy's allowance.
Search engines
- Every page sets its own title, description, canonical address, language alternates and sharing card, built from
NEXT_PUBLIC_SITE_URL, so set it to your real address before you build. /sitemap.xmllists the home, pricing, documentation, journal, changelog, contact and legal pages, every documentation and journal article, each in both languages with its alternate./robots.txtallows every page and points to the sitemap.- The checkout, its return pages and the error pages are marked
noindex. - No analytics or advertising tag is loaded.
Without the API
Built with NEXT_PUBLIC_API_BASE_URL empty, or started with no .env, the website runs on its built-in sample data: the contact form and the licence checkout answer in the browser, an order opens the site's own test checkout and its receipt shows a licence key, and nothing is sent anywhere. A Sample data notice at the bottom of every page says so.
The public demo's footer line
Included with your purchase. Sign in to read, or open it in your download.
What the website changes when it is built as the public demo.
How the website's code fits together
Included with your purchase. Sign in to read, or open it in your download.
The code's structure and the conventions to keep when you change it.