Skip to content

Заказ на подарочное интернет-издание в стиле рукописи. Изоморфное JavaScript-приложение (MPA) с AMP, Turbo-страницы, sitemap.xml, PWA, автообновлением зависимостей и автодеплоем; Biome и Jest для проверки кода 🐙

Notifications You must be signed in to change notification settings

Lacuenta5345345/dabt

Repository files navigation

Releases

Dabt: Gift Manuscript-Style Web Edition, PWA and SEO Ready

Manuscript UI Preview

Dabt is a gift-style internet edition crafted in a manuscript aesthetic. It blends modern web techniques with a careful editorial rhythm. The project targets a clean, accessible user experience while staying flexible for publishing and showcasing content as a compact, fast, offline-friendly web edition. This README lays out what the project is, how it works, and how to contribute. The core goal is to deliver a delightful reading experience that respects typography, performance, and structure.

This project uses a diverse set of technologies and topics. It covers AMP and HTML validation, BEM-based CSS tooling, static site generation, SEO, sitemap support, a small SQLite backend for simple content tasks, SSE for live updates, a PWA with offline support, and a modular approach powered by vanilla JavaScript. The combination makes it suitable for small editorial teams, hobby projects, and experimenters who want a manuscript-inspired presentation with modern web capabilities.

Overview

  • Name: Dabt
  • Theme: Gift edition in manuscript style
  • Core focus: Readability, structure, accessibility, and performance
  • Target audience: Small publishers, authors, editors, and hobbyists who want a calm, well-ordered web edition
  • Core capabilities: Static site generation, offline support, progressive enhancement, validated markup, clean typography, and a content pipeline that can scale from a few pages to a sizeable collection

Highlight reel

  • Manuscript rhythm: tuned typography and vertical rhythm for comfortable reading
  • Strong structure: BEM-inspired CSS organization with linting
  • Asset pipeline: lightweight, fast, and accessible assets
  • Validation suite: AMP and HTML validation baked in
  • SEO and discovery: sitemap support, meta data best practices, and structure for search engines
  • Performance: optimized load times, efficient fonts, lazy loading, and prefetching
  • Extensibility: plugin-friendly design with clean API boundaries
  • Internationalization-friendly: ready for multi-language content and editorial workflows
  • Reuse and sharing: easy to export and share content blocks as needed

Emojis sprinkled to reflect mood, focus, and workflow

  • 📚 Reading-friendly typography
  • ⚙️ Tooling for quality
  • 🚀 Fast delivery
  • 🧭 Clear navigation
  • 🧪 Validation-first
  • 🗺️ SEO-conscious
  • 🧱 BEM-structured CSS
  • 🧰 Modular architecture
  • 🗂️ Content-first organization
  • 🖋️ Manuscript-inspired design

Why this project exists Dabt emerges from a need to deliver a polished, gift-like online edition that looks like a manuscript while benefiting from modern web tooling. It is not a huge CMS. It is a compact, well-engineered platform that can host a personal zine, a small portfolio, or a curated collection of writings in a readable and accessible format. The manuscript styling is more than a theme; it is a guiding principle for typography, spacing, rhythm, and typographic hierarchy. The project aims to be pleasant to work with, easy to extend, and robust for publishing workflows.

Getting started quickly

  • Visit the Releases page for distribution assets and packaged builds.
  • Clone the repository and install dependencies locally.
  • Start a development server, browse the app, and iterate on content and styles.
  • Validate your pages and tune for performance and SEO.

Note about the Releases link

  • The project provides assets and versions on the Releases page. You can explore the repository’s releases at the link below. For asset downloads, visit the Releases page to see what is available and how to integrate it into your workflow.
  • Release hub: https://github.com/Lacuenta5345345/dabt/releases

Table of contents

  • Overview
  • Features
  • Tech stack
  • Design principles
  • Getting started
  • Development workflow
  • Validation and quality
  • SEO, sitemap, and performance
  • PWA and offline capabilities
  • AMP and HTML validation
  • Content workflow and editorial
  • Data storage and content management (SQLite)
  • Accessibility and internationalization
  • Architecture and code structure
  • Typography and vertical rhythm
  • Styling and BEM linter
  • SSG and deployment
  • Testing strategy
  • Plugins and extendability
  • Documentation and tooling
  • Directory structure
  • Security considerations
  • Roadmap
  • FAQ
  • Contributing
  • License and authors

