npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

nanoweb

v0.16.1

Published

Nan•web server side generator with simple Javascript, CSS, HTML, EJS templates and React for forms and editor.

Downloads

3,010

Readme

English | French

Платформа Nan∙web

Генератор статичних сайтів і навіть більше на JavaScript.

Платформа розроблена навколо філософії, в основі якої:

  • вігластво,
  • безпека,
  • баланс і гармонію.

Ця філософія реалізована через унікальну структуру файлової системи, де кожна директорія має додатковий файл, що дозволяє мінімалістично та лаконічно використовувати дані, позбуваючись сміття і дублікатів.

Зміст

  1. Цілі
  2. Вимоги
  3. Безпека
  4. Масштабованість
  5. Інші міркування
  6. Розробка
  7. Досягнення
  8. Функції
  9. Встановлення
  10. Використання

Цілі

  1. Розробити легку та безпечну платформу для управління сайтом: розробка, тестування, публікація.
  2. Безпека: статичний сайт (без сервера) з HTML, JavaScript, CSS, активами.
  3. Легке управління та зберігання змін: шаблони та дані (JSON, YAML, CSV, XLXS тощо).
  4. Використовувати можливості LLM (ChatGPT та Gemini) максимально ефективно.

Вимоги

Використання

Дані зберігаються у файлах .yaml, які використовуються як файлова база даних, що дозволяє отримувати доступ до сирих файлів для управління сайтом без редактора. Структура веб-адреси відповідає розташуванню файлу даних .yaml.
Для URL https://domain.com/uk/contacts.html файл даних — це data/uk/contacts.yaml. Публічна частина сайту — це лише статичні файли. Тому для публічного сервера можливі наступні технології та рішення:

Платформи для хостингу статичних файлів

  1. GitHub Pages: Ідеально підходить для хостингу статичних сайтів безпосередньо з репозиторію GitHub.
  2. GitLab Pages: Аналогічно до GitHub Pages, дозволяє хостинг статичних сайтів з репозиторіїв GitLab.
  3. GCP (Google Cloud Platform) Object Storage: Забезпечує масштабоване та високодоступне зберігання для статичних файлів.
  4. Amazon S3 (Simple Storage Service): Ще одна масштабована та безпечна послуга зберігання об'єктів для статичних файлів.
  5. Netlify: Платформа для автоматизації розгортання та управління сучасними веб-проєктами, з вбудованою CI/CD.
  6. Vercel: Оптимізована для хостингу статичних сайтів з легким інтегруванням для додатків Next.js.
  7. Azure Static Web Apps: Сервіс для хостингу статичних веб-додатків з безсерверними API.
  8. Власний виділений або VPS сервер: Існує багато різних хостинг-провайдерів для спільного використання.

Адміністрування та React App

Для інтерфейсу адміністрування та React-додатку потрібні наступні технології:

  1. Node.js: Середовище виконання JavaScript на стороні сервера для розробки бекенду адміністрування.
  2. Express.js: Фреймворк для веб-додатків на Node.js для побудови API для панелі адміністрування.
  3. React: Бібліотека для фронтенду, яка використовується для створення інтерфейсу адміністрування.

Форми та інші API

Для надсилання електронних листів та обробки замовлень з вебсайту можна використовувати такі технології та рішення:

  1. PHP: Мова сценаріїв на стороні сервера, яка може обробляти надсилання електронних листів та обробку замовлень.
  2. Python: Універсальна мова, яка також може використовуватися для створення API для надсилання електронних листів та обробки замовлень.
  3. Node.js: Також можна використовувати для створення API для обробки цих функцій.

Хостинг

Для хостингу бекенду Node.js та React-додатку можна розглянути наступні платформи:

  1. Heroku: Хмарна платформа як послуга (PaaS), яка підтримує кілька мов програмування.
  2. DigitalOcean: Пропонує масштабовану обчислювальну платформу з простим налаштуванням та управлінням.
  3. AWS (Amazon Web Services) EC2: Забезпечує гнучку обчислювальну потужність у хмарі.
  4. Google Cloud Platform (GCP) Compute Engine: Масштабовані, високопродуктивні віртуальні машини.
  5. Azure App Service: Повністю керована платформа для створення, розгортання та масштабування веб-додатків.
  6. Vercel: Оптимізована для додатків React, з підтримкою безсерверних функцій.
  7. Netlify: Також підтримує безсерверні функції та добре інтегрується з хостингом статичних сайтів.

Інтеграція CI/CD

Для автоматизації розгортання та управління безперервною інтеграцією та доставкою (CI/CD):

  1. GitHub Actions: Автоматизація робочих процесів безпосередньо з репозиторію GitHub.
  2. GitLab CI/CD: Інструмент безперервної інтеграції та доставки, вбудований у GitLab.
  3. CircleCI: Платформа безперервної інтеграції та доставки, яка автоматизує процеси розробки.
  4. Travis CI: Сервіс безперервної інтеграції, що використовується для побудови та тестування програмних проектів, розміщених на GitHub.

Безпека

HTTPS

Статичний вебсайт не обробляє жодної приватної інформації і просто представляє публічні статичні дані користувачам. Однак використання HTTPS є гарною практикою з кількох причин, включаючи оптимізацію для пошукових систем (SEO) та переваги у довірі користувачів.

Масштабованість

Мережа доставки контенту (CDN)

  1. Cloudflare: Забезпечує глобальну CDN з захистом від DDoS та оптимізацією продуктивності.
  2. AWS CloudFront: Швидкий сервіс CDN, що безпечно доставляє дані, відео, додатки та API.
  3. Google Cloud CDN: Інтегрується з сервісами Google Cloud для забезпечення кешування контенту на межі мережі.

Інші міркування

  • HTTPS: Забезпечте, щоб усі статичні та динамічні частини вебсайту обслуговувалися через HTTPS для підвищення безпеки, SEO та довіри користувачів.
  • Масштабованість: Переконайтеся, що рішення може витримати зростання трафіку та даних.
  • Резервне копіювання та відновлення: Реалізуйте регулярне резервне копіювання та план відновлення.
  • Моніторинг і логування: Використовуйте інструменти, такі як New Relic, Datadog або ELK Stack, для моніторингу та логування.
  • Мережа доставки контенту (CDN): Використовуйте CDN, такі як Cloudflare або AWS CloudFront, для покращення розповсюдження статичного контенту.

Дотримуючись цих вимог та використовуючи зазначені платформи і технології, ви можете забезпечити надійну, масштабовану та ефективну платформу nanoweb.

Розробка

  1. Мови: JavaScript, HTML, CSS.
  2. Формати даних: Markdown, JSON, YAML, CSV.
  3. NPM.
  4. Bootstrap.
  5. Редактор, такий як Visual Studio Code.

Досягнення

  1. Навчання створенню коду з використанням інженерії підказок ChatGPT, Gemini.
  2. Розробка простого сервера на JavaScript.
  3. Використання фреймворку Bootstrap у проєкті.

Особливості

  • Модульна архітектура.
  • Розширювані плагіни.
  • Всебічний API.

Встановлення

# Встановіть пакет nanoweb для node.js
npm install nanoweb
# Запустіть вебсервер для редагування та обслуговування вебсайту
nanoweb server
# Згенеруйте весь вебсайт у статичний контент
nanoweb render
# Згенеруйте конкретні дані (сторінку), пов'язану з файлом даних data/uk/news.yaml
nanoweb render uk/news.html
# Опублікуйте вебсайт через обраний метод публікації
nanoweb publish

Ліцензія

Ліцензія ISC | ISC License