Git Product home page Git Product logo

lumiere.codes's Introduction

Project Lumiere

Powered by Vercel

We are sponsored in full by Hack+ and Vercel.

Update lumiere.codes has sunsetted. We have since taken down an environment variable that resulted in users being unable to authenticate and access their posts. Please reach out if there are any inconveniences. Project Lumiere extends our sincerest gratitude to @wooorm at @unifiedjs for offering so much advice online about the MDX ecosystem.

Welcome to the repository of lumiere.codes, the CS publication platform with editing superpowers! This repository contains the source code for the website and editing libraries, built with Next.js and TailwindCSS and deployed on Vercel.

Contributing

We would love for you to contribute to lumiere.codes wherever you see fit! We recommend reading the contributing guide before you create a PR.

License

This repository is open-sourced with an MIT License.

lumiere.codes's People

Contributors

arashnrim avatar dependabot[bot] avatar nebudev14 avatar shimamooo avatar

Stargazers

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

Watchers

 avatar

lumiere.codes's Issues

Infinite scroll with loading skeletons on Publications page

Motivation

  • /press is a really, really important page. Eventually it will be our home page!
  • Infinite scroll + loading skeletons (accomplishable through SWR or react-query), will be good user experience
  • Good current implementations are Airbnb and Doordash!

How to do it?

  • Look into swr, specifically the infinite pagination api
  • Create a test repo, minimal implementation with dummy data, then get infinite pagination working
  • Copy implementation to repo with data served through ISR
  • Profit ๐Ÿ’ธ

Performance optimizations in editor

Motivation

Editor currently chokes on iFrames and React components. Also due to Monaco Editor being very heavy

Steps to take

  • Use CodeMirror 6 beta
  • Optimize with useMemo and useCallback
  • Use debouncing to minimize number of transactions

Create files to improve community profile

Hello!

Not related to the website, but the repository instead!

It would be great if we can create files that are vital to improving the community profile of the repository. Taking a look at the Insights tab, vital parts include the:

  • description,
  • README file,
  • code of conduct file,
  • contributing file, and
  • license.

I think the most vital (and easy to draft up!) are the description, README file, and license. What do you think? Should we try to implement them?

Long-term roadmap for new features

  • Markdown linting
  • Real-time collaborative editing
  • Theming customization using CSS vars
  • Custom domains - free transfer to your own domain!
  • TailwindCSS theming
  • Commenting + social features

Improve Landing Page + SEO

What is the problem?

Improving our landing page, will make it easier for people to understand the site more, what they can do with it, and more.

It's not that important right now, though should be kept in mind.

Add Author to blog

Add a Author, for each blog page.

Render on this page, and the post page
image

Render Avatar and Author Name.

i.e (image) (name) (link)

Codemirror editor input features!

Motivation

  • Switch theme in editor, add extensions such as line wrap, add linting - all good features for the best possible editor!
  • Codemirror makes another end goal of collaborative editing possible https://codemirror.net/6/examples/collab/

Brief instructions

  • Look into Codemirror documentation https://codemirror.net/6
  • Look into rodemirror - the React codemirror implementation we use: documentation https://github.com/sachinraja/rodemirror
  • Use the existing code (already have line wrapping and themes set up) and use the codemirror api to add a lot of their possible features!

Mobile responsiveness

  • Navbar shows up and operates, we just need the content to show
  • Landing page needs some responsiveness; middle section goes offscreen in x direction
  • Editor should be split horizontally instead of vertically in mobile mode

Statistics feature

Feature is currently in development in the navbar

Seems like a pretty cool feature to implement!

Migrate from evaluate to compile in xdm

Problem

  • The editor is slow due to the on-demand transpilation of xdm
  • <iframe /> elements reload on every keystroke

Solution

  • Use xdm.compile instead! Although the change won't be instant, the editing experience in Monaco editor will be smooth
  • Allows for compile-only remark and rehype plugins that we would have missed out on!

Add a profile viewing system

Being able to view people's profiles, along with their previous publications and other stats is a pretty important feature for our platform!

Blog page

Motivation

Startups need a blog to pump out a consistent flow of information to users. Good for establishing trust as well

See https://tailwind-nextjs-starter-blog.vercel.app, https://www.raycast.com/blog

How to do it!

  • All blog posts are stored in posts/company/blog in the repo
  • Find the function getAllSlugs defined in lib/mdxBundler - this function outputs all of the files inside of a folder within /post
  • In pages/company/blog call getAllSlugs inside of getStaticProps for static site generation speed
  • Render a list of blog posts in the return of Blog, sorting by date created

Search bar

Add a search bar to make it easier to find posts!

Team page

Generic team page needed to establish more trust with end users. A few <Avatar /> components would be good, along with a short blurb from each team member.

  • Link socials
  • Short blurb
  • Avatar

In the future, we will have a Figma wireframe designed by our Designer to work with. But as of current we don't have that luxury ๐Ÿ˜ญ (I promise you I'm trying my hardest to find a designer tho!)

How to do

  • File to create: pages/company/team.js
  • import and use components from @components/ui/Avatar
  • Ask team members for profile pic & description
  • Use your best judgement
  • Leave it unstyled if you're not confident in design
  • Explore other files to see project-wide conventions
  1. For example use .container class for content

Get Lumiere out to the world!

A bit different from the normal task ๐Ÿ˜„

We've had humble beginnings, but now we want Lumiere to grow! Here are some immediate steps I've thought of to make this happen as a team:

  • Twitter, Facebook, LinkedIn, and Instagram account ๐Ÿ˜Ž
  • Expand our Dev team, personality and ethics over numbers
  • Advertise ethically, in Discord and Slack communities
  • Create a Slack channel - our base of operations ๐Ÿš€

Add tags for publications

Adding specific tags for publications can make it easier for users to get a synopsis of what they're reading (also makes it easier to find certain articles)

GitHub OAuth failing

Hey!

I noticed that something went wrong when trying to sign in to Lumiere using Github. All that GitHub returns is a 404 page, and looking at the link the 404 for was given when trying to authorise (at https://github.com/login/oauth/authorize?...).

Let's see if we can do anything about it. This might be a critical issue, so let's try to fix it ASAP!

Recruit people!

The best people are vital to a happy and productive team. I am extremely grateful to lead an excellent team already. Let's maintain that quality and surround Lumiere with epicness!

  • Arash - Open Source Lead
  • Anthony - Dev Lead and Director
  • Frontend lead - trying to recruit
  • Backend lead - trying to recruit
  • Arav - Head of Growth / COO / CMO / Ninja
  • Warren - Product Manager

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.