✅ Beta Roadmap & Progress

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.

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.

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.

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

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.

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

I’ll be trying out loadable-components.

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

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.

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.

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.

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

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

Today I finished with the investigation on Lighthouse.

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.

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

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).

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

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.

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.