✅ Beta Roadmap & Progress

#1

Github project here: https://github.com/frontity/frontity/projects/1

Feel free to edit this post when you finish something.

Roadmap

  • Repository organization

    • :white_check_mark: - To monorepo or not to monorepo.
    • :white_check_mark: - Configure releases with lerna.
    • :white_check_mark: - Configure Travis.
    • :white_check_mark: - Configure Jest.
    • :white_check_mark: - Configure TypeScript.
    • :white_check_mark: - Configure Conventional Changelog.
    • :white_check_mark: - Include an examples folder and refactor @frontity/core urls.
  • Build phase

    • :white_check_mark: - Babel configuration for module, es5 and node [#PR].
    • :white_check_mark: - Wepack configuration for development and production [#PR].
    • :white_check_mark: - Produce both es5 and module bundles [#PR].
    • :white_check_mark: - Integrate Koa inside server [#PR].
    • :white_check_mark: - Create production dev script [#PR].
    • :white_check_mark: - Create production build and serve scripts [#PR].
    • :white_check_mark: - Generate all entry files with correct package imports for each mode.
  • Serve phase

    • :white_check_mark: - Hot Module Replacement [#PR].
    • :white_check_mark: - Integrate with Loadable Components (code splitting) [#PR].
    • :white_check_mark: - Serve both es5 and module bundles.
    • :white_check_mark: - Serve static files from Koa [#PR].
    • :white_check_mark: - Make server bundle ready for serverless [#PR].
    • :white_check_mark: - Import the correct packages on each bundle.
    • :white_check_mark: - Load settings on demand.
    • :white_check_mark: - Render Root and Fills components from packages.
    • :white_check_mark: - Integrate SSR with Emotion.
    • :white_check_mark: - Integrate SSR with React-Helmet.
    • :white_check_mark: - Create default templates (both html and amp)
    • :white_check_mark: - Create store for the settings.
    • :white_check_mark: - Create store for the build.
    • :white_check_mark: - Create Overmind store in the server.
    • :white_check_mark: - Create Overmind store in the client.
  • State Manager

    • :white_check_mark: - Create connect.
    • :white_check_mark: - Integrate state.
    • :white_check_mark: - Integrate actions.
    • :white_check_mark: - Integrate libraries.
  • @frontity/file-settings

    • :white_check_mark: - Decide on a final schema.
    • :white_check_mark: - Create types for frontity.settings.js.
    • :white_check_mark: - Create APIs to get packages and settings in the SSR.
  • @frontity/wp-source

    • :white_check_mark: - Figure out how to do the URL discovery.
    • :white_check_mark: - Decide on a data schema.
    • :white_check_mark: - Create APIs to fetch and retrieve data.
  • @frontity/tiny-router

    • :white_check_mark: - Create APIs to set and get router state.
    • :white_check_mark: - Make it work with browser’s history.
  • @frontity/mars-theme

    • :white_check_mark: - The theme can render the home.
    • :white_check_mark: - The theme can render lists of categories and tags.
    • :white_check_mark: - The theme can render posts.
    • :white_check_mark: - The theme can render pages.
  • Typescript

    • :white_check_mark: - Create the Settings type.
    • :white_check_mark: - Create the Package type.
    • :white_check_mark: - Create the Connect type.
  • Docs

    • :white_check_mark: - The docs have an Introduction section.
    • :white_check_mark: - The docs have a Getting Started section.
    • :x: - The docs have a guide to create a new theme.
  • CLI

    • :white_check_mark: - Should have a frontity create command.
    • :white_check_mark: - Should have a frontity dev command.
    • :white_check_mark: - Should have a frontity build command.
    • :white_check_mark: - Should have a frontity serve command.
Introduce yourself :wave:
pinned #2
#3

I’ll start!

I’ve been working with Mario in the forum and also thinking a lot about all the things we need to figure out for the v1.0 launch.

I’ll open more posts for each topic so we can:

  • Start all the discussions and design.
  • See the roadmap ahead and set our goals.
#4

I’ve been writing down info on react-imported-component and loadable-components to decide what to use.

I’ll be trying those libraries and build a basic project with them to understand how they work.

Code Splitting with `webpack` and `react-imported-component`
#5

I’ll keep opening posts for each topic we need to work on or think about.

#6

I’ve been investigating how to organize our repositories in order to use multirepos and semantic release and today I’m going to deploy and configure a WordPress server which it is intended to be the CMS of our organization webpages.

#7

Amazing. Once you finish with that, can you set up the main repo frontity/frontity with Lerna? :slight_smile:

#8

I’ll be trying out loadable-components.

#9

Yes, sure! I’ve finished configuring the WP server, and also the single-sign-on authentication to login in WP using the Discourse credentials, just to give it a try.

1 Like
#10

I’m working with @SantosGuillamot trying to figure out how to catch Discourse events to send them to GTM.

And I’ll be opening more posts today:

  • Our old build store (no idea how to name it yet).
  • The Settings API.
  • The Source API.
#11

I’ll be working on a post about all the requisites we’ll need to fulfil in other to have 100/100 score in every category of Lighthouse.

#12

Yesterday I was moving the old repositories to clean up the organization on GitHub and start with the new repositories. I have also created a monorepo and I have been investigating a bit how to execute scripts with Lerna just after launching a new version.

What I’ve seen is that people use the postversion script in the package.json, as explained in npm-scripts, to perform that task, and not something Lerna-specific.

#13

Yesterday I didn’t have time to create these posts:

but I’ll try to find time today to do so.

#14

Today I finished with the investigation on Lighthouse.

#15

I’ve been working with Pablo setting our goals for the first two months so didn’t have time yesterday either. I hope today is the day to finish at least 1-2 of those posts.

#16

I’ll be setting up the eslint config in frontity.

#17

I’ve been working in these two posts:

Today I want to finish How to resolve dynamic imports in Webpack (I have an idea to solve it).

#18

I’ll be investigating how to manage our monorepo of WP plugins. PHP modules, dependencies between packages, tests, composer…

#19

Last weekend I worked on the first scripts of the framework in this PR:

I want to get it to a point where either Edu or David can take over and finish the SSR.

#20

I’m working right now in setup a monorepo for the wp-org plugins, using Lerna. I was a bit stuck trying to update the plugin’s version in the .php file after bumping them in the package.json but I think I have an idea to solve it.