Code Monkey home page Code Monkey logo

builder's Introduction

This repo contains the builder for Primo. If you're working on Primo, you'll need to clone both this and the main repo and link this one. Futher instructions coming soon.

builder's People

Contributors

cortamorris avatar mateomorris avatar rallisf1 avatar srgeneroso avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

builder's Issues

๐Ÿค” svelte-undo dependency vs static libraries

I was doing some dependency upgrades and stomped on svelte-undo:
The thing is, svelte-undo requires svelte ^3 as peer dependency so when upgrading to svelte 4 it throws me a warning, but then I went looking where this library was used and found that in fact it uses a physical copy of that enhanced with lodash.
I think that dependency is an orphan. I'll check later if is still needed in the current version, I have to many upgrades installed and I don't want to mislead the results.

[Feature] Let's talk plugins

I've been dying to add features to Primo like:

  • more field types
  • seo functionality
  • ai integration (OpenAI API)
  • font manager (with API support for Google/Adobe/My Fonts)
  • file manager

But that's just my ideas and would probably bloat the project. Plugins is the way to go. There are some things we need to decide before moving forward:

Plugin Installation

It's pretty much standard that whoever uses Primo forks it first, that doesn't apply to the builder though. So the easy option to have each user add his plugin packages in his Primo fork means that whoever wants to use just the builder won't be able to use plugins. Forking both the builder and the server is pretty inconvenient IMHO.

My best idea is to standarise the naming of the plugins (e.g. primo-plugin-*) and have a prepare script that installs them via environment variables during deployment. OFC the plugins need to be published in npm.

Plugin Integration

Vite should handle importing the plugins at build time, I see no reason for using dynamic imports in the app code.

Integration Points

Register functions (or hooks if you're familiar with Wordpress) must be added throughout the codebase wherever we want that functionality extended. This WILL require some refactoring.

Plugin Structure & Documentation

It is very important to have clear guidelines on how a plugin should be written, what it can and cannot do. A skeleton plugin is a nice starting point for most people. Perhaps have different structure per plugin type, e.g.:

  • Field Type
  • Component
  • Deployment target
  • etc

Tests and error handling

People will write trash plugins, use same export names, or simply Primo updates might break them. We should force basic tests and give proper error descriptions. If we were to load the plugins dynamically during runtime we could also skip loading erroneous plugins, but I'm more of a fan of build time.

Svelte browser can not resolve @iconify

Hello, maybe this is an issue with the rollup browser or something with my configuration.
I downloaded and published primo to caprover with docker image. Any idea what this might be appreciated.

Cannot import "@iconify/svelte/dist/Icon.svelte": no matched export path was found in "pkg_name/package.json"

image image

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.