Skip to content

brewpipeline/blog-ui

Repository files navigation

blog-ui

Blog UI built with Yew and WebAssembly, styled with Bootstrap.

1

Features

  • Posts system – page, list, create, edit, delete and publish
  • Authors system – page, list and edit authors
  • Tags system – create and manage tags
  • Comments system – list, create and delete comments
  • Minimal administration panel (roles, bans and access control)
  • Authentication via Telegram, Yandex or internal accounts
  • Server‑Side Rendering (SSR) for posts, authors and tags
  • SEO‑friendly metadata for search and social networks
  • Search across posts and authors
  • Telegram notifications when a post is published
  • Image mirroring and deployment helpers

Getting started

Prerequisites

  • Rust with the wasm32-unknown-unknown target
    rustup target add wasm32-unknown-unknown
  • Trunk for building and serving the app
    cargo install trunk

Environment variables

The UI is configured through environment variables. Some of the most common ones are listed below:

Variable Description Required?
YANDEX_CLIENT_ID OAuth identifier for Yandex authentication Only with yandex feature
API_URL Base URL of the backend API, e.g. http://127.0.0.1:3000/api Yes (client)
TELEGRAM_BOT_LOGIN Telegram bot login for notifications Only with telegram feature
TITLE Title of the blog Yes
DESCRIPTION Meta description for SEO Yes
KEYWORDS Comma‑separated keywords No
ACCORDION_JSON JSON definition for the landing page accordion Yes

See src/lib.rs for the full list and defaults.

Development

Start a development server with live reloading:

trunk serve

Production build

Generate optimized assets:

trunk build --release

Running tests

Unit tests can be executed with:

cargo test

Related projects

Screenshots

2

3

4

5

6

7

License

This project is licensed under the MIT License.

About

Blog UI made with Yew/WASM/Bootstrap

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •