Giter Club home page Giter Club logo

gun-vue's Introduction

Hi 👋

My name is Denis. I could be a designer, a frontend developer, or an engineer, but I combine all that and more into broad range self-guided web development. I'm building my dream interfaces, web sites and apps for more than 10 years. And yet barely started! I'm deep into the modern frontend development, and this page is home for all of the code I've been contributing to the global community since 2012. And I welcome you here! 🌊

I've founded and continue development a network of open source sociocultural projects today. Each project starts from a good idea and transparent goals, then find the people to conciously engage in volunteering for the best. I started creating open source social projects by myself, but there are numerous collaborations that demonstrated them as really viable for real people and communities. I would be glad to meet new engaged people along the way. And would be happy if you somehow know why it's good for you and your friends to:

A. participate in any of our projects development and realisation in any role and position, B. support us by a star, mention, post or donation or any other resources you are willing to share

So the initiatives will stay alive as long as we have fun building it together! ✨

My web projects

  • Chromatone – the visual music language
  • tsoop.com – the live multimedia generation project
  • DeFUCC - Development Foundation for Universalization, Cooperation and Creativity, and there's more
  • OOLEY - Open source resource about makerspaces in Russia and all over the world
  • Etovoteto – the word creation board game and the dictionary of imaginary words

📦 NPM packages maintained

  • @gun-vue - toolset for easy p2p app development with Gun database and Vue 3 reactive components system
  • gun-avatar - simple JS avatar generator for use with gun SEA cryptographic keypairs
  • use-chromatone - the interactive visual music toolkit
  • vitepress-pages - Parse markdown pages structure to build Vitepress site navigation
  • vitepress-tags - Easily create a blog, a digital garden or a directory from your markdown content and vitepress.

Statistics

GitHub Streak

Top Langs

Modern frontend dev stack

  • Vue - reactive components and robust composables
    • vueUse - very useful Vue.js toolbox
  • Vite - lightning fast dev experience and build speed
    • Vitepress - simple yet powerful static site builder
  • Pug - compact and conscise HTML templating engine to use in Vue SFCs
  • UnoCSS - ultrafast utility-first css styling
  • GUN - distributed reactive p2p graph database
  • Paper.js - easy vector graphics manipulations
  • Elementary.audio - high performance JS+WASM audio engine
  • WEBMIDI.js - wrapper over Web Midi API for more musical scale of interactions
  • ToneJS - wrapper over Web Audio API for more musical scale of interactions
  • Capacitor - toolbox to create multiplatform mobile apps
  • Tauri - tool to build optimized, secure, and frontend-independent applications for multi-platform deployments

I can sustain myself on commercial projects, but it takes cognitive time. The time I would be happy to invest in building more and better free and open source projects for societal benefit. You can support open source development today. Start sponsoring me today to keep me 100% focused on the best for us all! ✊

Support my work today!

gun-vue's People

Contributors

davay42 avatar xcliu-ca avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

gun-vue's Issues

File sharing not working on gun-vue.js.org/

Allows for file upload and view from uploader instance, but following QR code or link on another instance does not allow access to file. File name can be seen on another instance but clicking on it just updates UI to show "Torrent: done Total 0 B at 0 B/s."

Requires rust

Hi, thanks for your work. To make it more accessible to newcomers, you may want to mention it requires rust be installed.

post displayed wrong on mobile browser

  • url http://localhost:3000/?#/posts/

  • on desktop browser, it displays correct

<ul>
<li>v0.1</li>
<li>youtube 油管</li>
<li>ipfs</li>
<li>chat 聊天</li>
<li>post 文章</li>
<li>private chat 私聊</li>
<li>decentralize 去中心化</li>
</ul>

image

  • on mobile, it displays incorrect, with base64 codes, seems like missing a tranform step

image

Use composables with Nuxt 3

With Nuxt 3, simply importing the composable inside a custom component I get:

[vite dev] Error loading external "./node_modules/@gun-vue/composables/dist/vendor.js".

