Skip to the article
Aniq-UI

NorthstackThe public website

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.

PagePathWhat it shows
Home/enThe 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/pricingThe 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=studioThe 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/changelogEvery release, newest first, filtered by Major, Minor or Patch.
Contact/en/contactThe contact form and three common questions.
Legal/en/legal/privacy, /en/legal/terms, /en/legal/cookies, /en/legal/gdprPrivacy 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-passwordNo 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/500Access 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.

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).

ControlWhere 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 aboveThe 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/ and src/content/changelog/, each with an en.json and an ar.json. The order of the documentation's articles and groups is DOCS_NAV in src/content/docs/index.ts, each journal article's category, date and reading time are JOURNAL_ARTICLES in src/content/journal/index.ts, and each release's date and kinds of change are RELEASES in src/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, q and page, and the changelog's release type as type, 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.xml lists the home, pricing, documentation, journal, changelog, contact and legal pages, every documentation and journal article, each in both languages with its alternate. /robots.txt allows 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.

Stuck on a step?

Find a fix before you start over.

Troubleshooting

Cookie Preferences

We use cookies to enhance your browsing experience, analyze site traffic, and personalize content. By clicking "Accept All", you consent to our use of cookies for analytics and personalized advertising.