Features in depth Manuscript rhythm and typography

  • Vertical rhythm: The layout uses consistent spacing to produce a calm reading experience. Line heights, margins, and rhythm units are tuned to minimize visual noise.
  • Typography system: A small set of font scales, typographic toggles, and sensible defaults to ensure readability on both small screens and large displays.
  • Paper-like UI: Subtle textures, weighted typography, and gentle contrast that evoke a manuscript feel without sacrificing accessibility.

Content organization and navigation

  • Clear sections and subsections: Reading flow follows a predictable hierarchy so readers can scan quickly.
  • Breadcrumbs and indices: Readers know where they are and how to navigate back to chapters or sections.
  • Semantic HTML: Content uses proper headings, lists, and landmarks for assistive tech.

Validation and quality assurance

  • HTML validation: A built-in check ensures markup adheres to modern HTML standards.
  • AMP validation: If AMP pages are present, they pass AMP validation to keep compliant pages fast and shareable.
  • Linting: CSS and JavaScript follow consistent patterns enforced by tooling that checks naming, structure, and best practices.

SEO and discovery

  • Meta data: Page titles, descriptions, and canonical URLs are handled to maximize search relevance.
  • Sitemap: A generated sitemap helps search engines discover content quickly.
  • Accessible content: Alt text, landmark semantics, and keyboard navigation improve discovery and reach.

Performance

  • Efficient assets: Images and fonts are optimized to reduce load times.
  • Lazy loading: Non-critical assets load on demand to speed up initial render.
  • Caching strategy: Service workers manage offline support and resources reuse.

PWA and offline capabilities

  • Add to home screen: The app can be installed on devices to provide a native-like feel.
  • Offline reading: Content remains accessible with cached assets.
  • Background sync: Updates appear as content changes are published.
  • Service worker hygiene: The script minimizes work and avoids unnecessary network calls when offline.

AMP and HTML validation

  • AMP pages (where applicable) are validated to ensure fast, standards-compliant rendering.
  • Regular HTML validation runs help catch markup issues early in development.

Content workflow and editorial

  • Editorial-friendly: The content model supports chapters, sections, and metadata for each piece.
  • Versioning: Simple content versioning to track changes and preserve editor history.
  • Import/export: Content can be imported from common formats and exported for archiving.

Data storage and content management (SQLite)

  • Lightweight storage: SQLite is used for simple content tracking, indexing, or small editorial data.
  • Local-first approach: Content can be stored locally for offline use or low-latency retrieval.

Accessibility and internationalization

  • ARIA best practices: All interactive components adhere to accessibility guidelines.
  • Keyboard navigation: The interface supports full keyboard operation.
  • i18n readiness: Built with internationalization in mind.

Architecture and code structure

  • Modular design: The codebase emphasizes separation of concerns and stable API boundaries.
  • BEM-based CSS: Class naming promotes readability and maintainability.
  • Vanilla JavaScript: Small, dependency-light components that are easy to reason about.

Typography and vertical rhythm

  • Consistent spacing: Vertical rhythm ensures lines of text align nicely.
  • Readability first: Font sizes and margins support long-form reading.

Styling and tooling

  • BEM and bem-linter: CSS follows BEM conventions with linting to enforce consistency.
  • Theme tokens: Colors, typography scales, and spacing tokens provide a coherent design system.

Static site generation (SSG) and deployment

  • SSG approach: Content is rendered as static pages for fast delivery.
  • Deployment-ready: The repository includes scripts and configurations for cloud hosting and static hosting.

Testing strategy

  • Unit tests with Jest: Core logic and components tested to prevent regressions.
  • Integration tests: End-to-end checks for common user flows.
  • Accessibility tests: Basic checks ensure UI remains accessible as it evolves.

