Skip to content

Repository files navigation

Signum Webpage Page (Vite + React + Tailwind)

License: GPL-3.0 Vite React Tailwind CSS Cloudflare Pages

A lightweight, privacy-friendly landing page for the Signum, built with Vite + React + Tailwind and deployed on Cloudflare Pages.

  • No YouTube embeds — only links to YouTube
  • Fonts & images are locally hosted
  • Cookie banner: Essential cookies only

Table of Contents


Features

  • ✅ Fast static site (Vite)
  • ✅ Responsive UI with Tailwind
  • ✅ XT-Wallet and SignumJS Integration
  • ✅ Privacy-first setup (no third-party font/CDN calls)
  • ✅ YouTube links only (no embedded players)
  • ✅ “Essential cookies only” consent banner (configurable delay + re-ask interval)
  • ✅ Ready for Cloudflare Pages deployment

Tech Stack

  • Vite
  • React
  • Tailwind CSS
  • Optional: react-router-dom (if you use routing)

Project Structure

Typical layout:

├─ public/
├─ src/
│  ├─ assets/
│  ├─ components/
│  ├─ pages/
│  ├─ lib/
│  │  ├─ hooks/
│  │  └─ utils/
│  ├─ main.tsx
│  └─ App.tsx
├─ index.html
├─ package.json
└─ vite.config.ts


Local Development

Requirements

  • Node.js (LTS recommended)
  • npm

Install & run

npm install
npm run dev

Open the local URL printed by Vite.


Build

npm run build
npm run preview

The production build is generated in dist/.


Deployment (Cloudflare Pages)

Cloudflare Pages settings (typical):

  • Framework preset: Vite (or React)
  • Build command: npm run build
  • Build output directory: dist

If you use SPA routes (React Router), configure Cloudflare Pages to serve index.html for unknown paths (single-page-app fallback).


Privacy & Cookies

This project is designed to be privacy-friendly:

  • No third-party Google Fonts downloads (fonts are hosted locally)
  • No third-party image/CDN calls for assets
  • YouTube is linked to directly — no iframe embed, no player integration

Cookie banner behavior (recommended defaults):

  • Shows after 2 seconds
  • If user chooses “Essential only”, store the choice and do not ask again for 90 days

Your Privacy Policy is available at:

  • /privacypolicy

Note: If you truly only use essential cookies (e.g., storing consent choice), in many jurisdictions you don’t need an “accept all” flow — but you should still clearly inform users what’s stored and why.


SignumJS Example

A tiny example using SignumJS to check node status:

import { LedgerClientFactory } from "@signumjs/core";

async function main() {
  const ledger = LedgerClientFactory.createClient({
    nodeHost: "https://europe.signum.network",
  });

  const status = await ledger.network.getBlockchainStatus();
  console.log(
    `Height: ${status.numberOfBlocks} | State: ${status.blockchainState}`
  );
}

main().catch(console.error);

Contributing

PRs welcome.

Suggested workflow:

  1. Fork the repo
  2. Create a feature branch: git checkout -b feat/my-change
  3. Commit with a clear message
  4. Open a PR with a short description + screenshots if UI changes

License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0).

See: LICENSE

About

A lightweight, privacy-friendly landing page for the Signum, built with Vite + React + Tailwind

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages