All Projects → KSF-Media → affresco

KSF-Media / affresco

Licence: MIT license
🖼 KSF Media frontend monorepo

Programming Languages

purescript
368 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
Less
1899 projects
Dhall
116 projects
CSS
56736 projects

Projects that are alternatives of or similar to affresco

devto-monorepo
Source code for the Dev.to article - Next.js, Apollo Client and Server on a single Express app
Stars: ✭ 33 (+10%)
Mutual labels:  monorepo
copybara-action
Transform and move code between repositories. Start with ZERO config and 100% customizable.
Stars: ✭ 69 (+130%)
Mutual labels:  monorepo
MeetU
Application that build on Elasticsearch and Spring Boot Microservices (Synchronous Service)
Stars: ✭ 22 (-26.67%)
Mutual labels:  monorepo
nextjs-monorepo-example
Collection of monorepo tips & tricks
Stars: ✭ 874 (+2813.33%)
Mutual labels:  monorepo
Anything
Digital asset organizing tool for creators.
Stars: ✭ 19 (-36.67%)
Mutual labels:  monorepo
gobyexample
A personal go code practice repository managed as monorepo.
Stars: ✭ 18 (-40%)
Mutual labels:  monorepo
x-dash
❌➖📰 shared front-end components for FT.com and the FT Apps
Stars: ✭ 32 (+6.67%)
Mutual labels:  monorepo
create-contentful-app
Bootstrap a Contentful App
Stars: ✭ 68 (+126.67%)
Mutual labels:  monorepo
rules ruby
Ruby Rules for Bazel. It is, perhaps, production-ready. This project builds atop the work of Yugui, whose original rules can be found at https://github.com/yugui/rules_ruby. Please be aware there is an active fork of this project maintained by Coinbase at https://github.com/coinbase/rules_ruby.
Stars: ✭ 85 (+183.33%)
Mutual labels:  monorepo
typescript-monorepo-cra-example
TypeScript@3 monorepo example CRA version
Stars: ✭ 25 (-16.67%)
Mutual labels:  monorepo
git
git (and github) & monorepo / mono source tree command line tools, libraries & scripts
Stars: ✭ 16 (-46.67%)
Mutual labels:  monorepo
yarn-workspaces-example
Sample monorepo project using new Yarn feature called Workspaces
Stars: ✭ 39 (+30%)
Mutual labels:  monorepo
ts
⚙️ The CLI that TypeScript deserves.
Stars: ✭ 17 (-43.33%)
Mutual labels:  monorepo
ogma
A monorepo for the ogma logger and related packages
Stars: ✭ 201 (+570%)
Mutual labels:  monorepo
jscrambler
Monorepo of Jscrambler's Javascript Client and Integrations
Stars: ✭ 118 (+293.33%)
Mutual labels:  monorepo
microservices-demo
A Monorepo Demoing Microservices Architecture
Stars: ✭ 36 (+20%)
Mutual labels:  monorepo
mean-ionic-ngrx
Monorepo as Microservices: Full MEAN stack with Angular 7, Ionic 4 and ReactiveX API (ngrx/Store + ngrx/Effects) + i18n/ngx-translate + Express NodeJS REST API servers micro-services + JWT Authentication + UnitTest/e2e exemple + Travis + DevOps scripts and many more...
Stars: ✭ 60 (+100%)
Mutual labels:  monorepo
blog
blog posts & source code.
Stars: ✭ 44 (+46.67%)
Mutual labels:  monorepo
ctx-core
A composable monorepo web-service/front-end toolkit
Stars: ✭ 25 (-16.67%)
Mutual labels:  monorepo
blog-series-nextjs-nx
Source code for the Next.js + Nx blog series
Stars: ✭ 60 (+100%)
Mutual labels:  monorepo

Affresco

Affresco

Affresco (IPA: /af'fresko/) is KSF Media's frontend monorepo: as many beautiful scenes are contained in a fresco, many beautiful frontends can be found in this repo.

production

Deploy Lang(s)
Mitt Konto PureScript
KSF National Elections JavaScript
KSF EU Elections JavaScript
App Article View PS/JS
Scripts JS
Vetrina (test) PS
Podcasts JS
Podcasts (VN) JS

Developing

To install all packages run yarn install in the root of the repo.

You might also want to install the tools globally for more convenience: npm install -g purescript spago parcel

We have different kinds of apps, and they require different initial setup. Move inside of some app's folder (e.g. apps/mitt-konto), and then:

  • JavaScript only: no setup needed
  • PureScript only: run spago build --watch to get a file-watching build, or use some editor integration to do this watch/rebuild for you (e.g. see here for the things mentioning "ide")
  • Mixed JavaScript/PureScript: run yarn build-purs to get the compiled PureScript bundle in the right place

After this initial setup, running yarn start should give you a hot reloading local dev server.

Structure

It's a monorepo, and there's a separation between packages and apps:

  • packages are actual npm packages (should be prefixed with @affresco/), and represent units of compilation to be included in apps.

    Each package should include an entry point file. This is typically index.js in the root of the package directory.

    The granularity here is important: JS packages might be as small as we wish, PureScript packages should be as big as possible - this is because their size is not really important for PureScript apps, but it should be so that we can easily include them into JS apps by just compiling a bundle (e.g. the login is a separate package. See the package.json in apps/app-article for how to compile it.

    When making a new PureScript package, add it to the global packages.dhall - after that you'll be able to import it in your apps or in other packages (note that the compiler will prevent you from having circular dependencies anyways.

  • apps is where all the applications are. These are not supposed to be required in any other application, however a package.json should still exist for internal and external dependencies, and build scripts.

Sharing assets

All assets are shared by all packages and apps:

  • all styles are in less
  • all fonts in fonts
  • all images in images

Styles

All styles should be placed under /less. The file should be named after the component it belongs to. Also note that the file Components.less conveniently imports every less file associated with a component. Newly created styles should be added to this file.

Production build

Apps

For building and deploying single page applications from apps/, the deploy.rb script is used.

$ ruby deploy.rb $APP_NAME

Scripts

For static scripts, the build command is defined in CI. In this case, we just want to minify all content under scripts/.

# A simple one-liner to minify all js files
ruby -e 'Dir.glob("scripts/**/*.js").each { |f| `uglifyjs #{f} -o #{f.gsub(/js\z/, "min.js")}` }'

Here, for example, a file scripts/apps/appScript.js is minified to scripts/apps/appScript.min.js.

Adding a new deployment

See the CI README for info about the CI setup, and how to add a new app

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].