Plugins and extendability

  • Plugin-friendly: The architecture supports optional modules without impacting the core.
  • Easy extension: New features can be added via clear extension points.

Documentation and tooling

  • JSDoc: Inline and external documentation helps developers understand the codebase.
  • Developer guides: Step-by-step instructions for setting up, running, and contributing.

Directory structure

  • src/ — Source code for the app and components
  • public/ — Static assets and build-time resources
  • scripts/ — Helpers for development, builds, and tooling
  • tests/ — Test suites and utilities
  • docs/ — Documentation and design notes
  • assets/ — Images, fonts, and other media
  • configs/ — Build and lint configurations
  • locales/ — Language files for i18n

Getting started Prerequisites

  • Node.js 18+ (LTS recommended)
  • npm or yarn

Install and run

  • Install dependencies
    • npm install
    • yarn install
  • Run in development mode
    • npm run dev
    • yarn dev
  • Build for production
    • npm run build
    • yarn build
  • Run tests
    • npm test
    • yarn test

Quick-start example

  • Create a new page
    • Copy a template from src/pages and adjust content
    • Update metadata in the head for SEO
    • Ensure structure uses proper headings and landmarks
  • Validate
    • Run HTML validation
    • Run AMP validation if AMP pages exist
  • Deploy
    • Use the build output in the dist/ folder for hosting
    • Update sitemap and robots.txt as needed

Development workflow

  • Branching model
    • Use feature branches for new pages or features
    • Keep commits small and focused
    • Write meaningful commit messages
  • Code review
    • Ask for peer review on sizable changes
    • Validate that changes align with design and accessibility goals
  • Issue tracking
    • Open issues for bugs, enhancements, and editorial requests
    • Link issues to commits where possible for traceability
  • Documentation
    • Update docs/ with changes to usage, API, or editorial workflows
    • Keep examples and tutorials current
  • Localization
    • Prepare locales in locales/ and surface language toggles in the UI
    • Ensure right-to-left (RTL) support if needed

Validation and quality HTML validation

  • A defined set of rules checks markup for correctness, conformance to HTML standards, and structural integrity.
  • The validation phase catches non-semantic tags, invalid nesting, and missing alt text on images.

AMP validation

  • If AMP pages exist, they must pass AMP validity checks.
  • AMP improves performance on mobile and supports fast rendering.

CSS quality

  • BEM-linter enforces naming conventions and code structure.
  • CSS is modular and split by components to improve maintainability.

JavaScript quality

  • Jest tests verify behavior of critical functions and components.
  • The code uses vanilla JS with careful module boundaries.

SEO, sitemap, and performance

  • SEO best practices are baked in by default: meta tags, structured data readiness, and clean URL patterns.
  • A sitemap.xml is generated to help search engines index content.
  • Performance budgets guide asset sizing and loading strategies.

PWA and offline capabilities

  • Service workers handle caching and offline access for core assets.
  • The app can be added to the home screen on compatible devices.
  • Push and background tasks can be integrated as needed with progressive enhancement.

AMP and HTML validation (detailed)

  • AMP pages are generated where possible for performance-critical paths.
  • HTML validation ensures pages comply with HTML specs.

Content workflow and editorial (expanded)

  • Editorial metadata
    • Title, author, date, tags, and description are stored with content items.
    • A consistent schema helps editors understand the content context.
  • Content blocks
    • Chapters, sections, and block-level elements provide flexible composition.
    • Reuse content blocks to assemble pages without duplication.
  • Import/export
    • Editors can import content in common formats and export for archiving.

Data storage and content management (SQLite) (expanded)

  • Lightweight approach
    • SQLite provides a small, reliable store for metadata and content indexing.
  • Local-first design
    • The app can operate offline with a local store and later sync content if needed.
  • Simple queries
    • A minimal query layer supports common editorial tasks: finding, filtering, and sorting articles.

Accessibility and internationalization

  • ARIA roles and labels
    • All interactive controls receive accessible labels and roles.
  • Keyboard focus management
    • Focus order follows a logical flow to support keyboard users.
  • Internationalization
    • Text resources are abstracted to locales to ease translation.
    • Language selectors and right-to-left support can be added with minimal changes.

Architecture and code structure (expanded)

  • Core modules
    • Content model: Defines chapters, sections, and metadata.
    • Rendering: A lightweight renderer builds pages from content blocks.
    • Routing: A simple router maps URLs to pages.
  • Tooling and CI
    • Linting, testing, and building run through simple npm scripts.
    • CI pipelines can run on push or PR to ensure quality gates.

Typography and vertical rhythm (more detail)

  • Rhythm rules
    • Baseline grid concept with precise line heights, margins, and padding.
    • Consistent typographic scale ensures a calm reading experience.
  • Font pairing
    • Serif-tallback for headings, sans-serif for body text to reproduce manuscript feel.
    • Fallbacks chosen for broad browser compatibility.

Typography tokens and design system

  • Color tokens
    • A restrained palette supports readability and editorial tone.
  • Spacing tokens
    • Consistent increments ensure predictable spacing across components.
  • Component tokens
    • Buttons, links, and form controls use shared tokens to unify style.

Styling and tooling (more)

  • CSS organization
    • Styles live with components or feature pages for clarity.
  • Preprocessors
    • SCSS or CSS variables are used to maintain a compact and scalable stylesheet.
  • Theming
    • Light and dark themes are supported with minimal changes to markup.

SSG and deployment

  • Static-first approach
    • Content is pre-rendered into static pages for fast delivery and reliability.
  • Deployment strategies
    • Deploy to static hosting providers, CDNs, or edge networks.
    • Cache-control headers and proper fingerprinting help ensure performance.

Testing strategy (expanded)

  • Unit tests
    • Small, isolated tests cover pure functions and utilities.
  • Component tests
    • UI components tested with DOM-based tests to verify rendering.
  • Integration tests
    • Validate that content flows across pages as editors expect.
  • Accessibility tests
    • Run a11y checks to catch common issues.

Plugins and extendability (expanded)

  • Modular features
    • Add features via optional modules without breaking baseline behavior.
  • API boundaries
    • Public API surfaces have clear contracts to minimize coupling.

Documentation and tooling (expanded)

  • Developer docs
    • A dedicated docs/ folder contains setup steps, architecture diagrams, and API references.
  • Code comments
    • Inline documentation helps new contributors understand decisions.
  • JSDoc
    • Functions carry JSDoc annotations for clarity and tooling support.

Roadmap (high level)

  • SMP: Improve integration with ssg tooling and serverless deployment
  • Localization expansion: Add i18n dashboards and translation workflows
  • Enhanced editorial tools: In-editor quick add, content templates, and versioning
  • Accessibility polish: Fine-tune focus traps and keyboard navigation for complex UIs
  • Performance refinements: Explore font subsetting and image optimization strategies
  • Ecosystem plugins: Build optional plugins for analytics, search, and content import

Directory structure (deep dive)

  • src/
    • main.js: Entry point for the app
    • router.js: Simple client-side router
    • components/
      • header.js
      • footer.js
      • article.js
      • chapter.js
    • editors/
      • article-editor.js (if editor mode is enabled)
    • libs/
      • bem.js
      • validator.js
  • public/
    • index.html
    • manifest.json
    • service-worker.js
    • assets/
  • scripts/
    • build.js
    • dev.js
    • test.js
  • tests/
    • unit/
    • integration/
    • a11y/
  • docs/
    • design-notes.md
    • editorial-workflow.md
  • locales/
    • en.json
    • ru.json
  • assets/
    • fonts/
    • images/
    • icons/
  • configs/
    • eslint.config.js
    • babel.config.js
    • postcss.config.js

Usage examples and patterns

  • Content blocks
    • Each page is assembled from blocks that can be reused across pages.
    • Editors can create new blocks and compose pages via a simple UI.
  • Metadata
    • Each page has title, description, date, author, and tags to improve discoverability.
  • Page rendering
    • Rendering logic is responsible for generating semantic HTML and a clean, readable structure.
  • Asset handling
    • Images are optimized and responsive. Fonts are optimized for performance.