at file://./.nuxt/dist/server/server.mjs:4073:320
at async __instantiateModule__ (file://./.nuxt/dist/server/server.mjs:11220:3)

components/gun.vue:

<template>
<span v-text="relay"></span>
</template>

<script setup lang="ts">
import { useRelay } from '@gun-vue/composables';

const relay = useRelay();
</script>

Is there something else I can do to make this works?

Thanks!

Error in doc: useRelay doesn't support "host" argument

See the documentation here:

image

And the useRelay function here.

When I try to get the server's status, it always gives me the demo server:

{ "peer": "https://etogun.glitch.me/gun", "host": "etogun.glitch.me", "status": "offline", "started": 0, "pulse": 0, "lag": 0, "diff": 0, "age": "0ms", "delay": 1646331513100, "blink": false }

I'm still figuring everything out, with Nuxt 3 I finally was able to get something with your suggestion thanks!

const comp = shallowRef(null)

onMounted(() => {
  import('@gun-vue/composables').then(module => {
	  console.log(module)    
	  comp.value = module?.useRelay("http://localhost:4200/gun")
  })
})

[plugin:vite:import-analysis] Failed to resolve import

Hello ,

When i click the chat button i get this error;
image

Problem because of some file first letter big or small.

I fix it for you .

import "virtual:windi.css";
import "./styles/index.css";
import "./styles/transitions.css";

// ACCOUNT

export { default as AccountProfile } from "./account/profile.vue";
export { default as AccountAvatar } from "./account/avatar.vue";
export { default as AccountBadge } from "./account/badge.vue";
export { default as AccountHome } from "./account/home.vue";
export { default as AccountStars } from "./account/stars.vue";
export { default as AccountReactions } from "./account/Reactions.vue";

// LINKs

export { default as AccountMateButton } from "./account/mate/Button.vue";
export { default as AccountMateList } from "./account/mate/List.vue";

// USER

export { default as UserCredentials } from "./user/credentials.vue";
export { default as UserPassphrase } from "./user/Pass.vue";
export { default as UserAuth } from "./user/auth.vue";
export { default as UserLogin } from "./user/login.vue";
export { default as UserHome } from "./user/home.vue";
export { default as UserIcon } from "./user/icon.vue";
export { default as UserPanel } from "./user/panel.vue";
export { default as UserProfile } from "./user/profile.vue";
export { default as UserProfileField } from "./user/profile/field.vue";

export { default as RoomProfile } from "./room/profile.vue";

//SPACE

export { default as SpacePlane } from "./space/plane.vue";
export { default as SpaceGuest } from "./space/guest.vue";
export { default as SpaceArrow } from "./space/Arrow.vue";

// POSTS

export { default as PostCard } from "./post/card.vue";
export { default as PostForm } from "./post/form.vue";
export { default as PostList } from "./post/list.vue";
export { default as PostPage } from "./post/page.vue";

export { default as PostFeedBlock } from "./post/feed/Block.vue";
export { default as PostFeedLabel } from "./post/feed/Label.vue";
export { default as PostFeedList } from "./post/feed/List.vue";

export { default as PostActionStar } from "./post/action/Star.vue";
export { default as PostActionUpdate } from "./post/action/Update.vue";
export { default as PostActionBan } from "./post/action/Ban.vue";

//CHAT

export { default as ChatRoom } from "./chat/Room.vue";
export { default as ChatMessage } from "./chat/Message.vue";
export { default as ChatPrivate } from "./chat/Private.vue";
export { default as ChatPrivateCount } from "./chat/PrivateCount.vue";

// FORMS

export { default as FormLink } from "./form/Link.vue";
export { default as FormPicture } from "./form/Picture.vue";
export { default as FormText } from "./form/Text.vue";
export { default as FormYoutube } from "./form/Youtube.vue";

// UTILS

export { default as LogTree } from "./log/tree.vue";

export { default as QrShow } from "./qr/show.vue";
export { default as QrLoad } from "./qr/load.vue";

export { default as EmbedYoutube } from "./embed/youtube.vue";

export { default as UiModal } from "./ui/modal.vue";

export { default as UtilPulse } from "./util/pulse.vue";
export { default as UtilGraph } from "./util/graph.vue";
export { default as UtilShare } from "./util/share.vue";
export { default as Utiltools } from "./util/tools.vue";
export { default as UtilRelay } from "./util/Relay.vue";

export * from "@composables";

Error from default install from yarn

[plugin:vite:vue] v-model cannot be used on a prop, because local prop bindings are not writable.
Use a v-bind binding combined with a v-on listener that emits update:x event instead.
/workspaces/gun-vue/components/src/post/reaction/PostReactionButton.vue:39:408

i18n support

To use the built components, it does not have multi language support

To use the source directly, it is too tightly coupled with windicss

Is it possible to include i18n?

Error in Nuxt 3

import { gunAvatar, useColor, useGun, useUser } from '@gun-vue/composables'

Error:
Named export 'mountElement' not found. The requested module './vendor.es.js' is a CommonJS module, which may not support all module.exports as named exports. CommonJS modules can always be imported via the default export, for example using: import pkg from './vendor.es.js'; const { SEA: Sa, gunAvatar: ka, mountClass: ja, mountElement: Aa, ms: Pa, slugify: Oa } = pkg;

[Vue warn]: Unhandled error during execution of setup function
at

build error

on build i got this err

Could not resolve './Account/Profile.vue' from src/index.js

it seems on last update after change some file name , some code don't update correctly but on commit
aaa41ae0a585cd271872c44ce905267a2ce56c84 , code works correctly

Remixed Glitch project, port not working

I remixed your glitch project and tried to run it so I can have a relay peer, but I keep getting this error. I didn't change anything involving the project.

https://glitch.com/edit/#!/scalloped-enchanting-chameleon?path=README.md%3A1%3A0

$ node main.js 
Hello wonderful person! :) Thanks for using GUN, please ask for help on http://chat.gun.eco if anything takes you longer than 5min to figure out!
AXE relay enabled!
Server started at http://etogun.glitch.me:4200
Gun peer link is http://etogun.glitch.me:4200/gun
Data storage is disabled
node:events:368
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE: address already in use :::4200
    at Server.setupListenHandle [as _listen2] (node:net:1334:16)
    at listenInCluster (node:net:1382:12)
    at Server.listen (node:net:1469:7)
    at Function.listen (/rbd/pnpm-volume/b505318e-2063-45fe-93e1-3966adf22d1b/node_modules/express/lib/application.js:618:24)
    at Object.init (file:///rbd/pnpm-volume/b505318e-2063-45fe-93e1-3966adf22d1b/node_modules/@gun-vue/relay/server.js:20:22)
    at file:///app/main.js:3:7
    at ModuleJob.run (node:internal/modules/esm/module_job:185:25)
    at async Promise.all (index 0)
    at async ESMLoader.import (node:internal/modules/esm/loader:281:24)
    at async loadESM (node:internal/process/esm_loader:88:5)
Emitted 'error' event on WebSocketServer instance at:
    at Server.emit (node:events:390:28)
    at emitErrorNT (node:net:1361:8)
    at processTicksAndRejections (node:internal/process/task_queues:83:21) {
  code: 'EADDRINUSE',
  errno: -98,
  syscall: 'listen',
  address: '::',
  port: 4200
}

Would you happen to know how to fix this?

Error in Vue 3 Vite template

add in main.js
import { GunVuePlugin } from '@gun-vue/components'

and if add in ./router.js
import { RoomList, AccountHome } from '@gun-vue/components'

Error: Uncaught TypeError: Cannot read properties of undefined (reading 'unescapeAll')
at ink.es.js:59:12

gun-relays node version

it would be better to use lts version of node for the engine

  "engines": {
    "node": ">=17.5"
  },

what does this message mean from console?

chain not yet supported for {enc: 'SEA{"ct":"is2z6z0RDGYjstwQplGGul8BJGOZ1BeHaFhX2gl6…","iv":"Ic1uc5AoXm44qdY3pMCC","s":"UYS9JROLHxAt"}', features: 'SEA{"m":{"c":"jFjrmOEaRy-GAJlOCdG4SGoaLm_4AGMPP1sf…E/N+HKvZc7BUd3g6167A/GntJm4WCluI8VYF+G1Cjqnhg=="}', hosts: 'SEA{"m":{"c":"jFjrmOEaRy-GAJlOCdG4SGoaLm_4AGMPP1sf…57dvwcxxMgDZIEUwXXULtzmyt0/2pL4I/LgByoiB3WFRQ=="}', profile: 'SEA{"m":{"c":"jFjrmOEaRy-GAJlOCdG4SGoaLm_4AGMPP1sf…vELmFwmf241pdP/0mERYE+h90wXsXjYu7alNNQgfDzvXg=="}'}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.