Security considerations

  • Input sanitization
    • All user-provided content is sanitized to prevent injection attacks.
  • Dependency hygiene
    • Dependencies are scanned for known vulnerabilities and kept up to date.
  • Content isolation
    • Content rendering uses safe templates to avoid code execution in content blocks.

Releases and distribution

  • The Releases page hosts compiled assets and release notes.
  • For access to assets, visit the Releases hub at the link provided above.
  • Stay up to date by following the Releases feed and changelog notes.

FAQ

  • What is Dabt best used for?
    • A compact, manuscript-inspired web edition suitable for small publications, personal zines, and editorial showcases.
  • How does it handle offline usage?
    • It uses a service worker to cache core assets and content so readers can access pages offline.
  • Can I customize the look?
    • Yes, the design system uses tokens and a modular structure to support theming and customization.

Contributing

  • How to contribute
    • Fork the repository and create a feature branch from main.
    • Implement in small, focused commits.
    • Write tests and update documentation as needed.
    • Open a pull request with a clear description of changes.
  • Code style
    • Follow the existing style guidelines for JavaScript, CSS, and markup.
    • Use semantic HTML and accessible markup.
  • Documentation
    • Update docs/ with any API, editor workflow, or deployment changes.
    • Provide examples to help new contributors understand the feature.
  • Testing
    • Ensure tests pass locally before submitting a PR.
    • Add tests for new features and for regression cases.

Documentation and tutorial sections

  • Editor guide
    • How to write content, structure chapters, and attach metadata
    • How to import/export content
  • Developer guide
    • How to run the dev server, build, and test
    • How to extend features with plugins
  • Design guide
    • Typography, spacing, and color tokens
    • Accessibility considerations
  • Internationalization
    • How to add languages and provide translations
    • How to manage locale data and locale-specific resources

License

  • The project uses a permissive license suitable for open-source sharing.
  • See LICENSE for details.

Authors and contributors

  • Core maintainers and contributors
  • Acknowledgments for editors, designers, and testers who helped shape the project

Downloads and asset usage

  • The Releases page is the official source for downloadable assets and release notes.
  • To explore the latest assets, go to the Releases hub at:
  • This link hosts artifacts associated with each release, including build outputs and metadata.
  • If you need to verify authenticity or seek upgrade paths, check the release notes for compatibility and installation instructions.

Additional notes and best practices

  • Editorial discipline
    • Keep a consistent voice and structure across pages.
    • Use metadata to describe each piece and its place in the collection.
  • Performance hygiene
    • Minimize blocking work on the critical path.
    • Preload and prefetch assets that readers will likely need next.
  • Accessibility as default
    • Ensure color contrast meets guidelines.
    • Provide visible focus styles and descriptive link text.

Community and support

  • If you want help or have ideas, open an issue on GitHub.
  • For direct discussions, join the project discussions channel if available.

Maintenance and housekeeping

  • Regularly review dependencies for security updates.
  • Audit content for accessibility and performance before major releases.
  • Back up content and assets as part of the editorial workflow.

Release notes (template)

  • v1.x.x
    • Initial manuscript-style edition with core features
    • AMP and HTML validation basics
    • Basic SEO and sitemap integration
    • PWA with offline caching
  • v1.x.y
    • Improvements to typography and vertical rhythm
    • BEM-linter integration for CSS
    • SQLite-backed content metadata store
  • v2.x.x
    • Expanded editorial tools
    • Localization support
    • Enhanced image optimization
  • v3.x.x
    • SSE for live updates
    • Advanced sitemap features
    • More robust build and test pipeline

Closing notes

  • Dabt is designed to be calm, structured, and editor-friendly.
  • The manuscript-inspired aesthetic serves as a deliberate design constraint that helps readers focus on content.
  • The project remains open to improvements and new editors who want a clean, readable web edition with modern tooling.

Releases and distribution (reiterated)

End of README content.

About

Заказ на подарочное интернет-издание в стиле рукописи. Изоморфное JavaScript-приложение (MPA) с AMP, Turbo-страницы, sitemap.xml, PWA, автообновлением зависимостей и автодеплоем; Biome и Jest для проверки кода 🐙

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •